[gmpi] Re: Topic 5: Threading

  • From: "Silver Blade" <lists@xxxxxxxxxxxxxxxxx>
  • To: <gmpi@xxxxxxxxxxxxx>
  • Date: Tue, 15 Apr 2003 14:16:06 +0100

Just going back to the roots of this topic (since I haven't been keeping up
with the mailing lists I'm on lately...)

I think threading could possibly be an option almost as straightforward as
selecting a different output channel. For example, a user (or host
application) might decide to allocate a single thread to the processing of a
particular range of tracks/channels.

Obviously, additional threads would be needed for having a nice responsive
GUI and also basic audio processing/signal routing, but it might be useful
if you can group plugins into different threads, so you could have a reverb
plugin working in one thread, while a delay plugin for a different source
could be working in another thread.

So the signal on channel 1 for example would have reverb applied while
channel 2 has some delay applied. On a multi-processor system, this could be
useful. However, if a particular channel had more than 1 effect on it, the
signal would need to be processed in series - that is, reverb applied first,
then delay (obviously, as there would be no output from the reverb to feed
to the delay!) But maybe groups of channels could be assigned to different
threads too?

This would also aid in networking - as far as the host is concerned, the
plugin is just "there". It feeds it a signal, and gets a signal back, and
doesn't care where it goes to or where it came from, or how the signal was
changed. Thus a second computer could be considered as a second processor.

Personally, I prefer the idea of networking several machines (a DSP farm?!)
rather than having a single machine with several processors. The only
downside is bandwidth and latency, but for a LAN these aren't really issues.

I can see the benefits of threading, but I'm not sure what an efficient
implementation of multi-threading could be. From what I gather, threads are
useful for doing processing while something else may be happening at the
same time. But at the same time they have some overhead, I believe. So the
idea I had a while ago about having a single thread for each mixer channel
would probably be worse than just having a single thread for all channels :)

-SB



----- Original Message -----
From: <RonKuper@xxxxxxxxxxxx>
To: <gmpi@xxxxxxxxxxxxx>
Sent: Thursday, April 10, 2003 4:11 PM
Subject: [gmpi] Topic 5: Threading


> 1. What kind of realtime guarantees are there, i.e., how do we handle
> plugins that run at > 100% of realtime?
>
> 2. Does the host provide some kind of threading environment?
>
>
> ----------------------------------------------------------------------
> Generalized Music Plugin Interface (GMPI) public discussion list
> Participation in this list is contingent upon your abiding by the
> following rules:  Please stay on topic.  You are responsible for your own
> words.  Please respect your fellow subscribers.  Please do not
> redistribute anyone else's words without their permission.
>
> Archive: //www.freelists.org/archives/gmpi
> Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe
>
>
>


----------------------------------------------------------------------
Generalized Music Plugin Interface (GMPI) public discussion list
Participation in this list is contingent upon your abiding by the
following rules:  Please stay on topic.  You are responsible for your own
words.  Please respect your fellow subscribers.  Please do not
redistribute anyone else's words without their permission.

Archive: //www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe

Other related posts: