Close

Keypad as first start before bluetooth connection

A project log for Cheap Expandable Floor Piano

Fully functional floor piano, with midi in/out, leds and training mode.

fredericFrederic 10/14/2018 at 07:060 Comments

Hi,

I added a keypad on the master. allowing to enter a number for octave height and to change tone played by each note.

Hardware : One more arduino inserted on the serial bus between the master and the first piano keyboard. This arduino has a keypad and a 4digit LED attached to it, but the end goal is to also add a bluetooth module that would be driven by an app in the end.

Software : I uploaded the ino file that control the keypad. I already prepared the Master.ino file, so no update on this side. You have 2 command, A and B, A will change tone, B will change pitch.

How it works : 

Instrument : 

Press 'A'  and type the number of the instrument in General Midi code (01 for grand piano, or 67 if you want a sax to play pink panter for example). Then touch a note on the piano. then press '#'. After that, all notes below the one touched will use the instrument you choosed. 

You can repeat the process as many time as you want, you can basically have one instrument per touch if you want...

You just need to start by lowest note as all subsequent will be changed by a new command.

Pitch:

Press 'B', then the number of the octave you want to use. then touch a note, then '#' and all notes below will be changed according to your modification.

In Master, there is a table for each note fixing its pitch and its instrument. At initialization, the first octave number is computed depending on the number of octaves found attached (for exemple, with 4 octaves, the first note will be a "C3". 

Thanks to this method, you can change it even in the middle of and octave: You can have the first octave starts on "C2", then on the second octave, you can keep C3 & D3, then change to E4 depending on your needs.

You can also have multiple players that will play different instruments on different tones. 

As general Midi also allow drums, you can even define some drums...

I started to work on the version 2, I will take more pictures, will try to explain more the different parts of the build and to add more pictures. 

The other goal is to have Master driven with a RasPI instead of the arduino to allow for it to play a midi file, and display keys that should be played at the same time (tutor mode).

With my colleague, I also plan to create better PCB to remove plenty of wires. 

Expect new posts along the way.

Discussions