[Top][All Lists]

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

Re: [fluid-dev] Midi Channel Limitations

From: BCA @ Free-Artists
Subject: Re: [fluid-dev] Midi Channel Limitations
Date: Tue, 09 Sep 2014 10:12:08 +0200
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0

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?

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 initialization.

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

reply via email to

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