Hi,
I'm attempting to build a midi based product. I will probably get someone to build the majority of it for me as I lack technical expertise but essentially I am wondering if it's possible to change midi channel assignments for groups of notes at a fast pace, essentially in real time. As an example, I would need updating of the channels of several non-consecutive notes every second.
Is this possible in MIDI 1.0? If not, will it be possible in 2.0?
Sorry if this is a silly question, I'm just scoping for my product. From my experience working with midi in Ableton with M4L, I would assume it's possible but I thought it would be worth asking. Maybe there are some issues?
Thanks
Oliver K
I'd say, yes, incl with MIDI 1.
BUT.
What do you mean by 'non-consecutive notes'?
There are both software and hardware solutions that will switch midi events from one channel to another, but these requite setting up, and the instructions will apply to everything that matches the specified parameters. The parameters could relate to other things as well as the existing channel, but at some point the switching will apply to everything that matches.
On what basis were you wanting to switch one note, but not another?
Geoff
Hi Geoff,
Basically I stated "non-consecutive notes" because, for example, in Ableton I know there is an option to set certain ranges of keys for different instruments. From memory I'm talking about instrument rack->chain list (setting the MIDI ranges for each instrument). Yes, I know this only sets the MIDI notes to a different instrument (while keeping the same channel), but this just gave me the impression that it might be a clunky process in MIDI 1.0 to set key ranges (or individual notes) to certain channels.
I am wondering now whether I will have to have a hardware approach rather than a software approach to achieve my product.... If it is a software approach (for a prototype, for example, so as to not require a controller with my own firmware+hardware installed) I'm guessing I would have to integrate my product (as VST in ableton, for example) by receiving all MIDI from a keyboard controller in one channel, then applying my channel designations and sending them to 2 other channels on different tracks (L and R)... I'm being very vague and it's probably difficult to understand what I'm trying to say...
I would rather not explain the entire basis of the planned product... but if you think there may still be a technicality in this type of function I can explain the product via direct message.
Last words,
If it is basically possible to write code that will designate some notes as channel one, and others as channel 2 in a similar way that the chain list works (again, for channels, not instruments), and these designations can be updated very quickly, I think it will run smoothly. As an unrelated example, I'm hoping there is no lag/delay in switching all C notes on a piano to channel 1, then once any of all the C notes are pressed, all D notes will be channel 2 (this is not an example of how my product will function, but it requires the midi channel to change immediately).
Sorry for the long post.
Thanks for your reply.
If there's anything else don't hesitate to mention. And sorry for being so vague..
Thanks,
Oliver Kulinski
[quotePost id=16264]I'd say, yes, incl with MIDI 1.
BUT.
What do you mean by 'non-consecutive notes'?
There are both software and hardware solutions that will switch midi events from one channel to another, but these requite setting up, and the instructions will apply to everything that matches the specified parameters. The parameters could relate to other things as well as the existing channel, but at some point the switching will apply to everything that matches.
On what basis were you wanting to switch one note, but not another?
Geoff[/quotePost]
PS
Could you link me to some of these software and hardware solutions that can switch channels from one to another. I'd just like to see what is possible..
Thanks again,
Oliver K
I have some old DOS software for 'filtering', but I guess you'll want something more modern.
I found these easily via Google.
Re software, the MIDI-OX system is mentioned often here, and that can do both filtering and mapping.
As for hardware, this system came up immed with Google, There is both Youtube videos, and lots of docs. Midi Solutions Event processor.
I'm sure there are other options for both.
The keywords are filter - where midi data is selected, and other data is rejected. and map (or mapping) where data is replaced (i.e. data assigned to Ch x is mapped to Ch y)
Geoff
First, a point of clarification, MIDI notes are only non-sequential when viewing them inside a MIDI file.
However, when they are being transmited over any interface they are transmitted serially.
MIDI Din, USB, Ethernet, etc. are all serial interfaces.
So the notes will be processed one at a time.
Yes, even a chord where the notes are all at the same delta time.
Filtering is not so simple.
If we want, as in your example, to send C to channel 1, then we have to be prepared to process middle C (note #60) and,
Note # 72 the C above, and note #48 the C below and, well, in total 8 x C notes in the range of a piano.
But, MIDI extends from note #0 to note #127, nearly 2 octaves both above and below the piano's range.
So for C we need, at least, assign note 12 and 24 and 36 and 48 and 60 and 72 and 84 and 96 and 108 to channel 1.
And that's just C!
JohnG.