[Top][All Lists]

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

Re: [fluid-dev] Midi Channel Limitations

From: David Henningsson
Subject: Re: [fluid-dev] Midi Channel Limitations
Date: Tue, 09 Sep 2014 11:02:04 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0

On 2014-09-09 10:12, BCA @ Free-Artists wrote:
Hi David,

"The fluid_midi_event_t struct, if you use that, seems to have an
undocumented limitation at 256 midi channels though (!), but nobody has
complained so far."

... that is an interesting thing. Can you tell me more, please, about
the relationship of "number of channels" and "polyphony", please?
Sometimes I have the aural impression, a lesser number of channels
results a bigger polyphony cutout - but maybe that is an illusion?

It's probably an illusion, if not, it's a bug :-) The number of channels and the number of voices (i e polyphony) are not directly related.

Many thanks
Bernd Casper

Am 09.09.2014 08:17, schrieb David Henningsson:

On 2014-09-09 06:30, Peter Hanlon wrote:

I am Peter from Canberra Australia. I am trying to redevelop a
Schober Consolette II Organ that I built in 1970, using modern
electronics and synthesizer software.  For the hardware, I have used
Arduino Uno and four MIDI DIN R5 boards. My Arduino software then
delivers  printable hex records of 19 bytes to an Apple Mac OSX
application via a USB port. The 19 bytes consist of a 1-byte bus
indicator, 2-bytes volume shoe, and then 16 bytes of digital
switches. The bus is upper or lower or pedal keyboard or
stops/balance/vibrato/percussion kit. A record is sent when something
on the relevant 64-bit bus changes.

I have the OSX application including the serial port access and
fluid_synth calls running to the point where a key press on the Organ
produces a vaguely reasonable note through the OSX speaker.

What I need is comment on my design for the fluid_synth bit, which I
will try to summarise as follows:-

The organ has 23 stops allocated to pedals, swell and great manuals
with one stop switching swell to great. It also has a dozen
instruments on a rotary switch comprising a percussion kit. My
current design essentially has each stop allocated to its own
channel, and one channel allocated to the percussion kit.

For the stops, the channel is attached to a particular sound font
using sound font id, bank and program, statically during the synth

For the ‘percussion’ kit, the channel is initially similarly
attached, but is reviewed when the percussion switch changes.

So I have had to extend ‘midi-channels’ to 32 from default 16. And I
now wonder if I need some notion of ‘midi-routing’  where I might be
responsible for coalescing these potential 32 down to something
amenable to the MIDI limitations, or sound card or whatever, or
hopefully some God within fluid_synth looks after it all for me?

The Arduino code is in pretty reasonable shape, and fluid_synth on an
Intel Galileo could be an interesting activity. I imagine that sound
font sizes and font access might be issues.

Hi Peter,

You might get some input on the more organ near pieces by the vibrant
jOrgan community, who often use fluidsynth as sound backend.

Anyway, if you use more than 16 MIDI channels, there's nothing to
worry about as long as you use the fluid_synth_note/cc/etc API calls
directly. All of them accept a midi channel >= 16 just fine.

The fluid_midi_event_t struct, if you use that, seems to have an
undocumented limitation at 256 midi channels though (!), but nobody
has complained so far.

I'm more worried about CPU consumption on the Intel Galileo when you
make that final magnificent chord on all manuals, pedals with all
knobs active. Would be interesting to know what polyphony limit you
end up with on that machine.

// David

fluid-dev mailing list

fluid-dev mailing list

reply via email to

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