The necessary programs used for Window users:
Once downloaded place all three in one folder for easy use. LMMS is the only of the bunch that needs to be formally installed. LoopMIDI and Hairless will just run from the folder.
A standard MIDI device uses a special MIDI connector and communicates in MIDI protocol, or language, with a digital audio workstation (DAW) like Garageband or LMMS. We are not using that connector and are instead using an Arduino and USB Cable. But utilizing some digital trickery our DAW of choice will see the Arduino MIDI Controller as a real MIDI device.
To do this two connections much be made. A USB to virtual MIDI cable and that virtual MIDI cable to our DAW in this case LMMS. Hairless is our USB to MIDI cable and LoopMIDI is the MIDI to DAW part. By using these two programs, a key pressed on our controller will travel into our computer via USB and into LMMS as a MIDI signal and then into notes on a piano.
The order of opening the programs is important in this process. The LMMS Software will not recognize the virtual cable if the cable isn't set up beforehand.
If at the end of this process nothing is working for you, close LMMS and restart the piano, make sure hairless is showing activity before moving onto LMMS.
Next to New Port-Name is a input box that says "loopMIDI Port", change this to your preferred MIDI controller name.
A custom name for the loopMIDI port
Press the '+' sign to the left to add your virtual MIDI cable to the list. This is all that needs to be done for LoopMIDI, but keep it open.
Our port added as a virtual cable
This does not require installation, find the Folder containing Hairless. Click the Hairless Application file. A Security window will pop up, Click Run.
A new Hairless window
Hairless can be left alone for now, we will come back to it later
Open LMMS (Only works if LMMS is opened last)
A new LMMS project
LMMS will open with a UNTITLED project, this is fine for now. On the left hand side is a vertical bar with icons. Select the Music note and it will open a menu called My samples. Double click on the instruments folder to expand it, either double click on the e_piano_accord01.ogg or drag it into the Song Editor window. This will create a new track, if you double clicked it will appear in the Beat + Bassline Editor window. Feel free to select the setting/gear on the premade tracks in the same window to delete it, we are only focusing on the piano one for now.
Select the piano track where it shows the filename (e_piano_accord01.ogg) this will open up a new window specifically for the track. The track window is separated into multiple tabs, under the general settings tab is a menu bar with PLUGIN, ENV/LFO, FUNC, FX and MIDI on it. Select MIDI and the window will change to the MIDI tab. Select the long button next to ENABLE MIDI INPUT, and it will light up green along with the channel and velocity sections. Hover your mouse over the Channel Box, the mouse should change to hand pointed. To increase or decrease the channel number you have to scroll up on your mouse (if you have a scroll wheel) or using two fingers on your mouse pad, scroll down. We want the Channel to be on number 2 because of how our code is written.
Where the piano instrument is
We now need to connect the LMMS to LoopMIDI. We can do this in two ways, either select the button in the MIDI tab that looks like a Piano in a grey box (not the one at the bottom of the window), or back in the window with the track and select the gear. In the drop down window select MIDI > INPUT> then your controller name. If you select the piano in the MIDI tab you simply select your Piano controller.
The piano settings window
Go back to Hairless window
In Hairless select the MIDI Out drop down menu and select your Piano controller.
My Hairless settings
Select the Serial port drop down menu and select the COM port your Arduino is plugged into.
The Connections are now complete the last thing we need to do is turn the Serial Bridge on, Check Serial<->MIDI Bridge box to turn it on. If it is already on, check and uncheck it to restart it. Make sure the Debug MIDI messages box is checked, this will show you the MIDI messages your arduino is sending.
Hairless doing it's magic!
Press some keys on your MIDI Keyboard, do you hear anything? is the LMMS software registering anything? Check out the Debug window in Hairless, is the proper information coming through?