สารบัญ:
- ขั้นตอนที่ 1: สิ่งนี้คืออะไร (และอะไรที่ไม่ใช่…)
- ขั้นตอนที่ 2: ซีเควนเซอร์ 16 ขั้นตอน "ซ่อนเร้น"
- ขั้นตอนที่ 3: ฮาร์ดแวร์ที่จำเป็นและการสร้าง
- ขั้นตอนที่ 4: การเดินสายไฟ
- ขั้นตอนที่ 5: ซอฟต์แวร์ - ลิงก์บางส่วนไปยังทฤษฎี
- ขั้นตอนที่ 6: ซอฟต์แวร์ - Sketch
- ขั้นตอนที่ 7: โครงการที่เกี่ยวข้อง
วีดีโอ: (เกือบ) Universal MIDI SysEx CC Programmer (และซีเควนเซอร์): 7 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
ในช่วงกลางทศวรรษที่ 80 ผู้ผลิตซินธิไซเซอร์เริ่มกระบวนการ "น้อยกว่าดีกว่า" ซึ่งนำไปสู่การสังเคราะห์แบบแบร์โบน ซึ่งทำให้ลดต้นทุนด้านผู้ผลิตได้ แต่ทำให้กระบวนการแพตช์นั้นน่าเบื่อถ้าไม่สามารถทำได้สำหรับผู้ใช้ขั้นสุดท้าย
ผู้ผลิตเองและบริษัทบุคคลที่สามได้ตระหนักถึงกล่องตัวเลือกซึ่งเต็มไปด้วยปุ่มและ/หรือแถบเลื่อนเพื่อให้คุณ "เล่น" กับโทนเสียงสังเคราะห์ของคุณได้จริง แต่สิ่งเหล่านี้มีราคาแพงเกินไปในปัจจุบัน และเช่นเคย เราถูกบังคับให้ค้นหาวิธีแก้ปัญหาราคาถูกด้วยตัวเราเอง;)
โปรเจ็กต์นี้มาจากความต้องการของฉันในการเขียนโปรแกรมแพตช์อย่างง่ายดายในการซื้อ synths ล่าสุดของฉัน: Roland Alpha Juno 2 และ JX8P มันเริ่มต้นจากการเป็นตัวควบคุม SysEx ธรรมดา จากนั้นก็เติบโตขึ้นมากับฉันและกลายเป็นสิ่งที่ซับซ้อนมากขึ้น โดยมีซินธิไซเซอร์อื่นๆ ที่รองรับระหว่างทาง (Korg DW8000, Oberheim Matrix 6/6R, SCI MAX) และซีเควนเซอร์ในตัว
ในคำแนะนำนี้ ฉันจะแสดงให้คุณเห็นถึงวิธีสร้างคอนโทรลเลอร์ของคุณเอง: เครื่องมือราคาถูกที่จำลองกล่องควบคุมพารามิเตอร์ราคาสูงเหล่านั้น… และอื่นๆ (อ่านต่อเพื่อดูรายละเอียด…)
ขั้นตอนที่ 1: สิ่งนี้คืออะไร (และอะไรที่ไม่ใช่…)
ตัวควบคุม MIDI SysEx และ Control Change มีปุ่ม 16 ปุ่ม (โพเทนชิโอมิเตอร์) และตัวควบคุม MIDI 4 ปุ่ม ร่างเริ่มต้นจัดการ "หน้า" สามหน้า รวมพารามิเตอร์เสียงสังเคราะห์ 48 รายการ
ฉันทำให้ตัวควบคุมเข้ากันได้กับข้อความ MIDI การเปลี่ยนแปลงการควบคุม (ข้อความ MIDI แบบธรรมดาและ "สากล" ที่ใช้กันอย่างแพร่หลายโดยผู้ผลิต synth โดยเฉพาะจากยุค 90) และข้อความ SysEx (ข้อความ MIDI อีกประเภทหนึ่งซึ่งมีความเฉพาะเจาะจงน้อยกว่าและมีความเฉพาะเจาะจงสูง ใช้ในยุค 80)
โดยเฉพาะอย่างยิ่ง คอนโทรลเลอร์ตามค่าเริ่มต้นจะเข้ากันได้กับ:
- โรแลนด์ อัลฟ่า จูโน (1/2)
- โรแลนด์ JX8P
- คอร์ก DW8000
- Oberheim Matrix 6/6R (> 2.14 เฟิร์มแวร์)
- วงจรซีเควนเชียล MAX/SixTrak
ในที่สุด คุณสามารถเปิดใช้งานตัวควบคุมเพื่อดำเนินการกับซินธ์ใดๆ ที่สามารถรับข้อความ MIDI control change (CC) ได้ แต่จะถูกปิดใช้งานโดยค่าเริ่มต้น
เนื่องจากเป็นลักษณะโอเพ่นซอร์สของโปรเจ็กต์ มันจึงง่ายมากที่จะสนับสนุนซินธ์อื่นๆ ที่คุณเลือก (ดูขั้นตอนโค้ดสำหรับรายละเอียด)
เลย์เอาต์พารามิเตอร์โทนที่มีตัวเลขทั้งหมดอาจทำให้สับสนในตอนแรก แต่ไม่ใช่ "สุ่ม" เนื่องจากอาจมีลักษณะดังนี้: เป็นไปตามลำดับของแผนผังการใช้งาน MIDI ของผู้ผลิต นี่เป็นตัวเลือกการออกแบบเพื่อให้โค้ดเรียบง่ายและเป็น "สากล"
คุณสามารถดาวน์โหลดแผ่นรูปภาพด้วย "เลย์เอาต์" 4x4 ที่ฉันรู้จักสำหรับ Alpha-Junos, JX8P, DW8000, Matrix 6 และ MAX/SixTrak ในหน้านี้: พารามิเตอร์สีน้ำเงินคือค่าที่คุณปรับแต่งได้ในขณะที่อยู่ในหน้า 1 สีดำที่อยู่ในหน้า 2 และ สีส้มในหน้า 3
แม้ว่าคอนโทรลเลอร์จะไม่มีหน้าจอ แต่การใช้ซินธิไซเซอร์ที่แสดงให้คุณเห็นว่าพารามิเตอร์ใดที่กำลังถูกปรับแบบเรียลไทม์ทำให้กระบวนการสร้างแพตช์เป็นเรื่องสนุก ตัวอย่างเช่น JX8P และ Matrix 6 มีความสามารถนี้ Alpha Juno จะไม่แสดงให้คุณเห็นถึงการเปลี่ยนแปลงของพารามิเตอร์และทำให้สิ่งต่าง ๆ ยากขึ้นเล็กน้อย (แต่การสร้างแพตช์ที่ยอดเยี่ยมนั้นทำได้และง่ายกว่าการใช้อินเทอร์เฟซแบบไม่มีปุ่มในตัว); DW8000 มีการแสดงตัวเลขเท่านั้น แต่คุณสามารถเห็น tweakins ของคุณแบบเรียลไทม์ ดังนั้นมันจึงอยู่ระหว่างนี้
แล้วปุ่มเหล่านั้นล่ะ?
อันแรก (ด้านซ้ายบนในเลย์เอาต์ของฉัน) มีไว้สำหรับการท่องเพจ: ข้ามไปที่หน้าของพารามิเตอร์ถัดไปเมื่อกดปุ่มแต่ละครั้ง ไฟ LED จะระบุว่าคุณอยู่ในหน้าใด
วินาทีที่กด ให้ส่งแพตช์ที่คุณทำงานอยู่ กลับไปที่ซินธ์ (คิดเอาเอง: คุณสร้างแพตช์ในชีวิตของคุณ จากนั้นแตะปุ่มโปรแกรมบนพื้นผิวซินธ์ และโหลดแพตช์เฉพาะปุ่ม… งานทั้งหมดของคุณหายไปแล้ว !). ด้วยปุ่มนี้ คุณสามารถส่งค่าทั้งหมดที่โปรแกรมเมอร์ได้จดจำไว้ในระหว่างกระบวนการแพตช์ครั้งล่าสุด กระบวนการเรียกคืนแพตช์นี้ใช้ไม่ได้หากคุณกดตัวสุ่มอีกครั้ง (กระบวนการสุ่มจะเขียนทับพารามิเตอร์ทั้งหมดในหน่วยความจำ) และจะมีผลกับพารามิเตอร์ที่คุณแก้ไขอย่างน้อยหนึ่งครั้งเท่านั้น แพตช์ล่าสุดจะไม่ถูกเก็บไว้ในหน่วยความจำหลังจากปิดเครื่อง
ที่สามสำหรับฟังก์ชันรอง: randomizer/patcher! หมุนปุ่มหมุนทวนเข็มนาฬิกาตามเข็มนาฬิกาที่คุณต้องการให้พารามิเตอร์ทำงานเพื่อล็อคค่าต่ำสุด (เช่น ออสซิลเลเตอร์ LFO, ออสซิลเลเตอร์เอนเวโลป เป็นต้น) หรือหมุนตามเข็มนาฬิกาจนสุดเพื่อเพิ่มค่าสูงสุด (เช่น ออสซิลเลเตอร์มิกซ์โวลุ่ม โวลุ่ม VCA ฯลฯ) แล้วกด ปุ่มเพื่อเริ่มกระบวนการสุ่มสำหรับพารามิเตอร์อื่น ๆ ทั้งหมด
ปุ่มที่สี่อยู่ที่นั่นเพื่อเปิดใช้งานไข่อีสเตอร์ (ประเภท…) ฉันวางไว้ในโค้ดหลังจากสังเกตเห็นว่าเลย์เอาต์นั้นสมบูรณ์แบบสำหรับ… ซีเควนเซอร์ MIDI 16 ขั้นตอน! ถูกต้อง: กดปุ่มที่สี่ (ปุ่ม MODE) คอนโทรลเลอร์จะเข้าสู่ "โหมดซีเควนเซอร์" และคุณจะได้รับอนุญาตให้ทริกเกอร์โน้ตในลักษณะเดียวกันกับซีเควนเซอร์แอนะล็อกแบบเก่า นีซ เอ่อ!
กดปุ่ม MODE อีกครั้งเพื่อกลับไปที่โหมดคอนโทรลเลอร์/แพตเชอร์
แล้ว LED เหล่านั้นล่ะ?
มีไฟ LED 4 ดวงที่สอดคล้องกับแต่ละปุ่ม (ทางด้านขวาของแต่ละปุ่มในเลย์เอาต์ของฉัน); ไฟ LED เหล่านี้มีหลายช่อง:
1) พวกเขาบอกคุณว่าหน้าพารามิเตอร์ใดที่คุณอยู่ (ไฟ LED ด้านบนติดเมื่อคุณอยู่ในหน้า 1, LED ข้างใต้จะสว่างเมื่อหน้า 2 ทำงานอยู่, LED 3 ติดสว่าง…คุณคิดเอง) เราจำกัด ATM ไว้ที่ 3 หน้า แต่สามารถปรับรหัสได้อย่างง่ายดายเพื่อรองรับหน้าเพิ่มเติม
2) ไฟ LED ที่สองระบุพารามิเตอร์หน้า 2 และติดสว่างเมื่อไมโครคอนโทรลเลอร์กำลังส่งแพตช์ก่อนหน้า (เรียกคืนแพตช์);
3) LED ที่สามระบุพารามิเตอร์หน้า 3 และสว่างขึ้นระหว่างกระบวนการสุ่ม
LED ดวงที่สี่ไม่ทำอะไรเลยในโหมดตัวควบคุม MIDI และใช้สำหรับการเปลี่ยนแปลง MODE ทั่วโลก
ฟังก์ชันทั้งหมดเหล่านี้จะถูกส่งเป็นข้อความ MIDI ดังนั้น synth ของคุณจะต้องมีความสามารถ/เปิดใช้งานในการรับและตีความข้อความประเภทนี้จึงจะมีประสิทธิภาพ
ขั้นตอนที่ 2: ซีเควนเซอร์ 16 ขั้นตอน "ซ่อนเร้น"
ดังที่กล่าวไว้ ขณะทดสอบตัวควบคุม ฉันรู้ว่ามันจะเป็นการดีที่จะปล่อยให้ลำดับของบันทึกย่อทำงาน เพื่อที่ฉันจะได้ปรับแต่งพารามิเตอร์การสังเคราะห์และมีแนวคิดที่ดีขึ้นเกี่ยวกับเอฟเฟกต์สุดท้ายบนโทนเสียง ฉันมีซอฟต์แวร์ซีเควนเซอร์ (ฉันชอบ seq24 มาก!) แต่ฮาร์ดแวร์นี้เป็นซีเควนเซอร์ 16 ขั้นตอนที่เกือบสมบูรณ์แบบ! จากนั้นมันก็เป็นเพียงเรื่องของรหัสที่จะนำไปใช้
คุณสามารถสลับระหว่างโหมดคอนโทรลเลอร์และโหมดซีเควนเซอร์โดยกดปุ่ม #4 (ปุ่ม MODE)
ในขณะที่ปุ่มโหมดซีเควนเซอร์ทำงานต่างกัน และไฟ LED จะให้ข้อมูลใหม่แก่คุณ:
- ปุ่มแรก (ปุ่ม SHIFT) เมื่อกดช่วยให้สามารถกำหนดจังหวะ ความยาวของโน้ต ช่อง และการปรับเปลี่ยนอ็อกเทฟได้ ค่าจังหวะกำหนดโดยตำแหน่งของโพเทนชิออมิเตอร์ตัวแรก ความยาวโน้ตคำนวณจากตำแหน่งโพเทนชิออมิเตอร์ที่สอง ช่อง MIDI จากตำแหน่งโพเทนชิออมิเตอร์ที่สามและสี่ และอ็อกเทฟ (-1 o ถึง +2) จากหม้อที่ห้า คุณสามารถควบคุมจังหวะจาก 40 BPM (หมุนโพเทนชิออมิเตอร์ #1 เต็มทวนเข็มนาฬิกาในขณะที่กดปุ่ม #1 ค้างไว้) เป็นเกือบ 240 BPM (หมุนโพเทนชิออมิเตอร์ #1 เต็มตามเข็มนาฬิกาในขณะที่กดปุ่ม #1 ค้างไว้) คุณสามารถตั้งค่าความยาวของโน้ตเป็นโน้ตครึ่งตัว โน้ตตัวหนึ่งในสี่ตัว โน้ตแปดตัว โน้ตตัวที่สิบหกโดยหมุนหม้อ #2 ในขณะที่กดปุ่ม SHIFT ค้างไว้ คุณสามารถตั้งค่าแชนเนล MIDI (แชนเนลหลักและแชนเนลรอง) จาก 1 ถึง 16 ช่วงเบสโน้ต (จาก C2 ถึง F#4) สามารถลดระดับลงหนึ่งอ็อกเทฟหรือเพิ่มขึ้นหนึ่งหรือสองอ็อกเทฟ
โดยค่าเริ่มต้น จังหวะถูกตั้งค่าเป็น 120 BPM และความยาวของโน้ตเป็นโน้ตไตรมาส
- ปุ่มที่สองเริ่มต้นและหยุดลำดับบันทึกย่อ ดังที่กล่าวไว้ หากคุณเปลี่ยนโหมดโดยการกดปุ่ม #4 (MODE) ในขณะที่รันซีเควนซ์ คุณจะเข้าสู่โหมดคอนโทรลเลอร์ แต่ซีเควนซ์จะยังคงทำงานต่อไป
- ปุ่มที่สามคือ PANIC! โดยการกดบันทึกทั้งหมดจะถูกปิด
- โหมดที่สี่ใช้เพื่อสลับระหว่างโหมดสากล (pather หรือซีเควนเซอร์) เมื่อไม่ได้กดปุ่ม #1 หรือระหว่างโหมดซีเควนซ์ (ดูในต่อไปนี้) เมื่อกด #1
ในโหมดซีเควนเซอร์ หากคุณกดปุ่มเลือกโหมดในขณะที่กดปุ่ม #1 (SHIFT) ค้างไว้ คุณสามารถสลับระหว่าง 3 โหมดซีเควนซ์ที่แตกต่างกัน:
ลำดับโมโน 1 - 16 ขั้นตอน
ลำดับโพลีซีเควนซ์ 2 - 16 สเต็ป: โน้ตหนึ่งอ็อกเทฟที่ต่ำกว่าที่กำหนดโดยพ็อตจะถูกกระตุ้นด้วย (วิธีนี้จะระบาย 2 เสียงต่อจังหวะ)
ลำดับโพลี 3 - 8 ขั้นตอน, ช่องสัญญาณคู่: ลำดับขั้นตอน 8 ขั้นตอนแบบขนานสองช่องจะถูกส่งไปยังสองช่องสัญญาณที่แตกต่างกัน (CH1 และ CH2 โดยค่าเริ่มต้น); โดยการตั้งค่าแชนเนลเดียวกันทั้งบนแชนเนลหลักและแชนเนลที่สอง คุณสามารถมีลำดับ 8 ขั้นคู่ขนานที่เล่นโดยซินธิไซเซอร์ (โพลีโฟนิก) เดียวกันได้
เกี่ยวกับไฟ LED: ทันทีที่คุณเข้าสู่โหมดซีเควนเซอร์ ไฟทั้งสี่ดวงจะสว่างขึ้น เมื่อคุณเริ่มลำดับ ไฟ LED จะตามลำดับ (หรือลำดับ) ฉันวาง LED หนึ่งดวงทุก ๆ โพเทนชิโอมิเตอร์สี่ตัวและดีพอสำหรับฉัน มันจะง่ายในการปรับเปลี่ยนภาพร่างเพื่อจัดการกับ LED 16 ดวง หนึ่งอันสำหรับแต่ละขั้นตอนของคุณ
คุณลักษณะของซีเควนเซอร์ขั้นตอนที่พลาดซึ่งบางคนอาจพบว่าจำเป็น: การซิงค์ MIDI, การหยุดขั้นตอน (คุณสามารถปิดได้เพียงขั้นตอนเดียว), CV ออก
ฉันใช้ clock OUT แล้ว แต่มีข้อผิดพลาดบ้าง ฉันลองสองวิธีสำหรับสิ่งนี้ (วิธีหนึ่งและอีกวิธีหนึ่งไม่มีการขัดจังหวะตัวจับเวลา) แต่ทั้งสองวิธีนั้นไม่สมบูรณ์ (หรือล้มเหลวทั้งหมด) นาฬิกา MIDI ต้องเข้มงวดและสมบูรณ์แบบเพื่อทำงานในระยะยาว สัญญาณนาฬิกาจะถูกส่งต่อไปและคุณสามารถปิดใช้งานได้โดยตรงบนภาพร่าง (ดูรายละเอียดในภายหลัง)
โปรดสังเกตว่าซีเควนเซอร์ขั้นตอนนี้คือ MIDI หรือดิจิทัล หากคุณต้องการ ดังนั้นเพื่อที่จะทำงานต้องเชื่อมต่อกับซินธ์ที่เปิดใช้งานเพื่อรับและตีความข้อความประเภทนี้
ขั้นตอนที่ 3: ฮาร์ดแวร์ที่จำเป็นและการสร้าง
หลังจากจบคำเหล่านี้แล้ว มาสนุกกันเถอะ!
เรากำลังดำเนินการตามแนวทาง Arduino ทั่วไป ฉันใช้ Arduino MEGA เพราะมีอินพุตแบบอะนาล็อกจำนวนมาก (เราต้องการกล่องที่เต็มไปด้วยลูกบิดใช่ไหม:))
โดยเฉพาะอย่างยิ่ง Arduino MEGA สามารถรองรับอินพุตแบบอะนาล็อกได้ 16 ช่อง (ด้วยการปรับแต่งฮาร์ดแวร์บางอย่าง เช่น โดย muxing คุณสามารถเพิ่มสิ่งนี้ได้ แต่เราจะไม่ดำเนินการตามเส้นทางนี้ที่นี่) ดังนั้นเราจะส่งข้อความ MIDI 48 รายการผ่านโพเทนชิโอมิเตอร์ 16 ตัว โพเทนชิออมิเตอร์แต่ละตัวจะควบคุมพารามิเตอร์สามตัว หนึ่งพารามิเตอร์สำหรับแต่ละ "หน้า"; หน้าจะถูกเลือกโดยปุ่มสวิตช์
รายการฮาร์ดแวร์:
- 1x Arduino MEGA
- โพเทนชิโอมิเตอร๋ 10 K โอห์มแบบเส้นตรง 16x รอบเดียว
- ลูกบิดหม้อ 16x
- 4x ปุ่มกดชั่วขณะ
- 4x LED
- ตัวต้านทาน 6x 220 โอห์ม
- 1x ขั้วต่อ MIDI
- กล่องโปรเจ็กต์ ABS 1x
สายเคเบิล ลวดบัดกรี และเวลาว่างหก - แปดชั่วโมง
ฉันใช้ perfboard และส่วนหัวของพินเพื่อให้ทราบถึงโล่ประเภทหนึ่งที่ฉันบัดกรีตัวต้านทานและควบคุมสายเคเบิล สิ่งนี้มีประโยชน์ในการให้คุณนำ Arduino ของคุณออกมาและใช้สำหรับโครงการอื่น ๆ (เราทุกคนมีบอร์ด Arduino เหลือน้อยในบางจุด!) มันไม่ได้บังคับอยู่แล้วและแนวทางที่ดีอีกวิธีหนึ่งอาจเป็นการ desolder pinheaders arduino MEGA และสายบัดกรีเข้าที่โดยตรง
ฉันใช้ตัวต้านทาน 200 โอห์มแทนตัวต้านทาน 220 โอห์มและพวกมันก็ทำงานได้ดี ฉันพนันได้เลยว่าแม้แต่ตัวต้านทาน 150 โอห์มก็ใช้งานได้ดี (สำหรับทั้งการสื่อสาร MIDI และ LED)
ในการขึ้นรูปกล่อง อันดับแรก ฉันใช้กระดาษกาวบนพื้นผิวกล่อง โดยวัดว่าควรเจาะรูที่ไหน (ฉันมี 3 ซม. จากรูหนึ่งไปอีกรูหนึ่งเพื่อให้หม้อทั้งหมดพอดี) ทำรูไกด์แล้วขยายไปทางขวา ขนาดเพื่อให้ด้ายหม้อหรือกระดุมผ่านด้วยสว่านขนาดเล็ก ฉันใช้เวลามากกว่าหรือน้อยกว่า 2 ชั่วโมงในการทำกล่องให้เสร็จ ฉันรู้รูเล็กๆ เหมือนกัน และติดไฟ LED เข้าที่
ฉันยังเจาะรูสำหรับขั้วต่อ MIDI OUT และอีกช่องสำหรับขั้วต่อไฟ Arduino (ฉันใช้ขั้วต่อไฟ USB ในตัวโดยตรงและล็อค Arduino MEGA อย่างแน่นหนา)
คำเตือน: สวมอุปกรณ์ป้องกันดวงตาและมือเสมอขณะเจาะ วัสดุใดก็ตามที่คุณกำลังทำงานอยู่ (พลาสติก ไม้ โลหะ คอมโพสิต… ไม่สำคัญ: คุณมีความเสี่ยงทั้งในส่วนที่เกี่ยวกับเครื่องมือไฟฟ้าและเศษของวัสดุที่สึกกร่อน/ถูกเผา จากเครื่องมือเคลื่อนย้าย)
จากนั้นฉันก็วางหม้อและปุ่มทั้งหมดแล้วบัดกรีส่วนประกอบตามภาพที่แนบมา วิธีที่มีประสิทธิภาพในการลดน้ำหนักของวัตถุขั้นสุดท้าย (และความยาวของสายเคเบิล) คือการต่อโซ่เดซี่หม้อทั้งหมดทั้งบนสาย 5V และสาย GND
และก่อนที่ใครจะถามว่า: ฉันรู้ กล่องที่ฉันใช้น่าเกลียด! แต่มันฟรีและไม่มีอะไรเต้นฟรี:)
ขั้นตอนที่ 4: การเดินสายไฟ
การเดินสายไฟทำได้ง่ายเพียงแค่เดินสายโพเทนชิออมิเตอร์ (x16) ปุ่มกด (x4) และ LED (x4) เข้ากับบอร์ดไมโครคอนโทรลเลอร์ Arduino พื้นฐาน Arduino ทั้งหมดครอบคลุมที่นี่:)
สิ่งที่แนบมาคือสายไฟ สังเกตว่า:
- ใช้พินอะนาล็อกทั้งหมด (ตั้งแต่ A0 ถึง A15) หนึ่งอันสำหรับโพเทนชิออมิเตอร์แต่ละตัว
- ใช้พินดิจิตอล 4 พิน (อินพุต) (จาก D51, D49, D47, D45) หนึ่งอันสำหรับแต่ละปุ่ม
- พินดิจิทัลอีก 4 ตัว (เอาต์พุต) ใช้สำหรับ LED (D43, D41, D39, D37)
- การเชื่อมต่อ MIDI ออกนั้นง่ายมากและขอตัวต้านทาน 220 โอห์มสองตัว (แต่จะลดเหลือ 150 โอห์ม)
- ปุ่มต่างๆ จะไม่ขอตัวต้านทานแบบดึงลงเนื่องจากภาพสเก็ตช์เปิดใช้งานตัวต้านทานแบบดึงขึ้นของ Arduino ภายใน
- LED แต่ละตัวจะขอตัวต้านทานจำกัดกระแส (200-220 โอห์มสำหรับไฟ LED สีเขียว)
ฉันใช้หมุดดิจิทัลที่ระบุไว้สำหรับสินค้าโภคภัณฑ์ แต่ไม่ใช่หมุด "พิเศษ" (เราไม่ได้ใช้ความสามารถ pwm ของหมุดบางตัวที่นี่หรือคุณลักษณะเฉพาะของหมุดอื่นๆ): คุณสามารถตั้งค่าหมุดดิจิทัลที่คุณชื่นชอบได้ แต่อย่าลืมปรับเปลี่ยน รหัสตามนั้น มิฉะนั้น ปุ่ม/ไฟ LED ของคุณจะไม่ทำงาน!
โปรดสังเกตว่าการเชื่อมต่อ MIDI OUT ในภาพเป็นมุมมองด้านหน้า (ไม่ใช่มุมมองด้านหลัง)
ขั้นตอนที่ 5: ซอฟต์แวร์ - ลิงก์บางส่วนไปยังทฤษฎี
ฉันจะไม่อธิบายทฤษฎีฉบับสมบูรณ์ที่อยู่เบื้องหลังข้อความ System Exclusive หรือ Control Change เนื่องจากมีบทความดีๆ มากมาย และการเขียนซ้ำสิ่งที่เขียนไปแล้วนั้นเป็นเรื่องงี่เง่า
เพียงลิงค์ด่วนสำหรับการใช้งาน Roland SysEx:
- https://erha.se/~ronny/juno2/Roland%20Juno%20MIDI%2… (ภาษาอังกฤษ)
- https://www.2writers.com/eddie/tutsysex.htm (ภาษาอังกฤษ)
- https://www.chromakinetics.com/handsonic/rolSysEx.h… (ภาษาอังกฤษ)
- https://www.audiocentralmagazine.com/system-exclusi… (อิตาลี)
และลิงค์สำหรับ MIDI โดยทั่วไป:
-
-
ขั้นตอนที่ 6: ซอฟต์แวร์ - Sketch
แนบนี่คือภาพร่างที่คุณควรอัปโหลดไปยัง Arduino Mega ของคุณ
ฉันพยายามทำให้โปรแกรมเมอร์เป็น "สากล" มากที่สุด ซึ่งหมายความว่าฉันพยายามลดโค้ดเฉพาะของซินธิก ฉันพยายามทำให้โค้ดเรียบง่ายที่สุด การเพิ่มซีเควนเซอร์ขั้นตอนทำให้สิ่งต่าง ๆ ซับซ้อนมากขึ้นและโค้ดยุ่งมากขึ้น อย่างไรก็ตาม มันก็คุ้มค่าสำหรับฉัน การรักษารหัส "สากล" เป็นสาเหตุที่เค้าโครงคอนโทรลเลอร์ "สุ่ม": เป็นไปตามลำดับพารามิเตอร์ของการนำ MIDI ไปใช้ที่ผู้ผลิต synth กำหนดไว้ในคู่มือ มันอาจจะสับสนในตอนแรก แต่คุณจะชินกับมันเร็วมาก
รหัสเริ่มต้น/ร่าง/เฟิร์มแวร์รองรับพารามิเตอร์ "เฉพาะ" 48 รายการ (แต่ละปุ่มมีสามหน้า 16 ปุ่ม) ดังนั้นจึงไม่สามารถควบคุมข้อความ MIDI ทั้งหมดที่ซินธิคุณรองรับได้ (ลองนึกถึง Access Virus หรือ Novation Supernova: พวกเขายอมรับมากกว่านั้น หรือน้อยกว่า 110 พารามิเตอร์ที่สอดคล้องกับ MIDI) คุณสามารถเปลี่ยนภาพร่างเพื่อรองรับข้อความเพิ่มเติมได้อย่างง่ายดาย หากจำเป็น
รองรับข้อความ SysEx ที่เข้ากันได้กับ Roland Alpha-Juno, JX8P, Korg DW8000 และ Oberheim Matrix 6 ฉันทิ้งรหัสไว้สำหรับข้อความที่เข้ากันได้กับ Juno 106 ในกรณีที่คุณต้องการ
สำหรับ Matrix 6 ฉันต้องเลือกพารามิเตอร์ที่จะควบคุม ฉันลืมซองจดหมายที่สาม ทางลาดที่สอง และอย่างอื่น ไม่สามารถควบคุมเมทริกซ์ผ่าน MIDI ได้ ดังนั้นมันจึงออกมาด้วย คุณต้องมีเฟิร์มแวร์ที่อัปเดต (เวอร์ชัน 2.14 ขึ้นไป) และคุณควรตั้งค่าพารามิเตอร์ "Master -> Sysex Enable" เป็น "3"
การหมดเวลามีข้อผิดพลาด (นาฬิกาต้องเข้มงวดและสมบูรณ์แบบในการทำงานตามที่ควรจะเป็นและอาจเป็นสองแนวทางที่ฉันนำมาใช้ในกรณีที่ไม่มีประสิทธิภาพ) โดยค่าเริ่มต้นจะถูกปิดใช้งาน
รหัสประกอบด้วยความคิดเห็น ดังนั้นจึงไม่จำเป็นต้องแสดงความคิดเห็นเพิ่มเติมที่นี่
เช่นเคย จำไว้ว่าฉันไม่ใช่นักเขียนโค้ดในชีวิตจริง และแน่นอนว่ามีวิธีที่ดีกว่าในการเขียนโค้ดสิ่งที่เราต้องการที่นี่ หากคุณเป็นนักเขียนโค้ดและมีข้อเสนอแนะ ยินดีต้อนรับ! โปรดส่งรูปแบบใดๆ ที่สามารถเพิ่มประสิทธิภาพ/ประสิทธิผลของโค้ดมาให้ฉัน แล้วฉันจะรวมไว้ในร่างหลัก (โดยอ้างถึง Contributor อย่างชัดเจน!)
ฉันเรียนรู้สิ่งใหม่เสมอโดยการอ่านโค้ดของ coder ดีๆ;)
ขั้นตอนที่ 7: โครงการที่เกี่ยวข้อง
เท่าที่ฉันรู้ไม่มีตัวควบคุมพารามิเตอร์ MIDI และซีเควนเซอร์อยู่ที่นั่น (อาจเป็น Behringer BCR2000 รุ่นเก่าที่มีเฟิร์มแวร์ที่ดัดแปลงแล้ว)
อย่างไรก็ตาม หากคุณไม่ชอบกล่องแบบนี้แต่สนใจโซลูชันราคาถูกเพื่อควบคุมพารามิเตอร์ synth ของคุณจากระยะไกล ให้พิจารณาทางเลือกอื่นๆ เหล่านี้:
- โปรแกรมแก้ไข CTRL MIDI: นี่เป็นโปรแกรมโอเพ่นซอร์สที่ยอดเยี่ยมและฟรีที่ทำงานบน win/Linux/mac ที่สามารถเปลี่ยนพีซีของคุณให้เป็นคอนโทรลเลอร์เต็มรูปแบบสำหรับ Synths ของ SysEx
- ตัวแปลง CC "junosex" ของ David Konsumer: โปรเจ็กต์นี้ขอให้ฮาร์ดแวร์ย่อยทำงานเคียงข้างคุณ และแนวคิดก็ยอดเยี่ยม - ตัวแปลง CC เป็น SysEx ที่ใช้ Arduino ซึ่งช่วยให้คุณใช้คอนโทรลเลอร์ทั่วไปที่ไม่ใช่ SysEx MIDI (เช่น คีย์บอร์ดหลัก AKAI MPK) เพื่อพูดคุยกับ SysEx-ready synth. ของคุณ
แนะนำ:
Universal Remote โดยใช้ ESP8266 (ควบคุมด้วย WiFi): 6 ขั้นตอน (พร้อมรูปภาพ)
Universal Remote โดยใช้ ESP8266 (ควบคุมด้วย Wi-Fi): โครงการนี้จะเปลี่ยนรีโมทคอนโทรลแบบเดิมสำหรับเครื่องใช้ภายในบ้านทั้งหมดเช่น AC, TV, เครื่องเล่นดีวีดี, ระบบเพลง, เครื่องใช้ SMART !!! ทำให้ขยะจากระยะไกลเต็มไปหมด ทำให้เรากลายเป็นปริศนา!!! โครงการนี้จะช่วยเราให้รอดพ้นจาก
Patchfinder - MIDI SysEx และ Control Change Patcher Randomizer: 4 ขั้นตอน
Patchfinder - MIDI SysEx และ Control Change Patcher Randomizer: เมื่อเร็ว ๆ นี้ฉันซื้อ Synths ราคาถูกเก่า / วินเทจจาก Roland: Alpha-Juno และ JX8P (เช่น Korg DW8000 ด้วยเช่นกันหลังจากนั้นไม่นาน) อย่างที่คุณคงทราบแล้ว มันไม่ง่ายที่สุดในการสร้างแพตช์เนื่องจากขาด "หนึ่งหม้อ/สไลด์
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
GTP USB PIC PROGRAMMER (โอเพ่นซอร์ส): 5 ขั้นตอน (พร้อมรูปภาพ)
GTP USB PIC PROGRAMMER (โอเพ่นซอร์ส): งานนี้รวมถึง GTP USB (ไม่ใช่ plus หรือ lite) แผนผัง ภาพถ่าย และ PCB ได้รับการพัฒนาโดย PICMASTERS โดยอิงจากผลงานอันทรงคุณค่าที่เคยทำมาก่อน โปรแกรมเมอร์นี้รองรับ pic10F, 12F, 16C, 16F, 18F, 24Cxx Eeprom น่าเสียดายที่มันว
(เกือบ) เคสแข็งแบบทันทีสำหรับ iPod Nano (จาก Apple Box!): 3 ขั้นตอน
(เกือบ) เคสแข็งแบบทันทีสำหรับ iPod Nano (จาก Apple Box!): เคสนี้ง่ายมาก ไม่ต้องมีภาพประกอบทีละขั้นตอน ดังนั้นฉันจะอธิบายสิ่งที่คุณต้องทำ จัดทำ วิธีการประกอบ และแสดงชิ้นส่วนผลิตภัณฑ์สำเร็จรูปในเวลาที่เหมาะสม เริ่มจบ