สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: ออกแบบของคุณเอง
- ขั้นตอนที่ 2: การบัดกรีและการเดินสาย
- ขั้นตอนที่ 3: จากฮาร์ดแวร์สู่ซอฟต์แวร์
- ขั้นตอนที่ 4: MIDI ทำงานอย่างไร
- ขั้นตอนที่ 5: วิธีส่ง MIDI ผ่าน USB บน Arduino
- ขั้นตอนที่ 6: เวลาการเข้ารหัส
- ขั้นตอนที่ 7: รวบรวมสิ่งของของคุณเข้าด้วยกัน
วีดีโอ: Arduino MIDI Controller สำหรับ Aalto: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
ในฐานะนักดนตรีสมัครเล่น ฉันมักจะเปลี่ยนจาก Analog Synths เป็น VST
เมื่อฉันอยู่ในอารมณ์ "VST" ฉันกลายเป็นเครื่องดนตรีที่น่าอัศจรรย์อย่างหนึ่ง: Aalto VST ของ Madronalab
VST ที่น่าทึ่งนี้มีความยืดหยุ่นสูง ให้เสียงที่ดีมาก และใช้งานง่ายในราคาที่สมเหตุสมผล
อย่างไรก็ตาม ข้อจำกัดของ VST ของฉันคือ ฉันไม่สามารถแตะส่วนควบคุมได้จริงๆ และฉันต้องใช้เมาส์/แทร็กแพดขณะติดขัด ซึ่งไม่ใช่สิ่งที่ดีที่สุด ฉันเป็นเจ้าของตัวควบคุม MIDI แต่ปุ่มหมุนไม่ได้สะท้อนถึงอินเทอร์เฟซ Aalto จริง
ในทางกลับกัน ด้วยซินธิไซเซอร์แบบแยกส่วนหรือกึ่งโมดูลาร์ คุณไม่สามารถบันทึกแพตช์ของคุณได้จริงๆ ซึ่งทำให้ฉันรู้สึกหงุดหงิดเล็กน้อย
ดังนั้นฉันจึงต้องการสร้างตัวควบคุม MIDI แบบกำหนดเองสำหรับ Aalto ด้วยการออกแบบที่สะท้อนถึงอินเทอร์เฟซของ Aalto เพื่อควบคุมสิ่งที่เกี่ยวข้องมากที่สุด
ติดตามฉันบน Instagram เพื่อดูวิดีโอเพิ่มเติมเกี่ยวกับกระบวนการ: weirdest.worry
ฉันบน Spotify:
เสบียง
- 1 Arduino Mega- 14 Potentiometers (ฉันใช้พวกมัน -> PTV09A-4020F-B103) - เขียงหั่นขนมสำหรับต้นแบบ - ฉันขอแนะนำ Electro Cookie perfboard ซึ่งดีมากสำหรับการบัดกรี (อันสีน้ำเงินในภาพ) - ไม้อัด - การบัดกรี เหล็ก - เทปทองแดง - สายกระโดด
ขั้นตอนที่ 1: ออกแบบของคุณเอง
เริ่มจากอินเทอร์เฟซของ VST ฉันต้องการวางโครงร่างเลย์เอาต์ด้วยกระดาษเพื่อหาแบบที่ลงตัว
ฉันได้ออกแบบสิ่งนั้นด้วยซอฟต์แวร์ พิมพ์ออกมา และติดมันกับต้นแบบกระดาษแข็งเพื่อดูว่าเลย์เอาต์นั้นใช้งานได้จริงหรือไม่
ขั้นตอนนี้ขึ้นอยู่กับคุณจริงๆ - คุณสามารถออกแบบสำหรับกล่องดีบุกหรือกล่องไม้ขีดไฟ คำแนะนำของฉันคือการสร้างต้นแบบให้มากที่สุด
การทำกล่องไม้อัดให้เข้ากับแผงอิเล็กทรอนิกส์และการใช้แผ่นไม้อัดนั้นไม่ใช่สิ่งที่แม่นยำที่สุดเท่าที่เคยมีมา ยิ่งคุณทดสอบมากเท่าไหร่ก็ยิ่งดีเท่านั้น
ขั้นตอนที่ 2: การบัดกรีและการเดินสาย
เมื่อการออกแบบของคุณเสร็จสมบูรณ์ คุณก็เลือกอุปกรณ์อิเล็กทรอนิกส์ได้เลย!
หมายเหตุ: ฉันถือว่าคุณรู้วิธีการทำงานของสิ่งเหล่านี้ ดังนั้นฉันจะไม่ลงรายละเอียดเกี่ยวกับการบัดกรีและการเชื่อมต่อ
ในระยะนี้ ฉันใช้แผงเจาะรู 2 แผ่นสำหรับวงจรที่แยกจากกันสามวงจร: แผ่นสีเหลืองน่าจะเป็นเรื่องธรรมดาที่สุด ฉันไม่ค่อยชอบมันเท่าไหร่ แต่ฉันมีตัวสำรองอยู่ ก็เลยอยากจะใช้มันอยู่ดี อันสีฟ้าดีกว่าเยอะ และฉันขอแนะนำให้ใช้อันนั้นแทน ถ้าคุณเป็นมือใหม่อย่างฉัน
ในรูสีเหลืองหนึ่งรูมีขนาดเล็กมาก และทองแดงอยู่ด้านเดียวรอบๆ ทุกรู บัดกรีจะไม่ไหลผ่านรู
ในการออกแบบร่องรอยบนกระดานนี้ ฉันตัดสินใจเลือกใช้เทปทองแดงขนาด 5 มม. ฉันผ่าครึ่งแต่มันเป็นความคิดที่แย่มาก เนื่องจากมีน้ำหนักเบามากจึงรับมือได้แย่มาก และทั้ง GND และ VCC อาจไม่ได้รับการกระจายอย่างเหมาะสม ต้องใช้การทดสอบและการแก้ไขอย่างมาก และใช้เวลานานมาก
แต่เดี๋ยวก่อนมันดูดีมากในตอนท้าย
การเดินสายไฟเป็นเรื่องที่เจ็บปวดเล็กน้อย การจบบอร์ดนี้น่าจะเป็นเรื่องที่ต้องใช้เวลามากที่สุด
การใช้ perfboard สีน้ำเงิน (เรียกว่า Electro Cookie ใน Amazon) เป็นวิธีที่ดีกว่า: มีการเชื่อมต่อเหมือนเขียงหั่นขนม คุณสามารถหลีกเลี่ยงการใช้เทปทองแดงได้ เนื่องจากหมุดและสายไฟเชื่อมต่อแล้วเมื่อบัดกรีในบล็อกเดียวกัน
นอกจากนี้คุณยังสามารถสแนปมันด้วยมือของคุณเป็นชิ้นเล็ก ๆ ซึ่งดีกว่ามาก
รูมีขนาดใหญ่กว่าและเคลือบด้วยทองแดงซึ่งทำให้การบัดกรีรวดเร็วและสะอาดมาก
ใช้เวลา 3-4 วันในการทำกระดานสีเหลืองแผ่นแรก เพียงไม่กี่ชั่วโมงในการสร้างอีก 2 แผ่น
หมายเหตุเกี่ยวกับโพเทนชิโอมิเตอร์อย่างที่คุณเห็น ฉันต้องงอตีนหม้อ - สิ่งเหล่านี้มีไว้สำหรับใช้กับ PBC และไม่ใช่สิ่งที่ดีที่สุดในกรณีนี้ อย่างไรก็ตามการงอเท้าเป็นมุมฉากทำให้พวกเขามั่นคงมาก
ขั้นตอนที่ 3: จากฮาร์ดแวร์สู่ซอฟต์แวร์
ตอนนี้คุณมีทุกสิ่งที่เชื่อมต่อและหวังว่าคุณจะทำการทดสอบเพื่อตรวจสอบว่า Vcc และ GND ของคุณโอเค
โพเทนชิโอมิเตอร์น่าจะเป็นสิ่งที่ง่ายที่สุดในการเริ่มต้นด้วย Arduino
มีสามพิน: อันหนึ่งสำหรับ GND หนึ่งอันสำหรับ 5V พินกลางคือ "เอาต์พุต" ของโพเทนชิออมิเตอร์ หากคุณเชื่อมต่อ GND กับพินซ้าย 5V กับพินขวา และคุณหมุนหม้อตามเข็มนาฬิกา คุณจะเห็นค่าเพิ่มขึ้นใน "เอาต์พุต" ระหว่าง 0 ถึง 5V
พินกลางไปที่หนึ่งใน "อินพุตแบบแอนะล็อก" ของ Arduino ซึ่งจะสุ่มตัวอย่างค่าและจะแปลเป็นตัวเลขดิจิทัล: Arduino Mega 2560 แปลค่าจาก 0 ถึง 1023 (จะให้ 0 เมื่อหม้อหมด ทางซ้าย 1023 เมื่อสุดทางขวา 5V)
โปรดทราบว่า MIDI ยอมรับค่าตั้งแต่ 0 ถึง 123 ดังนั้น คุณจะต้องหารค่า Arduino ด้วย 8 ก่อนส่งค่าจำนวนเต็มผ่านซีเรียล
มันดูเรียบง่ายมาก (และเป็นเช่นนั้น) แต่มีบางสิ่งที่ต้องจำไว้:- บ่อยครั้งที่หม้อไม่แม่นยำมาก: ผลลัพธ์ของพวกเขาสามารถข้ามไปยังค่าที่อยู่ติดกันแบบสุ่ม เรียกคำสั่ง CC ที่ไม่ต้องการ - วงจรของคุณ (ของฉัน ในกรณีนี้) ไม่สมบูรณ์แบบ: เนื่องจากไม่ใช่ PCB คุณสามารถมีค่าสุ่มที่นี่และที่นั่นอีกครั้ง ค่าสุ่ม- คุณไม่ต้องการส่งค่า MIDI CC ตลอดเวลา ไม่เช่นนั้น DAW ของคุณอาจอุดตันได้ คุณต้องหาทางแก้ไขเพื่อหลีกเลี่ยงสิ่งนี้
รหัสของฉันถูกเขียนขึ้นเพื่อจัดการกับสามประเด็นข้างต้นและทำได้ดีทีเดียว
ขั้นตอนที่ 4: MIDI ทำงานอย่างไร
MIDI เป็นโปรโตคอลที่เก่ามาก ซึ่งได้รับการออกแบบและสร้างขึ้นเพื่อให้คอมพิวเตอร์และอุปกรณ์ทำงานร่วมกันได้
มีคำอธิบายที่ครอบคลุมเกี่ยวกับวิธีการทำงานของ MIDI: ในการส่งบันทึกย่อ มีสัญญาณมากมายที่คุณสามารถส่งได้ แต่ในกรณีของเรา ทุกอย่างง่ายมาก
เราทำงานกับการเปลี่ยนแปลงการควบคุม (MIDI) ดังนั้นเราจึงต้องใช้หนึ่งในช่องทางเหล่านี้ที่รายงานในตารางนี้:
www.midi.org/specifications-old/item/table…
จาก 176 ถึง 191
เมื่อคุณส่งค่า MIDI/CC คุณต้องส่งผ่านซีเรียล:- ไบต์สถานะ (คอลัมน์แรกของตาราง) เพื่อบอก DAW ของคุณว่าคุณกำลังส่ง CC- ซึ่งการควบคุม - ในกรณีนี้ซึ่ง KNOB - กำลังส่ง (จำนวนเต็ม)- ค่าของตัวควบคุม
ในกรณีของฉันฉันมีปุ่ม 14 ปุ่มดังนั้นข้อความอาจเป็น:
Serial.write(176, 13, 107)
ลูกบิด 13 กำลังส่ง 107 ค่าผ่าน CC
MIDI ยอมรับค่าตั้งแต่ 0 ถึง 123 ในขณะที่ Arduino อ่านค่าแอนะล็อกจาก 0 ถึง 1023 - อย่าลืมหารด้วย 8 ก่อนทำการขัดค่า
ขั้นตอนที่ 5: วิธีส่ง MIDI ผ่าน USB บน Arduino
คุณมี 2 ตัวเลือกในการส่ง MIDI ผ่าน USB ด้วย Arduino:
- กระพริบคอนโทรลเลอร์ Arduino USB ภายใน (แนะนำที่ส่วนท้ายสุดของโครงการของคุณ)
- ออกจากสต็อก Arduino และใช้ซอฟต์แวร์บนพีซีของคุณ (อันนี้) ขอแนะนำอย่างยิ่ง
Flashing Arduino USB Controller ไม่ใช่วิธีที่สะดวกที่สุดในการสร้างต้นแบบ: เมื่อคุณแฟลชเฟิร์มแวร์เพื่อส่ง MIDI ผ่าน USB Arduino จะไม่ได้รับรหัสใหม่ให้อัปโหลด ดังนั้นหากคุณต้องการอัปเดตรหัส คุณต้องแฟลชเฟิร์มแวร์ ไปที่เวอร์ชันสต็อก ตัวอย่างเช่น Arduino ของคุณอยู่ในสต็อกและคุณอัปโหลดโค้ด คุณแฟลชเพื่อให้ MIDI ทำงานได้ ถอดปลั๊กออก เสียบปลั๊ก คุณทดสอบโค้ด มันใช้งานไม่ได้
คุณแฟลชมันกลับไปที่ stock. Unplug. Plug-in. Amend the code. Upload. Flash. UnplugPlugin[ทำซ้ำและร้องไห้]
Pro เดียวของสิ่งนี้คือคุณไม่ต้องใช้ซอฟต์แวร์ภายนอกใดๆ แต่ฉันขอแนะนำให้ใช้วิธีนี้เฉพาะที่ส่วนท้ายสุดของโปรเจ็กต์ของคุณ
ในทางกลับกัน Hairless นั้นใช้งานง่ายสุด ๆ เพราะคุณไม่ต้องแฟลชอะไรเลย - หากคุณใช้ Mac มันจะทำงานได้อย่างสมบูรณ์แบบด้วยการตั้งค่า MIDI และ DAW ของคุณจะรับรู้ทันทีว่าเป็น "ตัวควบคุม midi ที่ไม่มีขน" มาก มาก ดีกว่า.
ขั้นตอนที่ 6: เวลาการเข้ารหัส
ไม่มีอะไรจะพูดมากในขณะที่ฉันโพสต์รหัสของฉันบน Github และฉันได้แสดงความคิดเห็นเกี่ยวกับรหัสนี้ให้มากที่สุด
เพียงจำสิ่งพื้นฐานบางอย่าง:
- ค่าไฟฟ้าผันผวนของฉัน
- คุณไม่ต้องการให้ DAW ของคุณท่วมท้นด้วยสัญญาณ CC ที่ไม่จำเป็น
- คุณไม่ต้องการส่งข้อความ CC ที่ซ้ำกัน
ในรหัสของฉันมีการอธิบายทุกอย่างและคุณสามารถค้นหาได้ที่นี่https://github.com/weirdest-worry/aalto_midi_contr…
ขั้นตอนที่ 7: รวบรวมสิ่งของของคุณเข้าด้วยกัน
ตอนนี้โค้ดของคุณใช้งานได้แล้ว และสิ่งเดียวที่คุณต้องทำคือรวบรวมสิ่งต่างๆ เข้าด้วยกัน
สิ่งนี้จะต้องใช้ทักษะไม้บางอย่างที่ฉันไม่มี (โชคดีที่ภรรยาของฉันช่วยฉันในกระบวนการนี้) ดังนั้นฉันจึงไม่สามารถให้คำแนะนำได้จริงๆ แต่ถ้าคุณตัดสินใจใช้แผ่นไม้อัด คุณจะมีงานที่สะอาดและไม่รกมาก ตอนนี้เสียบ USB ของคุณ เปิด DAW ของคุณแล้วปล่อยเบส!
แนะนำ:
Flipperkonsole สำหรับ PC Flipper / Pinball Console สำหรับ PC Pinballs: 9 ขั้นตอน
Flipperkonsole สำหรับ PC Flipper / Pinball Console สำหรับ PC Pinballs: ใช้งานได้กับ USB พื้นฐาน เกมสำหรับ PC-Flipperkästen Die Spannungsversorgung erfolgt über das USB Kabel. Implementiert sind die beiden Flipper Buttons และ ein Startbutton Zusätzlich ist ein stossen von unten, von links และ von rechts implem
Oceania Midi Controller (สำหรับ Make Noise 0-Coast และ Synths อื่นๆ): 6 ขั้นตอน (พร้อมรูปภาพ)
Oceania Midi Controller (สำหรับ Make Noise 0-Coast และ Synths อื่นๆ): ในช่วงไม่กี่ปีที่ผ่านมา ผู้ผลิตซินธิไซเซอร์จำนวนหนึ่งได้เปิดตัว "เดสก์ท็อปกึ่งโมดูลาร์" เครื่องมือ โดยทั่วไปจะใช้ฟอร์มแฟกเตอร์เดียวกันกับรูปแบบซินธิไซเซอร์แบบโมดูลาร์ของ Eurorack และส่วนใหญ่มักมีจุดประสงค์เพื่อใช้เป็น g
Handheld Shortcut Controller (สำหรับ Photoshop + อื่นๆ) [Arduino]: 4 ขั้นตอน
Handheld Shortcut Controller (สำหรับ Photoshop + More) [Arduino]: ครั้งสุดท้ายที่ฉันสร้างแผ่นควบคุมขนาดเล็กเพื่อใช้ใน Photoshop มันได้ผลอย่างมหัศจรรย์ และฉันยังคงใช้มันอยู่! แต่ก็ยังค่อนข้างจำกัดด้วยปุ่มเพียงห้าปุ่มและขนาดและความโปร่งแสงที่มีประโยชน์ ฉันยังพบว่าตัวเองเอื้อมมือหยิบคีย์บอร์ดมาก…ดังนั้น
3.3V Mod สำหรับ Ultrasonic Sensors (เตรียม HC-SR04 สำหรับ 3.3V Logic บน ESP32/ESP8266, Particle Photon ฯลฯ): 4 ขั้นตอน
3.3V Mod สำหรับ Ultrasonic Sensors (เตรียม HC-SR04 สำหรับ 3.3V Logic บน ESP32/ESP8266, Particle Photon, ฯลฯ.): TL;DR: บนเซนเซอร์ ตัดร่องรอยไปที่ Echo pin จากนั้นเชื่อมต่อใหม่โดยใช้ a ตัวแบ่งแรงดันไฟฟ้า (Echo trace -> 2.7kΩ -> Echo pin -> 4.7kΩ -> GND) แก้ไข: มีการถกเถียงกันว่า ESP8266 นั้นทนทานต่อ GPIO 5V จริงหรือไม่ใน
MIDI 5V LED Strip Light Controller สำหรับ Spielatron หรือ MIDI Synth อื่นๆ: 7 ขั้นตอน (พร้อมรูปภาพ)
MIDI 5V LED Strip Light Controller สำหรับ Spielatron หรือ MIDI Synth อื่นๆ: คอนโทรลเลอร์นี้กะพริบไฟแถบ LED สามสีเป็นเวลา 50mS ต่อโน้ต สีน้ำเงินสำหรับ G5 ถึง D#6, สีแดงสำหรับ E6 ถึง B6 และสีเขียวสำหรับ C7 ถึง G7 คอนโทรลเลอร์เป็นอุปกรณ์ ALSA MIDI ดังนั้นซอฟต์แวร์ MIDI สามารถส่งออกไปยัง LED ได้ในเวลาเดียวกันกับอุปกรณ์สังเคราะห์ MIDI