Სარჩევი:

Raspberry Pi Drum Machine: 5 ნაბიჯი
Raspberry Pi Drum Machine: 5 ნაბიჯი

ვიდეო: Raspberry Pi Drum Machine: 5 ნაბიჯი

ვიდეო: Raspberry Pi Drum Machine: 5 ნაბიჯი
ვიდეო: Raspberry pi 5 inch HDMI Screen Installation | #Shorts 2024, ივლისი
Anonim
Raspberry Pi Drum Machine
Raspberry Pi Drum Machine

Sample Sequencer, Raspberry Pi + Python– ის საშუალებით.

მიმდევრობას აქვს 4 მრავალხმიანობა და საშუალებას აძლევს მომხმარებელს შეინახოს და მიუთითოს 6 განსხვავებული თანმიმდევრობა, რომელთაც შეუძლიათ რეალურ დროში მონაცვლეობა და მხარს უჭერს სხვადასხვა ნიმუშებს შორის შეცვლის შესაძლებლობას.

მე დავწერე სცენარი ისე, რომ სრულად ფუნქციონირებდეს ნებისმიერ MIDI კონტროლერს და ბგერებს. მე ვიყენებ 18 სხვადასხვა ხმის ბანკს, თითოეული 16 ნიმუშს, თუმცა ბანკების და ნიმუშების დამატება ან გამოკლება ადვილია და არ საჭიროებს ბევრ მოდიფიკაციას. თუ რაიმე პრობლემა შეგექმნათ, გამომიგზავნეთ ელ.წერილი: [email protected]

იპოვეთ კოდი GitHub– ზე:

გთხოვთ, შემატყობინოთ, თუ იყენებთ მას, განსაკუთრებით თუ თქვენ იღებთ ვიდეოს მასთან ერთად!

ნაბიჯი 1: დამოკიდებულებები

ეს პროგრამა მოითხოვს შემდეგ (არა ჩაშენებულ) პითონის მოდულებს:

მიდო

პიგამეტი

დაბუჟებული

ამასთან, მიდო აყენებს გარკვეულ გართულებებს, რადგან მიდო თავად მოითხოვს რამდენიმე დამოკიდებულებას. იმისათვის, რომ დარწმუნდეთ, რომ ყველა მათგანი დაინსტალირებულია, უბრალოდ ჩაწერეთ შემდეგი ბრძანებები თქვენი Raspberry Pi ტერმინალში (გამოტოვეთ '$') და ყველაფერი კარგად იქნება. სხვა მოდულების დაყენება შესაძლებელია ნორმალურად.

$ sudo apt-get განახლება

$ sudo apt-get install install-essential

$ sudo apt-get დააინსტალირეთ libasound-dev ან libasound2-dev

$ sudo apt-get დააინსტალირეთ 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 შეყვანის მნიშვნელობების კონფიგურაცია

ძირითად პითონის სკრიპტში არის მასივი, რომელსაც ეწოდება noteList, რომელიც შედგება 16 მთელი რიცხვისგან (სტრიქონი 165.) ეს არის MIDI შენიშვნის მნიშვნელობები, რომელსაც ჩვენი კონტროლერი უგზავნის Pi- ს ბგერების გასააქტიურებლად. ყველა midi კონტროლერი განსხვავებულია, ასე რომ, თუ თქვენ ასევე არ გაქვთ Akai LPD8, თქვენ სავარაუდოდ დაგჭირდებათ ამ მნიშვნელობების შეცვლა თქვენი მოწყობილობის შესატყვისად.

Github– ის რეპო ასევე მოიცავს სხვა სკრიპტს სახელწოდებით "midihelp.py", რომელიც სპეციალურად ამ მიზნით არის შექმნილი! ყველაფერი რაც ის აკეთებს არის დაბეჭდვის შემავალი მნიშვნელობები პირველი MIDI კონტროლერისგან, რომელსაც კომპიუტერი ამოიცნობს კონსოლზე. თქვენ მხოლოდ უნდა შეცვალოთ ეს მნიშვნელობები მასივში, თუ ისინი განსხვავდება შენიშვნებში შეტანილი მნიშვნელობებისაგან.

შენიშვნების თანმიმდევრობა ასევე უკავშირდება ხმის ეფექტს თითოეულ საქაღალდეში, ასე რომ გაითვალისწინეთ ისიც.

ნაბიჯი 3: დაამატეთ დამატებითი საქაღალდეები ნიმუშებით

სკრიპტის ნიმუშების ნაკრები ინახება საქაღალდეების მეშვეობით იმავე დირექტორიაში, ზუსტად ისეა მითითებული, თუ როგორ არის 808 ნაკრები GitHub ფაილში. ამ გზით მე შემიძლია ყველა სახის სხვადასხვა ნიმუშის ნაკრები შენახული საქაღალდეებში, რომლებიც ადვილად ორგანიზებულია და შეიცვლება.

სკრიპტში ერთადერთი რაც შეიცვლება არის ცვლადი foldNum რომელიც უბრალოდ ეუბნება სკრიპტს რამდენი საქაღალდის ნიმუში არსებობს. ამჟამად სკრიპტს აქვს foldNum დაყენებული ერთზე, რადგან ერთი და იგივე დირექტორიაში არის მხოლოდ ერთი ქვესაქაღალდე (808 ნაკრები.) მაქსიმალური საქაღალდეები, რომლებსაც სკრიპტი ამუშავებს ამ მომენტში არის 18, რაც მე რამდენს ვიყენებ, თუმცა ეს საკმაოდ უმნიშვნელოა შეცვალე ეს, შემატყობინე თუ დახმარება გჭირდება.

საქაღალდეების სახელებს ნამდვილად არ აქვს მნიშვნელობა (რამდენადაც ისინი ყველა განსხვავებულია), რადგან სკრიპტი კითხულობს საქაღალდეების რაოდენობას იმავე დირექტორიაში და იჭერს გზებს ისე. თავად ფაილების სახელები მნიშვნელოვანია თუმცა, უფრო მეტად შემდეგ ეტაპზე.

ნაბიჯი 4: დაამატეთ და დააკონფიგურირეთ ახალი ნიმუშები ახალ საქაღალდეებში

დაამატეთ და დააკონფიგურირეთ დამატებითი ნიმუშები ახალ საქაღალდეებში
დაამატეთ და დააკონფიგურირეთ დამატებითი ნიმუშები ახალ საქაღალდეებში

ხმები იტვირთება ნიმუშში საქაღალდეების მეშვეობით იმავე დირექტორიაში, რომელიც შეიცავს.wav ფაილებს, სახელებით დანომრილი 0-15-დან. ამის მაგალითისთვის იხილეთ ჩართული 808 საქაღალდე. თითოეული ქვესაქაღალდე ნიმუშებით უნდა გამოიყურებოდეს ერთმანეთის იდენტური.

მასივის noteList- ში MIDI შეყვანის ინდექსი ზუსტად შეესაბამება.wav ფაილის სახელს.

Მაგალითად:

  • როდესაც თქვენ ჩართავთ MIDI ნოტს, რომელიც ინახება noteList [0] - ში, wav ფაილი 0.wav ითამაშებს.
  • როდესაც თქვენ ჩართავთ MIDI შენიშვნას, რომელიც ინახება noteList [8] - ში, wav ფაილი 8.wav ითამაშებს.

მე ეს ნაწილობრივ გავაკეთე ისე, რომ თითოეული MIDI კონტროლერი ადვილად დაყენებულიყო სკრიპტთან მუშაობისთვის, ასევე მე შემიძლია ადვილად განვავრცო ან შევზღუდო ნიმუში და შეყვანის ნომერი, ასევე მოვაწყო ფაილები და სკრიპტი ისე დარტყმის ბარაბანი ბგერები, მაგალითად, ყოველთვის შეინახებოდა 0.wav- ის სახით და გააქტიურდებოდა პირველი MIDI ნოტით.

მე შევარჩიე 16 მნიშვნელობა გარკვეულწილად თვითნებურად, რომ შეესაბამებოდეს ჩემს კონტროლერის 16 შეყვანას, ასე რომ, თუ გირჩევნიათ მიმდევრობის გაკეთება მხოლოდ 1 ნიმუშით, ან სხვა მრავალით, ყველაფერი რაც თქვენ გჭირდებათ არის აუდიო ფაილების ნუმერაცია შესაბამისად და გამოკლება ან დამატება noteList მასივში შენახული რიცხვების შესატყვისად.

თუ ჩართული ნაკრები 808 მუშაობს სწორად, მაგრამ თქვენ გაქვთ პრობლემა საკუთარ ნიმუშებთან, გამოსავალი სავარაუდოდ იქნება ფაილების შერჩევის მაჩვენებლის შეცვლა PyGame– ის 22, 050khz ნიმუშის სიხშირისა და 16 – იანი სიღრმის მიხედვით. ამის გაკეთება შეგიძლიათ Audacity– ში ნებისმიერი სხვა აუდიო რედაქტირების პროგრამა. მათ იქიდან მშვენივრად უნდა იმუშაონ!

ნაბიჯი 5: ნომრის ბალიშის მითითება

კარგი, ბევრი რამე ხდება მიმდევართა შიგნით, იმაზე მეტი ვიდრე თავიდან მქონდა მხედველობაში, ასე რომ, მე საკმაოდ შევიჭერი ნომრის ბალიშზე, რათა შეესაბამებოდეს გაზრდილ ფუნქციონირებას. ამის გათვალისწინებით, ვარსკვლავი * და პერიოდი. ორივე ფუნქციონირებს როგორც გასაღებები.

რეფერენცია

ძირითადი ფუნქციები

[8] - ჩართეთ და გამორთეთ მეტრონომი

[9] - ჩაწერის რეჟიმის ჩართვა და გამორთვა

[შეიყვანეთ] - თანმიმდევრობის დაკვრა/პაუზა

[0] - წაშალეთ მიმდინარე შენიშვნა თანმიმდევრობით

[Num Lock და *] - დახურეთ

[MIDI შენიშვნა და.] - ნუ კვანტირებ ლუწი რიცხვებამდე

TEMPO ფუნქციები

[+] - კურსის დაჩქარება BPM

[-] - კურსის შენელება BPM

[+ და *] - სწრაფი სიჩქარე BPM

[- და *] - სწრაფად შეანელეთ BPM

[+ და.] - FPM Speed Up BPM

[- და.] - Fine Slow Down BPM

მიმდევრობის ფუნქციები

[1-6] გავიხსენოთ თანმიმდევრობა 1-6

[1-6 და.] მაღაზიის მიმდევრობა 1-6

[0 და.] მიმდინარე თანმიმდევრობის გასუფთავება

ნიმუშის საქაღალდეების შეცვლა

[1-9 და *]-შეცვალეთ Sample Pack საქაღალდეებში 1-9

[1-9 და * და.]-შეცვალეთ ნიმუშის პაკეტი საქაღალდეებში 10-18

თანმიმდევრობის რჩევები:

-გაასუფთავეთ მიმდინარე თანმიმდევრობა [0 და.] და შეინახეთ იგი ნებისმიერი თანმიმდევრობით, რომლის ამოღებაც გსურთ მეხსიერებიდან.

-გაიხსენეთ თანმიმდევრობა და შეინახეთ სხვა ნომერზე, რომ დააკოპიროთ.

გირჩევთ: