10. References and where to go next
Show and tell
Nothing needs to be finished! Let's spend the last 10 minutes or so sharing what we built.
If it broke in the last five minutes, don't worry about it. Put the Explorer on screen and show what your device sends.
Take it home
- The helpers, starters, Explorer, ports and demos are in the workshop repo.
- The helpers are plain sketch tabs built on
javax.sound.midi. CopyMidiCore.pdeand the device's tab into any sketch and they work the same way. The p5 versions are one script tag. - The PipSqueaks are from useMidi. Thanks to Masson for the hardware. Get one and set it up at usemidi.com/configure.
Troubleshooting
- Nothing on screen? Open the Explorer and check the device shows up and sends something when you touch it.
- The helper doesn't find your device? It connects by a substring of the device name. The Explorer prints the exact name.
- Plugged the device in after pressing Run? Java's MIDI on macOS won't see it. Stop and run again.
- A Python sketch opens in Java mode and crashes the editor? It is missing a
sketch.propertiesfile withmode=Pythonandmode.id=jycessing.mode.PythonMode. Every sketch in this repo has one; add it to your own. InaccessibleObjectExceptionfrom a Python sketch that importsjavax.sound.midiitself? Putfrom org.python.core import OptionsandOptions.respectJavaAccessibility = Truebefore the import. The helpers already do.
Documentation
javax.sound.midi (Java 17)
The MIDI package inside every Processing. MidiSystem, ShortMessage and Receiver are the three
classes the helpers are built from.
Processing reference Everything else in the sketches.
Python Mode for Processing The same, for Python Mode.
Summary of MIDI 1.0 Messages (MIDI Association) Every status byte on one page. The MIDI 1.0 specification is the long version.
Dip Your Toes Into Hardware With WebMIDI (CSS-Tricks)
George's write-up of Web MIDI from the first requestMIDIAccess call.
useMidi Masson's PipSqueaks and the configurator that sets what they send.
Web MIDI API (W3C) and MDN: MIDIAccess What the p5 sketches use.
Launchpad Mini MK3 Programmer's Reference Pad numbering, the palette, the SysEx commands for RGB and text.
Midi Fighter Classic firmware What the device does with an incoming note.
Circuit Playground MIDI multi-tool George's firmware for the Circuit Playgrounds. Flash it from the Arduino IDE to change what a mode sends.
CircuitPython usb_midi How the Trinkeys became MIDI devices in forty lines.
Adafruit Circuit Playground library The sensors and what they return.
Processing Community Day The people who made today happen.