Sadržaj:

Plesne rukavice: 9 koraka
Plesne rukavice: 9 koraka

Video: Plesne rukavice: 9 koraka

Video: Plesne rukavice: 9 koraka
Video: КИНО | Стук | 16:9 2024, Studeni
Anonim
Plesna rukavica
Plesna rukavica

U ovom vodiču ću vas provesti kroz dizajniranje rukavice koja vam omogućuje interakciju s glazbom kroz ples. Napravit ćete rukavicu s akcelerometrom, osmisliti kompoziciju u Abletonu, a zatim spojiti to dvoje na složen ili jednostavan način koji želite!

Pribor

  • Ableton (ili besplatno probno razdoblje)
  • Arduino
  • Kratki kabeli
  • Lemilica
  • Karton
  • Pištolj za vruće ljepilo
  • Puno mašte

Korak 1: Koncept

Ovaj je projekt osmišljen da bude zabavan. Ako vam način na koji primjer primjera radi u ovom vodiču nije zabavan, redizajnirajte ga!

Preporučujem da stavite svoje omiljene pjesme, pomaknete ruke na njih i vidite što se događa. Pomičete li ruke gore-dolje? Bočno na stranu? Polako ili brzo? Zbog kojih glazbenih aspekata želite pomaknuti ruke? Ako imate popis ovih zapisa, vjerojatno ćete moći smisliti neke načine za uključivanje pokreta u kojima uživate u svoje eventualne algoritme.

Evo pokreta koje sam koristio:

  • Brz pokret gore-dolje pokreće početak pjesme, bubnjeve ili bas. (To se događa na različitim točkama pjesme, ne nužno istovremeno!)
  • Polako, nagnuto bočno bočno pokretanje pokreće odjek koji ima jači zvuk.
  • Na jednom određenom dijelu pjesme, naginjanje ruke prema gore utišava glazbu - pa sam je "uhvatio" u zatvorenu šaku.

Iskoristite ih ili napravite sami!

(Napomena: ovaj vodič ne pokriva kako generirati glazbu ili melodije uživo u Abletonu! Ako se pridržavate ovih uputa, moći ćete samo povećati/smanjiti glasnoću pjesama ili primjenu audio efekata.)

Korak 2: Pripremite mjerač ubrzanja

Pripremite mjerač brzine
Pripremite mjerač brzine

Prvo utvrdite koju vrstu mjerača ubrzanja imate. Ja sam koristio ovaj; to će učiniti bilo koji troosni akcelerometar. (Ili isprobajte drugu vrstu senzora ako želite podivljati.) Pobrinite se da znate čitati podatke akcelerometra s Arduina. Možda ćete morati preuzeti biblioteku za svoj mjerač ubrzanja ako koristi nešto složenije od analognog ulaza.

Nakon što ste ga isprobali uz ploču za lemljenje, lemite kratke žice označene bojom u pinove vašeg mjerača ubrzanja. Stavite crvenu žicu u utičnicu za napajanje, crnu žicu u iglu za uzemljenje i sve druge potrebne žice za komunikaciju akcelerometra. (Ako imate I2C akcelerometar, to će biti SCL i SDA pinovi. Ako imate analogni akcelerometar, vjerojatno će biti jedan pin za svaki od x, y i z izlaza.) Provjerite je li lemljenje čvrsto i da se perle ne preklapaju između susjednih igala.

Korak 3: Napravite rukavicu

Napravite rukavicu
Napravite rukavicu

Izrežite komad tankog kartona ili debelog papira u pravokutnik nešto veći od akcelerometra. Zalijepite mjerač ubrzanja na karton pazeći da ljepilo stavljate na dno. Zatim zalijepite mjerač ubrzanja s kartonskom podlogom na stražnju stranu rukavice. Labavo zašijte svaku žicu do zapešća rukavice kako biste ublažili napetost na mjeraču ubrzanja, a onda je vaša rukavica spremna. Spojite ga na duže žice kako biste imali dovoljno prostora za pomicanje ruke kad je uključena.

Korak 4: Komponirajte u Abletonu

Sada je vrijeme za skladanje pjesme koju ćete na kraju koristiti rukavicom za kontrolu. Preporučujem Ableton petlje koje sve zajedno zvuče dobro, ali se mogu koristiti za postupno nadogradnju: isprobajte melodiju, akorde, bas i udaraljke. Moći ćete koristiti svoju rukavicu za kontrolu kada svaka petlja svira ili ne.

Ako se sjetite bilo koje zanimljive vrste zvukova koje biste povremeno mogli ugraditi u pjesmu, poput čudnog zvučnog efekta ili nekonvencionalnog instrumenta, pokušajte dodati i jedan ili dva od njih! Možete ih vezati za rjeđe pokrete rukama kako biste s vremena na vrijeme unijeli nešto zanimljivo.

Evo veze do moje skladbe kompatibilne s Arduinom, u slučaju da ne želite napisati vlastitu:

(Nažalost, podučavanje vas Abletonu nije u okviru ovog vodiča. Međutim, postoji mnogo dobrih videozapisa s uputama, a Ableton ima 90-dnevno besplatno probno razdoblje! Preporučujem ovaj video.)

Korak 5: Počnite koristiti Firmatu

Počnite koristiti Firmatu
Počnite koristiti Firmatu

Da biste svom Arduinu omogućili komunikaciju s Abletonom, morat ćete koristiti biblioteku pod nazivom Firmata. Također ćete morati preuzeti Connection Kit za Ableton.

U Abletonu kliknite Packs> Connection Kit> Devices na izborniku u gornjem lijevom kutu, a zatim dvaput kliknite na prvi uređaj (Arduino) da biste ga dodali. Ne zaboravite na koju ste pjesmu Abletona dodali uređaj!

Korak 6: Testirajte Firmate

Test Firmata
Test Firmata

Prvo ćemo testirati i uvjeriti se da vaš Arduino komunicira s Abletonom. Prenesite ovaj isječak koda na svoj Arduino i pokrenite ga:

#include void analogWriteCallback (pin byte, int value) {if (IS_PIN_PWM (pin)) {pinMode (PIN_TO_DIGITAL (pin), OUTPUT); analogWrite (PIN_TO_PWM (pin), vrijednost); }} void setup () {Firmata.setFirmwareVersion (FIRMATA_FIRMWARE_MAJOR_VERSION, FIRMATA_FIRMWARE_MINOR_VERSION); Firmata.attach (ANALOG_MESSAGE, analogWriteCallback); Firmata.begin (57600);} void loop () {Firmata.sendAnalog (0, 800);}

To je minimalni minimum potreban za komunikaciju s Firmatom. On kontinuirano šalje izlaz od 800 (od 1024) na priključak 0 uređaja Firmata u Abletonu. Ako učitate ovaj kôd na svoj Arduino dok imate otvoren uređaj Firmata u Abletonu, trebao bi izgledati kao gornja slika. (Kartirajte port 0 na bilo što u Abletonu da biste mogli vidjeti vrijednosti.)

Možete kliknuti gumb Karta, a zatim bilo koji uređaj kompatibilan s Firmatom u Abletonu kako biste dodali mapiranje između primljenog unosa na taj port i vrijednosti tog Ableton uređaja. Jednostavni primjeri uključuju glasnoću bilo koje pjesme ili bilo kojeg brojčanika unutar audio efekta. Istražite i pogledajte što možete pronaći na karti!

Korak 7: Utjecajte na glazbu pokretima ruke

Utjecajte na glazbu pokretima ruku!
Utjecajte na glazbu pokretima ruku!

Do tog trenutka trebali biste imati nešto glazbe u Abletonu, skriptu Firmata na vašem Arduinu i pričvršćenu rukavicu za akcelerometar. Hajde da napravimo glazbu!

Kartirajte portove Arduino uređaja u Abletonu na različite stvari (predlažem glasnoću praćenja), a zatim dodajte retke koda za slanje podataka na svaki port s Arduina.

Firmata.sendAnalog (port, volumeLevel);

Koristite ovakav kod za svaki port Firmata.

Ako želite učiniti nešto jednostavno, možete poslati vrijednosti akcelerometra neobrađene na portove Ableton i od tamo ih mapirati. Za sofisticiranije iskustvo, možete odlučiti: koje bi vrijednosti akcelerometra trebale pokrenuti zvukove, kako i kada?

Zatim pustite sve svoje Ableton petlje, pokrenite svoj Arduino kod i otplešite!

(Odricanje od odgovornosti: ako planirate stvoriti bilo koju vrstu složenog algoritma za svoju pjesmu, možda će trebati puno vremena za fino ugađanje. "Dance away" može biti manje točan od predviđenog.)

Korak 8: Klasa pjesama (bonus!)

Ako vam ne smeta pojačavanje zvuka ili imate neki drugi način za ublažavanje, preskočite ovaj korak. Inače, čitajte dalje!

Primijetio sam da prebacivanje glasnoće s isključenog na potpuno u jednom potezu stvara neke neugodne zvukove iskakanja i lijepo je što možete postupno smanjivati glasnoću. Međutim, teško je to učiniti u sinkronom programskom okruženju Arduina. Dakle, evo nekoliko kodova za uklanjanje iskakanja:

klasa Track {public: int volume; int volumeGoal; int updateSpeed; Track () {volumen = 0; volumeGoal = 0; updateSpeed = 0; } void setVolumeGoal (int cilj) {volumeGoal = cilj; } int getVolumeGoal () {return volumeGoal; } void setUpdateSpeed (int postojanost) {updateSpeed = brzina; } int getVolume () {povratni volumen; } void updateVolume () {if ((volume> volumeGoal) && ((volume - volumeGoal)> = updateSpeed)) {volume - = updateSpeed; } else if ((volume = updateSpeed)) {volume += updateSpeed; }} void mute (int postojanost) {volumeGoal = 50; updateSpeed = postojanost; } void full (int postojanost) {volumeGoal = 950; updateSpeed = postojanost; }};

Svaki zapis ima trenutni volumen, volumen cilja i brzinu kojom se kreće prema tom cilju. Ako želite promijeniti glasnoću pjesme, nazovite setVolumeGoal (). Svaki put kada pokrenete funkciju loop () na svom Arduinu, nazovite updateVolume () na svakoj pjesmi, a zatim pošaljite te podatke Firmati pomoću getVolume (). Promijenite brzinu ažuriranja za brže ili postupnije zamiranje! Također, izbjegavajte postavljanje glasnoće na 0 ako možete; umjesto toga postavite je na vrlo nisku vrijednost (zadana vrijednost u mute () je 100).

Korak 9: Trajanje pjesme, ritmovi i još mnogo toga (bonus!)

Možete učiniti mnogo stvari kako bi zvuk koji proizlazi iz vašeg projekta bilo lakše slušati. Evo nekoliko opcija:

Možete pratiti koliko dugo se pjesma izvodi. Da biste to učinili, morate saznati kada je pjesma započela; Preporučujem while petlju u funkciji setup () koja odgađa rad vašeg koda sve dok ne osjeti pokret ruke. Pohranite vrijeme početka pjesme u varijablu pomoću millis () i provjerite koliko dugo traje svaki put kada petljate (). Ovo možete koristiti za omogućavanje ili onemogućavanje određenih značajki u određeno vrijeme pjesme.

Ako znate koliko su vam petlje dugačke u milisekundama, možete pratiti i koliko ste petlji prošli radi boljeg razumijevanja strukture pjesme!

Još jedan potencijalni problem na koji možete naići je kada započeti i zaustaviti reprodukciju pjesme. Riješio sam to tako što sam pratio u kojem taktu se trenutno nalazi pjesma. Tada bih mogao reproducirati pjesme za bilo koji broj otkucaja nakon geste, umjesto da je odmah prekinem. Zbog toga stvari teku mnogo glatko. Evo primjera:

if (millis () - lastLoop> = 4000) {petlje += 1; lastLoop = millis (); za (int j = 0; j <8; j ++) {beatNow [j] = netočno; }} beat = (millis () - lastLoop) / 250; if (beat! = lastBeat) {lastBeat = beat; beatsLeft -= 1; }

Provjerite jeste li ažurirali volumene u skladu s vrijednostima beatNow [beat] i/ili beatsLeft. Primjer koda koji uključuje gotovo sve u ovom vodiču, plus nešto, priložen je u slučaju da ga želite vidjeti u praksi.

Preporučeni: