Სარჩევი:

სხვა MIDI CV ყუთში: 7 ნაბიჯი (სურათებით)
სხვა MIDI CV ყუთში: 7 ნაბიჯი (სურათებით)

ვიდეო: სხვა MIDI CV ყუთში: 7 ნაბიჯი (სურათებით)

ვიდეო: სხვა MIDI CV ყუთში: 7 ნაბიჯი (სურათებით)
ვიდეო: დახტის 5 მაიმუნი ფერად საწოლზე, სიმღერა მაიმუნებზე 2024, ნოემბერი
Anonim
სხვა MIDI to CV ყუთი
სხვა MIDI to CV ყუთი

სხვა MIDI to CV ყუთი არის პროექტი, რომელიც შევიმუშავე, როდესაც Korg MS10- მა დამიკაკუნა კარი და მოხდა ჩემს სტუდიაში. ვინაიდან ჩემი კონფიგურაცია მჭიდროდ უკავშირდება MIDI– ს ყველა ინსტრუმენტის ავტომატიზირებასა და სინქრონიზაციას, როდესაც MS10 ვიყიდე, პირველი პრობლემა, რომლის წინაშეც აღმოვჩნდი, იყო როგორ განვახორციელო ასეთი კონტროლი.

Korg MS20/10 არ არის MIDI– ის განსახორციელებლად ყველაზე მარტივი სინთეზი: უპირველეს ყოვლისა, ისინი ეყრდნობიან Hz/V კონტროლს (ხაზოვანი კორელაცია საკონტროლო ძაბვასა და შენიშვნის სიხშირეს შორის), ოქტ/ვ -ის ნაცვლად (1 ვ ოქტავაზე); მეორე, შენიშვნის გასააქტიურებლად თქვენ უნდა გამოაგზავნოთ უარყოფითი კარიბჭის სიგნალი და შემოკლებული შეყვანა მიწაზე (S-Trig) და არა +5 V სიგნალი (V-trig).

დღესდღეობით არსებობს სხვადასხვა სახის კომერციული გადაწყვეტა ამგვარი ინსტრუმენტების გასაკონტროლებლად (ანუ Arturia Beatstep Pro, Korg SQ-1, Kenton Solo), მაგრამ მე ვარ იაფი ნაძირალა და 100 ევროც კი ძალიან ბევრია "არ ჟღერს" მოწყობილობისთვის:).

აი, მაშინ ჩვენ ვართ: ნება მომეცით გაჩვენოთ, თუ როგორ უნდა ავაშენოთ დაბალი ბიუჯეტის MIDI CV ყუთი, რათა გავაკონტროლოთ/ავტომატიზიროთ MIDI წინასწარი სინთეზი, კარიბჭე, სიჩქარე და გათიშვის სიხშირე გარე MIDI კონტროლერთან (კლავიატურა, DAW, მიმდევრი ან სხვა) რა

"რაც შეეხება ახალ MS20 მინი -ს?"

როგორც თითქმის ყველამ იცის, ახალი MS20 რეალურად MIDI მზადაა: IN 5 პოლუსიანი MIDI კონექტორით და IN/OUT USB კონექტორით.

”ასე რომ, თუ მე მაქვს MS20 მინი ეს საქმე უსარგებლოა!”

ისე, არა MS20 mini ამოიცნობს მხოლოდ შეტყობინებების ჩართვას/გამორთვას და კლავიატურა არ არის მგრძნობიარე სიჩქარის მიმართ. ამის გადალახვა შეუძლებელია MS10/20 რთველის ან მინი კლავიატურის საშუალებით, მაგრამ midi ყუთით და სიჩქარისადმი მგრძნობიარე კლავიატურით თქვენ ოქროსფერი ხართ. გარდა ამისა, MIDI ყუთით თქვენ შეგიძლიათ ავტომატიზირდეს ფილტრის გათიშვა (ან ნებისმიერი სხვა ძაბვის კონტროლირებადი პარამეტრი) ან მისი მოდულირება შემომავალი MIDI ჩანაწერით სიჩქარეზე. ისევ და ისევ, ერთადერთი MIDI არხი MS20 mini პასუხობს არხს 1. ამ ყუთით თქვენ შეგიძლიათ გადალახოთ ეს ზღვარიც.

"რა მოხდება, თუ მე მაქვს Oct/V სინთეზი?"

