Სარჩევი:

Arduino Multi-track MIDI Loop Station: 6 ნაბიჯი
Arduino Multi-track MIDI Loop Station: 6 ნაბიჯი

ვიდეო: Arduino Multi-track MIDI Loop Station: 6 ნაბიჯი

ვიდეო: Arduino Multi-track MIDI Loop Station: 6 ნაბიჯი
ვიდეო: Arduino Tutorial - Arduino Starting From Zero - 6 - Setup & Loop 2024, ნოემბერი
Anonim
Arduino Multi-track MIDI მარყუჟის სადგური
Arduino Multi-track MIDI მარყუჟის სადგური
Arduino Multi-track MIDI მარყუჟის სადგური
Arduino Multi-track MIDI მარყუჟის სადგური
Arduino Multi-track MIDI მარყუჟის სადგური
Arduino Multi-track MIDI მარყუჟის სადგური

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

არსებობს უამრავი აუდიოჩამწერი მარყუჟის სადგური, როგორც გამოყოფილი ტექნიკის სახით (თითქმის ყველა გიტარის პედლის მწარმოებელს აქვს საკუთარი პროდუქტი), ასევე კომპიუტერული პროგრამული უზრუნველყოფა (შესანიშნავი Linux Sooper Looper ან Windows Mobius, ყველაზე ცნობილი რომლების დასახელებისთვის). მე მხოლოდ რამდენიმე პროექტი ვიპოვე წვრილმანი არა-აუდიო, მაგრამ MIDI მარყუჟების შესახებ, რაც ნიშნავს MIDI მოვლენების ჩაწერის ინსტრუმენტს და მათ დაუყოვნებლივ თამაშს მარყუჟში; ამ პროექტების უმეტესობა (ყველა მათგანი, მე უნდა ვთქვა) მიტოვებული ან დაკარგულია … კარგი, აქ ჩვენ ვართ სრული პროექტი ყველასთვის!

ეს Arduino MIDI მარყუჟის სადგური უბრალოდ თვალყურს ადევნებს შემომავალი MIDI მოვლენებს და ათამაშებს მათ. თქვენ მხოლოდ უნდა დააჭიროთ ჩანაწერის პედლს, შექმნათ თქვენი საუკეთესო რიფი ოდესმე და შეაჩეროთ ჩაწერა პედლის ხელახლა დაჭერით. სუპერ ადვილი:)

ეს პროექტი დაფუძნებულია ღია აპარატურის ადვილად მოძიებაზე (Arduino DUE), პროგრამულ უზრუნველყოფაზე (ჩემი საკუთარი firmware და Arduino IDE) და მისი მორგება შესაძლებელია თქვენი შეხედულებისამებრ.

Მოდი გავაკეთოთ ეს!

PS: დიახ, ეს არის ძალიან იაფი!

ნაბიჯი 1: შეზღუდვები

სანამ დაიწყება პროექტისთვის ტექნიკის ნაწილების შეძენა, ნება მომეცით გითხრათ, რა არის მისი ლიმიტები, ასე რომ თქვენ შეგიძლიათ გადაწყვიტოთ წინ წასვლა ან აქ გაჩერება.

- აპარატურის შეზღუდვების გამო (არსებითად Aduino DUE მეხსიერება), ფრაზის ნაგულისხმევი მაქსიმალური სიგრძე, რომლის ჩაწერაც შესაძლებელია, შემოიფარგლება 46 წამით.

- მარყუჟების შენახვა და დაკვრა შეუძლებელია დახურვის შემდეგ. თქვენ შეგიძლიათ გაგზავნოთ ისინი კომპიუტერზე და შეინახოთ ისინი.

- არ არსებობს შენიშვნების კვანტიზაცია.

- MIDI საათი არის მხარდაჭერილი, მაგრამ ამ ეტაპზე წინასწარი ეტაპზე.

- ჩაწერილი MIDI შეტყობინებები არის შენიშვნა, ჩანიშვნა გამორთული, კონტროლის ცვლილებები და მოედნის მოსახვევი; სხვა MIDI შეტყობინებები, როგორიცაა შეხების შემდეგ, პროგრამის შეცვლა, SysEx და ა.შ. იგნორირებულია.

- მაქსიმალური პოლიფონია სტანდარტულად არის 10 -ზე (ისევ, Aduino DUE მეხსიერების ლიმიტი).

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

თუ ამ შეზღუდვებით ცხოვრება გონივრულად გამოიყურება (და ეს ჩემთვისაა), თქვენ ძალიან კარგად გაატარებთ ამ საქმეს;)

ნაბიჯი 2: როგორ მუშაობს

MIDI მარყუჟის სადგური აქ ძალიან მარტივია. ის მუშაობს ისე, როგორც იმ აპარატურის აუდიო მარყუჟების სადგურები, რომლებსაც ყველა გიტარის პედლის მწარმოებელს აქვს საკუთარი კატალოგი.

1) შეარჩიეთ სიმღერა, სადაც გსურთ ჩაწეროთ თქვენი MIDI თანმიმდევრობა. ნაგულისხმევი სიმღერა "ერთი" არჩეულია, მაგრამ თქვენ შეგიძლიათ შეცვალოთ იგი ტრეკების ერთ ღილაკზე დაჭერით (თითო თითოეული ტრეკისთვის).

2) როდესაც პირველად დააჭერთ "REC" გადამრთველს/ფეხის პედლს, მარყუჟი ჩართულია. მწვანე LED ანათებს. ის დაელოდება სანამ თქვენი პირველი შენიშვნა მიიღება ფაქტობრივი თანმიმდევრობის/რიფის ჩაწერის დაწყებამდე.

3) თანმიმდევრობის დასრულების შემდეგ, კვლავ დააჭირეთ ღილაკს "REC"/ფეხის პედლები, რიფის რეალური სიგრძის დასადგენად. მწვანე LED განათება გამორთულია. მარყუჟი დაუყოვნებლივ დაიწყებს თქვენი MIDI თანმიმდევრობის რეპროდუცირებას. თუ მიაღწევთ მაქსიმალურ დროს, ჩაწერა ავტომატურად შეწყდება და თანმიმდევრობა დაიწყება მარყუჟში.

4) ახლა თქვენ შეგიძლიათ გადაწყვიტოთ გადატვირთოთ თქვენი თანმიმდევრობა მიმდინარე ტრასაზე ან შეარჩიოთ ახალი სიმღერა და ჩაწეროთ მასზე, "REC" გადამრთველის/ფეხის პედლის დაჭერით. ორივე შემთხვევაში ყვითელი LED ანათებს, მაშინაც კი, თუ ახალი ბილიკი ცარიელია, რადგან ეს არის "მონა" ბილიკი (მონა პირველი ჩაწერილი სიმღერის მონა). დააჭირეთ კვლავ, რომ შეაჩეროთ ზედმეტი გადახურება (ყვითელი LED ჩაქრება).

მათთვის, ვინც კომფორტულია აუდიო მარყუჟის სადგურებით, ამ MIDI პროგრესს ეწოდება "REC/PLAY/OVERDUB" და ერთადერთი მხარდაჭერილია.

თუ ნებისმიერ დროს ფიქრობთ, რომ თქვენი უახლესი გადატვირთვა არ არის კარგი, შეგიძლიათ წაშალოთ ის "გაუქმების" გადამრთველის/ფეხის პედლის დაჭერით. თქვენ შეგიძლიათ გაასუფთაოთ მთელი მიმდინარე სიმღერა "REC" პედლის დაჭერით 3 წამზე მეტხანს; თქვენ შეგიძლიათ აღადგინოთ მარყუჟი (პროგრამული უზრუნველყოფის გადატვირთვა) ერთდროულად დაჭერით პირველი სამი ტრეკის ღილაკი ან გაასუფთაოთ ყველა გამოყენებული ტრეკი.

ტრეკის დადუმება/მოხსნა შეგიძლიათ მიმდინარე ტრეკის ღილაკზე დაჭერით.

თქვენ შეგიძლიათ გააგზავნოთ პანიკა! შეტყობინება პანიკის ღილაკზე დაჭერით. თქვენ კი შეგიძლიათ გააგზავნოთ პანიკა! შეტყობინება პირველი ორი ტრეკის ღილაკზე ერთდროულად დაჭერით.

მარყუჟს აქვს ჩაშენებული მარტივი მეტრონომი: ჩანაწერი MIDI შეტყობინებაზე შენიშვნის ნომერზე "64" იგზავნება 100 BPM- ზე მე -10 არხზე (არხი, რომელსაც თქვენ, სავარაუდოდ, უსმენთ თქვენს დრამ -აპარატს). თქვენ შეგიძლიათ გაზარდოთ ან შეამციროთ ტემპი ოპტიკური კოდირების საშუალებით; ოპტიკური კოდირების გადამრთველის დაჭერით შეგიძლიათ ჩართოთ/გამორთოთ მეტრონომი. მიაქციეთ ყურადღება, რომ თქვენი დრამის მანქანა უნდა იყოს ჩართული ხმის (მახე, ბასი ან ნებისმიერი სხვა ხმა) MIDI შენიშვნის "64" მიღებისას, წინააღმდეგ შემთხვევაში მეტრონომი მუნჯი იქნება.

