Բովանդակություն:

Raspberry Pi Drum Machine: 5 քայլ
Raspberry Pi Drum Machine: 5 քայլ

Video: Raspberry Pi Drum Machine: 5 քայլ

Video: Raspberry Pi Drum Machine: 5 քայլ
Video: Zynthian V5: The open source synthesizer workstation you might have been looking for 2024, Հուլիսի
Anonim
Raspberry Pi Drum Machine
Raspberry Pi Drum Machine

Sample Sequencer ՝ Raspberry Pi + Python- ի միջոցով:

Սեկվենսերն ունի 4 բազմաձայնություն և թույլ է տալիս օգտագործողին պահել և հուշել 6 տարբեր հաջորդականություններ, որոնք նրանք կարող են փոխարինել իրական ժամանակում, և աջակցում է տարբեր նմուշների միջև փոխվելու ունակությանը:

Ես գրել եմ սցենարը այնպես, որ այն լիովին գործարկվի իրոք ցանկացած MIDI կարգավորիչի և հնչյունների հետ: Ես օգտագործում եմ 18 տարբեր ձայնային բանկեր ՝ յուրաքանչյուրը 16 նմուշ, սակայն բանկեր և նմուշներ ավելացնելը կամ հանելը հեշտ է և շատ փոփոխություններ չեն պահանջում: Եթե որևէ խնդիր ունեք, ինձ էլ. Նամակ ուղարկեք ՝ [email protected]

Գտեք կոդը GitHub- ում ՝

Խնդրում եմ ինձ տեղյակ պահեք, եթե այն օգտագործում եք, և հատկապես, եթե դրանով տեսանյութ եք պատրաստում:

Քայլ 1: Կախվածություն

Այս ծրագիրը պահանջում է հետևյալ (ոչ ներկառուցված) Python մոդուլներ.

միդո

pygame

թմրած

Այնուամենայնիվ, Միդոն որոշ բարդություններ է առաջացնում, քանի որ Միդոն ինքնին պահանջում է մի քանի կախվածություն: Որպեսզի համոզվեք, որ դրանք բոլորը տեղադրված են, պարզապես մուտքագրեք հետևյալ հրամանները ձեր Raspberry Pi- ի տերմինալում (բաց թողնելով «$») և ամեն ինչ լավ կլինի: Մնացած մոդուլները կարող են նորմալ տեղադրվել:

$ sudo apt-get թարմացում

$ sudo apt-get install build-essential

$ sudo apt-get տեղադրել libasound-dev կամ libasound2-dev

$ sudo apt-get install libjack0

$ sudo apt-get տեղադրել libjack-dev

$ sudo apt-get տեղադրել python-pip

$ sudo apt-get տեղադրել python-dev

$ sudo pip տեղադրել python-rtmidi

$ sudo pip տեղադրել mido

Քայլ 2. Կարգավորեք Midi մուտքագրման արժեքները

Կարգավորեք Midi մուտքագրման արժեքները
Կարգավորեք Midi մուտքագրման արժեքները

Հիմնական Python Script- ում կա noteList կոչվող զանգված, որը բաղկացած է 16 ամբողջ թվից (տող 165.) Սրանք MIDI նշումների արժեքներն են, որոնք մեր վերահսկիչը ուղարկում է Pi- ին ՝ ձայները հարուցելու համար: Յուրաքանչյուր midi վերահսկիչ, այնուամենայնիվ, տարբեր է, այնպես որ, եթե դուք նույնպես չունեք Akai LPD8, ամենայն հավանականությամբ, պետք է փոփոխեք այս արժեքները ՝ ձեր սարքին համապատասխանելու համար:

Github ռեպոն ներառում է նաև մեկ այլ սցենար, որը կոչվում է «midihelp.py», որը պատրաստված է հատուկ այս նպատակով: Այն ամենը, ինչ անում է, տպում է մուտքային արժեքները առաջին MIDI վերահսկիչից, որը համակարգիչը ճանաչում է մխիթարել: Մնում է միայն փոխարինել այս արժեքները զանգվածում, եթե դրանք տարբերվում են noteList- ում ներառվածներից:

Նշումների կարգը նույնպես փոխկապակցված է, թե որ ձայնային էֆեկտն է հնչում մեկ թղթապանակում, ուստի դա նույնպես նկատի ունեցեք:

Քայլ 3. Ավելացրեք լրացուցիչ թղթապանակներ օրինակներով

Սցենարի մեջ գտնվող նմուշների հավաքածուները պահվում են նույն գրացուցակում գտնվող թղթապանակների միջոցով, ճշգրիտ ձևակերպելով, թե ինչպես է 808 հավաքածուն գտնվում GitHub ֆայլի մեջ: Այս կերպ ես կարող եմ ունենալ բոլոր տեսակի տարբեր նմուշների հավաքածուներ պահված պանակներում, որոնք հեշտությամբ կազմակերպվում և փոխարինվում են:

Սցենարի մեջ միակ բանը, որ պետք է փոխվի, foldNum փոփոխականն է, որը պարզապես սցենարին հայտնում է նմուշների քանի պանակ: Ներկայումս սցենարը foldNum- ը մեկ է դրել, քանի որ նույն գրացուցակում կա միայն մեկ ենթապանակ (808 հավաքածուն): Առավելագույն պանակները, որոնք այս պահին կարող է մշակել սցենարը 18 -ն է, ինչը քանիսն եմ ես օգտագործում, սակայն դա բավականին աննշան է փոխեք սա, ինձ տեղեկացրեք, եթե օգնության կարիք ունեք:

