Агуулгын хүснэгт:
- Хангамж
- Алхам 1: Үзэл баримтлал
- Алхам 2: Хурдатгал хэмжигчийг бэлтгэ
- Алхам 3: Бээлий хий
- Алхам 4: Ableton -д зохиол бичих
- Алхам 5: Фирмата ашиглаж эхэлнэ үү
- Алхам 6: Фирмата тест хийх
- Алхам 7: Хөгжимд гар хөдөлгөөнөөрөө нөлөөл
- Алхам 8: Замын анги (урамшуулал!)
- Алхам 9: Урт, Beats болон бусад зүйлийг хянах (урамшуулал!)
Видео: Бүжгийн бээлий: 9 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:01
Энэхүү гарын авлагад би бүжгээр дамжуулан хөгжимтэй харилцах боломжийг олгодог бээлий зохион бүтээх болно. Та хурдатгал хэмжигчтэй бээлий бүтээж, Аблетонд найрлага зохиож, дараа нь хоёуланг нь хүссэнээрээ нарийн төвөгтэй байдлаар холбоно.
Хангамж
- Аблетон (эсвэл үнэгүй туршилт)
- Ардуино
- Холбогч кабель
- Гагнуурын төмөр
- Картон
- Халуун цавуу буу
- Маш их төсөөлөл
Алхам 1: Үзэл баримтлал
Энэхүү төсөл нь хөгжилтэй байхаар хийгдсэн. Хэрэв энэ гарын авлага дээрх жишээ төсөл нь танд тийм ч таатай санагдахгүй бол түүнийгээ дахин зохион бүтээгээрэй!
Би дуртай дуунуудаа тавьж, гараа хөдөлгөж, юу болохыг харахыг зөвлөж байна. Та гараа дээш, доош хөдөлгөж байна уу? Тал тал руу? Удаан эсвэл хурдан уу? Хөгжмийн ямар тал нь гараа хөдөлгөхийг хүсдэг вэ? Хэрэв танд эдгээрийн жагсаалт байгаа бол танд таалагдах хөдөлгөөнийг эцсийн алгоритмдаа оруулах зарим аргыг олж мэдэх боломжтой байх.
Миний ашигласан хөдөлгөөнүүд энд байна.
- Дээш доош чиглэсэн хурдан хөдөлгөөн нь дуу, бөмбөр, басс эхлэхэд хүргэдэг. (Эдгээр нь дууны өөр өөр цэгүүдэд тохиолддог, заавал нэгэн зэрэг биш юм!)
- Хажуу тийш хажуу тийш удаан, хазайсан хөдөлгөөн хийх нь илүү цуурайтсан, өндөр давтамжтай дууг өдөөдөг.
- Дууны нэг хэсэгт гараа дээшээ дээш харуулснаар хөгжим намждаг тул би түүнийг нударгаараа "барьж" авлаа.
Эдгээрийг ашигла эсвэл өөрөө хий!
(Анхаарна уу: энэ заавар нь Ableton -д хэрхэн амьд хөгжим, аялгуу бүтээх талаар тусгаагүй болно! Хэрэв та эдгээр зааврыг дагаж мөрдвөл зөвхөн дууны хэмжээг эсвэл дууны эффектийг нэмэгдүүлэх/бууруулах боломжтой болно.)
Алхам 2: Хурдатгал хэмжигчийг бэлтгэ
Нэгдүгээрт, танд ямар төрлийн хурдасгуур байгааг олж мэдээрэй. Би үүнийг ашигласан; ямар ч гурван тэнхлэгтэй хурдасгуур хийх болно. (Эсвэл зэрлэгээр явахыг хүсвэл өөр төрлийн мэдрэгчийг туршиж үзээрэй.) Arduino -аас авсан акселерометрийн өгөгдлийг хэрхэн уншихаа мэддэг эсэхээ шалгаарай. Хэрэв аналог оролтоос илүү төвөгтэй зүйл ашигладаг бол акселерометрийн номын санг татаж авах шаардлагатай болж магадгүй юм.
Үүнийг талхны хавтангаар туршиж үзсэнийхээ дараа богино өнгөт кодтой утсыг хурдатгал хэмжигчийнхээ зүү рүү гагнана. Цахилгаан тээглүүрт улаан утас, газардуулгад хар утас, акселерометрийн холбоо барихад шаардлагатай бусад утас тавь. (Хэрэв танд I2C хурдатгал хэмжигч байгаа бол энэ нь SCL ба SDA тээглүүр байх болно. Хэрэв танд аналог хурдатгал хэмжигч байгаа бол x, y, z гаралт бүрт нэг зүү байх магадлалтай.) Гагнуур чинь хатуу, бөмбөлгүүдийг нь зэргэлдээ тээглүүрийн хооронд давхцдаггүй.
Алхам 3: Бээлий хий
Нимгэн картон эсвэл зузаан цаасыг акселерометрээсээ арай том тэгш өнцөгт болгон хайчилж ав. Акселерометрийг картон дээр нааж, доод талд нь цавуу тавьж байгаа эсэхийг шалгаарай. Дараа нь картоноор бэхлэгдсэн хурдатгал хэмжигчийг бээлийнийхээ ард наа. Акселерометр дээрх хурцадмал байдлыг арилгахын тулд утас бүрийг бээлийний бугуйнд сул оёж, бээлий бэлэн болно. Залгуурыг залгахад гараа зөөх хангалттай зайтай байхын тулд үүнийг урт утаснуудад холбоно уу.
Алхам 4: Ableton -д зохиол бичих
Одоо эцэст нь бээлийгээ ашиглан хянах дуугаа зохиох цаг болжээ. Би бүгдээрээ сайн сонсогддог боловч аажмаар бий болгоход ашиглаж болох Аблетон гогцоо хийхийг зөвлөж байна: аялгуу, аккорд, басс, цохивор хөгжмийг туршиж үзээрэй. Та бээлий ашиглан давталт бүр тоглож байгаа эсэхийг хянах боломжтой болно.
Хэрэв та хачин дууны эффект эсвэл уламжлалт бус хэрэгсэл гэх мэт хааяа дуунд оруулах сонирхолтой дууны төрлийг бодож чадвал эдгээрээс ганц хоёрыг нь нэмж оруулаад үзээрэй! Хааяа нэг сонирхолтой зүйл авчрахын тулд та тэдгээрийг арай бага гар хөдөлгөөнөөр уяж болно.
Хэрэв та өөрийн бүтээлээ бичихийг хүсэхгүй байгаа бол миний Arduino-тэй нийцтэй найруулгын линк энд байна:
(Харамсалтай нь, танд Аблетонд заах нь энэ хичээлийн хүрээнд багтахгүй байна. Гэсэн хэдий ч энд маш олон сайн хийх видео бичлэгүүд байдаг бөгөөд Аблетон 90 хоногийн үнэгүй туршилттай байдаг! Би энэ видеог санал болгож байна.)
Алхам 5: Фирмата ашиглаж эхэлнэ үү
Arduino -гоо Аблетонтой холбоо тогтоохын тулд та Фирмата хэмээх номын санг ашиглах хэрэгтэй болно. Та мөн Ableton -д зориулсан Connection Kit -ийг татаж авах хэрэгтэй болно.
Ableton дээр зүүн дээд буланд байгаа Packs> Connection Kit> Devices дээр дарж, дараа нь нэмэхийн тулд эхний төхөөрөмж дээр (Arduino) давхар товшино уу. Төхөөрөмжөө Аблетоны аль дуунд нэмсэнээ санаж байгаа эсэхийг шалгаарай!
Алхам 6: Фирмата тест хийх
Нэгдүгээрт, бид таны Arduino Ableton -тэй харилцаж байгаа эсэхийг шалгаж, шалгах болно. Энэ кодын хэсгийг Arduino дээрээ байршуулаад ажиллуулна уу.
#include void analogWriteCallback (byte pin, int value) {if (IS_PIN_PWM (pin)) {pinMode (PIN_TO_DIGITAL (pin), OUTPUT); analogWrite (PIN_TO_PWM (зүү), утга); }} хүчингүй тохиргоо () {Firmata.setFirmwareVersion (FIRMATA_FIRMWARE_MAJOR_VERSION, FIRMATA_FIRMWARE_MINOR_VERSION); Firmata.attach (ANALOG_MESSAGE, analogWriteCallback); Firmata.begin (57600);} void loop () {Firmata.sendAnalog (0, 800);}
Энэ бол Фирмататай холбоо тогтооход шаардлагатай хамгийн бага хэмжээ юм. Энэ нь Аблетон дахь Фирмата төхөөрөмжийн 0 порт руу 800 гаралтыг (1024 -ээс) тасралтгүй илгээдэг. Хэрэв та Ableton -д Firmata төхөөрөмж нээгдсэн байхад энэ кодыг Arduino -д байршуулбал дээрх зураг шиг харагдах ёстой. (Үнэ цэнийг харахын тулд 0 портыг Аблетон дахь бүх зүйлтэй харьцуулж үзээрэй.)
Та "Газрын зураг" товчлуурыг дарж, дараа нь Аблетон дахь Фирмататай нийцтэй аливаа төхөөрөмж дээр дарж тухайн порт руу хүлээн авсан оролт ба тухайн Аблетон төхөөрөмжийн үнэ цэнийн хоорондох зураглалыг нэмж болно. Хялбар жишээнд аудио эффект доторх аливаа дууны товчлуур эсвэл залгах дууны хэмжээ орно. Газрын зураг дээр юу олж болохыг олж мэдээрэй.
Алхам 7: Хөгжимд гар хөдөлгөөнөөрөө нөлөөл
Энэ үед та Аблетон дээр хөгжим, Arduino дээрээ Фирмата скрипт, акселерометрийн бээлий хавсаргасан байх ёстой. Хөгжим хийцгээе!
Ableton дахь Arduino төхөөрөмжийн портуудыг өөр өөр зүйлээр харьцуулж үзээрэй (би дууны хэмжээг санал болгож байна), дараа нь Arduino -аас порт бүрт өгөгдөл илгээх кодын мөрүүдийг нэмнэ үү.
Firmata.sendAnalog (порт, эзлэхүүний түвшин);
Фирмата порт бүрт ийм кодыг ашиглана уу.
Хэрэв та ямар нэгэн энгийн зүйл хийхийг хүсч байвал акселерометрийн утгыг боловсруулаагүй байдлаар Аблетон порт руу илгээж, тэндээс газрын зураг зурж болно. Илүү нарийн туршлага авахын тулд та шийдэж болно: ямар акселерометрийн утга нь дуу чимээг, хэрхэн, хэзээ өдөөх ёстой вэ?
Дараа нь Ableton -ийн бүх гогцоог тоглуулж, Arduino кодоо ажиллуулаад бүжиглээрэй!
(Анхааруулга: Хэрэв та дуундаа ямар нэгэн нарийн төвөгтэй алгоритм зохиохоор төлөвлөж байгаа бол нарийн тааруулахад маш их цаг хугацаа шаардагдаж магадгүй. "Бүжиглэх" нь төсөөлж байснаас бага нарийвчлалтай байж магадгүй юм.)
Алхам 8: Замын анги (урамшуулал!)
Хэрэв та дууны хэмжээ буурах эсвэл үүнийг багасгах өөр арга байхгүй бол энэ алхамыг алгасаарай. Үгүй бол цааш нь уншаарай!
Дууг чанга дуунаас бүтэн болгож нэг дор өөрчлөх нь тааламжгүй дуу чимээ үүсгэдэг болохыг анзаарсан бөгөөд дууг аажмаар бүдгэрүүлэх нь сайхан байдаг. Гэсэн хэдий ч Arduino синхрон програмчлалын орчинд үүнийг хийхэд хэцүү байдаг. Энд поппинг арилгах зарим код байна:
class Track {public: int volume; int volumeGoal; int updateSpeed; Track () {эзлэхүүн = 0; эзлэхүүний зорилго = 0; updateSpeed = 0; } void setVolumeGoal (int goal) {volumeGoal = goal; } int getVolumeGoal () {буцах volumeGoal; } хүчингүй setUpdateSpeed (int fastness) {updateSpeed = хурдан байдал; } int getVolume () {буцах эзлэхүүн; } void updateVolume () {if ((volume> volumeGoal) && ((volume - volumeGoal)> = updateSpeed)) {volume - = updateSpeed; } if if ((volume = updateSpeed)) {volume += updateSpeed; }} void mute (int fastness) {volumeGoal = 50; updateSpeed = хурдан байдал; } void full (int fastness) {volumeGoal = 950; updateSpeed = хурдан байдал; }};
Зам бүр нь одоогийн эзлэхүүн, зорилгын эзэлхүүн, зорилгын эзлэхүүн рүү чиглэсэн хурдтай байна. Дууны дууны хэмжээг өөрчлөхийг хүсвэл setVolumeGoal () руу залгаарай. Та Arduino -д loop () функцийг ажиллуулах болгондоо trackViewVolume () руу залгаж, дараа нь getVolume () ашиглан Фирматад энэ мэдээллийг илгээнэ үү. Илүү хурдан эсвэл аажмаар алга болохын тулд шинэчлэлтийн хурдыг өөрчил! Мөн хэрэв боломжтой бол дууны хэмжээг 0 болгохоос зайлсхий; харин үүнийг маш бага утгаар тохируулна уу (mute () дэх анхдагч утга нь 100 байна).
Алхам 9: Урт, Beats болон бусад зүйлийг хянах (урамшуулал!)
Төслийнхөө үр дүнд гарсан дууг сонсоход хялбар болгохын тулд та олон зүйлийг хийж чадна. Энд хэд хэдэн сонголт байна:
Та дуу хэр удаан ажиллаж байгааг хянах боломжтой. Үүнийг хийхийн тулд та дуу хэзээ эхэлснийг олж мэдэх хэрэгтэй; Танай кодыг гар хөдөлгөөнийг мэдрэх хүртэл ажиллуулахыг хойшлуулдаг setup () функцэд хэсэг хугацааны давталт хийхийг зөвлөж байна. Millis () ашиглан дууны эхлэх цагийг хувьсагч хэлбэрээр хадгалж, давталт хийх бүртээ хэр удаан үргэлжилж байгааг шалгаарай. Та үүнийг дууны тодорхой цагт зарим онцлог шинж чанарыг идэвхжүүлэх эсвэл идэвхгүй болгохын тулд ашиглаж болно.
Хэрэв таны гогцоонууд миллисекундээр хэр удаан үргэлжлэхийг мэддэг бол дууны бүтцийн талаар илүү нарийн ойлголттой болохын тулд хичнээн давталт хийснийг хянах боломжтой.
Танд тулгарч болзошгүй өөр нэг асуудал бол дууг хэзээ тоглуулж эхлэх, зогсоох явдал юм. Би энэ дууг одоо ямар хэмжүүрээр хэмжиж байгааг нь хянаж байж үүнийг шийдсэн. Дараа нь би шууд таслахын оронд дохионы дараа хэдэн ч цохилтоор дуунуудыг тоглуулж чаддаг байсан. Энэ нь бүх зүйл илүү жигд урсах боломжийг олгодог. Энд жишээ байна:
if (millis () - lastLoop> = 4000) {гогцоо += 1; lastLoop = millis (); for (int j = 0; j <8; j ++) {beatNow [j] = худал; }} beat = (millis () - lastLoop) / 250; if (beat! = lastBeat) {lastBeat = beat; BeatsLeft -= 1; }
Эзлэхүүнээ beatNow [beat] ба/эсвэл beatsLeft утгуудын дагуу шинэчилж байгаа эсэхээ шалгаарай. Энэ хичээлд бараг бүх зүйлийг багтаасан жишээ кодыг заримыг нь практик дээр үзэхийг хүсч байвал хавсаргасан болно.
Зөвлөмж болгож буй:
L-tek бүжгийн дэвсгэрийг Windows болон Linux дээр 1000hz дээр санал асуулгад оруулахын тулд өөрчлөх: 9 алхам
L-tek Dance Pad-ийг Windows болон Linux дээр 1000hz дээр санал асуулгад оруулахын тулд өөрчлөх: Яагаад энэ горимыг хийдэг вэ? Хэрэв та хэзээ нэгэн цагт 125 BPM дууны график руу гүйлгэж харсан бол энэ spiey boi яах вэ? Яагаад цаг нь салангид "үүрэнд" ордог вэ? ITG болон DDR нь цаг хугацааны хувьд маш хатуу цонхтой бөгөөд үүгээр
Ангийн бүжгийн завсарлага: 8 алхам
Танхимын бүжгийн завсарлага: Танай ангид тархины завсарлага хэрэгтэй юу, GoNoodle -ийг татах нь цаг хугацаа их шаарддаг уу? Та оюутнуудтайгаа үүдэн дээр мэндлэхийг хүсч байна уу, гэхдээ COVID-19-ийн улмаас гар барих, тэврэх, таван хүүхэдтэй болох нь эргэлзээтэй байна уу? Тэгвэл таны шийдэл энд байна! Оюутнууд choo
Бүжгийн дээд үдэшлэг хийх: 6 алхам
Ultimate Dance Party -ийг хаях нь: Үзвэр үйлчилгээ олон хэлбэртэй байдаг ч хүмүүс ижил зүйлийг дахин дахин хийхээс залхдаг тул ирэхээ больдог. Найз нөхөд/зочдоо илүү ихийг эргэж ирүүлэхийн тулд тэднийг зугаацуулах шинэ арга замыг яагаад амтлахгүй байна вэ? Бүжгийн үдэшлэг бол юу ч биш
DIY бүжиг бүжгийн хувьсгал Макей Макей ашиглан: 6 алхам
DIY бүжиг бүжгийн хувьсгал Макей Макейг ашиглан: Сайн байна уу! Энэ бол миний DIY Dance Dance Revolution -ийн самбар юм. Энэ бол миний ажиллаж байсан хамгийн дуртай төслүүдийн нэг бөгөөд үнэхээр нэг төрлийн төсөл юм. Энэ төслийг хүүхдүүдэд хэлхээ хэрхэн яаж ажиллахыг заахад туслах зорилгоор хийсэн бөгөөд би энэ төслийг STEM шөнө ашиглаж, урам зориг өгөх зорилгоор ашигласан
Шидтэн бээлий: Arduino хяналттай хянагчийн бээлий: 4 алхам (зурагтай)
Wizard Glove: Arduino Controlled Controller Glove: The Wizard Glove.Төсөлдөө би өөрийн дуртай ид шидтэй холбоотой тоглоомуудаа сэрүүн, дүрэлзсэн байдлаар тоглох боломжтой бээлий хийсэн бөгөөд зөвхөн цөөн хэдэн үндсэн ардуино болон ардуино хэрэгслийг ашигласан болно. Та ахмад гүйлгэх гэх мэт тоглоом тоглож болно, эсвэл та