[LAD] Devs needed for opensource virtual analog softsynth idea

Jeremy jeremybubs at gmail.com
Fri Jan 7 08:46:21 UTC 2011


Yeah, that would probably be a good idea.  I'm pretty bad with designing and
implementing GUIs.

Jeremy

On Fri, Jan 7, 2011 at 3:37 AM, Sascha Schneider <ungleichklang at gmail.com>wrote:

> O.k.
>
> for my part I think I will pull my skills more into the direction of
> GUI-development,
> for it seems that GUI-Guys are needed too.
> I don't know if I will focus on fltk, gtkmm or qt4 ... will spend the
> weekend RTFM-ing.
>
> regards, saschas
>
>
> 2011/1/7 Jeremy <jeremybubs at gmail.com>:
> > Hi Malte,
> > So I've been working on converting it some more.  If you could give me
> some
> > pointers as to the meaning of variables, that would be useful.
> >
> > What are the EG... variables, like "EG", "EGFaktor","EGtrigger", and
> > "EGState"?
> > Also if you're looking for a channel stealing algorithm, try this:
> > the type of a synth engine is "synth"
> > typedef struct _synthblock {
> >  _synthblock* next;
> > _synthblock* previous;
> > synth item;
> > } synthblock;
> > Initially, you start out using the synthblock as an element of a singly
> > linked list of free synths.  You only need to use the "next", pointer,
> and
> > can ignore the "previous" pointer.  You can either only keep track of the
> > head, and use it as a stack, or you can keep track of the head and the
> tail
> > and use it as a queue.  Either way, adding is a constant time operation,
> and
> > taking the most recently or least recently used one is also a constant
> time
> > operation.
> > Then, you have an array which keeps track of which notes are on.
> > synthblock* currentnotes[NUM_MIDINOTES];
> > When you get a note-on signal, you pop the first synth block off of the
> > "free synth" list, and then you add a pointer to it in this array,
> indexed
> > according to what note it is playing.  However, you also add it to the
> > doubly linked list of which synths are playing, again, a constant time
> > operation, because you are just twiddling with the next and previous
> > pointers of two blocks.  Now, the array contains a pointer to a block
> which
> > is in the doubly linked list.
> > Now, when you want all the synths to process, you can iterate through the
> > doubly linked list, and thus you only need to process the ones that are
> > playing notes.
> >  When you receive a note off signal, you look up the note in the array,
> and
> > then remove that item from the doubly linked list, and add it to the
> singly
> > linked one.
> > In the end, you can do everything in constant time (or O(number of notes
> > being played))
> > Anyway, I don't know if it's pointless for me to put my ideas here, but
> I'll
> > probably implement it too, if this doesn't make sense now.
> > Jeremy
> > On Thu, Jan 6, 2011 at 3:36 PM, Malte Steiner <steiner at block4.com>
> wrote:
> >>
> >> On 06.01.2011 12:48, Jeremy wrote:
> >>>
> >>> Yes.  Except it seems that you can select different settings for each
> of
> >>> your voices.  This doesn't really make sense if you are automatically
> >>> assigning the notes to synth engines.  I think perhaps the best way
> >>> would be to have one set of settings for *all* copies of the synth
> >>> engine, and if you want different settings, then you'd have to create
> >>> another copy of the plugin.
> >>
> >> Yes, each voice has a different sound and response to a fixed
> midichannel,
> >> 1 for the first, 2 for the second voice and so on...
> >>
> >> Actually I find it rather interesting to have different settings between
> >> automatically assigned notes. For instance with slightly different
> sounds it
> >> even would become more alive.
> >> But yes, for the average usage it would be great to just copy the
> settings
> >> across the voices.
> >> The channel stealing algorhythm kept me from implementing polyphony so
> >> far, got to study that...
> >>
> >> A while ago I was against the idea of plugins but actually find it now
> >> usefull for recalling sessions. It would be great to stuff PD, Csound or
> >> AlsaModularSynth into a sequencer. So far I know that you can create
> LADSPA
> >> plugs with Faust and Csound but instruments??
> >>
> >> Cheers,
> >>
> >> Malte
> >>
> >> --
> >> ----
> >> media art + development
> >> http://www.block4.com
> >>
> >> new on iTunes: Notstandskomitee Automatenmusik
> >> http://itunes.apple.com/us/album/automatenmusik/id383400418
> >>
> >> _______________________________________________
> >> Linux-audio-dev mailing list
> >> Linux-audio-dev at lists.linuxaudio.org
> >> http://lists.linuxaudio.org/listinfo/linux-audio-dev
> >
> >
> > _______________________________________________
> > Linux-audio-dev mailing list
> > Linux-audio-dev at lists.linuxaudio.org
> > http://lists.linuxaudio.org/listinfo/linux-audio-dev
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxaudio.org/pipermail/linux-audio-dev/attachments/20110107/2c229e67/attachment.html>


More information about the Linux-audio-dev mailing list