Obsah:
- Zásoby
- Krok 1: Koncept
- Krok 2: Pripravte si akcelerometer
- Krok 3: Zostavte si rukavicu
- Krok 4: Napíšte správu v Abletone
- Krok 5: Začnite používať Firmatu
- Krok 6: Otestujte firmmu
- Krok 7: Ovplyvnite hudbu pohybmi ruky
- Krok 8: Trieda Track (bonus!)
- Krok 9: Sledujte dĺžku, údery a ďalšie (bonus!)
Video: Tanečná rukavica: 9 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
V tomto návode vás prevediem návrhom rukavice, ktorá vám umožní interakciu s hudbou prostredníctvom tanca. Postavíte si rukavicu s akcelerometrom, navrhnete kompozíciu v Abletone a potom ich spojíte tak zložitým alebo jednoduchým spôsobom, ako by ste chceli!
Zásoby
- Ableton (alebo bezplatná skúšobná verzia)
- Arduino
- Prepojovacie káble
- Spájkovačka
- Kartón
- Horúca lepiaca pištoľ
- Veľa fantázie
Krok 1: Koncept
Tento projekt je navrhnutý tak, aby bol zábavný. Ak vás spôsob, akým príkladový projekt v tomto návode funguje, nie je zábavný, redizajnujte ho!
Odporúčam obliecť si niektoré zo svojich obľúbených skladieb, presunúť k nim ruky a sledovať, čo sa stane. Pohybujete rukami hore-dole? Zo strany na stranu? Pomaly alebo rýchlo? Pri akých aspektoch hudby by ste chceli rozhýbať ruky? Ak máte zapísaný ich zoznam, pravdepodobne budete vedieť zistiť, ako začleniť pohyby, ktoré sa vám páčia, do prípadných algoritmov.
Tu sú pohyby, ktoré som použil:
- Rýchly pohyb nahor a nadol spustí skladbu, bicie alebo basu. (Stávajú sa v rôznych bodoch piesne, nie nevyhnutne súčasne!)
- Pomalý, pohyblivý pohyb zo strany na stranu vyvolá ozvučnejší a vyšší zvuk.
- V jednej konkrétnej časti piesne naklonením ruky smerom hore hudbu stíši - takže som ju „chytil“do svojej uzavretej päste.
Použite tieto alebo si vytvorte vlastné!
(Poznámka: tento tutoriál sa nezaoberá tým, ako v Abletone generovať hudbu alebo melódie naživo! Ak sa budete držať týchto pokynov, budete môcť iba zvýšiť/znížiť hlasitosť stôp alebo aplikáciu zvukových efektov.)
Krok 2: Pripravte si akcelerometer
Najprv zistite, aký typ akcelerometra máte. Použil som tento; akýkoľvek trojosový akcelerometer bude stačiť. (Ak chcete byť divokí, vyskúšajte iný typ senzora.) Uistite sa, že viete, ako čítať údaje akcelerometra z Arduina. Ak akcelerometer používa niečo zložitejšie ako analógový vstup, možno si budete musieť stiahnuť knižnicu.
Potom, čo ste to vyskúšali na doske, spájkujte krátke farebne označené vodiče do kolíkov vášho akcelerometra. Do napájacieho kolíka zapojte červený vodič, do uzemňovacieho kolíka čierny vodič a ďalšie potrebné vodiče na komunikáciu s akcelerometrom. (Ak máte akcelerometer I2C, budú to piny SCL a SDA. Ak máte analógový akcelerometer, pravdepodobne bude jeden kolík pre každý z výstupov x, y a z.) Uistite sa, že vaša spájka je pevná a aby sa korálky neprekrývali medzi susednými kolíkmi.
Krok 3: Zostavte si rukavicu
Odrežte kúsok tenkej lepenky alebo hrubého papiera na obdĺžnik, ktorý je o niečo väčší ako váš akcelerometer. Prilepte akcelerometer na lepenku a uistite sa, že na dno nanášate lepidlo. Potom prilepte akcelerometer s lepenkou na zadnú stranu rukavice. Každý drôt voľne prišite na zápästie rukavice, aby ste uvoľnili napätie na akcelerometri, a potom je vaša rukavica pripravená. Pripojte ho k dlhším káblom, aby mal po zapojení dostatok miesta na pohyb rukou.
Krok 4: Napíšte správu v Abletone
Teraz je načase zložiť pieseň, ku ktorej ovládaniu budete nakoniec používať rukavicu. Odporúčam Abletonove slučky, aby všetky spolu zneli dobre, ale je možné ich použiť na postupné budovanie: vyskúšajte melódiu, akordy, basy a perkusie. Rukavicou budete môcť ovládať, či sa každá slučka hrá alebo nie.
Ak vás napadne nejaký zaujímavý druh zvukov, ktoré by sa príležitostne začlenili do piesne, napríklad zvláštny zvukový efekt alebo nekonvenčný nástroj, skúste pridať aj jeden alebo dva z nich! Môžete ich uviazať na menej časté pohyby rúk, aby ste z času na čas priniesli niečo zaujímavé.
Tu je odkaz na moju kompozíciu kompatibilnú s Arduino, ak by ste nechceli napísať vlastnú:
(Bohužiaľ, naučiť vás Abletona nie je v rozsahu tohto tutoriálu. Existuje však veľa dobrých videí s návodmi a Ableton má 90-dňovú bezplatnú skúšobnú verziu! Toto video odporúčam.)
Krok 5: Začnite používať Firmatu
Aby mohla vaša Arduino komunikovať s Abletonom, budete potrebovať knižnicu s názvom Firmata. Tiež si budete musieť stiahnuť súpravu Connection Kit pre Ableton.
V Abletone kliknite v ponuke vľavo hore na Balíky> Pripojovacia sada> Zariadenia a potom dvojitým kliknutím na prvé zariadenie (Arduino) ho pridajte. Uistite sa, že si pamätáte, do ktorej skladby Ableton ste zariadenie pridali!
Krok 6: Otestujte firmmu
Najprv otestujeme a ubezpečíme sa, že vaše Arduino komunikuje s Abletonom. Nahrajte tento útržok kódu do svojho Arduina a spustite ho:
#include void analogWriteCallback (byte pin, int value) {if (IS_PIN_PWM (pin)) {pinMode (PIN_TO_DIGITAL (pin), OUTPUT); analogWrite (PIN_TO_PWM (pin), hodnota); }} neplatné nastavenie () {Firmata.setFirmwareVersion (FIRMATA_FIRMWARE_MAJOR_VERSION, FIRMATA_FIRMWARE_MINOR_VERSION); Firmata.attach (ANALOG_MESSAGE, analogWriteCallback); Firmata.begin (57600);} void loop () {Firmata.sendAnalog (0, 800);}
Toto je nevyhnutné minimum potrebné na komunikáciu s Firmata. Neustále vysiela výkon 800 (z 1024) na port 0 zariadenia Firmata v Abletone. Ak tento kód nahráte do svojho Arduina, zatiaľ čo v zariadení Ableton máte otvorené zariadenie Firmata, malo by to vyzerať ako na obrázku vyššie. (Mapujte port 0 na čokoľvek v Abletone, aby ste videli hodnoty.)
Môžete kliknúť na tlačidlo Mapa a potom na akékoľvek zariadenie kompatibilné s Firmata v Abletone, aby ste pridali mapovanie medzi vstupom prijatým do tohto portu a hodnotou tohto zariadenia Ableton. Jednoduché príklady zahrnujú hlasitosť akejkoľvek stopy alebo akéhokoľvek číselníka v rámci zvukového efektu. Preskúmajte a zistite, na čo všetko môžete mapovať!
Krok 7: Ovplyvnite hudbu pohybmi ruky
Do tejto doby by ste mali mať v Abletone hudbu, skript Firmata vo vašom Arduine a priloženú rukavicu akcelerometra. Urobme si hudbu!
Mapujte porty zariadenia Arduino v Abletone na rôzne veci (navrhujem sledovať objem) a potom pridajte riadky kódu na odosielanie údajov do každého portu z Arduina.
Firmata.sendAnalog (port, volumeLevel);
Tento kód použite pre každý port Firmata.
Ak chcete urobiť niečo jednoduché, môžete hodnoty akcelerometra odoslať nespracované do portov Ableton a odtiaľ ich mapovať. Pre sofistikovanejší zážitok sa môžete rozhodnúť: aké hodnoty akcelerometra by mali spúšťať zvuky, ako a kedy?
Potom zahrajte všetky svoje slučky Ableton, spustite kód Arduino a tancujte!
(Vylúčenie zodpovednosti: ak plánujete vytvoriť pre svoju skladbu akýkoľvek komplexný algoritmus, jeho doladenie môže trvať veľa času. „Tanec preč“môže byť menej presný, ako sa predpokladalo.)
Krok 8: Trieda Track (bonus!)
Ak vám nevadí vyskakovanie hlasitosti alebo máte iný spôsob, ako ho zmierniť, tento krok preskočte. V opačnom prípade čítajte ďalej!
Všimol som si, že prepínanie hlasitosti z tlmeného na úplné jedným ťahom vytvára nepríjemné pukavé zvuky a je pekné, že môžete postupne slabnúť. V synchrónnom programovacom prostredí Arduina je to však ťažké. Tu je teda nejaký kód, vďaka ktorému môže vyskakovanie zmiznúť:
trieda Track {public: int volume; int volumeGoal; int updateSpeed; Track () {objem = 0; volumeGoal = 0; updateSpeed = 0; } void setVolumeGoal (vnútorný cieľ) {volumeGoal = cieľ; } int getVolumeGoal () {return volumeGoal; } void setUpdateSpeed (int fastness) {updateSpeed = fastness; } int getVolume () {návratový objem; } void updateVolume () {if ((volume> volumeGoal) && ((volume - volumeGoal)> = updateSpeed)) {volume - = updateSpeed; } else if ((volume = updateSpeed)) {volume += updateSpeed; }} prázdne stlmenie (vnútorná rýchlosť) {volumeGoal = 50; updateSpeed = rýchlosť; } prázdna plná (vnútorná rýchlosť) {volumeGoal = 950; updateSpeed = rýchlosť; }};
Každá stopa má aktuálny objem, cieľový objem a rýchlosť, ktorou sa pohybuje smerom k cieľovému objemu. Ak chcete zmeniť hlasitosť skladby, zavolajte setVolumeGoal (). Zakaždým, keď vo svojom Arduine spustíte funkciu loop (), zavolajte na každú skladbu updateVolume () a potom tieto informácie odošlite do spoločnosti Firmata pomocou funkcie getVolume (). Zmeňte rýchlosť aktualizácie na rýchlejšie alebo postupnejšie vyblednutia! Tiež sa vyhnite nastavovaniu hlasitosti na 0, ak môžete; namiesto toho ho nastavte na veľmi nízku hodnotu (predvolená hodnota v mute () je 100).
Krok 9: Sledujte dĺžku, údery a ďalšie (bonus!)
Môžete urobiť veľa vecí, aby bol zvuk vyplývajúci z vášho projektu lepšie počúvateľný. Tu je niekoľko možností:
Môžete sledovať, ako dlho skladba prebieha. Aby ste to urobili, musíte zistiť, kedy sa pieseň začala; Odporúčam slučku while vo funkcii setup (), ktorá oneskoruje spustenie kódu, kým nepocíti pohyb ruky. Začiatočný čas skladby uložte do premennej pomocou milis () a pri každom opakovaní cyklu () skontrolujte, ako dlho trvá. Môžete to použiť na povolenie alebo zakázanie určitých funkcií v určitých časoch skladby.
Ak viete, ako dlho sú vaše slučky v milisekundách, môžete tiež sledovať, koľko slučiek ste prešli, aby ste lepšie pochopili štruktúru piesne!
Ďalším potenciálnym problémom, s ktorým sa môžete stretnúť, je, kedy začať a zastaviť prehrávanie skladby. Vyriešil som to tak, že som sledoval, v akom rytme sa skladba práve nachádza. Potom som mohol po geste prehrať skladby pre ľubovoľný počet úderov, namiesto toho, aby som ich okamžite prerušil. Vďaka tomu veci plynú oveľa plynulejšie. Tu je príklad:
if (millis () - lastLoop> = 4000) {slučky += 1; lastLoop = millis (); for (int j = 0; j <8; j ++) {beatNow [j] = false; }} úder = (milis () - posledná slučka) / 250; if (beat! = lastBeat) {lastBeat = beat; beatsLeft -= 1; }
Uistite sa, že zväzky aktualizujete podľa hodnôt beatNow [beat] a/alebo beatsLeft. Príklad kódu obsahujúceho takmer všetko v tomto návode, plus niektoré, je priložený pre prípad, že by ste ho chceli vidieť v praxi.
Odporúča:
Tanečná rakva s použitím Arduina: 6 krokov
Coffin Dance Music pomocou Arduina: V tomto tutoriále vám poradím, ako môžete použiť Arduino na vytváranie hudby iba pomocou reproduktora (nevyžaduje sa žiadny modul MP3). Najprv si pozrite tento video návod
Učebná tanečná prestávka: 8 krokov
Classroom Dance Break: Potrebuje vaša trieda prestávku v mozgu a ťahanie GoNoodle je časovo náročné? Chcete pozdraviť svojich študentov pri dverách, ale kvôli COVID-19 podanie ruky, objímanie a päťky neprichádzajú do úvahy? Potom tu je vaše riešenie! Študenti vyberajú
Čarodejnícka rukavica: rukavica ovládaná ovládačom Arduino: 4 kroky (s obrázkami)
Wizard Glove: Arduino Controlled Controller Glove: The Wizard Glove. V mojom projekte som vyrobil rukavicu, pomocou ktorej môžete hrať svoje obľúbené hry súvisiace s mágiou chladným a pohlcujúcim spôsobom iba pomocou niekoľkých základných arduino a arduino aktív. môžete hrať veci ako staršie zvitky alebo
Ešte jedna hlúpa tanečná podložka: 7 krokov
Yet Another Stupid Dance Pad: nič zvláštne, len 25 libier (11,3 kíl) drevená USB tanečná podložka na základe klávesnice Microsoft YASDP Yet Another Stupid Dance Pad
Tanečná podložka / koberec v dreve DDR: 5 krokov
Tanečná podložka / koberec v dreve DDR: Ako vytvoriť dobrú podložku ddr z dreva, medenej fólie, farby a mŕtvej podložky / klávesnice USB