I'm learning about MIDI, and understand how to send notes from the UNO. My question is...
If I plug in to a keyboard's MIDI IN, is it possible to tell the keyboard to play, say, the flute, or any particular instrument, rather than just the instrument the keyboard is currently set on?
...What I'm really wanting to know is: Could I be playing on the keyboard, perhaps the piano, and have someone with the Arduino sending notes to played in a different instrument?
Thanks.
It depends on your keyboard / synth... but pretty unlikely.
I have a nord Rack 2x which will allow 4 midi inputs and each can play a different preset. Each of those 4 also has a separate audio output. I'd never seen that before.
You can probably do a 'split keyboard' which means the lower half of the keys plays one instrument and the top half plays another. That would allow two people to play at once, but your key range is limited.
Hope that helps
Thanks,
So, with just an inexpensive keyboard that has MIDI IN, is it possible to play notes with the UNO (sending MIDI data), and then send some kind of MIDI data to change the instrument? I haven't seen anything that tells what bytes to send to tell it to play a particular instrument. So that I could play, say the piano, then with a button press or something, switch to an organ?
SouthernAtHeart:
Thanks,
So, with just an inexpensive keyboard that has MIDI IN, is it possible to play notes with the UNO (sending MIDI data), and then send some kind of MIDI data to change the instrument? I haven't seen anything that tells what bytes to send to tell it to play a particular instrument. So that I could play, say the piano, then with a button press or something, switch to an organ?
???
I may need to find a MIDI forum for this question... Or learn from trial & error as soon as my Sparkfun order arrives!
Thanks,
I have a really inexpensive Casio keyboard, one of the ones with like 100 different sounds, and you can select an instrument using Program change messages.
That would be the first thing I would try.
This midi library: Arduino Playground - MIDILibrary
Has a program change function: "sendProgramChange(byte ProgramNumber,byte Channel);"
Have a go with that.
Thanks!
Depending on the device you are going to use, yes, you can have 16 different instruments playing all at once, from different midi channels = sources.
Which device you will use to play the notes? Then I can say if its compatible or not. But most MIDI Devices will allow you to do multi-timbral, which is exactly what you want.
Wk
I'm making an Airharp,http://www.airharp.com/
Only mine will have a standard midi plug output. I have a basic keyboard, a yamaha PSR160, but it does have midi in. so I guess it will depend a lot on the keyboard. That's good to know about sending differrent 'program change' messages, I can experiment with that, and maybe get the Airharp to play different instruments. Also the different channels... Maybe I will be able to set my Airharp to a different channel, and then be able to play simultaneously, 1 instrument on the keyboard, and another kind of instrument thru the Airharp.
You need to check the user-manual for the PSR160 midi specifications. I couldn't find on google, but I didn't look that much.
In any event, you could use SparkFun's Music Shield: SparkFun Music Instrument Shield - DEV-10587 - SparkFun Electronics
The shield is also capable of playing several tones simultaneously (maximum polyphony of up to 31 sounds!).
Its very easy, select MIDI Channel 1, send program change 100, select MIDI Channel 2, send program change 45. (just trowing random numbers here) And now you have 2 channels playing different instruments. Most MIDI devices will take 0 to 127 for the program change.
Wk
Thanks,
I found the psr160 manual at Yamaha's site. Looks like it supports 1-100, for the different voices.
I guess by 'select channel' you mean from the Arduino side, with something like:
sendProgramChange(byte ProgramNumber,byte Channel);"
sendProgramChange(1, 1);"
sendProgramChange(45, 2);"
...I can choose which channel to play on with the Airharp, but I wonder about someone else playing on the keyboard itself? Is that like the default channel 1? Or is it maybe not a channel at all?
I guess I should wait until I get my Ardno parts, i'm just anxious to learn more about how this all works...
Ok, open the manual again, you will see on page 52, "How Can MIDI be used" and on the right, the list of channels and what they will do.
• On the PSR-160, the following channels
(eight total) are enabled for MIDI reception:
1, 2, 3, 4, 5, 6, 7, 10. The MIDI transmit
channels are ?xed to the following data:
Ch. 1 : Keyboard, harmony
Ch. 2 : Bass
Ch. 3 : Chord
Ch. 4 - 7 : Other
Ch. 10 : Rhythm
So there you go, all you need to know.
Then on page 55 you get the list of presets you can select via MIDI, not from the panel itself.
Wk
corrected, nice one!
Thanks, ...I've been looking at that. Ch. 3 - chords. What does that mean. Can you send a midi command to play a whole chord? I've been looking around for a good tutorial on this. Can anyone point me to a good source. I'm new to midi.