Არაა პრობლემა! კოდი, რომელიც მე დავწერე, თავსებადია Oct/V სინთეზატორებთან (დატესტილი არ ვარ, მაგრამ დარწმუნებული ვარ, რომ ის იმუშავებს ყუთში;)).

Ნაბიჯი 1: !! სიფრთხილის შენიშვნა - პასუხისმგებლობის შეზღუდვა

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

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

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

Შენ გაგაფრთხილეს!

ნაბიჯი 2: აპარატურის ინჟინერია

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

- მოედანზე, pwm გამომუშავების ანალოგიურ ძაბვად გადაქცევით, რათა VCO მართოს ციფრულიდან ანალოგურ გადამყვანად (DAC)

- სიჩქარე, pwm გამომავალი ფილტრაციით, რათა VCA მართოთ მარტივი RC ფილტრით

- გაფილტვრის შეწყვეტის სიხშირე, pwm გამომავალი ფილტრაციით, რათა მართოთ VCF მარტივი RC ფილტრით

- კარიბჭე, პირდაპირ ციფრულიდან V-trig- ის შემთხვევაში (დააყენეთ 1Kohm სერიაში გამომავალი დენის გადინების შესამცირებლად) ან მარტივი pnp ტრანზისტორით გადართეთ ციფრულიდან (იხილეთ სქემატური სქემა თანდართულ სქემაში) რა

Arduino– ს არ შეუძლია გამოუშვას უწყვეტი ძაბვები, მაგრამ 0/+5 V იმპულსები სხვადასხვა პერიოდებით (PWM). ჩვენ გვჭირდება ციფრულიდან ანალოგურ კონვერტორებზე (DAC) ქოთნისთვის. RC ფილტრები არის ყველაზე მარტივი DAC, რომლის მოფიქრებაც შემიძლია. RC ფილტრი კარგია ძაბვის კონტროლირებადი გამაძლიერებლისა და ფილტრისთვის (VCA და VCF). RC ფილტრები ისეა მორგებული, რომ გამოიწვიოს ჩამკეტის სიხშირე <20 Hz (ყველაზე დაბალი მოსმენილი სიხშირე).

მე ჩავატარე ტესტი დაბალი სიმძლავრის არა პოლარიზებული კონდენსატორებით და დავასრულე 0,1uF სიმძლავრის ღირებულებით, რომ საუკეთესო იყოს. კარგად გამოსცადე MS20 MKII.

სამწუხაროდ, ჩვენ არ შეგვიძლია დავეყრდნოთ RC ფილტრს ძაბვის კონტროლირებადი ოსცილატორის (VCO) მართვისათვის, ვინაიდან ის საკმარისად ზუსტი არ იქნება (Hz/V მასშტაბით, ქვედა ბოლოში ორი ადიადენტური ნახევარტონი განსხვავდება 0.02V– ზე ნაკლები; V– ში /ოქტ ორი მიმდებარე ნახევარგამოყოფა განსხვავდება 0.083 ვ); ჩვენ ვაპირებთ გამოვიყენოთ IC DAC (MPC4725) ამისათვის.

ცნობილი ლიმიტები

დისკის ძაბვის შეზღუდვა 5 ვ -მდე (არდუინოს გამომავალი ძაბვა), სრული 0 -დან 5 ვ -მდე დიაპაზონი დაფარულია სიჩქარისთვის; შეწყვეტა ნახევრად დაფარულია (-5V +5V); VCO დიაპაზონი ნაწილობრივ არის დაფარული იმის გამო, რომ Hz/V- ში ძაბვა 8 V საჭირო იქნება 440 Hz A4- ის მისაღწევად. 5V გამომავალი ლიმიტით ჩვენ შეგვიძლია მოვათავსოთ ოსცილატორი D4 სიხშირეზე Hz/V- ში.

ნაბიჯი 3: კომპონენტების სია

კომპონენტების სია
კომპონენტების სია
კომპონენტების სია
კომპონენტების სია
კომპონენტების სია
კომპონენტების სია

თქვენ გჭირდებათ:

1X Arduino UNO (ან ნანო)

1X MPC4725 DAC დაფა

4X 1/8 "ან 1/4" მონო კონექტორები

1X MIDI კონექტორი

ოპტოქუპლერი 1X 6N138

1X 1N4148 დიოდი

1X 220 ohm 1/4 W რეზისტორი

1X 470 ohm 1/4 W რეზისტორი

1X 10K ohm 1/4 W რეზისტორი

4X 1K ohm 1/4 W წინააღმდეგობა

2X 0.1 uF კონდენსატორი

1X BC547 pnp ტრანზისტორი (S-trig- ის შემთხვევაში)

1X ABS ყუთი (მინიმუმ 55 x 70 x 100 მმ)

… და აშკარად პურის დაფა ან პერფორდი, გასაყიდი რკინა, შესაკრავი მავთულები და კაბელები (2 მეტრი 28 AWG უნდა იყოს საკმარისი).

გაითვალისწინეთ, რომ ზემოთ მოცემულ სურათებში ჩემი პროტოტიპი ათავსებს 100 uF ელექტროლიტ თავსახურს, მაგრამ ისინი ძალიან ნელია სიმძლავრის დატენვის დროის გამო. ტევადობა 0.1uF არის სწორი არჩევანი.

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

ნაბიჯი 4: კავშირები/სქემები

კავშირები/სქემები
კავშირები/სქემები
კავშირები/სქემები
კავშირები/სქემები
კავშირები/სქემები
კავშირები/სქემები

MIDI IN

MIDI IN წრე არის მარტივი და კარგად აღწერილი ქსელში. მიიღეთ ეს შესანიშნავი ინსტრუქცია MIDI და Arduino– ს ამანდა გასაიის მიერ, მაგალითად. მე მეექვსე სქემატური გავაკეთე ამ საკითხზე მაინც.

გაითვალისწინეთ, რომ მე ჩავრთე ჩამრთველი MIDI IN სქემაში (გადართვა 1): ეს აუცილებელია Arduino– ში ახალი ესკიზის ატვირთვისას, რადგან ოპტო ხელს უშლის RX ხაზს შემომავალი midi შეტყობინებების გარეშეც კი. ესკიზის ატვირთვამდე თქვენ უნდა გახსნათ გადამრთველი, წინააღმდეგ შემთხვევაში IDE ვერ ახერხებს ახალი ესკიზის ატვირთვას.

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

DAC, RC ფილტრი, სინთეზატორი

DAC, RC ფილტრებისა და Synth– ის კავშირი (სიმაღლე, კარიბჭე და სიჩქარე) ნაჩვენებია დიაგრამაზე ზემოთ. ცნობისთვის ავიღე Korg MS20 პაჩ პანელი, მაგრამ ყველაფერი გამოვცადე MS10- ზეც. სიჩქარის CV– ს პირდაპირი კავშირი VCA– ს „პირველადი მომატების“პაჩ წერტილთან არანაირი გავლენა არ აქვს (მე ეს უნდა გავითავისო შემდგომში), მაგრამ თუ მას დაუკავშირებთ „სულ“პაჩ წერტილს და აამაღლებთ თქვენს საერთო გარე ქოთნებს (MG/T. EXT), თქვენ მოისმენთ სასიამოვნო ტონის ვარიაციებს, როგორც შენიშვნის სიჩქარის ფუნქცია.

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

გაითვალისწინეთ, რომ 100 uF ელექტროლიტური თავსახურის სქემაში მოხსენიებულია, მაგრამ ისინი ძალიან ნელია სიმძლავრის დატენვის დროის გამო. არაპოლარიზებული, 0.1uF ქუდები სწორი არჩევანია.

კარიბჭე გარეთ

იმ შემთხვევაში, თუ თქვენ აპირებთ V-Trig (ძაბვის გამომწვევი) სიგნალებთან თავსებადი სინთის თანმიმდევრობას, 1k ohm სერიის რეზისტორი მიმდინარე დრენაჟის შესამცირებლად საკმარისი იქნება; S-Trig (გადამრთველის გამომწვევი) სინთეზის შემთხვევაში, შეგიძლიათ გამოიყენოთ მარტივი PNP გადართვის წრე (იხ. თანდართული სქემა).

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

პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა

ვცდილობდი ესკიზი მაქსიმალურად მკაფიო და "წასაკითხი" ყოფილიყო.