ამ MIDI მარყუჟის შიშველი ვერსია შეიძლება შედგეს ერთი ფეხის გადამრთველით ჩაწერის დასაწყებად და შესაჩერებლად. გადამრთველის დაჭერა 3 წელზე მეტ ხანს ხელახლა იწყებს მარყუჟის სადგურს.

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

მნიშვნელოვანი შენიშვნა: ჩემს სურათებში არსებული ტექნიკა არის პროტოტიპი. მე გამოვიყენე მეტი ჯეკის სოკეტი ვიდრე საჭიროა მაგრამ მხოლოდ ოთხი ღილაკი ტრეკებისთვის. ეს იმიტომ ხდება, რომ როდესაც დავიწყე პროექტი, მე ბოლომდე არ ვიყავი დარწმუნებული, რა იქნებოდა საბოლოო მოთხოვნები.

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

ნაბიჯი 3: აპარატურა

ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა

მასალების ანგარიში:

სრული გამორჩეული 5 ტრეკიანი MIDI მარყუჟის სადგური

1x Arduino DUE

7x მომენტალური ღილაკი

1x პლასტიკური ქეისი (მე გამოვიყენე 150 x 110 x 70 მმ ქეისი)

2x 5 პინიანი DIN ქალი პანელის მთა MIDI სოკეტის კონექტორი

1x 6.3 მმ -იანი პანელის ჯეკის ბუდე

1x ორმაგი ორმხრივი 50x70 მმ პერფ დაფა

5x3 მმ LED (მწვანე)

1x 3 მმ LED (ყვითელი)

1x ოპტიკური კოდირება

1x H11L1 ოპტოქუპლერი

1x 1N4148 დიოდი

3x 1000 ohm რეზისტორები

3x 220 ohm რეზისტორები

10x 470 ohm რეზისტორები

რამდენიმე შესაკრავი მავთული, ზოგიერთი კაბელი, შესადუღებელი სადგური … და თავისუფალი დრო:)

პროექტის დასრულებისათვის საჭირო დრო: 6-9 საათი

რატომ არა გაერო?

პირველი ტესტები (და დაწყებული სამუშაო კოდი) დაიწერა "რეგულარულ" arduino UNO დაფაზე. ამ დაფას აქვს RAM- ის ლიმიტები, რამაც მაიძულა პოლიფონიის შემცირება "4" -მდე, მაქსიმალური ხანგრძლივობა 4 წამზე ნაკლები და გარჩევადობა 40 ms მაქსიმუმ. ეს მრავალარხიანი დამუშავების გარეშე. სიჩქარის თვალთვალის მოხსნით მეც შევძელი ჩაწერის დროის გაზრდა 7 წამამდე.

გაეროსთან ერთად შეგიძლიათ გააცნობიეროთ "მომუშავე" MIDI მარყუჟის სადგური, მაგრამ ძალიან შეზღუდული.

ნაბიჯი 4: პროგრამული უზრუნველყოფა

პროგრამული უზრუნველყოფა ძლიერ ეყრდნობა FortySevenEffects MIDI ბიბლიოთეკას. ეს ბიბლიოთეკა შესანიშნავია და ამგვარი პროექტების განხორციელებასაც კი შეძლებს ჩემნაირი არა კოდის მცოდნეებისთვის.

Arduino IDE და მისი საზოგადოება ამ "წარმატების" კიდევ ერთი მნიშვნელოვანი ნაწილია.

მე არ შევალ დეტალებში, თუ როგორ უნდა ატვირთო ესკიზი შენს არდუინოში DUE. თუ ეს არის თქვენი პირველი გამოცდილება arduino IDE– სთან ერთად, გთხოვთ წაიკითხოთ ეს ჯერ.

მე დავწერე კოდის ორი განსხვავებული ვერსია, ორი სრულიად განსხვავებული მიდგომის საფუძველზე.

1 ვერსიის მუშაობის პრინციპი ის არის, რომ Arduino DUE ჩანაწერის ან გადატვირთვის დროს ამოწმებს და ინახავს (არასტაბილურ) მეხსიერებაში მხარდაჭერილ MIDI მოვლენებს (შენიშვნა, გამორთვა, კონტროლის ცვლილება და მოქნევის მოხრა); დროის ღერძი კვანტიზირებულია 20 ms ნაბიჯში და მიღებული შეტყობინებები ინახება ამ სლოტებში შესაბამისად. თამაშის დროს, შენახული MIDI შეტყობინებები იგზავნება სინთეზში დროის კვანტირების შესაბამისად.

მე -2 ვერსიის მუშაობის პრინციპი არის "უბრალოდ" ჩაწეროთ შუალედური მოვლენა და დრო, როდესაც ეს მოვლენა უნდა დაიწყოს. ვერსიას 2 განსხვავებული ლიმიტები აქვს ვიდრე 1 ვერსიას (ჩამოთვლილია წინა საფეხურზე). სცადეთ ორივე და გამოიყენეთ ის, რაც თქვენთვის უკეთესად მუშაობს.

ასევე არსებობს წინასწარი საათის დამუშავება, მაგრამ მას დასჭირდება გარკვეული შესწორებები, რომ იმუშაოს ისე, როგორც უნდა. კოდი ვარაუდობს, რომ თქვენ ჩაწერთ 4/4 - 4 ბარის მარყუჟს (16 დარტყმა).

თქვენ შეგიძლიათ გამორთოთ გარე საათი მარყუჟის ჩართვისას "პანიკის" ღილაკზე დაჭერით.

კოდები აიტვირთება აქ. კომენტარები მოთავსებულია მათზე ისე, რომ თქვენ თქვენი სურვილისამებრ შეძლოთ ამ ფირმის დახვევა;)

ნაბიჯი 5: გაყვანილობა

გაყვანილობა
გაყვანილობა
გაყვანილობა
გაყვანილობა
გაყვანილობა
გაყვანილობა

MIDI IN და MIDI OUT სქემები მოცემულია თანდართულ სურათებში. გაითვალისწინეთ, რომ TX1 და RX1 გამოიყენება და არა TX0 და RX0.

Arduino DUE შეყვანის ქინძისთავები ვერ უმკლავდება 5V, მაგრამ 3.3V; ამიტომაც გამოიყენება H11L1 ოპტოქუპლერი უფრო გავრცელებული 6N138- ის ნაცვლად. მე მაქვს მტკიცებულება, რომ 6N138- ის გამოყენება ძაბვის გამყოფთან ერთად TX1- ზე გადასასვლელი სიგნალის ძაბვის შესამცირებლად, როგორც ჩემს პირველ პროტოტიპში, შეიძლება არასტაბილურად იმუშაოს ზოგიერთ პარამეტრში.

LED- ები უკავშირდება Arduino DUE გამომავალ ქინძისთავებს 470 Ohm რეზისტორების საშუალებით. თქვენ შეგიძლიათ გამოიყენოთ 1K ohm– მდე რეზისტორები, რათა შეამციროთ დენი LED– ებზე და შეამციროთ მათი სიკაშკაშე.

ღილაკები/ჩამრთველები/ჯეკები უშუალოდ უკავშირდება არდუინოს შესასვლელ ქინძისთავებს ესკიზში გააქტიურებული შეყვანის ამწევ რეზისტორების წყალობით. არ არის საჭირო გარე (მოხსნის) რეზისტორები.

ოპტიკური კოდირება უკავშირდება GND და +5V. ის მიდის Arduino– ს შესასვლელ ქინძისთავებთან, რომლებიც გადის 2 480 ohm რეზისტორზე, თითო თითო თითოეული ოპტიკური მონაცემისთვის.

Arduino DUE იკვებება უშუალოდ 5V პინიდან და დამყარებულია +5V DC ცენტრის საშუალებით.

ყველა საფუძველი არის დაკავშირებული თუ არა.

მიმაგრებულია მაგიდა, რომელსაც აქვს კავშირი არდუინოს ქინძისთავებიდან პერიფერიაზე IN/OUT. Arduino პინის ნომრები ასახავს ჩემს პროპტოტიპის აპარატურას და შეიძლება შემთხვევით გამოიყურებოდეს (ისინი რატომღაც …). თქვენ შეგიძლიათ მარტივად შეცვალოთ ესკიზის პინის ადგილმდებარეობა სურვილისამებრ;)

ნაბიჯი 6: რა მოხდება, თუ მე მაქვს ერთზე მეტი MIDI წყარო?

რა მოხდება, თუ მე მაქვს ერთზე მეტი MIDI წყარო?
რა მოხდება, თუ მე მაქვს ერთზე მეტი MIDI წყარო?

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

MIDI გადამრთველი არის პასიური მოწყობილობა, რომელიც ჩართავს MIDI წყაროს და გამორთავს ყველა სხვა წყაროს. ასე უბრალო.

MIDI გადამრთველის გული არის მრავალპოზიციური (ჩემი არის 6 პოზიცია), 2 ბოძზე გადამრთველი. ძალიან მნიშვნელოვანია, რომ ბოძების რაოდენობა იყოს "2", რადგან ყველა MIDI სოკეტი უნდა იყოს მთლიანად გაჭრილი, თუ არ არის არჩეული და არა სხვებთან კომუნიკაციაში. მიმაგრებულია სურათის სურათი, რომელიც მივხვდი ჩემივე გამოყენებისთვის.

ამ ბმულზე სქემა.

გირჩევთ: