Բովանդակություն:
- Պարագաներ
- Քայլ 1: Հայեցակարգ
- Քայլ 2: Պատրաստեք արագացուցիչը
- Քայլ 3: Կառուցեք ձեռնոցը
- Քայլ 4: Կազմեք Ableton- ում
- Քայլ 5: Սկսեք օգտագործել Firmata- ն
- Քայլ 6: Փորձարկեք ֆիրմաները
- Քայլ 7: Ազդեցեք երաժշտության վրա ձեր ձեռքի շարժումներով:
- Քայլ 8: Հետագծերի դաս (բոնուս)
- Քայլ 9. Հետևեք երկարությանը, զարկերին և ավելին (բոնուս)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Այս ձեռնարկում ես կխոսեմ ձեզ ձեռնոցի ձևավորման միջոցով, որը թույլ կտա ձեզ երաժշտության հետ շփվել պարի միջոցով: Դուք կկառուցեք արագացուցիչի միացման ձեռնոց, կկազմեք կոմպոզիցիա Ableton- ում և այնուհետև դրանք կկապեք այնքան բարդ կամ պարզ եղանակով, որքան ցանկանում եք:
Պարագաներ
- Ableton (կամ անվճար փորձարկում)
- Արդուինո
- Թռիչքային մալուխներ
- Sոդման երկաթ
- Ստվարաթուղթ
- Տաք սոսինձ ատրճանակ
- Շատ երեւակայություն
Քայլ 1: Հայեցակարգ
Այս նախագիծը նախատեսված է զվարճալի լինելու համար: Եթե այս ձեռնարկի օրինակելի նախագիծը ձեզ համար զվարճալի չէ, վերափոխեք այն:
Խորհուրդ եմ տալիս տեղադրել ձեր սիրած երգերից մի քանիսը, ձեռքերը շարժել դեպի դրանք և տեսնել, թե ինչ է տեղի ունենում: Ձեռքերդ վեր ու վար եք շարժո՞ւմ: Կողք-կողքի՞: Դանդաղ, թե՞ արագ: Երաժշտության ո՞ր կողմերն են ստիպում շարժել ձեռքերը: Եթե ունեք գրված դրանց ցանկը, հավանաբար կկարողանաք պարզել որոշ եղանակներ `ձեր վայելած շարժումները ձեր վերջնական ալգորիթմների մեջ ներառելու համար:
Ահա այն շարժումները, որոնք ես օգտագործել եմ.
- Արագ վեր ու վար արագ շարժումը խթանում է երգի, հարվածային գործիքների կամ բասի սկիզբը: (Դրանք տեղի են ունենում երգի տարբեր կետերում, պարտադիր չէ, որ միաժամանակ):
- Կողք-կողքի դանդաղ, թեք շարժումը առաջացնում է ավելի արձագանքող, բարձր ձայն:
- Երգի մի առանձին հատվածում, ձեռքս դեպի վեր թեքելով, երաժշտությունը հանգիստ է դառնում, այնպես որ ես այն «բռնել եմ» փակ բռունցքիս մեջ:
Օգտագործեք դրանք կամ պատրաստեք ձեր սեփականը:
(Խնդրում ենք նկատի ունենալ. Այս ձեռնարկը չի ներառում Ableton- ում կենդանի երաժշտություն կամ մեղեդիներ ստեղծելու եղանակը: Եթե հետևեք այս հրահանգներին, ապա կկարողանաք միայն մեծացնել/նվազեցնել հետքերի ծավալը կամ ձայնային էֆեկտների կիրառումը):
Քայլ 2: Պատրաստեք արագացուցիչը
Նախ, պարզեք, թե ինչ տիպի արագաչափաչափ ունեք: Ես օգտագործել եմ այս մեկը; ցանկացած երեք առանցքի արագացուցիչ կարող է անել: (Կամ փորձեք այլ տեսակի սենսորներ, եթե ցանկանում եք վայրենի դառնալ) Համոզվեք, որ գիտեք, թե ինչպես կարդալ արագացուցիչի տվյալները Arduino- ից: Հնարավոր է, անհրաժեշտ լինի ներբեռնել գրադարան ձեր արագացուցիչի համար, եթե այն օգտագործում է ավելի բարդ բան, քան անալոգային մուտքը:
Այն հացաթղթով փորձարկելուց հետո կարճ գույնի կոդով լարերը կպցրեք ձեր արագացուցիչի կապում: Տեղադրեք կարմիր մետաղալար հոսանքի պինում, սև մետաղալար գետնին և արագացուցիչի հաղորդակցության համար անհրաժեշտ ցանկացած այլ լար: (Եթե ունեք I2C արագացուցիչ, սա կլինի SCL և SDA կապերը: Եթե ունեք անալոգային արագացուցիչ, ամենայն հավանականությամբ x, y և z ելքերից յուրաքանչյուրի համար կլինի մեկ կապում): Համոզվեք, որ ձեր զոդն ամուր է և որ ուլունքները չեն համընկնում հարակից քորոցների միջև:
Քայլ 3: Կառուցեք ձեռնոցը
Կտրեք մի կտոր բարակ ստվարաթուղթ կամ հաստ թուղթ ձեր արագացուցիչից մի փոքր ավելի մեծ ուղղանկյունի մեջ: Կպցրեք արագացուցիչը ստվարաթղթին ՝ համոզվելով, որ ներքևում սոսինձ եք դնում: Այնուհետև ստվարաթղթով ամրացված արագաչափը սոսնձեք ձեր ձեռնոցի հետևի մասում: Արագացուցիչի լարվածությունը թեթևացնելու համար յուրաքանչյուր մետաղալար կարեք ձեռնոցի դաստակին, այնուհետև ձեր ձեռնոցը պատրաստ է: Միացրեք այն ավելի երկար լարերին, որպեսզի միացված տարածք ունենաք, որպեսզի ձեր ձեռքը շարժվի:
Քայլ 4: Կազմեք Ableton- ում
Այժմ ժամանակն է երգը կազմելու, որը, ի վերջո, ձեռնոցը կօգտագործես վերահսկելու համար: Ես խորհուրդ եմ տալիս Ableton- ի օղակները, որոնք բոլորը միասին լավ են հնչում, բայց կարող են օգտագործվել աստիճանաբար կառուցելու համար. Փորձեք մեղեդի, ակորդներ, բաս և հարվածային գործիքներ: Դուք կկարողանաք օգտագործել ձեր ձեռնոցը ՝ յուրաքանչյուր հանգույց նվագելու կամ չկատարելու համար:
Եթե կարող եք մտածել որևէ հետաքրքիր հնչյունների մասին, որոնք երբեմն պետք է ներառվեն երգի մեջ, ինչպես տարօրինակ ձայնային էֆեկտը կամ ոչ սովորական գործիքը, փորձեք ավելացնել դրանցից մեկ կամ երկուսը: Դուք կարող եք դրանք կապել ձեռքի ավելի քիչ տարածված շարժումներին ՝ երբեմն-երբեմն հետաքրքիր բան բերելու համար:
Ահա հղում դեպի Arduino- ի հետ համատեղելի իմ կոմպոզիցիա, եթե չեք ցանկանում գրել ձեր սեփականը ՝
(Unfortunatelyավոք, ձեզ Ableton- ին սովորեցնելը ձեռնարկի շրջանակներում չէ: Այնուամենայնիվ, կան շատ լավ հնարքներ, և Ableton- ն ունի 90-օրյա անվճար փորձարկում: Ես խորհուրդ եմ տալիս այս տեսանյութը):
Քայլ 5: Սկսեք օգտագործել Firmata- ն
Ձեր Arduino- ին Ableton- ի հետ հաղորդակցվելու հնարավորություն ընձեռելու համար հարկավոր է օգտագործել Firmata անունով գրադարանը: Դուք նաև պետք է ներբեռնեք Ableton- ի միացման հավաքածուն:
Ableton- ում կտտացրեք Փաթեթներ> Միացման հավաքածու> Սարքեր վերևի ձախ ընտրացանկում, այնուհետև կրկնակի կտտացրեք առաջին սարքի (Arduino) վրա ՝ այն ավելացնելու համար: Համոզվեք, որ հիշում եք, թե որ Ableton- ի հետքն եք ավելացրել սարքը:
Քայլ 6: Փորձարկեք ֆիրմաները
Նախ, մենք փորձարկելու և համոզվելու ենք, որ ձեր Arduino- ն շփվում է Ableton- ի հետ: Վերբեռնեք այս կոդի հատվածը ձեր Arduino- ում և գործարկեք այն.
#include void analogWriteCallback (բայթ փին, int արժեքը) {if (IS_PIN_PWM (pin)) {pinMode (PIN_TO_DIGITAL (pin), OUTPUT); analogWrite (PIN_TO_PWM (քորոց), արժեք); }} void setup () {Firmata.setFirmwareVersion (FIRMATA_FIRMWARE_MAJOR_VERSION, FIRMATA_FIRMWARE_MINOR_VERSION); Firmata.attach (ANALOG_MESSAGE, analogWriteCallback); Firmata.begin (57600);} void loop () {Firmata.sendAnalog (0, 800);}
Սա Firmata- ի հետ շփվելու համար անհրաժեշտ նվազագույնն է: Այն անընդհատ ուղարկում է 800 ելք (1024 -ից) Ableton- ի Firmata սարքի 0 պորտին: Եթե դուք վերբեռնում եք այս կոդը ձեր Arduino- ում, մինչդեռ դուք ունեք Firmata սարք, որը բացված է Ableton- ում, այն պետք է նման լինի վերևի պատկերին: (Քարտեզագրեք 0 պորտը Ableton- ում որևէ բանի, որպեսզի կարողանաք տեսնել արժեքները):
Կարող եք սեղմել Քարտեզ կոճակը և այնուհետև Ableton- ի Firmata- ի հետ համատեղ ցանկացած սարք ՝ այդ նավահանգստում ստացված մուտքի և Ableton սարքի արժեքի միջև քարտեզագրում ավելացնելու համար: Հեշտ օրինակները ներառում են ցանկացած հետքի կամ ձայնի էֆեկտի ներսում ցանկացած հավաքման ձայն: Ուսումնասիրեք և տեսեք, թե ինչ կարող եք գտնել քարտեզագրելու համար:
Քայլ 7: Ազդեցեք երաժշտության վրա ձեր ձեռքի շարժումներով:
Այս պահին դուք պետք է ունենաք Ableton- ի երաժշտություն, ձեր Arduino- ում Firmata սցենար և կցված արագացուցիչի ձեռնոց: Եկեք երաժշտություն ստեղծենք:
Ableton- ի Arduino սարքի նավահանգիստները քարտեզագրեք տարբեր իրերի (առաջարկում եմ հետևել ձայնի ձայնին), այնուհետև ավելացրեք կոդի տողեր ՝ Arduino- ից յուրաքանչյուր նավահանգիստ տվյալներ ուղարկելու համար:
Firmata.sendAnalog (նավահանգիստ, ծավալի մակարդակ);
Օգտագործեք այսպիսի կոդը յուրաքանչյուր Firmata նավահանգստի համար:
Եթե ցանկանում եք ինչ -որ պարզ բան անել, կարող եք արագացուցիչի արժեքները չմշակված ուղարկել Ableton նավահանգիստներ և քարտեզագրել դրանք այնտեղից: Ավելի բարդ փորձի համար կարող եք որոշել. Ո՞ր արագացուցիչի արժեքները պետք է հնչյուններ առաջացնեն, ինչպես և երբ:
Հետո խաղացեք ձեր Ableton- ի բոլոր օղակները, գործարկեք ձեր Arduino ծածկագիրը և պարեք հեռու:
(Հրաժարում. Եթե դուք մտադիր եք ստեղծել ցանկացած տեսակի բարդ ալգորիթմ ձեր երգի համար, դա կարող է շատ ժամանակ պահանջել ճշգրիտ ճշգրտման համար: «Dance away»-ը կարող է լինել ավելի քիչ ճշգրիտ, քան նախատեսված էր):
Քայլ 8: Հետագծերի դաս (բոնուս)
Եթե դեմ չեք, որ ձայնը բարձրանա կամ այն մեղմելու այլ միջոց ունեք, բաց թողեք այս քայլը: Հակառակ դեպքում, կարդալ!
Ես նկատեցի, որ ձայնը անջատվածից լրիվ միանգամից փոխելը ստեղծում է որոշ տհաճ հնչյուններ, և հաճելի է, որ կարողանաս աստիճանաբար մարել ձայնի մեջ: Այնուամենայնիվ, դժվար է դա անել Arduino- ի համաժամանակյա ծրագրավորման միջավայրում: Այսպիսով, ահա մի քանի ծածկագիր, որոնք ստիպում են հեռանալ.
class Track {public: int volume; int ծավալԳոլ; int updateSpeed; Հետք () {հատոր = 0; ծավալԳոլ = 0; updateSpeed = 0; } void setVolumeGoal (int նպատակ) {volumeGoal = նպատակ; } int getVolumeGoal () {return volumeGoal; } void setUpdateSpeed (int fastness) {updateSpeed = արագություն; } int getVolume () {վերադարձի ծավալը; } void updateVolume () {if ((volume> volumeGoal) && ((volume - volumeGoal)> = updateSpeed)) {volume - = updateSpeed; } else if ((ծավալը = updateSpeed)) {ծավալը += updateSpeed; }} void լուռ (int fastness) {volumeGoal = 50; updateSpeed = ամրություն; } void full (int fastness) {volumeGoal = 950; updateSpeed = ամրություն; }};
Յուրաքանչյուր ուղի ունի ընթացիկ ձայն, գոլի և արագություն, որով այն շարժվում է դեպի այդ նպատակի ծավալը: Երբ ցանկանում եք փոխել երգի ձայնը, զանգահարեք setVolumeGoal (): Ամեն անգամ, երբ գործարկում եք loop () գործառույթը ձեր Arduino- ում, կանչեք updateVolume () յուրաքանչյուր ուղու վրա, այնուհետև ուղարկեք այդ տեղեկությունները Firmata- ին getVolume () - ով: Փոխեք թարմացման արագությունը ավելի արագ կամ աստիճանաբար մարելու համար: Բացի այդ, հնարավորության դեպքում խուսափեք ձայնի 0 -ից; փոխարենը դրեք այն շատ ցածր արժեքի վրա (լռելյայն կանխադրվածը () 100 է):
Քայլ 9. Հետևեք երկարությանը, զարկերին և ավելին (բոնուս)
Դուք կարող եք շատ բաներ անել, որպեսզի ձեր նախագծից ստացված ձայնը ավելի հեշտ լսելի լինի: Ահա մի քանի տարբերակ.
Կարող եք հետևել, թե որքան ժամանակ է երգը գործում: Դա անելու համար դուք պետք է պարզեք, թե երբ է սկսվել երգը. Խորհուրդ եմ տալիս setup () ֆունկցիայի while loop- ը, որը հետաձգում է ձեր ծածկույթի աշխատանքը մինչև ձեռքի շարժումը զգալը: Պահեք երգի մեկնարկի ժամը փոփոխականում ՝ օգտագործելով millis () և ստուգեք, թե որքան ժամանակ է այն շարունակվում ամեն անգամ, երբ դուք շրջանցում եք (): Դուք կարող եք դա օգտագործել ՝ երգի որոշակի ժամանակ որոշակի գործառույթներ միացնելու կամ անջատելու համար:
Եթե գիտեք, թե որքան երկար են ձեր օղակները միլիվայրկյանների ընթացքում, կարող եք նաև հետևել, թե քանի օղակ եք անցել երգի կառուցվածքի առավել նրբանկատ ըմբռնման համար:
Մեկ այլ պոտենցիալ խնդիր, որին կարող եք հանդիպել, այն է, թե երբ սկսել և դադարեցնել երգի նվագարկումը: Ես դա լուծեցի ՝ հետևելով, թե որ չափի ռիթմում էր երգը ներկայումս: Հետո ես կարող էի ժեստից հետո հետքեր նվագել ցանկացած քանակությամբ զարկերի համար `այն անմիջապես կտրելու փոխարեն: Սա ստիպում է ամեն ինչ շատ ավելի հարթ ընթանալ: Ահա մի օրինակ.
if (millis () - lastLoop> = 4000) {loops += 1; lastLoop = millis (); համար (int j = 0; j <8; j ++) {beatNow [j] = false; }} beat = (millis () - lastLoop) / 250; եթե (ծեծել! = lastBeat) {lastBeat = ծեծել; beatsLeft -= 1; }
Համոզվեք, որ համապատասխանաբար թարմացնում եք ծավալները beatNow [beat] և/կամ beatsLeft արժեքներին: Այս ձեռնարկում գրեթե ամեն ինչ ներառող կոդի օրինակը, գումարած որոշները, կցված է այն դեպքում, եթե ցանկանում եք այն գործնականում տեսնել:
Խորհուրդ ենք տալիս:
Դագաղի պարային երաժշտություն Arduino- ի միջոցով. 6 քայլ
Դագաղի պարային երաժշտություն Arduino- ի միջոցով. Այս ձեռնարկում ես պատմում եմ, թե ինչպես կարող եք օգտագործել Arduino- ն երաժշտություն ստեղծելու համար միայն բարձրախոսով (MP3 մոդուլ չի պահանջվում): Նախ դիտեք այս տեսանյութի ձեռնարկը
Դասարան պարային ընդմիջում ՝ 8 քայլ
Classroom Dance Break. Արդյո՞ք ձեր դասին անհրաժեշտ է ուղեղի ընդմիջում, իսկ GoNoodle- ը ձգելը ժամանակատար է: Youանկանու՞մ եք ողջունել ձեր աշակերտներին դռան մոտ, բայց COVID-19- ի ձեռքսեղմման, գրկախառնության և հինգ բարձր տարիքի պատճառով հարցերն անհնար են: Հետո ահա ձեր լուծումը: Ուսանողները ընտրում են
Նետելով վերջնական պարային երեկոն `6 քայլ
Thվարճանքն ունենում է բազմաթիվ ձևեր, բայց մարդիկ հոգնում են անընդհատ նույն բաներն անելուց, ուստի դադարում են գալուց: Ինչու՞ դա համեմել ձեր ընկերներին/հյուրերին զվարճացնելու նոր եղանակով, որպեսզի նրանք ավելի շատ վերադառնան: Պարահանդեսը ոչինչ է
Պարային շատրվան ՝ Arduino ՝ MSGEQ7 սպեկտրի անալիզատորով ՝ 8 քայլ
Պարային շատրվան. Arduino MSGEQ7 սպեկտրի անալիզատորով. Աուդիո ազդանշանի ընդունումը և այն տեսողական կամ մեխանիկական ռեակցիայի վերածելը շատ հետաքրքիր է: Այս նախագծում մենք կօգտագործենք Arduino Mega ՝ միանալու MSGEQ7 սպեկտրի անալիզատորին, որը վերցնում է մուտքային աուդիո ազդանշանը և կատարում
Wizard ձեռնոց. Arduino վերահսկվող վերահսկիչ ձեռնոց. 4 քայլ (նկարներով)
Կախարդի ձեռնոց. Arduino- ի վերահսկվող ձեռնոց. The Wizard ձեռնոց: Իմ նախագծում ես պատրաստել եմ ձեռնոց, որը կարող ես օգտագործել քո սիրած կախարդական խաղերը զով և սուզիչ եղանակով խաղալու համար `օգտագործելով ընդամենը մի քանի հիմնական arduino- ի և arduino- ի ակտիվներ: դուք կարող եք խաղալ այնպիսի խաղեր, ինչպիսիք են երեցների գրքերը, կամ դուք