Re: [fluid-dev] Fluidsynth Channels

2011-12-01 Thread David Henningsson

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

2011-11-30 Thread Aere Greenway
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

2011-11-30 Thread Pedro Lopez-Cabanillas
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

2011-11-30 Thread David Henningsson

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

2011-11-30 Thread Pedro Lopez-Cabanillas
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

2011-11-29 Thread David Henningsson

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