Author |
Topic: transposing from midi control #80/81? (solved) (Read 3134 times) |
|
pgill
New Member

 MIDI-OX Rules!
Posts: 5
|
 |
transposing from midi control #80/81? (solved)
« on: Mar 30th, 2011, 5:33am » |
Quote Modify
|
Hi, never used midiox so don't know if this is relavent or the right place? I am designing a windcontroller for disabled children with limited use of their hand/s, so need to have a full octave played with one hand. I have a WX5 and it has 2 keys that send control #80 and #81 either of which can be used with the normal left hand keys (as a bar). When pressed their values are 127 and depressed 000. If it was possible for control #80 or #81 to transpose the incoming midi notes on the fly (only for the period #80 or #81 was pressed), before they went to the soft synth, I could set a transpose interval of 7 semitones and the full octave could be played with one hand. Now I'm just fishing for an answer, if this is the wrong place or if its not possible please let me know. Any help appeciated. Regards Pete.
|
« Last Edit: Apr 3rd, 2011, 11:38am by pgill » |
IP Logged |
|
|
|
Peter L Jones
Expert
    

Hit it
Gender: 
Posts: 978
|
 |
Re: transposing from midi control #80/81?
« Reply #1 on: Mar 30th, 2011, 3:14pm » |
Quote Modify
|
This is the right place. It's not a simple request, unfortunately. I'll explain why briefly, then try to offer a possible solution. MIDI OX processes one MIDI event at a time. That is, it will receive a Note On, for example, and process that in isolation. It has no "memory" of prior events (and certainly no foresight of events about to happen). So if pressing a key sends CC#80=127, then you can have MIDI OX respond to that with a specific action - but it can't then "remember" that when the next event arrives. However... and this is where it gets complicated... MIDI OX supports two kinds of mapping - "normal" data maps and "patch" maps. The latter allow a Program Change message to be used to select an alternate data mapping. So, you could use PC#1 to select a pitch shifting data map and PC#2 to select a data map that did no pitch shifting. "But," you may be thinking, "I don't have program change events, I have continuous controller events!" So, you need a data map from the CC event to the PC event. It's not as simple as that, unfortunately. MIDI OX runs events through its maps in a particular order. The first map it runs through is the Patch Map, selecting the appropriate data map. The second map is the Data Map. Of course, until you've sent your CC through a data map, it's not going to have any effect in selecting a Patch Map. And once it's been through the data map, it's missed the opportunity! So you need to send the mapped message back around through MIDI OX again (you can use the same instance if you're careful not to create a loop).
|
|
IP Logged |
"...Playing fast around the drums is one thing. But to play with people for others, to listen to, that's something else. That's a whole other world." -- Tony Williams
|
|
|
pgill
New Member

 MIDI-OX Rules!
Posts: 5
|
 |
Re: transposing from midi control #80/81?
« Reply #2 on: Mar 30th, 2011, 11:06pm » |
Quote Modify
|
on Mar 30th, 2011, 3:14pm, Peter L Jones wrote:This is the right place. It's not a simple request, unfortunately. I'll explain why briefly, then try to offer a possible solution. MIDI OX processes one MIDI event at a time. That is, it will receive a Note On, for example, and process that in isolation. It has no "memory" of prior events (and certainly no foresight of events about to happen). So if pressing a key sends CC#80=127, then you can have MIDI OX respond to that with a specific action - but it can't then "remember" that when the next event arrives. |
| Thank you for taking the time. I think I'm following most of what you say, but without geting ahead of myself, are you saying each individual incoming event has to be programmed every time it is sent? So I couldn't just have (say) every time #80 sends Midiox a message of 127 a particular event happens and every time #80 sends 000 a different event happens? Regards Pete.
|
|
IP Logged |
|
|
|
Peter L Jones
Expert
    

Hit it
Gender: 
Posts: 978
|
 |
