Sadržaj:
- Supplies
- Korak 1: Koncept
- Korak 2: Pripremite mjerač brzine
- Korak 3: Napravite rukavicu
- Korak 4: Komponujte u Abletonu
- Korak 5: Počnite koristiti Firmatu
- Korak 6: Testirajte Firmatu
- Korak 7: Uticajte na muziku pokretima ruke
- Korak 8: Klasa praćenja (bonus!)
- Korak 9: Dužina pjesme, ritmovi i još mnogo toga (bonus!)
Video: Plesne rukavice: 9 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
U ovom vodiču ću vas provesti kroz dizajniranje rukavice koja vam omogućava interakciju s muzikom kroz ples. Napravit ćete rukavicu s akcelerometrom, dizajnirati kompoziciju u Abletonu, a zatim spojiti to dvoje na složen ili jednostavan način koji želite!
Supplies
- Ableton (ili besplatno probno razdoblje)
- Arduino
- Premosni kablovi
- Lemilica
- Karton
- Pištolj za vruće ljepilo
- Puno mašte
Korak 1: Koncept
Ovaj projekat je zamišljen da bude zabavan. Ako vam način rada na primjeru u ovom vodiču nije zabavan, redizajnirajte ga!
Preporučujem da stavite neke od svojih omiljenih pjesama, pomaknete ruke na njih i vidite što će se dogoditi. Pomičete li ruke gore-dolje? Jedne na drugu stranu? Polako ili brzo? Zbog kojih aspekata muzike želite da pomerite ruke? Ako imate popis ovih zapisa, vjerovatno ć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 mjestima u pjesmi, ne nužno istovremeno!)
- Polako, nagnuto kretanje bočno na stranu pokreće ehoetičniji, visoki ton.
- U jednom određenom dijelu pjesme, naginjanje ruke prema gore utišava muziku - pa sam je "uhvatio" u zatvorenu šaku.
Iskoristite ih ili napravite sami!
(Napomena: ovaj vodič ne pokriva način stvaranja muzike ili melodija uživo u Abletonu! Ako se pridržavate ovih uputa, moći ćete samo povećati/smanjiti jačinu pjesama ili primjenu audio efekata.)
Korak 2: Pripremite mjerač brzine
Prvo saznajte koju vrstu mjerača ubrzanja imate. Ja sam koristio ovaj; bilo koji troosni akcelerometar će raditi. (Ili isprobajte drugu vrstu senzora ako želite podivljati.) Provjerite znate li č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 akcelerometra. 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, ovo će biti SCL i SDA pinovi. Ako imate analogni akcelerometar, vjerovatno ć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
Izrežite komad tankog kartona ili debelog papira u pravokutnik nešto veći od akcelerometra. Zalijepite akcelerometar na karton, pazeći da ljepilo stavite na dno. Zatim zalijepite mjerač ubrzanja s kartonskom podlogom na stražnju stranu rukavice. Labavo prišijte svaku žicu na ručni zglob rukavice kako biste ublažili napetost na mjeraču ubrzanja i tada je vaša rukavica spremna. Spojite ga na duže žice kako biste imali dovoljno prostora za pomicanje ruke kada je uključena.
Korak 4: Komponujte u Abletonu
Sada je vrijeme da komponujete pjesmu 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 kompozicije kompatibilne s Arduinom, u slučaju da ne želite napisati svoju 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
Da biste svom Arduinu omogućili komunikaciju s Abletonom, morat ćete koristiti biblioteku koja se zove Firmata. Također ćete morati preuzeti komplet za povezivanje za Ableton.
U Abletonu kliknite Packs> Connection Kit> Devices u izborniku u gornjem lijevom kutu, a zatim dvaput kliknite na prvi uređaj (Arduino) da biste ga dodali. Upamtite na koju ste pjesmu Abletona dodali uređaj!
Korak 6: Testirajte Firmatu
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);}
Ovo 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 Firmata uređaj u Abletonu, trebao bi izgledati kao gornja slika. (Mapirajte port 0 na bilo šta 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 jačinu zvuka bilo koje numere ili bilo kojeg brojčanika unutar audio efekta. Istražite i pogledajte što možete pronaći na karti!
Korak 7: Uticajte na muziku pokretima ruke
Do tada biste trebali imati muziku u Abletonu, skriptu Firmata na vašem Arduinu i pričvršćenu rukavicu za akcelerometar. Hajde da napravimo muziku!
Mapirajte portove Arduino uređaja u Abletonu na različite stvari (predlažem jačinu zapisa), a zatim dodajte redove koda za slanje podataka na svaki port s Arduina.
Firmata.sendAnalog (port, volumeLevel);
Koristite ovakav kod za svaki Firmata port.
Ako želite učiniti nešto jednostavno, možete poslati vrijednosti akcelerometra neobrađene na Ableton portove 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 kôd 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 podešavanje. "Dance away" može biti manje precizan od predviđenog.)
Korak 8: Klasa praćenja (bonus!)
Ako vam ne smeta pojačavanje zvuka ili imate drugi način da ga umanjite, preskočite ovaj korak. U suprotnom, čitajte dalje!
Primijetio sam da prebacivanje glasnoće sa potpuno utišanog na potpuno u jednom potezu stvara neugodne zvukove iskakanja i lijepo je što možete pojačati zvuk postepeno. Međutim, teško je to učiniti u sinhronom programskom okruženju Arduina. Dakle, evo nekoliko kodova za uklanjanje iskakanja:
class Track {public: int volumen; 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 () {vrati volumen; } void updateVolume () {if ((volume> volumeGoal) && ((volume - volumeGoal)> = updateSpeed)) {volume - = updateSpeed; } else if ((volume = updateSpeed)) {volume += updateSpeed; }} void mute (int postojanost) {volumeGoal = 50; updateSpeed = brzina; } puna praznina (int postojanost) {volumeGoal = 950; updateSpeed = brzina; }};
Svaka pjesma ima trenutni volumen, cilj i brzinu kojom se kreće prema tom cilju. Ako želite promijeniti jačinu zapisa, pozovite setVolumeGoal (). Svaki put kada pokrenete funkciju loop () na svom Arduinu, pozovite updateVolume () na svakoj pjesmi, a zatim pošaljite te informacije Firmati pomoću getVolume (). Promijenite brzinu ažuriranja za brže ili postepenije zamiranje! Takođe, izbjegavajte postavljanje jačine zvuka na 0 ako možete; umjesto toga, postavite je na vrlo nisku vrijednost (zadana vrijednost u mute () je 100).
Korak 9: Dužina 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 funkcija u određeno vrijeme pjesme.
Ako znate koliko su vaše petlje 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 numere 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 (); for (int j = 0; j <8; j ++) {beatNow [j] = false; }} beat = (millis () - lastLoop) / 250; if (beat! = lastBeat) {lastBeat = beat; beatsLeft -= 1; }
Obavezno ažurirajte jačine zvuka 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čuje se:
Modifikacija L-tek Plesne podloge na 1000 Hz na Windowsima i Linuxu: 9 koraka
Modificiranje L-tek Plesne podloge na 1000 Hz na Windowsima i Linuxu: Zašto napraviti ovaj mod? Ako ste ikada prešli na grafikon pjesme od 125 BPM, možda ćete se zapitati, šta je sa ovim spikey boi-om? Zašto tajming pada u diskretne "utore"? ITG i DDR imaju nevjerojatno kratke vremenske prozore, a s ovim
Etekstilne VR rukavice za Vive Tracker: 13 koraka (sa slikama)
Etekstilne VR rukavice za Vive Tracker: Ovaj vodič vam pokazuje kako izraditi etekstilne rukavice za upotrebu u VR -u pomoću Vive trackera. Oni zamjenjuju upravljačke palice dizajnirane za Vive, čineći VR interakcije taktilnijima i ljudskijima. Zovu se 'mudra' rukavice jer stegnete indeks i
Taser rukavice: 7 koraka
Taser Glove: Umorni ste od glupih električnih rukavica sa slabim naponom kamere za jednokratnu upotrebu? Mrzite ljude na youtubeu koji vam samo pokazuju vanjsku stranu rukavice, a da čak ni ne kažu kako su to napravili? Imate istančan ukus i želite da vam rukavice budu obe
Priređivanje ultimativne plesne zabave: 6 koraka
Organiziranje Ultimate Dance Partyja: Zabava ima mnogo oblika, ali ljudima je dosadilo raditi iste stvari uvijek iznova, pa prestaju dolaziti. Zašto ga ne biste začinili novim načinom da zabavite svoje prijatelje/goste kako biste ih vratili po još? Plesna zabava nije ništa
Ogroman kontroler stila za plesne podloge u retro kockama: 4 koraka
Ogroman kontroler stila na plesnom podiju za retro igre: Za naše vjenčanje u ožujku ove godine željeli smo prijemnu zabavu s temom Retro igara, jer smo mi samo velika djeca u srcu i siguran sam da ima i puno drugih ljudi! Pa nakon malo istražujući MakeyMakey's mislio sam da bi bilo sjajno zagrliti se