Hi Lorenzo, > Thanks for the pointers. From what you write, therefore, it is not > currently possible to route each midi channel to an independent audio > output with jack. Right?
It is possible. Have you tried smth like: fluidsynth -o audio.jack.multi=no -o synth.audio-channels=16 -o synth.audio- groups=16 "someSoundfont.sf2" you should get 16 stereo output channels. and since there 16 midi channels, each midi channel will get its own stereo channel. or which behaviour do you experience? NOTE: actually audio.jack.multi should be set to "yes". however this option currently has inverse logic. thats a bug. leaving it at "no" should give you multiple channels though. Another bug related to that: whenever specify N output channels while N>1 there wont be any effects applied, see this ticket https://sourceforge.net/p/fluidsynth/tickets/137/ I've attached two patches that should fix/workaround those two issues. Tom Am Dienstag, 26. April 2016, 09:36:36 schrieb Lorenzo Sutton: > Hi Jean-Jacques, > > On 25/04/2016 14:02, jean-jacques.ceresa wrote: > > Hi, > > May be this will help. > > This link is a starting point of discussion. > > > > http://lists.nongnu.org/archive/html/fluid-dev/2015-04/msg00009.html > > > > 1)It gives functionnal behaviour of synt.audio-channels settings. > > 2)audio.jack.multi is discuted also (with a possible minor bug). > > > > 3) audio-groups and audio-channels number are used at mixer > > initialization time > > to define the maximum output buffer number like this. > > > > output_buffer_count = max (audio-channels,audio-groups). > > > > May be synth.audio-groups is only useful when one want for the plugin > > effect unit ?. > > Thanks for the pointers. From what you write, therefore, it is not > currently possible to route each midi channel to an independent audio > output with jack. Right? > > The actual use cases I'm after are essentially 2: > 1. Record different instruments from a "general midi" soundfont (on > different midi channels) independently e.g. in Ardour on a track per > instrument. > 2. Record drums from a drum soundfont independently to their own track > in the DAW (Ardour). In that case I woul be sequencing each drum on its > own channel. > > I understand use case 2 is rather corner, but 1. is probably not that > exotic. > > Lorenzo. > > > jjc. > > > > Le 24/04/2016 03:11, Lorenzo Sutton a écrit : > >> Hi all, > >> > >> What is the current status of synth.audio-channels and > >> synth.audio-groups on Linux with jack? > >> > >> By starting fluidsynth with something like: > >> > >> fluidsynth -a jack -o synth.audio-channels=4 -o synth.audio-groups=4 \ > >> -o audio.jack.multi=no > >> > >> I do get 4 pairs of jack audio outputs. > >> > >> However the behaviour isn't as expected at least according to this > >> (very old post): > >> > >> https://lists.nongnu.org/archive/html/fluid-dev/2004-02/msg00027.html > >> > >> Ideally is there a way to have each channel routed to a separate audio > >> output on jack these days? Any help appreciated. > >> > >> Lorenzo > >> > >> _______________________________________________ > >> fluid-dev mailing list > >> fluid-dev@nongnu.org > >> https://lists.nongnu.org/mailman/listinfo/fluid-dev > > > > _______________________________________________ > > fluid-dev mailing list > > fluid-dev@nongnu.org > > https://lists.nongnu.org/mailman/listinfo/fluid-dev > > _______________________________________________ > fluid-dev mailing list > fluid-dev@nongnu.org > https://lists.nongnu.org/mailman/listinfo/fluid-dev
--- src/drivers/fluid_jack.c.orig 2014-12-23 09:38:01.047865897 +0100 +++ src/drivers/fluid_jack.c 2014-12-23 09:17:51.620285608 +0100 @@ -268,7 +268,7 @@ fluid_settings_getint (settings, "audio.jack.multi", &multi); - if (multi) + if (!multi) { /* create the two audio output ports */ dev->num_output_ports = 1;
--- fluidsynth/src/synth/fluid_synth.c.orig 2015-04-11 21:55:47.000000000 +0200 +++ fluidsynth/src/synth/fluid_synth.c 2015-04-19 14:06:11.835456740 +0200 @@ -2479,7 +2479,7 @@ /* Then, run one_block() and copy till we have 'len' samples */ while (count < len) { - fluid_rvoice_mixer_set_mix_fx(synth->eventhandler->mixer, 0); + fluid_rvoice_mixer_set_mix_fx(synth->eventhandler->mixer, 1); /* reverb on output 0 */ fluid_synth_render_blocks(synth, 1); // TODO: fluid_rvoice_mixer_get_bufs(synth->eventhandler->mixer, &left_in, &right_in);
_______________________________________________ fluid-dev mailing list fluid-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/fluid-dev