Obsah:

Tanečná rukavica: 9 krokov
Tanečná rukavica: 9 krokov

Video: Tanečná rukavica: 9 krokov

Video: Tanečná rukavica: 9 krokov
Video: От первого лица: Школа 5 😨ВЫГНАЛИ из ШКОЛЫ с ПОЗОРОМ 🫠 СОРВАЛИ ПЕДСОВЕТ и ПРОЩАНИЕ ГЛАЗАМИ ШКОЛЬНИКА 2024, November
Anonim
Tanečná rukavica
Tanečná rukavica

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

Pripravte si akcelerometer
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

Postav rukavicu
Postav 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

Začnite používať Firmatu
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

Test Firmata
Test Firmata

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

Ovplyvnite hudbu pohybmi rúk!
Ovplyvnite hudbu pohybmi rúk!

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: