iiwusynth-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [iiwusynth-devel] What I'm planning to do with iiwusynth


From: Bob Ham
Subject: Re: [iiwusynth-devel] What I'm planning to do with iiwusynth
Date: 16 Feb 2003 16:11:09 +0000

On Sun, 2003-02-16 at 09:28, Peter Hanappe wrote:
> > than the command line or anything.  One thing that concerns me is the
> > interface to synths' controls once they've been created.  There seems to
> > be quite a few methods for telling the synth to do something; I've seen
> > tcp server stuff, "shell" stuff and whatnot around in the includes and
> > I'm not sure what's going on at a high level.  If someone could explain
> > what these things are about I'd appreciate it.
> 
> For what you're doing, it seems to me the best way to go is to create a
> synth with new_iiwu_synth and then control it through the synth's API
> defined in iiwusynth/synth.h. The shell and the tcp server are all just
> wrappers around the synth's interface. Too high level to be efficient
> for what you want to do.

OK, that's what I wanted to know, thanks.  A quick browse through the
include directory also reveals nice interfaces to the midi bits, which
would also be needed.  But I do see

  /* Generic callback function for MIDI events.
 ...
   * In the not-so-far future...

Is it possible for me to create a synth, midi driver and midi router 
and have it work ok at the moment, or is there still hacking to be done?

> > Another thing that could be a problem is each synth's jack client.  I'm
> > not sure, but I suspect there might be Issues with more than one
> > jack_client_t in a single address space.  It could mean having to make
> > synths share the same jack client and have them do their jack processing
> > via libiiwusynth.  That's not too big an issue tho and could dealt with
> > quite cleanly I reckon.

> You can create one jack driver and share it between several synths. I
> started to make the interface to the drivers slightly more generic.
> It's been done rather quickly so there surely still are some problems.
> The new interface just requires a callback function, and is independent
> of the iiwusynth object.

This is great stuff.  I didn't realise things were so flexible already
:)

> However, I had the same question as Josh: why several synths?
> I don't mean this in a negative sense. I'm just curious to know what
> kind of setup you have in mind that needs many synths.
> Do you have anything running, yet?

Basically, the setup I have is: muse, without audio support, sending
midi to a number of instances of iiwusynth with their jack outputs going
through an equal number of instances of jack rack.  There are two
reasons that I use more than one instance of iiwusynth.  Firstly is the
soundfont stack.  I use many soundfonts, most of which have their
instruments assigned to bank 1, presets 1-X.  Obviously, if I want to
use more than one instrument that is on preset 1, I need more than one
instance of iiwusynth.  Ideally, I would do away with the stack concept,
and have the soundfont selectable through the Bank Change message that
is unused (I can't remember if it's LSB or MSB that changes the preset
bank.)

The second reason is effects.  I want to run effects on each track
seperately.  At the moment, a single instance of iiwusynth has one
stereo output for all of its soundfonts/channels.  I know it's on the
TODO list to sort this out but until then I'll need multiple instances
if I want my effects :)

Cheers,

Bob

-- 
Bob Ham <address@hidden>





reply via email to

[Prev in Thread] Current Thread [Next in Thread]