INHOUDSOPGAWE:

Danshandskoen: 9 stappe
Danshandskoen: 9 stappe

Video: Danshandskoen: 9 stappe

Video: Danshandskoen: 9 stappe
Video: Cut and sew a blouse and pants in [9] simple steps for beginners 2024, Julie
Anonim
Danshandskoen
Danshandskoen

In hierdie handleiding lei ek u deur 'n handskoen te ontwerp waarmee u met dans kan kommunikeer met musiek. U bou 'n handskoen met versnellingsmeter, ontwerp 'n komposisie in Ableton en verbind die twee op 'n so komplekse of eenvoudige manier as wat u wil!

Voorrade

  • Ableton (of gratis proeftydperk)
  • 'N Arduino
  • Springkabels
  • Soldeerbout
  • Karton
  • Warm gom geweer
  • Baie verbeelding

Stap 1: Konsep

Hierdie projek is bedoel om pret te wees. As die manier waarop die voorbeeldprojek in hierdie tutoriaal werk nie vir u lekker is nie, herontwerp dit!

Ek beveel aan dat u 'n paar van u gunsteling liedjies aantrek, u hande daarop wys en kyk wat gebeur. Beweeg jy jou hande op en af? Van kant tot kant? Stadig of vinnig? Watter aspekte van musiek laat jou hande beweeg? As u 'n lys hiervan het, sal u waarskynlik 'n paar maniere kan uitvind om die bewegings wat u geniet, in u uiteindelike algoritmes op te neem.

Hier is die bewegings wat ek gebruik het:

  • 'N Vinnige op-en-af-beweging lei tot die begin van die liedjie, tromme of bas. (Dit gebeur op verskillende punte in die liedjie, nie noodwendig gelyktydig nie!)
  • 'N Stadige, kantelbare beweging van kant tot kant veroorsaak 'n meer eggo, hoë klank.
  • By 'n spesifieke gedeelte van die liedjie, deur my hand opwaarts te kantel, word die musiek stil - so ek het dit in my toe vuis "vasgevang".

Gebruik hierdie of maak jou eie!

(Let wel: hierdie tutoriaal dek nie die manier waarop u musiek of melodieë in Ableton genereer nie! As u by hierdie instruksies hou, kan u slegs die volume snitte of die toepassing van klankeffekte verhoog/verlaag.)

Stap 2: Berei die versnellingsmeter voor

Berei die versnellingsmeter voor
Berei die versnellingsmeter voor

Bepaal eers watter tipe versnellingsmeter u het. Ek het hierdie een gebruik; enige drie-as versnellingsmeter sal doen. (Of probeer 'n ander soort sensor as u wild wil raak.) Maak seker dat u weet hoe u die versnellingsmeterdata van die Arduino kan lees. Miskien moet u 'n biblioteek vir u versnellingsmeter aflaai as dit iets ingewikkelder as analoog invoer gebruik.

Nadat u dit met 'n broodbord getoets het, soldeer u kort kleurgekodeerde drade in die penne van u versnellingsmeter. Steek 'n rooi draad in die kragpen, 'n swart draad in die grondpen en enige ander drade wat nodig is vir versnellingsmeterkommunikasie. (As u 'n I2C -versnellingsmeter het, is dit die SCL- en SDA -penne. As u 'n analoog versnellingsmeter het, is daar waarskynlik een pen vir elk van die x-, y- en z -uitsette.) Maak seker dat u soldeer solied is en dat die krale nie oorvleuel tussen aangrensende penne nie.

Stap 3: Bou die handskoen

Bou die handskoen
Bou die handskoen

Sny 'n stuk dun karton of dik papier in 'n reghoek wat effens groter is as u versnellingsmeter. Plak die versnellingsmeter op die karton en maak seker dat u gom aan die onderkant plaas. Plak dan die versnellingsmeter met karton op die agterkant van u handskoen vas. Naai elke draad los aan die pols van die handskoen om spanning op die versnellingsmeter te verlig, en dan is u handskoen gereed. Koppel dit aan langer drade om genoeg ruimte te hê om u hand te beweeg wanneer dit ingeprop word.

Stap 4: Skep in Ableton

Dit is nou tyd om die liedjie saam te stel wat u uiteindelik met die handskoen kan beheer. Ek beveel Ableton -lusse aan wat almal goed klink, maar wat gebruik kan word om geleidelik op te bou: probeer melodie, akkoorde, bas en perkussie. U kan u handskoen gebruik om te bepaal wanneer elke lus speel of nie.

As u aan interessante klanke kan dink om af en toe in 'n liedjie op te neem, soos 'n vreemde klankeffek of 'n onkonvensionele instrument, kan u ook een of twee daarvan byvoeg! U kan dit bind aan minder algemene handbewegings om af en toe iets interessants in te bring.

Hier is 'n skakel na my Arduino-versoenbare komposisie, as u nie een van u eie wil skryf nie:

(Ongelukkig is dit nie onder die omvang van die tutoriaal om jou Ableton te leer nie. Daar is egter baie goeie instruksiesvideo's, en Ableton het 'n gratis proeftydperk van 90 dae! Ek beveel hierdie video aan.)

Stap 5: Begin met die gebruik van Firmata

Begin met die gebruik van Firmata
Begin met die gebruik van Firmata

Om u Arduino in staat te stel om met Ableton te kommunikeer, moet u 'n biblioteek genaamd Firmata gebruik. U moet ook die Connection Kit vir Ableton aflaai.

Klik in Ableton op Packs> Connection Kit> Devices in die menu links bo en dubbelklik dan op die eerste toestel (Arduino) om dit by te voeg. Onthou watter Ableton -snit u die toestel bygevoeg het!

Stap 6: Toets Firmata

Toets Firmata
Toets Firmata

Eerstens sal ons toets en seker maak dat u Arduino met Ableton kommunikeer. Laai hierdie kodefragment op na u Arduino en voer dit uit:

#include void analogWriteCallback (byte pin, int value) {if (IS_PIN_PWM (pin)) {pinMode (PIN_TO_DIGITAL (pin), OUTPUT); analogWrite (PIN_TO_PWM (pin), waarde); }} ongeldige opstelling () {Firmata.setFirmwareVersion (FIRMATA_FIRMWARE_MAJOR_VERSION, FIRMATA_FIRMWARE_MINOR_VERSION); Firmata.attach (ANALOG_MESSAGE, analogWriteCallback); Firmata.begin (57600);} leemte -lus () {Firmata.sendAnalog (0, 800);}

Dit is die minimum wat nodig is om met Firmata te kommunikeer. Dit stuur voortdurend 'n uitset van 800 (uit 1024) na poort 0 van die Firmata -toestel in Ableton. As u hierdie kode na u Arduino oplaai terwyl u 'n Firmata -toestel in Ableton oopmaak, moet dit soos die prent hierbo lyk. (Gee poort 0 aan enige iets in Ableton om die waardes te kan sien.)

U kan op die kaartknoppie klik en dan op enige Firmata-versoenbare toestel in Ableton om 'n kartering by te voeg tussen die insette wat by die poort ontvang is en die waarde van die Ableton-toestel. Maklike voorbeelde sluit in die volume van enige snit of enige draaiknop binne 'n klank -effek. Ontdek en kyk wat u kan vind om in kaart te bring!

Stap 7: Beïnvloed musiek met u handbewegings

Beïnvloed musiek met u handbewegings!
Beïnvloed musiek met u handbewegings!

Teen hierdie tyd behoort u musiek in Ableton te hê, 'n Firmata -skrif op u Arduino en 'n versnellingsmeterhandskoen daarby. Kom ons maak musiek!

Kaart hawens van die Arduino -toestel in Ableton aan verskillende dinge (ek stel spoorvolume voor), en voeg dan kodelyne by om data na elke poort vanaf die Arduino te stuur.

Firmata.sendAnalog (poort, volumeLevel);

Gebruik hierdie kode vir elke Firmata -poort.

As u iets eenvoudig wil doen, kan u die versnellingsmeterwaardes wat nie verwerk is nie, na Ableton -poorte stuur en dit van daar af in kaart bring. Vir 'n meer gesofistikeerde ervaring kan u besluit: watter versnellingsmeterwaardes moet geluide veroorsaak, hoe en wanneer?

Speel dan al u Ableton -lusse, voer u Arduino -kode uit en dans weg!

(Disclaimer: as u van plan is om 'n ingewikkelde algoritme vir u liedjie te skep, kan dit baie tyd neem om te verfyn. "Dans weg" is dalk minder akkuraat as wat verwag is.)

Stap 8: Die snitklas (bonus!)

Slaan hierdie stap oor as u nie omgee vir volume knal nie, of 'n ander manier het om dit te verminder. Andersins, lees verder!

Ek het opgemerk dat 'n paar onaangename knalgeluide in 'n keer van volume na gedemp na vol verander, en dit is lekker om die volume geleidelik te vervaag. Dit is egter moeilik om dit in die sinchroniese programmeringsomgewing van die Arduino te doen. So hier is 'n paar kode om te laat verdwyn:

klas Snit {publiek: int volume; int volumeGoal; int updateSpeed; Snit () {volume = 0; volumeGoal = 0; updateSpeed = 0; } void setVolumeGoal (int doel) {volumeGoal = doel; } int getVolumeGoal () {return volumeGoal; } void setUpdateSpeed (int fastness) {updateSpeed = fastness; } int getVolume () {opbrengs volume; } void updateVolume () {if ((volume> volumeGoal) && ((volume - volumeGoal)> = updateSpeed)) {volume - = updateSpeed; } anders as ((volume = updateSpeed)) {volume += updateSpeed; }} leegte demp (int fastness) {volumeGoal = 50; updateSpeed = snelheid; } leegte vol (int fastness) {volumeGoal = 950; updateSpeed = snelheid; }};

Elke snit het 'n huidige volume, 'n doelvolume en 'n snelheid waarmee dit na die doelvolume beweeg. Bel setVolumeGoal () as u die volume van 'n snit wil verander. Elke keer as u die loop () -funksie in u Arduino uitvoer, bel updateVolume () op elke snit en stuur die inligting dan na Firmata met getVolume (). Verander die opdateringsnelheid vir vinniger of geleidelike vervaag! Vermy ook om die volume op 0 te stel as u kan; Stel dit in plaas daarvan op 'n baie lae waarde (die standaard in demp () is 100).

Stap 9: Snitlengte, slae en meer (bonus!)

U kan baie dinge doen om die geluid uit u projek makliker te maak om na te luister. Hier is 'n paar opsies:

U kan kyk hoe lank die liedjie is. Om dit te kan doen, moet u uitvind wanneer die liedjie begin het; Ek beveel 'n tydelike lus aan in die setup () -funksie wat u kode vertraag totdat dit 'n handbeweging voel. Stoor die begintyd van die liedjie in 'n veranderlike met behulp van millis (), en kyk hoe lank dit aangaan elke keer as u 'n lus () maak. U kan dit gebruik om sekere funksies op sekere tye van die liedjie in of uit te skakel.

As u weet hoe lank u lusse in millisekondes is, kan u ook opspoor hoeveel lusse u deurgemaak het vir 'n meer genuanseerde begrip van die sangstruktuur!

'N Ander moontlike probleem wat u kan ondervind, is wanneer u 'n snit moet begin en stop met speel. Ek het dit opgelos deur by te hou watter maat van die maat die liedjie tans was. Dan kon ek snitte vir 'n aantal slae na 'n gebaar speel, in plaas daarvan om dit onmiddellik af te sny. Dit laat dinge baie gladder vloei. Hier is 'n voorbeeld:

if (millis () - lastLoop> = 4000) {loops += 1; lastLoop = millis (); vir (int j = 0; j <8; j ++) {beatNow [j] = vals; }} klop = (millis () - lastLoop) / 250; as (klop! = laaste klop) {laaste klop = klop; beatsLeft -= 1; }

Maak seker dat u volumes dienooreenkomstig opdateer na die waardes van beatNow [beat] en/of beatsLeft. 'N Voorbeeldkode wat byna alles in hierdie tutoriaal bevat, plus 'n paar, word aangeheg as u dit in die praktyk wil sien.

Aanbeveel: