Introduction: Touch Sensitive Interactive Music Instrument DIY / Windows Version | for Windows XP Only
“Sensor Retouch” touch sensitive interactive instrument
play water, fruit and conductive surfaces likes a virtual instrument by your touch.
All you need is Arduino and few upgraded touch sensitive sensors, i’ll teach you how to put together everything and let start playing with your new interactive instrument ! A project by Giuseppe Sicurella 2015 Dharma Makers / Creative Common Attribution - NonCommercial - No Derivates 4.0 Based on a work of Giuseppe Sicurella 2015
How Does it Works
At the beginning of this project i’ve figured out a sensor sending MIDI NOTES thru Arduino USB playing samples like a virtual instrument. You need few tools i show you how to create Sensor Retouch and now to play music many conductive surfaces:
Tech Req for this project
- Arduino UNO R3
- Touch Sensitive Sensors upgraded
- MIDI Protocol -
- Laptop
4 elements combined together with the IDE CODE i’ve written allows to play sound from almost Everything around you like a Virtual Instrument by your touch.
Table of contents
- Assembly the Touch Sensor in 4 Moves
- Introduction
- Download software
- Software installation
- ReTouch configuration
- Technical specifications
- Troubleshooting
- How To Use Sensor ReTouch
- Sensor Retouch Water PIANO
- Sensor Retouch Veggie HARP
- Videos / Demo / Performance
Step 1: What Is a Touch Sensor
What is a Touch Sensor, is an electronic component able to detect touch, they work like a switch. I've figured out a tactile sensor sending Midi notes thru Arduino USB playing samples and music like a virtual instrument . For this project you need to make 6 touch sensors i’ll teach you how to do that.
Step 2: Things Required
For this project, you need few electronics, and a couple tools.
Tools
- A Tin welder
- B Copper wire (black&red type 3mm or 4 mm)
- C Tin Soldering Wire
- D Pin Strip
- E Alligator clips x6F 1 MΩ ohm Resistor x6
- G Heat shrink tube (5mm or 6mm)
Materials
- H Arduino UNO R3 or other models
- I Personal computer or Laptop / Software / IDE CODE
- Adicional USB Cable
Step 3: Assembly Touch Sensors in 4 Moves
Now weld together few components in order to assembly the Touch sensor using the tin welder
- first step weld together a single Black wire to the alligator clip.
- At the bottom of the Black wire weld together the Red wire and the 1M ohm resistor and pay attention to weld them together in a single point of the 1M ohm resistor as picture show.
- At the bottom of 1M ohm resistor weld a piece of Black wire.
- Once it’s done you need to soldering at the end of the red wire a tip of the pin strip and leave without any pin or soldering the black wire.
Basically the Black wire is the negative pole of the touch sensor and you have to connect it to the Ground PINof Arduino , the Red wire is the Positive Pole of the sensor and you have to connect it to the Analog INPUT PIN of Arduino .
Step 4: Your First Touch Sensor
Now if you followed the instruction the Touch Sensor is ready and it should look like this as the Picture number 1. After you finish to weld together all components cover all the welded points with pieces of Heat shrink tube as the picture number 2 shows, in order to keep electrical contacts safe.
You can use different color wires for each sensor not to confuse you, pay attention to the size of each sensor I recommend you to use 2 meter long wire for each sensor in order to connect the sensor wherever you want far form the Arduino source. Remind about the wire size if is to short you can’t connect the sensor wherever you want, 2 meters is the ideal length .
Step 5: Before to Connect Touch Sensor to Sensor ReTouch 1
Last step before to connect all your sensors to Arduino is welding together all negative poles, do that following next step .
- First thing cut a piece of black wire (B) and get off a tip taken by the Tin Strip (D) as you see in the picture 1,
- then weld together the piece of copper wire (B) with the iron tip (D) 2 shown
- then cover all the welded points with pieces of Heat shrink tube
Step 6: Before to Connect Touch Sensor to Sensor ReTouch 2
- Now you got all the touch sensor negative poles and the piece of black wire with the tip welded at the bottom previously done as figure 1 shown.
- Follow next passage shown in the picture number 2 and tangle all the negative poles together, once it’s done tangle and weld together all the negative pole with the piece of wire previously assembled as picture 3 show.
- Then cover all the welded points with pieces of Heat shrink tube, now Touch Sensors are ready to connect to “Sensor Retouch” Arduino Board.
Step 7: Connect to Arduino
It’s time to connect Touch Sensors to Arduino, following the scheme here you got 6 touch sensor from 1 to 6, they have positive and negative poles as you seen in the picture, they actually have 6 independents +positive poles and a single one -negative result by welding up together all the negative poles previously, if you remind.
Step 8: Arduino I/O Connections Diagram
How to connect Touch Sensors to Arduino Board. It’s super easy
follow the instructions as the picture shown and connect like this:
POSITIVE POLES
- Sensor 1 To ARDUINO ANALOG INPUT 0
- Sensor 2 To ARDUINO ANALOG INPUT 1
- Sensor 3 To ARDUINO ANALOG INPUT 2
- Sensor 4 To ARDUINO ANALOG INPUT 3
- Sensor 5 To ARDUINO ANALOG INPUT 4
- Sensor 6 To ARDUINO ANALOG INPUT 5
NEGATIVE POLES
- Connect All the NEGATIVE POLES to the Arduino GROUND
Step 9: Final Step Assembly / Print the Enclosure
If you want to move the Sensor Retouch and bring it with you wherever you want you need a case containing Arduino board and Touch Sensors. That’s why i recommend you to 3D Printing a case for the whole sensors and Arduino board, in this way you’ll be able to bring Sensor Retouch wherever you want and keep it safe.
I 3D printed different case colors as you see in the picture if you need a case for your own Sensor ReTouch i give you few links for the Arduino enclosure you can find freeware and downloadable on Thingiverse.com
Links for Arduino UNO case on Thingiverse.com
Choose one and 3D print your own
Step 10: First Look on Sensor ReTouch
Once it’s done you are ready to put Arduino board and Touch Sensors inside the case you’ve 3D printed previously and it should look like this as the Picture.
Now your Sensor ReTouch is portable and it’s ready to come with you wherever you want and have fun. Be ready for the next Step i’ll teach you how to program Arduino board with the IDE code i written, do this operation in order to switch on each Touch Sensor and let them produce a MIDI Impulse each time you touch them.
Step 11: Download Software Components
INTRODUCTION - User Guide Sensor ReTouch for Apple Windows
This user guide will help you to configure Sensor ReTouch to your computer and have fun. Pay attention the following guide is the Sensor ReTouch Calibration and audio setting guide Windows version.
Global view
In the following configuration process all you need is to install 3 software all of them are downloadable on internet (freeware) we will provide you the links to download all them out!!
Download Necessary Software for Sensor ReTouch Here:
- Arduino IDE latest (necessary software to program Arduino Sensor ReTouch board)
- Midi library and Capacitive Sensor library (two additional libraries for Arduino software)
- Hairless MIDI <-> Serial bridge (this software is able to convert serial data into Midi data)
- Audio engine, basically any music production/maker software or VST (virtual instrument) able to receive Midi data, if you got one already installed on your computer you can use that or you can choose to download one of the hundreds available on internet ( freeware). Check on ‘software recommended list’ below.
Recommended Audio engine software for Sensor ReTouch
- Apple Logic
- Ableton Live
- Fruity Loops
- Audiomulch
- Steinberg Cubase
You are free to use any other music production/maker software , VST or Plug ins able to receive MIDI INPUT, Sensor ReTouch works perfectly with any music production/maker software receiving MIDI INPUT data.
Recommended VST:
Sensor ReTouch works with any Virtual Instruments VST capable to receive MIDI INPUT DATA here few examples
- Native instrument FM8
- Native instrument BATTERY
- Native instrument KONTAKT
- Native instrument AKOUSTIK PIANO
Notice; the choice of the music production/maker software or VST (virtual instrument) you would like to use as ‘Audio engine’ for Sensor ReTouch it’s up to you, you can use any Sound Emulator software, (VST) or music production/maker software able to receive MIDI INPUT data.
Download necessary software
First thing download all the necessary software check out the list you can find on the Top ↑↑
About the Audio Engine software if you do not have one of that on your computer i recommend you to download one of the hundreds available on the internet ( freeware). Check on TOP list on ‘software/VST recommended list’
Step 12: Install Arduino IDE / Include Library
Install now Arduino IDE is the software able to configure the Arduino board in a way to turn ON the whole sensors KIT and make work them every time you touch any conductive surfaces.
- Double click on “Arduino 1.0.6.zip” when you notice the application Arduino just drag and drop this inside Application folder of your computer. Then connect Sensor ReTouch to your computer via USB.
- Now double click on Arduino icon to launch the application. Once you open the software go on the TOP bar and select the tab ‘ Tools ‘ to open a little menu, scroll down this menu till you reach “Arduino model” in order to select the Arduino Board model, then you must to click on ‘Arduino Uno’ OR which is your Arduino BOARD model. (select the Arduino Board model )
Tools > Arduino model > select Arduino UNO
- Now go again on the TOP bar and select “Tools” , scroll down this menu till you reach “Serial Port” in order to select the right serial port, then you must to click on > /dev/cu.usbmodem3d11
- Ok now minimize Arduino window and go ahead
Including Libraries
Now it’s time to include necessary libraries to operate with Sensor ReTouch
MIDI library and Capacitive Sensor library Go ahead this way:
- First thing double click on “Arduino-libraries-CapacitiveSensor.zip” and “Arduino_MIDI_Library_v4.2.zip” previously downloaded ,in order to UNZIP both the archives.
- Now open up Arduino window you had previously minimized, look on the top bar and select the Tab “Sketch“ scroll down with the mouse till you reach the voice Include Library then select the voice Add Library
Sketch > Include Library > Add Library
- Once you selected Add Library you will notice a new window that allows you to add the libraries searching for the position inside your computer, just select and add the Capacitive Sensor library and then click on Choose, and make the same thing again in order to include also “MIDI Library” and you’ve DONE.
Step 13: Arduino Coding
Now it’s time to upload the IDE code i’ve written on Arduino Board
Here is the Code just Copy and Paste on your Arduino IDE software and press LOAD button in order to Upload the code inside the Board. Pay attention this is the Sensor Calibration code i’ve written Windows Version , if you are working on Apple OSX i leave you the IDE Code for, Check out the Sensor Retouch OSX Version in my Other Instructable https://www.instructables.com/id/Sensor-Retouch-Touch-Sensitive-Interactive-Music-I/
If Look the sketch i left Capacitive Sensor library added as first, this if later you would like to add another Sensor in order to play with 7 touch sensors, i'll give you the code to program capacitive sensor if you ask to me.
/* Sensor ReTouch interactive Touch Sensitive Instrument By Giuseppe Sicurella Dharma Makers www.dharmadigilab.com 2014 Creative Common Attribution - NonCommercial- NoDerivs 4.0 Based on a work of www.dharmadigilab.com */
<p>#include <CapacitiveSensor.h></p><p>#include <MIDI.h></p><p>MIDI_CREATE_DEFAULT_INSTANCE();</p><p>const int sensorPin1 = A0;</p><p>int sensorValue1 = 0;</p><p>int threshold1 = 100;</p><p>const int sensorPin2 = A1;</p><p>int sensorValue2 = 0;</p><p>int threshold2 = 100;</p><p>const int sensorPin3 = A2;</p><p>int sensorValue3 = 0;</p><p>int threshold3 = 100;</p><p>const int sensorPin4 = A3;</p><p>int sensorValue4 = 0;</p><p>int threshold4 = 100;</p><p>const int sensorPin5 = A4;</p><p>int sensorValue5 = 0;</p><p>int threshold5 = 100;</p><p>const int sensorPin6 = A5;</p><p>int sensorValue6 = 0;</p><p>int threshold6 = 100;</p><p>int note1 = 60;</p><p>int note2 = 62;</p><p>int note3 = 64;</p><p>int note4 = 65;</p><p>int note5 = 67;</p><p>int note6 = 69;</p><p>//Control 16 = general purpose </p><p>int cc = 16;</p><p>//Setup:</p><p>void setup(){</p><p> </p><p> </p><p> //Start midi connection</p><p> MIDI.begin();</p><p> </p><p> //Serial connection 115200 for Hairless MIDI</p><p> Serial.begin(115200);</p><p> </p><p> </p><p> analogRead(sensorPin1 == 0);</p><p> analogRead(sensorPin2 == 0);</p><p> analogRead(sensorPin3 == 0);</p><p> analogRead(sensorPin4 == 0);</p><p> analogRead(sensorPin5 == 0);</p><p> analogRead(sensorPin6 == 0);</p><p> </p><p>}</p><p>//Loop:</p><p>void loop(){</p><p> </p><p> </p><p> if ( analogRead(sensorPin1) >= threshold1) {</p><p> MIDI.sendNoteOn(note1,127,1);</p><p> </p><p> }</p><p> </p><p> </p><p> else{</p><p> </p><p> MIDI.sendNoteOff(note1,0,1);</p><p> </p><p> }</p><p> </p><p> if ( analogRead(sensorPin2) >= threshold2) {</p><p> MIDI.sendNoteOn(note2,127,2);</p><p> </p><p> }</p><p> </p><p> </p><p> else{</p><p> </p><p> MIDI.sendNoteOff(note2,0,2);</p><p> </p><p> }</p><p> if ( analogRead(sensorPin3) >= threshold3) {</p><p> MIDI.sendNoteOn(note3,127,3);</p><p> </p><p> }</p><p> </p><p> </p><p> else{</p><p> </p><p> MIDI.sendNoteOff(note3,0,3);</p><p> </p><p> }</p><p> </p><p> if ( analogRead(sensorPin4) >= threshold4) {</p><p> MIDI.sendNoteOn(note4,127,4);</p><p> </p><p> }</p><p> </p><p> </p><p> else{</p><p> </p><p> MIDI.sendNoteOff(note4,0,4);</p><p> </p><p> }</p><p> </p><p> if ( analogRead(sensorPin5) >= threshold5) {</p><p> MIDI.sendNoteOn(note5,127,5);</p><p> </p><p> }</p><p> </p><p> </p><p> else{</p><p> </p><p> MIDI.sendNoteOff(note5,0,5);</p><p> }</p><p> </p><p> if ( analogRead(sensorPin6) >= threshold6) {</p><p> MIDI.sendNoteOn(note6,127,6);</p><p> </p><p> }</p><p> </p><p> </p><p> else{</p><p> </p><p> MIDI.sendNoteOff(note6,0,6);</p><p> </p><p> }</p><p> </p><p> </p><p> </p><p> </p><p> //50ms space</p><p> delay(53);</p><p> }</p>
Step 14: Before Audio Setting
In order To turn On Sensor ReTouch and be able to hear the sound from your speaker monitors every time that you touch at each sensor, all that you need is and audio engine software, it means that you need a music production/maker software able to receive MIDI data or any VST (virtual instrument) which have to perform as an ‘Audio Engine’ for Sensor ReTouch.
If you do not have already on your computer a software like this, it’s time to download one between hundreds available freeware on internet or please check the list recommended Audio engine software and VST inside the Global view section of the following guide
Pay attention I want to remind that the choice of any music production /making software or any VST you would like to use as AUDIO ENGINE to run Sensor ReTouch it’s up to you , because it works perfectly with any Software or VST is able to receive MIDI data. In the following User Guide I have chosen to use as AUDIO ENGINE for Sensor ReTouch the music software for production/making ‘’Ableton Live 9’’ and ‘’FM8’’ a VST of Native Instruments series, but remind that the choice of any software you would like to use as AUDIO ENGINE for Sensor ReTouch It’s up to you. Sensor ReTouch works perfectly with 99% of music production/making software and VST available on Internet and Freeware.
Step 15: Turn on MIDI Engine Software LOOP MIDI
If you want start configuring Sensor ReTouch for Windows all you need is to turn on MIDI and AUDIO Engine software. You must to use a MIDI engine software called Loop MIDI click to download
- Once downloaded Double click on the zipped file “loopMIDI_1_0_5_15” to unzip it after you’ve done this, make double click on the installation file to start installing .
- Once the installation is completed, click on Finish and double click on the Loop Midi icon to open the software . Now you can see the Loop MIDI configuration panel completely empty.
Now set Loop Midi software and start the MIDI data communication between Sensor ReTouch and your computer / laptop
- click on the PLUS symbol in the low side of the panel and you will see appear on the program list a New Midi communication port classified as ’loopMIDI Port’ or loopMIDI Port 1 , in both cases are okay.
Now Last step before to hear sound from your Speakers, it’s time to TURN ON the Audio Engine
Step 16: Turn on Audio Engine Software
- Once you run Ableton LIVE just look at the TOP BAR and select LIVE > Preferences
- Once you display Preferences Panel select MIDI Sync TAB
- Now if you look at the bottom of this tab, you will notice all the relative setting to ‘MIDI Ports’, and next to this you will also notice “LOOP MIDI” like an INPUT and OUTPUT .
- Now you must click on ‘’Track, Sync and Remote’’ switches in order to activate them and run properly Sensor ReTouch with Ableton, make sure to activate both ‘’Track, Sync and Remote’’ switches for MIDI Ports “Input and Output ” as well, you’ll notice all the switches turns Yellow. Then close the window.
You can almost start playing any synthesizer or instrument you want with Ableton Live , just add a new MIDI track then add the instrument or synthesizer you would like to play and switch ON the Recording button on the track, that’s it ! follow the last step to play Sensor ReTouch we are almost ready to hear sounds
Step 17: Almost Ready to PLAY Install Hairless MIDI Bridge
Now you are almost ready to pump up the volume of your audio system or through external audio system. Now you are going to install “Hairless MIDI <-> Serial” the MIDI SERIAL MONITOR software in order to convert serial messages coming from touch sensors in different MIDI messages as input source.
- Double click on “Hairless midiserial.zip” in order to Unzip the archive then when you notice the FILE “Hairless MIDI <-> Serial” drag and drop this file on your Desktop and go ahead.
Once you launch Hairless it’s time to make some custom settings
- First thing make sure to manually set under the voice ‘’Serial port’’ the “/dev/cu.usbmodem3d11” or “Arduino” port ,in order to connect Hairless MIDI SERIAL with Arduino board inside the Sensor ReTouch
- Then make sure to manually set “Loop MIDI Bus 1” under the voice ‘MIDI OUT’ and ‘MIDI IN’ for both ways ‘MIDI OUT and MIDI IN’ .
- After this you have to mark both the box ‘ ✔ ‘ Serial <-> MIDI Bridge On and Debug MIDI messages as in the picture.
READY NOW!! Open the Audio Engine Software if you remember i've used Ableton Live, Open a New Virtual Instrument on Ableton and at the same time Keep open Hairless when you want to use Sensor ReTouch. Take a look As showed in the picture by red arrows every time you touch each sensor you will notice displayed a value of 127 on “Hairless MIDI monitor/panel” , every time you touch each sensor you should immediately notice the value changing from 0 to 127 on the ‘’monitor/panel’’. Right at this point you achieved last step to configure Sensor ReTouch since now you can have fun with it whenever you want. Now just touch every single sensor in a way to hear the sound through your speakers or an external audio system.
Pay ATTENTION ! Anytime you want to Turn On Sensor ReTouch You must plug the USB cable on your Laptop and keep always open “Hairless Midi serial’’ application in a way to switch ON the sensors , when you quit from Hairless Midi serial’’ Sensor ReTouch will be switched OFF and consequently also the sensors , you must always run “Hairless Midi serial’’ as a background application in order to use Sensor ReTouch properly.
Once you’ve done you are ready to have fun and play Sensor ReTouch whenever you want, just remind to follow passage SENSOR RETOUCH CONFIGURATION and to run every time “Hairless Midi serial’’ as a background application.
KEEP IN MIND Every time you want to play with Sensor Retouch all you need is to plug USB Cable Run the Audio Engine Software and the MIDI Engine Software and remind to keep both open the software if not you will not hear any sound
Step 18: Technical Specifications
Here you can find technical specifications for each sensor, I’ve default configured Touch Sensors using MIDI protocol on the 3° octave of piano as single notes in the following order
- Sensor 1 ; MIDI Channel 1# / MIDI Note C3
- Sensor 2 ; MIDI Channel 2# / MIDI Note D3
- Sensor 3 ; MIDI Channel 3# / MIDI Note E3
- Sensor 4 ; MIDI Channel 4# / MIDI Note F3
- Sensor 5 ; MIDI Channel 5# / MIDI Note G3
- Sensor 6 ; MIDI Channel 6# / MIDI Note A3
Step 19: Troubleshooting
Sensor ReTouch doesn't work with the VST that i’m using as AUDIO ENGINE
- Check out the Audio engine software/VST recommended list on the TOP of the following guide inside chapter INTRODUCTION, or you can download another software /VST from internet able to receive MIDI INPUTS data.
Sensor ReTouch doesn’t make any sound
- Make sure all software and applications are correctly installed on your computer and right configured as explained in chapters SOFTWARE INSTALLATION and SENSOR RETOUCH CONFIGURATION
- Make sure to configure ‘LOOP MIDI PORT’ as explained TURN ON AUDIO ENGINE and MIDI ENGINESOFTWARE
- Make sure to configure the right COMMUNICATION PORT that it has to be the same “/dev/cu.usbmodem3d11” or if doesn't work select “Arduino Uno” Serial Ports for both applications ‘’Arduino IDE and Hairless MIDI serial”
- Disconnect any Firewire or heavy USB device that may affect the current load to Sensor ReTouch.
Sensor ReTouch makes random sound even if you do no touch
- Malfunctioning is gave by a non - STABILIZED POWER OUTLET where you connect your computer at, and consequently where you also connect Sensor ReTouch, try a “12v power supply” connected at the Arduino board inside Sensor ReTouch.
Step 20: How to Use Sensor ReTouch / Conductive Materials
Plug Sensor ReTouch to your Laptop with USB Cable and Connect Touch Sensors to any conductive Surface to have fun, there are many conductive surfaces and materials around you, try different objects and imagine your new interactive instrument mixing together different elements. Check out all the conductive materials in the chart, you can connect each Touch Sensor by the alligator clips on:
- IRON
- COPPER
- STEEL
- WATER
- PLANTS
- FRUITS
- PENCILDRAW etc...
Step 21: Sensor ReTouch WATER PIANO APP
Use Sensor ReTouch like a WATER PIANO APP
- Fill 6 cups of water, connect touch sensors one for each cup using the alligator clips and pay attention that the water must to be in contact with the alligator clip.
- Plug the USB cable and connect Sensor Retouch at the Laptop turn up the volume and using the software sync Piano notes one for each sensor.
- Now you are ready for the party !! Boogie !!
Step 22: Sensor ReTouch Veggie Harp APP
Use Sensor ReTouch like a Veggie Harp APP
- Connect touch sensors one for each vegetable or fruit using the alligator clips
- Plug the USB Cable and Connect Sensor Retouch at the Laptop
- Turn up the volume and using the software sync Harp notes one for each sensor. To infinity…and beyond!
Step 23: VIDEOS / DEMO / PERFORMANCES
Here some Demo and Video performance of How you can express your creativity with Sensor ReTouch and a bit of Inspiration Take a look
Me performing with Sensor Retouch
People performing and have fun with Sensor ReTouch at EXPO MILANO 2015
World Exposition Milan 2015 Italy
Performing with Sensor Retouch like a LOOPSTATION it's super duper easy
Here you can Find more Videos about Sensor ReTouch on my Youtube Channel
Here you can Find more Info about Sensor ReTouch on my Website
Step 24: Creative Commons Attribution – Non-commercial – No Derivates 4.0 International
User Guide for Windows / OSX Sensor ReTouch a projects by Giuseppe Sicurella Dharma Makers released with Creative Commons Attribution – Non-commercial – No Derivates 4.0 International.
To read a copy of this license visithttps://creativecommons.org/licenses/by-nc-nd/4.0/
The following User guide may not be distributed separately from Sensor ReTouch kit, all Attributions reserved by Dharma Makers Artigiani Digitali www.dharmadigilab.com 2015 / Fab Lab Mazara
Use your Imagination and don't stop dreaming, Never give up!
Imagination is more important than knowledge. For knowledge is limited, whereas imagination embraces the entire world, stimulating progress, giving birth to evolution Albert Einstein