Агуулгын хүснэгт:

Бүжгийн бээлий: 9 алхам
Бүжгийн бээлий: 9 алхам

Видео: Бүжгийн бээлий: 9 алхам

Видео: Бүжгийн бээлий: 9 алхам
Видео: CL - "The Baddest Female" Dance Cover by Waveya 2024, Арваннэгдүгээр
Anonim
Бүжгийн бээлий
Бүжгийн бээлий

Энэхүү гарын авлагад би бүжгээр дамжуулан хөгжимтэй харилцах боломжийг олгодог бээлий зохион бүтээх болно. Та хурдатгал хэмжигчтэй бээлий бүтээж, Аблетонд найрлага зохиож, дараа нь хоёуланг нь хүссэнээрээ нарийн төвөгтэй байдлаар холбоно.

Хангамж

  • Аблетон (эсвэл үнэгүй туршилт)
  • Ардуино
  • Холбогч кабель
  • Гагнуурын төмөр
  • Картон
  • Халуун цавуу буу
  • Маш их төсөөлөл

Алхам 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 утгуудын дагуу шинэчилж байгаа эсэхээ шалгаарай. Энэ хичээлд бараг бүх зүйлийг багтаасан жишээ кодыг заримыг нь практик дээр үзэхийг хүсч байвал хавсаргасан болно.

Зөвлөмж болгож буй: