John Zvonek - 2013-10-22

Code Versions

The zip file available for download contains two versions of code that can be uploaded to your Arduino Uno.

Zvonek_Apropos_1F_v17_Basic_final.ino

Plays one note at a time (1F = 1 Finger). If you are playing a note with one finger and add another finger, the newest note begins and the old one ends. The Arduino/code respond very quickly which allows for a 'finger-tapping' effect if played fast. If you are pressing on the sensing strip with two fingers, then add a third finger between the original two, nothing happens since the circuit cannot detect the third finger.

Zvonek_Apropos_2F_v2_Basic.ino

Plays one or two notes at a time. Similar to the 1F code version above, if you have more than two fingers on the sensing strip, only the highest and lowest are recognized.

More Features...

Since creating the package available for download, I have added a couple new features to my personal MIDI controller:

  • Octave changer: A red button, when pressed, temporarily increases the octave of the note being played by one; a black button temporarily reduces the octave of the note by one.

  • Tune rate control: The current available code automatically tunes the note being played to a discrete note on a musical scale. The rate of tuning varies and is based on how fast you are changing notes and how close you are to a discrete note. In other words, if you are sliding your finger quickly on the sensing strip, there is virtually no tuning so the pitch 'slides'. If you are slowly moving your finger and are close to a discrete note, the pitch is quickly tuned, if you are far from a discrete note, tuning occurs more slowly. A knob (rheostat) can be added to scale the tuning rate from off (never tune the note) to instantaneously (like sliding across piano keys).

Please let me know if you are interested in these features and I can make the code available as well.

Additional Notes

  • As with any Arduino code, users can easily upload/swap different versions of code, so try each one and see what you like better.

  • If you modify the code and have good/interesting results, please let me know!

  • If you have ideas for improvements, features, or feedback, please tell me. If you would like to contribute, even better! Share your code, circuit diagrams, or documentation for the benefit of all!