Med knappar och sensorer för att göra musik med Intel Edison (7 / 9 steg)
Steg 7: Väsnas med Timbre.js
Nu när vi har nära feedback i realtid på knapp pressar som skickas över en web uttag till våra läsare, är vi redo att förvandla det till lite musik. Vi kommer att använda ett bibliotek som kallas Timbre.js för att manipulera ljud med våra sensordata. Låt oss börja med något enkelt: att göra en bastrumma kick när knappen är nedtryckt.
Först kommer vi att lägga till Timbre.js, och det är beroende, SubCollider.js, till våra ' allmänheten/js' broschyren. Från roten till projektmappen, springa den följande befallningen att kopiera dessa filer till mappen public javascripts.
mkdir allmänheten/js
curl http://mohayonao.github.io/timbre.js/timbre.dev.js -o public/js/timbre.dev.js
curl https://raw.githubusercontent.com/mohayonao/subcollider.js/master/builds/subcollider.js -o public/js/subcollider.js
Nu, låt oss uppdatera vår index.html fil att omfatta Timbre.js och SubCollider. Ersätta innehållet i "index.html" med följande kod.
< html >
< script src = "https://cdn.socket.io/socket.io-1.3.4.js" >< / script >
< script src="js/timbre.dev.js" >< / script >
< script src="js/subcollider.js" >< / script >
< script src="js/playsounds.js" >< / script >
< body >
Hej världen!
< / body >
< / html >
Du ska märker vi också importerar 'js/playsounds.js', som inte finns ännu. Playsounds.js kommer att skriptet används för att lyssna på våra socket meddelanden och vidarebefordra dessa data till Timbre.js. Skapa denna fil nu och Lägg till följande kod.
var BD;
T("Audio").load ("./drumkit.wav", function() {
Drum = T ("lowshelf", {freq:110, vinst: 8, mul:0.6}, BD).play()
BD = this.slice(0, 500).set ({bang: false})
})
var socketConnection = io.connect ("http://0.0.0.0:8080/soundsocket")
socketConnection.on ('connect', funktion () {
Console.log ("ansluten till uttaget")
})
socketConnection.on ("knappen", funktion (värde) {
om (värde == "push") {
BD.bang()
}
})
Vi har fler filer vi behöver göra tillgänglig till våra manus, som är "drumkit.wav". Detta är en exempelfil som tillhandahålls av Timbre.js som vi skiva upp för att få ett instrument ljud. Kör följande kommando från projektmappen att kopiera denna fil till en mapp.
curl http://mohayonao.github.io/timbre.js/misc/audio/drumkit.wav -o public/drumkit.wav
Begå alla dina ändringar, push, sedan dra ner på din Edison.
Vid det här laget bör du kunna köra appen, ladda om sidan, skruva upp volymen och höra en bas trumma kick varje gång du trycker på knappen.