Re: transposing from midi control #80/81?
« Reply #3 on: Mar 31st, 2011, 7:18am » |
Quote Modify
|
MIDI OX will do what ever you tell it to do for a set of matching criteria, every time it sees an event that matches. What it won't do is process more than one event at a time. Each MIDI event happens separately and MIDI OX treats them separately.
|
« Last Edit: Mar 31st, 2011, 7:20am by Peter L Jones » |
IP Logged |
"...Playing fast around the drums is one thing. But to play with people for others, to listen to, that's something else. That's a whole other world." -- Tony Williams
|
|
|
pgill
New Member

 MIDI-OX Rules!
Posts: 5
|
 |
Re: transposing from midi control #80/81?
« Reply #4 on: Mar 31st, 2011, 4:37pm » |
Quote Modify
|
Thanks Peter for your time, this looks complicated but I thought of another way. I don't know whether this is the right section or software, but if it is, whether I should start a new thread? As I said I need to make this possiblble for some disabled kids. I need to make G A B C with the hit of a button play D E F# G. Would it be possible (not too diificult) to remap the keys themselves? If so I could have G A B C as normal, G A B C + 1 octave play D E F# G. This would mean a button/bar could activate the octave key. So in effect the kids could play a full scale with the octave key allowing 2 notes with 1 fingering. If this was possible/simple, those with more agilty could then, obviously, be able to use the 7 octave keys/buttons of the instrument to play 3 1/2 octaves which are operated by the thumb on the same hand. Regards Pete.
|
« Last Edit: Mar 31st, 2011, 4:44pm by pgill » |
IP Logged |
|
|
|
Peter L Jones
Expert
    

Hit it
Gender: 
Posts: 978
|
 |
Re: transposing from midi control #80/81?
« Reply #5 on: Apr 1st, 2011, 2:37am » |
Quote Modify
|
Just so I understand... You're saying the WX5 has an octave transpose key that could be pressed to shift all keys up an octave. You want G - F# without the octave shift to play normally. With the octave shift, you want the notes shifted only 6 semi-tones, rather than 12. Yes, that's a lot easier. You would simply do a data mapping from the upper octave down by six semitones, so that G played C#.
|
|
IP Logged |
"...Playing fast around the drums is one thing. But to play with people for others, to listen to, that's something else. That's a whole other world." -- Tony Williams
|
|
|
pgill
New Member

 MIDI-OX Rules!
Posts: 5
|
 |
Re: transposing from midi control #80/81?
« Reply #6 on: Apr 1st, 2011, 11:14am » |
Quote Modify
|
on Apr 1st, 2011, 2:37am, Peter L Jones wrote:Just so I understand... You're saying the WX5 has an octave transpose key that could be pressed to shift all keys up an octave. You want G - F# without the octave shift to play normally. With the octave shift, you want the notes shifted only 6 semi-tones, rather than 12. Yes, that's a lot easier. You would simply do a data mapping from the upper octave down by six semitones, so that G played C#. |
| Thanks, yes you got the idea , great I'll do some swatting on data mapping, as I don't mind if its not a dead end. Regards Pete. Update,Thank you again Peter for your kind help , I have now downloaded Midi ox and looked at the data mapping, and this indeed looks like the solution. Further it looks quite within my understanding to get this working. Midio ox looks like a powerful tool for what I want to achieve. Regards Pete.
|
« Last Edit: Apr 1st, 2011, 12:29pm by pgill » |
IP Logged |
|
|
|
pgill
New Member

 MIDI-OX Rules!
Posts: 5
|
 |
Re: transposing from midi control #80/81? (solved)
« Reply #7 on: Apr 3rd, 2011, 11:44am » |
Quote Modify
|
Just let you know, after Peters help I have it working flawlessly . Built a proto type with two side bars for the windcontroller, and with one hand you can play a full octave, with the second, (as most have some form of limb), up to two octaves and one hand and the octave keys ( the thumb of the playing hand operates the octave keys) 4 octaves Regards Pete.
|
|
IP Logged |
|
|
|
|