Թղթապանակների անունները իրականում նշանակություն չունեն (քանի դեռ դրանք բոլորը տարբեր են), քանի որ Script- ը պարզապես կարդում է նույն գրացուցակում պահված թղթապանակների քանակը և այդպես է գրավում ուղիները: Ֆայլերի անուններն ինքնին կարևոր են, բայց դրա մասին ավելին ՝ հաջորդ քայլին:

Քայլ 4. Ավելացրեք և կազմաձևեք լրացուցիչ նմուշներ նոր թղթապանակների ներսում

Ավելացնել և կարգավորել լրացուցիչ նմուշներ նոր թղթապանակների ներսում
Ավելացնել և կարգավորել լրացուցիչ նմուշներ նոր թղթապանակների ներսում

Ձայները բեռնվում են նմուշառողի մեջ նույն թղթապանակի պանակների միջոցով: Տեսեք ներառված 808 թղթապանակը `դրա օրինակով: Նմուշներով ԱՄԵՆ ենթապանակը պետք է նույնական լինի միմյանց:

Noteանգվածի noteList- ում MIDI մուտքագրումների ինդեքսը ճշգրիտ համապատասխանում է.wav ֆայլի անունին:

Օրինակ:

  • երբ միացնում եք noteList [0] - ում պահվող MIDI նշումը, wav ֆայլը `0.wav, կխաղա:
  • երբ միացնում եք noteList [8] - ում պահվող MIDI նշումը, wav ֆայլը 8.wav կխաղա:

Ես դա մասամբ արեցի, որպեսզի յուրաքանչյուր MIDI վերահսկիչ հեշտությամբ տեղադրվի սցենարի հետ աշխատելու համար, ինչպես նաև կարողանամ հեշտությամբ ընդլայնել կամ սահմանափակել նմուշը և մուտքային համարը, ինչպես նաև կազմակերպել ֆայլերն ու սցենարը այնպես, որ հարվածի թմբուկը հնչյունները, օրինակ, միշտ կպահպանվեին որպես 0.wav և կհարթվեին առաջին MIDI նշումով:

Որոշ չափով կամայականորեն ընտրել եմ 16 արժեքներ, որոնք կհամապատասխանեն իմ վերահսկիչի 16 մուտքերին, այնպես որ, եթե նախընտրում եք կատարել հաջորդականիչ միայն 1 նմուշով, կամ շատ ավելին, ապա ձեզ մնում է միայն համարակալել համապատասխանաբար աուդիո ֆայլերը և հանել կամ ավելացնել noteList զանգվածում պահվող թվերը ՝ համապատասխանեցնելու համար:

Եթե ներառված 808 հավաքածուն ճիշտ է աշխատում, բայց ձեր սեփական նմուշների հետ կապված խնդիրներ ունեք, ապա ամենայն հավանականությամբ լուծումը կլինի ֆայլերի նմուշի արագության փոփոխումը, որը կհամապատասխանի PyGame- ի 22, 050khz նմուշի արագությանը և 16 բիթ խորությանը: Դուք կարող եք դա անել Audacity կամ աուդիո խմբագրման ցանկացած այլ ծրագիր: Նրանք պետք է կատարյալ աշխատեն այնտեղից:

Քայլ 5: Թիվի բարձիկի տեղեկանք:

Լավ, շատ բան է կատարվում սեքվենսերների ներսում, ավելին, քան ես ի սկզբանե մտքում ունեի, ուստի ես բավականին սեղմվեցի Համարների բարձիկի վրա `համապատասխանեցնելով ավելացված ֆունկցիոնալությանը: Սա նկատի ունենալով ՝ Աստղանիշը * և Pամանակաշրջանը: երկուսն էլ գործում են որպես գործառնական ստեղներ:

ՏԵEFԵԿՈԹՅՈՆ

ՍԱՀՄԱՆԱՓՈԽՈԹՅՈՆՆԵՐ

[8] - Միացնել և անջատել Metronome- ը

[9] - Միացնել և անջատել ձայնագրման ռեժիմը

[Մուտքագրեք] - Խաղալ/դադարեցնել հաջորդականությունը

[0] - Currentնջել ընթացիկ նշումը հաջորդականությամբ

[Num Lock and *] - Անջատեք

[MIDI Նշում և.] - Մի՛ հաշվեք զույգ թվեր

TԱՄԱՆԱԿԱՅԻՆ ԳՈՐՈՆԵՈԹՅՈՆՆԵՐ

[+] - Դասընթացի արագացում BPM

[-] - Դասընթացը դանդաղեցրեք BPM- ը

[+ և *] - Արագ արագացրեք BPM- ը

[- և *] - արագ դանդաղեցրեք BPM- ը

[+ և.] - Fine Speed Up BPM

[- և.] - Fine Slow Down BPM

ՀԵՏԱՊԵՏՈԹՅԱՆ Ֆունկցիաներ

[1-6] Հիշենք 1-6-րդ հաջորդականությունը

[1-6 և.] Պահել հաջորդականությունը 1-6

[0 և.] Մաքրել ընթացիկ հաջորդականությունը

Նմուշի թղթապանակների փոխում

[1-9 և *]-Փոխել դեպի Թղթապանակի 1-9 օրինակների փաթեթ

[1-9 և * և.]-Փոխեք դեպի Թղթապանակի օրինակ 10-18

ՀԵՏԵՎԱՆՔԱՅԻՆ ԽՈՐՀՈՐԴՆԵՐ

-Մաքրել ընթացիկ հաջորդականությունը [0 և.] Եվ պահել այն ցանկացած հաջորդականությամբ, որը ցանկանում եք մաքրել հիշողությունից:

-Հիշեք հաջորդականությունը և պահեք այն այլ համարի վրա `այն պատճենելու համար:

Խորհուրդ ենք տալիս: