Orodha ya maudhui:

Kinga ya Ngoma: Hatua 9
Kinga ya Ngoma: Hatua 9

Video: Kinga ya Ngoma: Hatua 9

Video: Kinga ya Ngoma: Hatua 9
Video: Goodluck Gozbert - Mungu Hapokei Rushwa (Official Video) For Skiza SMS 7638600 to 811 2024, Novemba
Anonim
Kinga ya Ngoma
Kinga ya Ngoma

Katika mafunzo haya, nitakutembeza kupitia kubuni kinga ambayo inakuwezesha kuingiliana na muziki kupitia densi. Utaunda glavu inayowezeshwa na accelerometer, tengeneza muundo katika Ableton, na kisha unganisha hizo mbili kwa njia ngumu au rahisi kama unavyopenda!

Vifaa

  • Ableton (au jaribio la bure)
  • Arduino
  • Kamba za jumper
  • Chuma cha kulehemu
  • Kadibodi
  • Bunduki ya gundi moto
  • Mawazo mengi

Hatua ya 1: Dhana

Mradi huu umeundwa kuwa wa kufurahisha. Ikiwa njia ya mradi katika mafunzo haya inafanya kazi sio ya kufurahisha kwako, ibuni upya!

Ninapendekeza kuweka nyimbo unazopenda, ukisogeza mikono yako kwao, na uone kinachotokea. Je! Unasogeza mikono yako juu-na-chini? Upande kwa upande? Polepole au haraka? Ni mambo gani ya muziki yanayokufanya utake kusonga mikono yako? Ikiwa unayo orodha ya haya yaliyoandikwa, labda utaweza kupata njia kadhaa za kuingiza mwendo unaofurahiya katika algorithms yako ya baadaye.

Hapa kuna hoja nilizotumia:

  • Mwendo wa haraka juu-na-chini unasababisha kuanza kwa wimbo, ngoma, au bass. (Hizi hufanyika katika sehemu tofauti kwenye wimbo, sio lazima wakati huo huo!)
  • Mwendo wa polepole, wenye hatia kwa upande unachochea sauti zaidi, yenye sauti ya juu.
  • Katika sehemu moja ya wimbo, kuinamisha mkono wangu juu kunafanya muziki kutulia chini - kwa hivyo nime "kushika" katika ngumi yangu iliyofungwa.

Tumia hizi au fanya yako mwenyewe!

(Tafadhali kumbuka: mafunzo haya hayashughulikii jinsi ya kutengeneza muziki au nyimbo kwenye Ableton! Ukizingatia maagizo haya, utaweza tu kuongeza / kupunguza sauti au matumizi ya athari za sauti.)

Hatua ya 2: Andaa Accelerometer

Andaa Accelerometer
Andaa Accelerometer

Kwanza, tambua aina ya kasi unayo. Nilitumia hii; accelerometer yoyote ya mhimili mitatu itafanya. (Au jaribu aina nyingine ya sensorer ikiwa unataka kwenda porini.) Hakikisha unajua kusoma data ya accelerometer kutoka Arduino. Unaweza kuhitaji kupakua maktaba kwa kasi yako ikiwa inatumia kitu chochote ngumu zaidi kuliko pembejeo ya analog.

Baada ya kuijaribu na ubao wa mkate, waya zenye rangi fupi zenye rangi nyembamba kwenye pini za kipima kasi chako. Weka waya mwekundu kwenye pini ya umeme, waya mweusi kwenye pini ya ardhini, na waya zingine zozote muhimu kwa mawasiliano ya kasi. (Ikiwa una accelerometer ya I2C, hii itakuwa pini za SCL na SDA. Ikiwa una kiharusi cha analogi, kuna uwezekano kuwa na pini moja kwa kila moja ya matokeo ya x, y, na z.) Hakikisha solder yako ni thabiti na kwamba shanga haziingiliani kati ya pini zilizo karibu.

Hatua ya 3: Jenga Kinga

Jenga Kinga
Jenga Kinga

Kata kipande cha kadibodi nyembamba au karatasi nene kwenye mstatili mkubwa kidogo kuliko kasi yako. Gundi kipima kasi kwenye kadibodi, hakikisha kwamba unaweka gundi chini. Kisha, gundi accelerometer iliyoungwa mkono na kadibodi nyuma ya glavu yako. Shona kila waya kwa uhuru kwenye kiganja cha glavu ili kupunguza mvutano kwenye kisayansi, halafu kinga yako iko tayari. Unganisha na waya mrefu ili uwe na nafasi ya kutosha kusogeza mkono wako wakati umechomekwa.

Hatua ya 4: Tunga katika Ableton

Sasa ni wakati wa kutunga wimbo ambao utatumia glavu kudhibiti. Ninapendekeza matanzi ya Ableton ambayo yote yanasikika vizuri pamoja, lakini inaweza kutumika kujenga hatua kwa hatua: jaribu melody, chords, bass, na percussion. Utaweza kutumia glavu yako kudhibiti wakati kila kitanzi kinacheza au haifanyi.

Ikiwa unaweza kufikiria aina yoyote ya sauti ya kupendeza ili kuingiza wimbo mara kwa mara, kama athari ya sauti ya kushangaza au ala isiyo ya kawaida, jaribu kuongeza moja au mbili ya hizo pia! Unaweza kuzifunga kwa mwendo wa kawaida wa mikono ili kuleta kitu cha kupendeza kila baada ya muda.

Hapa kuna kiunga cha muundo wangu unaoendana na Arduino, ikiwa hutaki kuandika yako mwenyewe:

(Kwa bahati mbaya, kukufundisha Ableton sio ndani ya wigo wa mafunzo. Walakini, kuna video nyingi nzuri za jinsi ya kutazama video huko nje, na Ableton ana jaribio la bure la siku 90! Ninapendekeza video hii.)

Hatua ya 5: Anza Kutumia Firmata

Anza Kutumia Firmata
Anza Kutumia Firmata

Ili kuwezesha Arduino yako kuwasiliana na Ableton, utahitaji kutumia maktaba inayoitwa Firmata. Utahitaji pia kupakua Kitanda cha Kuunganisha cha Ableton.

Katika Ableton, bonyeza Packs> Kit cha Uunganisho> Vifaa kwenye menyu juu kushoto, kisha bonyeza mara mbili kwenye kifaa cha kwanza (Arduino) kukiongeza. Hakikisha unakumbuka ni wimbo gani wa Ableton umeongeza kifaa!

Hatua ya 6: Jaribu Firmata

Jaribu Firmata
Jaribu Firmata

Kwanza, tutajaribu na kuhakikisha Arduino yako inawasiliana na Ableton. Pakia kijisehemu hiki cha nambari kwenye Arduino yako na uitumie:

# pamoja na batili ya analogWriteCallback (pini ya baiti, thamani ya ndani) {ikiwa (IS_PIN_PWM (pin)) {pinMode (PIN_TO_DIGITAL (pin), OUTPUT); AnalogWrite (PIN_TO_PWM (pini), thamani); }} usanidi batili () {Firmata.setFirmwareVersion (FIRMATA_FIRMWARE_MAJOR_VERSION, FIRMATA_FIRMWARE_MINOR_VERSION); Firmata.ambatanisha (ANALOG_MESSAGE, AnalogWriteCallback); Firmata.anza (57600);} kitanzi batili () {Firmata.sendAnalog (0, 800);}

Hii ndio kiwango cha chini wazi kinachohitajika kuwasiliana na Firmata. Inaendelea kutuma pato la 800 (kati ya 1024) kwa bandari 0 ya kifaa cha Firmata huko Ableton. Ikiwa unapakia nambari hii kwa Arduino yako wakati una kifaa cha Firmata kilichofunguliwa huko Ableton, inapaswa kuonekana kama picha hapo juu. (Ramani bandari 0 kwa kitu chochote huko Ableton kuweza kuona maadili.)

Unaweza kubofya kitufe cha Ramani na kisha kifaa chochote kinachoweza kuendana na Firmata huko Ableton kuongeza ramani kati ya pembejeo iliyopokelewa kwenye bandari hiyo na thamani ya kifaa hicho cha Ableton. Mifano rahisi ni pamoja na sauti ya wimbo wowote au piga yoyote ndani ya athari ya sauti. Chunguza na uone kile unaweza kupata kwenye ramani!

Hatua ya 7: Ushawishi wa Muziki na Harakati zako za mikono

Ushawishi wa Muziki na Harakati zako za mikono!
Ushawishi wa Muziki na Harakati zako za mikono!

Kwa wakati huu, unapaswa kuwa na muziki katika Ableton, hati ya Firmata kwenye Arduino yako, na glavu ya kasi inayoambatanishwa. Wacha tufanye muziki!

Ramani bandari ya kifaa cha Arduino huko Ableton kwa vitu tofauti (ninashauri ujazo wa wimbo), na kisha ongeza laini za nambari za kutuma data kwa kila bandari kutoka Arduino.

Firmata.sendAnalog (bandari, kiwango cha kiwango);

Tumia nambari kama hii kwa kila bandari ya Firmata.

Ikiwa unataka kufanya kitu rahisi, unaweza kutuma maadili ya kasi ya kasi ambayo hayajasindika kwa bandari za Ableton na uziweke ramani kutoka hapo. Kwa uzoefu wa hali ya juu zaidi, unaweza kuamua: ni maadili gani ya kasi ya kuharakisha inapaswa kusababisha sauti, jinsi, na lini?

Kisha cheza vitanzi vyako vyote vya Ableton, tumia nambari yako ya Arduino, na ucheze mbali!

(Kanusho: ikiwa unapanga kuunda aina yoyote ya algorithm tata ya wimbo wako, inaweza kuchukua muda mwingi kurekebisha vizuri. "Dance away" inaweza kuwa sahihi kuliko inavyotarajiwa.)

Hatua ya 8: Darasa la Kufuatilia (bonasi!)

Ikiwa haujali kutibuka kwa sauti au una njia nyingine ya kuipunguza, ruka hatua hii. Vinginevyo, soma!

Niligundua kuwa kubadilisha sauti kutoka kwa kimya hadi kamili kwa njia moja kunaleta sauti zisizofurahi, na ni nzuri kuweza kufifia kwa sauti pole pole. Walakini, ni ngumu kufanya hivyo katika mazingira ya programu inayofanana ya Arduino. Kwa hivyo hapa kuna nambari kadhaa ya kufanya popping iende:

Ufuatiliaji wa darasa {public: int volume; ujazo int; Lengo; sasisho la int; Kufuatilia () {volume = 0; kiasiGoal = 0; sasishoSpeed = 0; } batili setVolumeGoal (lengo la ndani) {volumeGoal = lengo; } int GetVolumeGoal () {kurudi kiasiGoal; } batili setUpdateSpeed (int fastness) {updateSpeed = kasi; } int getVolume () {kiasi cha kurudisha; } batili updateVolume () {if ((volume> volumeGoal) && ((volume - volumeGoal)> = updateSpeed)) {volume - = updateSpeed; } mwingine ikiwa ((volume = updateSpeed)) {volume + = updateSpeed; }} bubu batili (int fastness) {volumeGoal = 50; sasishoSpeed = kasi; } utupu kamili (int fastness) {volumeGoal = 950; sasishoSpeed = kasi; }}};

Kila Track ina ujazo wa sasa, ujazo wa goli, na kasi ambayo inaelekea kwenye ujazo wa goli. Wakati unataka kubadilisha kiasi cha wimbo, piga setVolumeGoal (). Kila wakati unapoendesha kitanzi () katika Arduino yako, piga sasishoVolume () kwenye kila wimbo, halafu tuma habari hiyo kwa Firmata na GetVolume (). Badilisha kasi ya sasisho kwa fadeout ya haraka au zaidi ya taratibu! Pia, epuka kuweka sauti kuwa 0 ikiwa unaweza; badala yake, iweke kwa thamani ya chini sana (chaguo-msingi katika bubu () ni 100).

Hatua ya 9: Fuatilia urefu, Beats, na Zaidi (bonasi!)

Unaweza kufanya vitu vingi kufanya sauti inayotokana na mradi wako iwe rahisi kusikiliza. Hapa kuna chaguzi kadhaa:

Unaweza kufuatilia wimbo umekuwa ukiendesha muda gani. Ili kufanya hivyo, itabidi ujue wimbo ulianza lini; Ninapendekeza kitanzi cha muda katika usanidi () wa kazi ambao huchelewesha nambari yako ya kuendesha hadi iwe imehisi mwendo wa mkono. Hifadhi wakati wa kuanza kwa wimbo kwa kutofautisha kwa kutumia millis (), na angalia imekuwa kwa muda gani kila wakati unapopunguka (). Unaweza kutumia hii kuwezesha au kulemaza huduma fulani wakati fulani wa wimbo.

Ikiwa unajua matanzi yako yako katika milisekunde kwa muda gani, unaweza pia kufuatilia ni matanzi ngapi ambayo umepitia kwa uelewa mzuri zaidi wa muundo wa wimbo!

Suala jingine linalowezekana ambalo unaweza kukutana nalo ni wakati wa kuanza na kuacha wimbo kucheza. Nilitatua hii kwa kuweka wimbo wa kipi cha wimbo uliyopo kwa sasa. Kisha ningeweza kucheza nyimbo kwa idadi yoyote ya beats baada ya ishara, badala ya kuikata mara moja. Hii inafanya mambo kutiririka vizuri zaidi. Hapa kuna mfano:

ikiwa (millis () - mwishoLoop> = 4000) {vitanzi + = 1; mwishoLoop = millis (); kwa (int j = 0; j <8; j ++) {beatNow [j] = uongo; }} kupiga = (millis () - mwisho)) / 250; ikiwa (piga! = pigo la mwisho) {pigo la mwisho = piga; beatsLeft - = 1; }

Hakikisha unasasisha ujazo ipasavyo na maadili ya beatNow [beat] na / au beatsLeft. Nambari ya mfano inayojumuisha karibu kila kitu kwenye mafunzo haya, pamoja na zingine, zimeambatanishwa ikiwa unataka kuiona kwa vitendo.

Ilipendekeza: