Re: [fluid-dev] Fluidsynth Channels
On 11/30/2011 09:43 PM, Craig wrote: Hi all, Is it possible to write an app using the library, that unravels a midi file by each track, ignoring the channel of the 144 note on event, allocating each track to one of the many fluidsynth channels via some kind of callback, hence creating an application that makes channels out of tracks? I don't think so. Doing so requires changes to the fluidsynth library. Would this cause polyphony problems? Would this cause some other problems? CPU problems, thread problems...? Not immediately from just doing so, but if you have a lot of voices, that start to reach your CPU's limit, you'll have to experiment with your polyphony settings (and other things) to avoid underruns. // David ___ fluid-dev mailing list fluid-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/fluid-dev
Re: [fluid-dev] Fluidsynth Channels
Craig & David: I have been doing something similar with Fluidsynth and Rosegarden. I simply add additional Fluidsynth 'engines' (done at the bottom of the Qsynth window). Each such engine independently handles 16 MIDI channels. In Rosegarden, I add additional General MIDI banks/devices. I assign 16 MIDI channels to one, 16 MIDI channels to the next, etc. If you have a fast enough processor, you could easily add enough Fluidsynth engines for the 100 or so instruments in a symphony orchestra. If your processor is not sufficiently powerful, but you have a Soundblaster (or Audigy) sound card with the emu10k1 processor, it gives you 4 hardware synthesizers (16 ports each, = 64 simultaneous instruments), with very little processor overhead. You could also connect to multiple external synthesizers. Another way, is to do 16 MIDI tracks, then record it to an audio track, then do the next 16 MIDI tracks playing with the audio track. This process can be repeated. Beware of latency, which can get you in such a process. It's no problem if you are improvising/playing against what you hear, but if you are going from notation, it could be a problem. You can use the "Jog Right" segment command, but that is only approximate, and in my experience, can cause worse latency problems. - Aere On Wed, 2011-11-30 at 08:45 +0100, David Henningsson wrote: > On 11/29/2011 09:14 PM, Craig wrote: > > My question is, gleaning the fluidsynth source and docs it appears that > > fluidsynth can handle midi channels above the 0-15, given that > > information, how does a midi file format hand of a midi event with a > > standard note on -> 144 + midi channel, message1, message2, and time > > stamp. If I increas the 144 + midi channel, I end up in 160 land which > > is a different midi event. > > > > I am a 50 year old man who write symphonies. I would love to have > > access to more that 16 channels. How does fluidsynth do this? > > Hi Craig and thanks for your interest in FluidSynth! > > The MIDI file format does not support more than 16 channels - this is a > limitation in the MIDI file format, not FluidSynth. You'll have to use > special API calls in order to make use of more than 16 channels. > > That said; XG level 2 and level 3 seems to support more than 16 > channels. Does anybody know if there is a MIDI file meta event that > would switch "group of MIDI channels for this track" or something? I > haven't found anything myself, but it would be very useful if it existed. > > Also, please ask questions on the mailinglist when everyone can benefit > from the answer. Thanks! > > // David > > > ___ > fluid-dev mailing list > fluid-dev@nongnu.org > https://lists.nongnu.org/mailman/listinfo/fluid-dev -- Sincerely, Aere ___ fluid-dev mailing list fluid-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/fluid-dev
Re: [fluid-dev] Fluidsynth Channels
On Wed, Nov 30, 2011 at 3:11 PM, David Henningsson wrote: > On 11/30/2011 12:28 PM, Pedro Lopez-Cabanillas wrote: >> >> On Wed, Nov 30, 2011 at 8:45 AM, David Henningsson >> wrote: >>> >>> On 11/29/2011 09:14 PM, Craig wrote: My question is, gleaning the fluidsynth source and docs it appears that fluidsynth can handle midi channels above the 0-15, given that information, how does a midi file format hand of a midi event with a standard note on -> 144 + midi channel, message1, message2, and time stamp. If I increas the 144 + midi channel, I end up in 160 land which is a different midi event. I am a 50 year old man who write symphonies. I would love to have access to more that 16 channels. How does fluidsynth do this? >>> >>> >>> >>> Hi Craig and thanks for your interest in FluidSynth! >>> >>> The MIDI file format does not support more than 16 channels - this is a >>> limitation in the MIDI file format, not FluidSynth. You'll have to use >>> special API calls in order to make use of more than 16 channels. >>> >>> That said; XG level 2 and level 3 seems to support more than 16 channels. >>> Does anybody know if there is a MIDI file meta event that would switch >>> "group of MIDI channels for this track" or something? I haven't found >>> anything myself, but it would be very useful if it existed. >> >> >> Each group of 16 MIDI channels is usually known as a "MIDI port". >> There is a SMF meta-event to specify a specific port name for each >> track: >> >> http://home.roadrunner.com/~jgglatt/tech/midifile/port.htm > > > Aha, thanks. I also found this: > http://www.midi.org/techspecs/rp19.php > > Unfortunately it does not impose a very good standard for Device names :-( > > I had a quick look at timidity source as well, which seems to do something > similar for "FF 21 01 x" instead, probably as described here: > > http://www.omega-art.com/midi/mfiles.html#meta > > The code looked a little strange so I'm not completely sure this was it. > > // David > The "FF 21" (port prefix) meta-event is the old, long time ago deprecated, numeric version of the "new" Port Name meta-event. The "x" argument is replaced by a numeric value (range 0-127) representing a MIDI port ordinal, without any good standard for ordering ports, either. As this event has been lying around many years, there are some MIDI files in the wild carrying this one. I have a few myself. Regards, Pedro ___ fluid-dev mailing list fluid-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/fluid-dev
Re: [fluid-dev] Fluidsynth Channels
On 11/30/2011 12:28 PM, Pedro Lopez-Cabanillas wrote: On Wed, Nov 30, 2011 at 8:45 AM, David Henningsson wrote: On 11/29/2011 09:14 PM, Craig wrote: My question is, gleaning the fluidsynth source and docs it appears that fluidsynth can handle midi channels above the 0-15, given that information, how does a midi file format hand of a midi event with a standard note on ->144 + midi channel, message1, message2, and time stamp. If I increas the 144 + midi channel, I end up in 160 land which is a different midi event. I am a 50 year old man who write symphonies. I would love to have access to more that 16 channels. How does fluidsynth do this? Hi Craig and thanks for your interest in FluidSynth! The MIDI file format does not support more than 16 channels - this is a limitation in the MIDI file format, not FluidSynth. You'll have to use special API calls in order to make use of more than 16 channels. That said; XG level 2 and level 3 seems to support more than 16 channels. Does anybody know if there is a MIDI file meta event that would switch "group of MIDI channels for this track" or something? I haven't found anything myself, but it would be very useful if it existed. Each group of 16 MIDI channels is usually known as a "MIDI port". There is a SMF meta-event to specify a specific port name for each track: http://home.roadrunner.com/~jgglatt/tech/midifile/port.htm Aha, thanks. I also found this: http://www.midi.org/techspecs/rp19.php Unfortunately it does not impose a very good standard for Device names :-( I had a quick look at timidity source as well, which seems to do something similar for "FF 21 01 x" instead, probably as described here: http://www.omega-art.com/midi/mfiles.html#meta The code looked a little strange so I'm not completely sure this was it. // David ___ fluid-dev mailing list fluid-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/fluid-dev
Re: [fluid-dev] Fluidsynth Channels
On Wed, Nov 30, 2011 at 8:45 AM, David Henningsson wrote: > On 11/29/2011 09:14 PM, Craig wrote: >> >> My question is, gleaning the fluidsynth source and docs it appears that >> fluidsynth can handle midi channels above the 0-15, given that >> information, how does a midi file format hand of a midi event with a >> standard note on -> 144 + midi channel, message1, message2, and time >> stamp. If I increas the 144 + midi channel, I end up in 160 land which >> is a different midi event. >> >> I am a 50 year old man who write symphonies. I would love to have >> access to more that 16 channels. How does fluidsynth do this? > > > Hi Craig and thanks for your interest in FluidSynth! > > The MIDI file format does not support more than 16 channels - this is a > limitation in the MIDI file format, not FluidSynth. You'll have to use > special API calls in order to make use of more than 16 channels. > > That said; XG level 2 and level 3 seems to support more than 16 channels. > Does anybody know if there is a MIDI file meta event that would switch > "group of MIDI channels for this track" or something? I haven't found > anything myself, but it would be very useful if it existed. Each group of 16 MIDI channels is usually known as a "MIDI port". There is a SMF meta-event to specify a specific port name for each track: http://home.roadrunner.com/~jgglatt/tech/midifile/port.htm Regards, Pedro ___ fluid-dev mailing list fluid-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/fluid-dev
Re: [fluid-dev] Fluidsynth Channels
On 11/29/2011 09:14 PM, Craig wrote: My question is, gleaning the fluidsynth source and docs it appears that fluidsynth can handle midi channels above the 0-15, given that information, how does a midi file format hand of a midi event with a standard note on -> 144 + midi channel, message1, message2, and time stamp. If I increas the 144 + midi channel, I end up in 160 land which is a different midi event. I am a 50 year old man who write symphonies. I would love to have access to more that 16 channels. How does fluidsynth do this? Hi Craig and thanks for your interest in FluidSynth! The MIDI file format does not support more than 16 channels - this is a limitation in the MIDI file format, not FluidSynth. You'll have to use special API calls in order to make use of more than 16 channels. That said; XG level 2 and level 3 seems to support more than 16 channels. Does anybody know if there is a MIDI file meta event that would switch "group of MIDI channels for this track" or something? I haven't found anything myself, but it would be very useful if it existed. Also, please ask questions on the mailinglist when everyone can benefit from the answer. Thanks! // David ___ fluid-dev mailing list fluid-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/fluid-dev