მე ვიმუშავე უბრალო კალკზე, რომელიც აღმოვაჩინე აქ ძაბვის Vs შენიშვნა# მრუდის დასადგენად და პირდაპირ მიკროკონტროლერის განტოლების გამოსაყენებლად. განტოლება ნაჩვენებია დიაგრამაზე ზემოთ. მე გამოვიყენე C2, როგორც საცნობარო ჩანაწერი Arp/Korg– ის შესაბამისი ძაბვის V შენიშვნის მიმართების მისაღებად (C0 - 0.25V, C1 - 0.5V, C2 - 1V, C3 - 2V, C4 - 4V, C5 - 8V და ასე შემდეგ).

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

ჩვენ ვაპირებთ გავზარდოთ ტაიმერის/მრიცხველის pwm სიხშირე, რათა შემცირდეს გამომავალი ძაბვის ტალღის შემცირება (ადვილია როგორც კოდის ხაზი).

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

თქვენ გჭირდებათ სპარკფუნის "Adafruit_MCP4725.h" და ორმოცდაშვიდი ეფექტის/ფრანსუა ბესტის "MIDI.h" ბიბლიოთეკების შესადგენად! (დიდი მადლობა ამ ადამიანებს: მათი ძალისხმევის გარეშე ეს პროექტი არასოდეს განხორციელდებოდა!).

მე ვივარაუდებ, რომ თქვენ გაქვთ Arduino IDE თქვენს კომპიუტერში და თქვენ იცით, როგორ ჩატვირთოთ ესკიზი თქვენს Arduino დაფაზე.

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

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

ნაბიჯი 6: პრობლემების მოგვარება

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

1. დარწმუნდით, რომ Arduino სწორად იღებს MIDI შეტყობინებებს

შეამოწმეთ გამომავალი არხი, რომელსაც კლავიატურა ან DAW ან Sequencer აგზავნის MIDI შეტყობინებებს. Arduino სტანდარტულად უსმენს 1 არხს. ატვირთეთ "TEST_MIDI_IN.ino" შემომავალი ჩანაწერის ON შეტყობინების წასაკითხად.

2. ორჯერ შეამოწმეთ თქვენი გაყვანილობა

… ან კიდევ უკეთესი: სამჯერ შეამოწმეთ ისინი! დაუთმეთ დრო ამას.

3. შეამოწმეთ DAC მისამართი და გამომავალი

DAC შეიძლება დაყენებული იყოს მონაცემების მისაღებად სხვა მისამართზე, ვიდრე ესკიზში მითითებული. შეამოწმეთ მისამართი გაშვებული "I2C_scanner.ino". თუ მოხდა შეცდომა "მოწყობილობა არ მოიძებნა", შეამოწმეთ თქვენი DAC გაყვანილობა (SDA და SCL შენატანები განსხვავებულია Arduino დაფებზე!). თუ თქვენ გაქვთ ოსცილოკოპი (თუნდაც 15 ევროს ციფრული ოსცილოსკოპი არის საკმარისი… და სახალისო სათამაშო!) თქვენ შეგიძლიათ შეამოწმოთ თქვენი DAC– ის გამომუშავება DAC ბიბლიოთეკის ინსტალაციასთან ერთად სამკუთხედის ტალღის გენერატორის მაგალითის ატვირთვით.

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

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

ეს რაღაც ჩემთვის უაზროდ ჟღერს !?

ეს არ არის რეალური საკითხი: Hz/V კონტროლისთვის მიღებული განტოლება არის "იდეალური". იდეალური ქცევიდან გარკვეული გადახრა შეიძლება გაიზარდოს +5V– დან, რომელსაც თქვენ ამარაგებთ არა 5.000V– დან, DAC– დან და თავად ინსტრუმენტიდან. ამ პრობლემის გადასაჭრელად, თქვენ უნდა იმოქმედოთ სინთეზური მელოდიის/სრულყოფილი პოტენომეტრის გამოყენებით და "voil" სრულყოფილად მორგებული MIDI კონტროლით;)

ნაბიჯი 7: სასარგებლო ბმულები

en.wikipedia.org/wiki/CV/gate

www.instructables.com/id/Send-and-Receive-…

www.songstuff.com/recording/article/midi_me…

pages.mtu.edu/~suits/NoteFreqCalcs.html

espace-lab.org/activites/projets/en-arduin…

learn.sparkfun.com/tutorials/midi-shield-h…

provideyourown.com/2011/analogwrite-conver…

www.midi.org/specifications/item/table-3-c…

arduino-info.wikispaces.com/Arduino-PWM-Fr…

sim.okawa-denshi.jp/en/PWMtool.php

გირჩევთ: