• Hi @Gordon

    The following link has Ruby (sonic pi)code that takes a CSV Midi file as input and outputs CSV files for each Midi track as a Midi note number, note length, and velocity (amplitude).

    Playing Midi with Sonic Pi

    The conversion is a bit tricky as Midi CSV has column that contains a clock count ( Tempo cmds can alter the clock speed, followed by the Note On or Note off commands and the Velocity(Amplitude). A Note On with velocity zero is really a Note Off.
    Sonic Pi doesn't use a master clock just a note number and duration. Not a problem if there are no chords, but gets complicated when a Midi track contains chords, especially pyramid chords.

    Here is a sound using theses Midi translation techniques on a Sonic Pi platform:

    Widor Tocatta

    I'll give the waveform stop another try. I think you get an error message if you try to stop it before it finishes.

    As for synth or sound chips, Midi would be nice but I2C or SPIand Espruino would work as well.

    Adafruit has a bunch of Arduino Midi projects and kit as well.

    From the main Midi spec site, the Din plug goes to an optoisolator and some driver chips into a UART. My Midi Keyboard uses either Din or USB for connection. The USB driver shows a generic audio device driver. Some keyboards use Bluetooth as well. I intend to explore the HID requirements for this at some point. Of course more code to do the Midi in binary format would be needed. As a start, setup the HID for the Espruino USB, pair with the PC, then send some Midi phrases out the port and see if they show up in the Midi Editor program mentioned before. That could then expand into a button presses into the Espruino to send Midi canned commands ( a drum pad device)

About