Obsah:

Taneční rukavice: 9 kroků
Taneční rukavice: 9 kroků

Video: Taneční rukavice: 9 kroků

Video: Taneční rukavice: 9 kroků
Video: Annie camel tiktok tanec 🥰💞 2024, Červenec
Anonim
Taneční rukavice
Taneční rukavice

V tomto tutoriálu vás provedu návrhem rukavice, která vám umožní komunikovat s hudbou prostřednictvím tance. Postavíte si rukavici s akcelerometrem, navrhnete kompozici v Abletonu a poté je spojíte tak složitým nebo jednoduchým způsobem, jak byste chtěli!

Zásoby

  • Ableton (nebo bezplatná zkušební verze)
  • Arduino
  • Propojovací kabely
  • Páječka
  • Lepenka
  • Horká lepicí pistole
  • Hodně fantazie

Krok 1: Koncept

Tento projekt je navržen tak, aby byl zábavný. Pokud způsob, jakým příkladový projekt v tomto tutoriálu funguje, není pro vás zábavný, přepracujte jej!

Doporučuji nasadit některé ze svých oblíbených písní, přesunout k nim ruce a sledovat, co se stane. Pohybujete rukama nahoru a dolů? Ze strany na stranu? Pomalu nebo rychle? S jakými aspekty hudby chcete hýbat rukama? Pokud máte jejich seznam sepsaný, pravděpodobně budete schopni zjistit některé způsoby, jak začlenit pohyby, které se vám líbí, do vašich případných algoritmů.

Zde jsou pohyby, které jsem použil:

  • Rychlý pohyb nahoru a dolů spustí začátek skladby, bubnů nebo basů. (K tomu dochází v různých bodech skladby, ne nutně současně!)
  • Pomalý, plynulý pohyb ze strany na stranu spouští více ozvěny, vysoký zvuk.
  • V jedné konkrétní části písně nakloněním ruky nahoru ztlumí hudbu - takže jsem ji „chytil“do zavřené pěsti.

Použijte je nebo si vytvořte vlastní!

(Poznámka: tento návod se nezabývá tím, jak v Abletonu generovat hudbu nebo melodie naživo! Pokud se budete těchto pokynů držet, budete moci pouze zvýšit/snížit hlasitost skladeb nebo použití zvukových efektů.)

Krok 2: Připravte si akcelerometr

Připravte si akcelerometr
Připravte si akcelerometr

Nejprve zjistěte, jaký typ akcelerometru máte. Použil jsem ten; jakýkoli tříosý akcelerometr bude stačit. (Nebo zkuste jiný typ senzoru, pokud chcete být divoký.) Ujistěte se, že víte, jak číst data akcelerometru z Arduina. Pokud váš akcelerometr používá něco složitějšího než analogový vstup, možná si budete muset stáhnout knihovnu.

Poté, co jste jej otestovali na prkénku, připájejte krátké barevně označené vodiče do kolíků akcelerometru. Červený vodič zapojte do napájecího pinu, černý vodič do zemnicího kolíku a další potřebné vodiče pro komunikaci akcelerometru. (Pokud máte akcelerometr I2C, budou to piny SCL a SDA. Pokud máte analogový akcelerometr, bude pravděpodobně jeden pin pro každý z výstupů x, y a z.) Ujistěte se, že je vaše pájka pevná a aby se korálky nepřekrývaly mezi sousedními kolíky.

Krok 3: Sestavte si rukavici

Postavte si rukavici
Postavte si rukavici

Odřízněte kousek tenkého kartonu nebo silného papíru na obdélník o něco větší, než je váš akcelerometr. Přilepte akcelerometr na lepenku a ujistěte se, že na dno nanášíte lepidlo. Poté nalepte akcelerometr s lepenkou na zadní stranu rukavice. Šijte každý drát volně na zápěstí rukavice, abyste uvolnili napětí na akcelerometru, a poté je vaše rukavice připravena. Připojte jej k delším vodičům, aby měl po zapojení dostatek místa na pohyb rukou.

Krok 4: Napište v Abletonu

Nyní je na čase sestavit píseň, kterou budete nakonec ovládat pomocí rukavice. Doporučuji Abletonovy smyčky, aby všechny zněly dobře dohromady, ale lze je použít k postupnému budování: vyzkoušejte melodii, akordy, basy a bicí. Rukavicí budete moci ovládat, zda se každá smyčka hraje nebo ne.

Pokud vás napadne nějaký zajímavý druh zvuků, které by bylo možné občas začlenit do písně, jako podivný zvukový efekt nebo nekonvenční nástroj, zkuste přidat také jeden nebo dva z nich! Můžete je přivázat k méně obvyklým pohybům ruky, abyste jednou za čas přinesli něco zajímavého.

Zde je odkaz na moji skladbu kompatibilní s Arduino pro případ, že byste nechtěli napsat vlastní:

(Bohužel, naučit vás Ableton není v rozsahu tutoriálu. Existuje však spousta dobrých videí s návodem a Ableton má 90denní bezplatnou zkušební verzi! Doporučuji toto video.)

Krok 5: Začněte používat Firmata

Začněte používat Firmata
Začněte používat Firmata

Aby vaše Arduino mohlo komunikovat s Abletonem, budete muset použít knihovnu s názvem Firmata. Budete si také muset stáhnout připojovací sadu pro Ableton.

V Abletonu klikněte v nabídce vlevo nahoře na Balíčky> Připojovací sada> Zařízení a poté dvojitým kliknutím na první zařízení (Arduino) jej přidejte. Ujistěte se, že si pamatujete, do které stopy Ableton jste přidali zařízení!

Krok 6: Test Firmata

Test Firmata
Test Firmata

Nejprve otestujeme a ujistíme se, že vaše Arduino komunikuje s Abletonem. Nahrajte tento úryvek kódu do svého Arduina a spusťte jej:

#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é nastavení () {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 naprosté minimum potřebné ke komunikaci s Firmata. Průběžně odesílá výstup 800 (z 1024) na port 0 zařízení Firmata v Abletonu. Pokud tento kód nahrajete do svého Arduina, zatímco máte v Abletonu otevřené zařízení Firmata, mělo by to vypadat jako na obrázku výše. (Mapujte port 0 na cokoli v Abletonu, abyste viděli hodnoty.)

Můžete kliknout na tlačítko Mapa a poté na jakékoli zařízení kompatibilní s Firmata v Abletonu a přidat mapování mezi vstupem přijatým do tohoto portu a hodnotou tohoto zařízení Ableton. Snadné příklady zahrnují hlasitost jakékoli stopy nebo jakýkoli číselník v rámci zvukového efektu. Prozkoumejte a zjistěte, na co všechno můžete mapovat!

Krok 7: Ovlivněte hudbu pohyby rukou

Ovlivněte hudbu pohyby rukou!
Ovlivněte hudbu pohyby rukou!

Do této doby byste měli mít v Abletonu nějakou hudbu, skript Firmata na vašem Arduinu a připojenou rukavici akcelerometru. Pojďme udělat nějakou hudbu!

Mapujte porty zařízení Arduino v Abletonu na různé věci (doporučuji sledovat objem) a poté přidejte řádky kódu pro odesílání dat na každý port z Arduina.

Firmata.sendAnalog (port, volumeLevel);

Použijte tento kód pro každý port Firmata.

Pokud chcete udělat něco jednoduchého, můžete odeslat nezpracované hodnoty akcelerometru do portů Ableton a odtamtud je namapovat. Pro sofistikovanější zážitek se můžete rozhodnout: jaké hodnoty akcelerometru by měly spouštět zvuky, jak a kdy?

Poté zahrajte všechny své smyčky Ableton, spusťte kód Arduino a tancujte!

(Odmítnutí odpovědnosti: pokud plánujete pro svou skladbu vytvořit jakýkoli složitý algoritmus, může doladění trvat hodně času. „Tanec pryč“může být méně přesný, než se očekávalo.)

Krok 8: Track Class (bonus!)

Pokud vám nevadí vyskakování svazku nebo máte jiný způsob, jak jej zmírnit, tento krok přeskočte. Jinak čtěte dále!

Všiml jsem si, že přepnutím hlasitosti z tlumeného na plný zvuk najednou vznikají nepříjemné praskavé zvuky a je příjemné mít možnost postupně zeslabovat hlasitost. Je však těžké to udělat v synchronním programovacím prostředí Arduina. Zde je tedy nějaký kód, díky kterému bude vyskakování pryč:

třída Track {public: int volume; int volumeGoal; int updateSpeed; Track () {volume = 0; volumeGoal = 0; updateSpeed = 0; } void setVolumeGoal (int cíl) {volumeGoal = cíl; } int getVolumeGoal () {return volumeGoal; } void setUpdateSpeed (int fastness) {updateSpeed = fastness; } int getVolume () {return volume; } void updateVolume () {if ((volume> volumeGoal) && ((volume - volumeGoal)> = updateSpeed)) {volume - = updateSpeed; } else if ((volume = updateSpeed)) {volume += updateSpeed; }} void mute (int fastness) {volumeGoal = 50; updateSpeed = rychlost; } neplatná plná (vnitřní rychlost) {volumeGoal = 950; updateSpeed = rychlost; }};

Každá stopa má aktuální objem, cílový objem a rychlost, kterou se pohybuje směrem k cílovému objemu. Pokud chcete změnit hlasitost stopy, zavolejte setVolumeGoal (). Pokaždé, když ve svém Arduinu spustíte funkci loop (), zavolejte na každou stopu updateVolume () a poté tyto informace odešlete do Firmaty pomocí getVolume (). Změňte rychlost aktualizace pro rychlejší nebo postupnější fadeouts! Pokud je to možné, vyhněte se také nastavení hlasitosti na 0; místo toho jej nastavte na velmi nízkou hodnotu (výchozí hodnota v mute () je 100).

Krok 9: Sledujte délku, údery a další (bonus!)

Můžete udělat mnoho věcí, aby byl zvuk vyplývající z vašeho projektu snáze poslouchatelný. Zde je několik možností:

Můžete sledovat, jak dlouho skladba běží. Abyste to mohli udělat, musíte zjistit, kdy píseň začala; Doporučuji smyčku while ve funkci setup (), která zpomaluje spuštění kódu, dokud nezaznamená pohyb ruky. Uložte čas začátku skladby do proměnné pomocí milis () a zkontrolujte, jak dlouho to trvá pokaždé, když smyčku (). Můžete to použít k povolení nebo zakázání určitých funkcí v určitých časech skladby.

Pokud víte, jak dlouhé jsou vaše smyčky v milisekundách, můžete také sledovat, kolik smyček jste prošli, abyste lépe porozuměli struktuře skladeb!

Dalším potenciálním problémem, se kterým se můžete setkat, je zahájení a zastavení přehrávání skladby. Vyřešil jsem to tak, že jsem sledoval, v jakém rytmu se skladba právě nacházela. Poté jsem mohl po gestu přehrávat skladby pro libovolný počet úderů, místo toho, abych to okamžitě přerušil. Díky tomu věci plynou mnohem plynuleji. Zde je příklad:

if (millis () - lastLoop> = 4000) {smyčky += 1; lastLoop = millis (); for (int j = 0; j <8; j ++) {beatNow [j] = false; }} beat = (milis () - lastLoop) / 250; if (beat! = lastBeat) {lastBeat = beat; beatsLeft -= 1; }

Ujistěte se, že svazky aktualizujete podle hodnot beatNow [beat] a/nebo beatsLeft. Ukázkový kód zahrnující téměř vše v tomto kurzu, plus některé, je připojen pro případ, že byste jej chtěli vidět v praxi.

Doporučuje: