MIDI_CAN - We're Connected
21 Apr 2020 - Jake Sherwood
MIDI_CAN - we’re connected
MIDI_CAN - we’re connected
This week we made a good amount of progress.
Updates to network, sensors, calibration, fab, and music.
We successfully tested sending MIDI signals across the internet. Noah made huge progress on this. Getting us almost completely wrapped on the networking end.
We both got set up running Nodejs servers on our laptops (could easily be on a pi or other computer). The node servers will do the heavy lifting of data transfer and decoding. Allowing us to lighten some of the computational load on the Arduinos.
Now we just need to incorporate how the various networking data elements (IP, HOPS, PORT, trace route, etc) will affect the local MIDI environment.
And also figure out / if we want to try to keep things in-sync between our two setups.
Network Test - things get a little crazy
I worked on refining our sensors and set up a series of test, to test capacitance and insulation with the sensors on the can.
Verdict: INSULATION IS A MUST.
The sensors on the can without any insulation were, as expected, triggered erratically just by grabbing the can.
We tested no insulation, foil prototype sensor on foam backing with and without tape covering, and copper conductive tape on foam backing.
Capacitive Sensor & Insulation Tests
Copper tape over foam worked great and greatly reduced the erratic behavior. The rest can be handled in the code. E.g. don’t send MIDI cmds unless > threshold.
We still have a few more materials to test, 24ga 1” copper strip material should be here Thursday. And we’re contemplating plasti-diping the whole can. Plastidip should be here Friday.
The foam and the copper tape feel good and work pretty well so we may just stick with that.
I worked out better calibration handling. It will now run through a calibration sequence at the beginning of the program. Allowing us to set min and max values per sensor and use them throughout.
This actually took quite a bit of time and I’m pretty pleased with how it turned out. It’s been integrated into our main midi_can sketch but here is the calibration code by itself. It may come in handy for others.
We’re getting closer to the final idea, placement, and look and feel we want for the MIDI_CAN.
I had been mostly in prototyping mode. Wanting to get the sensors on the can and tested, per the great advice by Ben. So I quickly roughed up my can with some sensors and insulation.
Planning to redo when we finalize some more decisions and get some more materials.
My MIDI_CAN Prototype.
I had sourced most of the materials so far, so Noah and I set up an exchange so he could start building his can.
Materials for Noah:
Noah built off what I had and created some really nice time-lapses and a can much closer to what the final product will be.
Noah building a MIDI_CAN timelapse.
Still to do on fab:
1) add OLED screen
2) add encoder
3) add mode selection capacitive button to the lid of the can
4) figure out housing of components inside the can
5) finalize sensor and insulation materials
A little more movement on what direction we want to take here.
I did some research on making beats in Logic, and have a simple out of the box beat we have been playing over.
The plan is to have our Logic file set up with that ready to loop and at the beginning of the sessions we will send a MIDI cmd to start that track.
Then we plan to have some exploration keys/inputs, which will be the capacitive slides and buttons we have been testing with. The capacitive slides allow us to play a variety of notes on a certain channel determined by the capacitance reading. These creates some really interesting sounds. The capacitive buttons currently work with a potentiometer allowing us to create similar affects but a bit more controlled linearly.
Those are great but we both feel like we need to have a way to plan an actual scale or scale notes. So we’re discussing how to make that happen.
The beats that I have been finding have been feeling somewhat hip-hop’ish and I researched what scales work best over hip-hop beats. According to the interwabs most current / recent hip-hop all use minor scales, but all the old classics use major scales.
So we’re leaning towards adding a way to play or iterate through a major scale. Which may or may not be linear.
Capacitive Sensors - Multi Channel Test
Here is a video of me making some sounds over a beat.
Capacitive Sensors - Music first attempt
Current MIDI_CAN_CAP code including calibration functions.
NEW To Do
1) Add OLED screen & code
2) Add encoder & code
3) Add mode selection capacitive button to the lid of the can & code
4) Figure out housing of components inside the can
5) Finalize sensor and insulation materials
6) Figure synchronization
7) Figure out controlling ADSR
OLD To Do
1) Figure out what MIDI cmd to use to turn off all sounds on a specific channel
Figure out what makes the quantum bass software synth loop, so we can control it This is happing based on combination of ADSR settings
Figure out if we can do trace-route Doing on computer with Nodejs server
Continue working on capacitive inputs Still need to test lid sensor and new copper material
5) Figure out how to adjust the various MIDI control values (ADSR)
6) Figure out what we’re actually going to play
Decide what exactly to send over UDP
Figure out how we hear each others music We’re going to send each other various channels
Finalize components mostly done here
11) Make music