วิธีการพูด MIDI
เดิมทีฉันเขียนบทความนี้ในเดือนพฤษภาคม 2019 แต่ย้ายมาที่นี่หลังจากเลิกใช้งานเว็บไซต์เก่าของฉัน สนุก!
เนื้อหา
- MIDI คืออะไร
1.1 MIDI ไม่ใช่อะไร - วิธีการทำงาน
2.1 การแยกข้อความ
2.2 ไบต์สถานะและไบต์ข้อมูล - ประเภทข้อความ
3.1 ปิดโน้ต / เปิดโน้ต (0x8n, 0x9n)
→ 3.1.1 เกี่ยวกับหมายเลข MIDI Pitch
3.2 การเปลี่ยนแปลงการควบคุม (0xBn)
3.3 Pitch Bend (0xEn)
3.4 แรงดันคีย์โพลีโฟนิกและแรงดันช่องสัญญาณ (0xAn, 0xDn)
3.5 การเปลี่ยนแปลงโปรแกรม (0xCn )
3.6 ระบบ (0xFn) - เกี่ยวกับเลขฐานสิบหก
- ตัวอย่างประยุกต์: ซิมโฟนีที่ห้าของเบโธเฟน
- บทเรียนโบนัส: สถานะการทำงาน
ภาคผนวก I: ข้อความโหมดช่อง ภาค
ผนวก II: MIDI Pitch Chart
ภาคผนวก III: การกำหนด CC มาตรฐาน
ภาคผนวก IV: ข้อความเปลี่ยนธนาคาร
ภาคผนวก V: แหล่งข้อมูลเพิ่มเติม
MIDI นั้นโบราณ แต่ก็มีประโยชน์อย่างมาก ขับเคลื่อนคีย์บอร์ดที่คุณเห็นที่ Guitar Center ควบคุมสิ่งต่างๆ เช่น การจัดแสงและดอกไม้ไฟในคอนเสิร์ต¹ และถูกนำมาใช้ในการประพันธ์ดนตรีแทบทุกเรื่องในช่วงสองสามทศวรรษที่ผ่านมา
หากคุณเป็นนักดนตรีสมัยใหม่ ความรู้ในการใช้งาน MIDI เป็นสิ่งสำคัญ หากคุณเป็นคนประเภทหนึ่งที่อ่านบทความในบล็อกแบบนี้ ก็น่าจะเป็นเรื่องดีที่คุณมีประสบการณ์ทำงานกับมันมาบ้างแล้ว อย่างไรก็ตาม ฉันคิดว่าการรู้ไม่เพียงแค่วิธีใช้งานเท่านั้น แต่ควรอ่านอย่างไรในระดับทีละบิตด้วย การแปลและประกอบข้อความ MIDI ของคุณเองอาจฟังดูน่ากลัวในตอนแรก แต่จริงๆแล้วมันง่ายมาก และฉันคิดว่ามันเป็นทักษะที่สำคัญสำหรับนักแต่งเพลงยุคใหม่ที่ควรมี คล้ายกับการรู้ว่าไมโครโฟนทำงานอย่างไรในฐานะวิศวกรบันทึกเสียง
บทความนี้จะเป็นบทนำที่ครอบคลุมและเป็นคำแนะนำเกี่ยวกับข้อความ MIDI เมื่อนำไปใช้กับการผลิตเพลง คู่มือนี้ไม่ ได้ เป็นบทช่วยสอนเกี่ยวกับการจัดองค์ประกอบ MIDI หรือวิธีใช้ตัวแก้ไข MIDI ใน DAW ของคุณ อย่างไรก็ตาม คู่มือนี้มีไว้สำหรับผู้แต่งเพลงโดยเฉพาะ เนื่องจากคุณจะพบว่าความรู้พื้นฐานของ MIDI จะช่วยได้มากเมื่อค้นหาเครื่องมือ MIDI ขั้นสูง (และซับซ้อน) ของคุณ มาเริ่มกันเลย.
1. MIDI คืออะไร
ฉันชอบที่จะเริ่มสอนสิ่งต่าง ๆ ตั้งแต่เริ่มต้น อย่างไรก็ตาม หากคุณทราบแล้วว่า MIDI คืออะไรและทำหน้าที่อะไร อย่าลังเลที่จะข้ามไปที่How It Worksซึ่งเราจะเจาะลึกไปที่น็อตและสลักเกลียว ไม่งั้นก็มาทบทวนกัน
MIDI เป็นตัวย่อที่ย่อมาจาก Musical Instrument Digital Interface โดยพื้นฐานแล้วมันเป็นวิธีที่คอมพิวเตอร์ใช้อธิบายและถ่ายทอดการแสดงดนตรีให้กันและกัน จริงๆแล้วมันเป็นทาง หากคุณเกิดหลังยุค 80 คีย์บอร์ดหรือดรัมแมชชีนทุกเครื่องที่คุณเคยเห็นใช้ MIDI แม้ว่าจะมีความพยายามหลายครั้งในการยกเครื่องหรือเปลี่ยน MIDI ในช่วงหลายปีที่ผ่านมา แต่ผู้ผลิตเครื่องดนตรีและนักพัฒนาก็ดูเหมือนจะไม่สนใจที่จะใช้อย่างอื่น
ด้วย MIDI คุณสามารถ:
- บันทึกการแสดงดนตรีและแก้ไขด้วยความแม่นยำในการผ่าตัด
- “แพตช์” ประสิทธิภาพให้กับเครื่องดนตรีใด ๆ ที่แทบไม่ต้องทำงานเลย
- ดำเนินการสร้างหรือจัดลำดับการแสดง
- จัดการแสดงทั้งมวลด้วยการเชื่อมต่อเพียงครั้งเดียว
- ทำการผสมเบื้องต้นพร้อม "ระบบอัตโนมัติ"
และนั่นคือหาก ทำคะแนนได้ ในขณะที่วงออเคสตร้าเสมือนจริงในยุค 80 ฟังดูปลอมจนน่าขัน แต่เครื่องดนตรีสมัยใหม่กลับให้เสียงที่ดีเสียจนผู้ฟังทั่วไปไม่สามารถแยกแยะความแตกต่างได้ และนั่นทำให้ทุกอย่างเปลี่ยนไป ในภาพยนตร์และรายการทีวีที่มีทุนต่ำ เพลงประกอบมักจะใช้วงออเคสตรา MIDI ในเวอร์ชันสุดท้าย และผู้ชมก็ไม่มีใครฉลาดไปกว่าใคร และที่น่าอัศจรรย์คือเครื่องมือดังกล่าวมีให้สำหรับนักดนตรีในเกือบทุกระดับรายได้
1.1 MIDI ไม่ใช่อะไร
ก่อนดำเนินการต่อ ฉันต้องการปัดเป่าความเข้าใจผิดบางประการที่ผู้มาใหม่มีในบางครั้ง ใช้เวลาไม่นาน
ประการแรก MIDI ไม่ได้สร้างเพลง แต่เพียงบอกอุปกรณ์อื่นๆ ถึงวิธีการสร้างเพลง แต่มันสามารถทำอย่างอื่นได้เช่นกัน ตัวอย่างเช่น ในซอฟต์แวร์วิดีโอระดับมืออาชีพ ข้อความ MIDI ใช้เพื่อควบคุมสิ่งต่างๆ เช่น พารามิเตอร์แอนิเมชัน พื้นผิวการควบคุมในสตูดิโอจำนวนมากใช้ MIDI เพื่อควบคุมซอฟต์แวร์การผสม และเปียโนสำหรับผู้เล่นสุดแฟนซี นี้ ใช้เพื่อสั่งงานแอคทูเอเตอร์ของหุ่นยนต์ ประเด็นที่ฉันพยายามทำก็คือ แม้ว่าข้อมูล MIDI ส่วนใหญ่จะใช้เพื่อควบคุมเครื่องดนตรีเสมือน แต่ก็สามารถใช้กับอะไรก็ได้ และไม่ "ฟัง" เหมือนสิ่งใดๆ ในตัวของมันเอง
ประการที่สอง ข้อมูล MIDI ไม่ใช่แค่ "แผ่นเพลงสำหรับคอมพิวเตอร์" แต่การเปรียบเทียบจะมีประโยชน์เพียงใด ในขณะที่โน้ตเพลงตะวันตกเป็นสื่อที่เข้ารหัสเพลงที่สื่อความหมายมากที่สุดในประวัติศาสตร์ทั้งหมด ความจริงก็คือมันยังเหลือที่ว่างอีกมากสำหรับการตีความ และคอมพิวเตอร์ก็รับมือกับความกำกวมได้ไม่ดีนัก
MIDI น่าจะเป็นความคิดที่ดีที่สุดในฐานะภาษาการเขียนโปรแกรม และตัวแก้ไข MIDI ของคุณเป็นสภาพแวดล้อมการเขียนโปรแกรมแบบภาพ ตัวแก้ไข MIDI แสดงคำสั่ง MIDI เป็นรูปร่างบนเปียโนโรล แทนที่จะเป็นของจริง: คำสั่งดิจิทัลที่ยกย่อง และเช่นเดียวกับภาษาโปรแกรมอื่นๆ MIDI นั้นอยู่ภายใต้บั๊กและข้อบกพร่องทุกประเภท ตัวอย่างเช่น หากข้อความ “โน้ตบน” ไม่จับคู่กับ “โน้ตปิด” อย่างถูกต้อง โน้ตนั้นก็จะเล่นต่อไปตลอดกาล เพราะคอมพิวเตอร์ไม่มีสามัญสำนึกที่จะหยุด
อย่างไรก็ตาม ฉันเหนื่อยกับการเขียนบทนำนี้แล้ว ลองลอกชั้นของสิ่งที่เป็นนามธรรมออกทั้งหมด และเรียนรู้วิธีการพูด MIDI ในระดับพื้นฐาน
2. วิธีการทำงาน
เช่นเดียวกับเกือบทุกอย่างในคอมพิวเตอร์ MIDI จะลดจำนวนลงเหลือหนึ่งและศูนย์ แต่ละหลักเรียกว่าบิต (ย่อ มาจาก "เลขฐานสอง") และแปดในนั้นรวมกันเป็นไบต์ เมื่อคุณเล่นเปียโนดิจิตอล ข้อความ MIDI จะถูกสร้างขึ้นภายในและส่งไปยังตัวสร้างโทนเสียงของเครื่องดนตรี ซึ่งจะถูกตีความและแปลงเป็นเสียงที่ได้ยิน หากคุณดูที่สัญญาณ ข้อความที่สร้างขึ้นอาจมีลักษณะดังนี้:
นี่คือรูปแบบไบนารีของการแสดง MIDI อย่างง่าย: โน้ตสี่ตัวแรกของ Beethoven's Fifth หากคุณต้องบันทึกลำดับนี้และทำซ้ำกับเครื่องดนตรี MIDI อื่นตามที่ส่งมา ผลลัพธ์ที่ได้จะเป็นสำเนาของการแสดงที่เหมือนกัน หากคุณไปยุ่งกับเวลา คุณจะเปลี่ยนจังหวะการแสดง ทุกสิ่งทุกอย่างเกี่ยวกับประสิทธิภาพจะถูกเข้ารหัสในตัวข้อมูลเอง
มันเป็นเรื่องที่น่าสนใจที่จะตระหนักว่านักแต่งเพลงในปัจจุบันมักใช้เวลาในการประดิษฐ์ แก้ไข และปรับแต่งสิ่งที่ทำให้เดือดเพื่อส่งมอบตัวเลขตามเวลาที่กำหนด อย่างไรก็ตาม เรามาแบ่งงานการตีความความยุ่งเหยิงนี้ทีละขั้นตอน
2.1 การแยกข้อความ
สิ่งแรกที่ต้องรู้เกี่ยวกับข้อความ MIDI ก็คือข้อความเหล่านี้มักจะขยายมากกว่าหนึ่งไบต์เสมอ สิ่งนี้สมเหตุสมผลหากคุณพิจารณาว่ามีตัวเลข 8 บิตที่ไม่ซ้ำกันเพียง 256 ตัว และเราอาจจำเป็นต้องเข้ารหัสข้อมูลมากกว่านั้นเพื่ออธิบายบางสิ่งที่แสดงออกอย่างการแสดงดนตรี
ดังนั้น หากคุณได้รับข้อความในแพ็คเกจเล็กๆ หลายข้อความ ซึ่งอาจทั้งหมดพร้อมกัน คุณจะรู้ได้อย่างไรว่าข้อความหนึ่งสิ้นสุดที่ใดและข้อความถัดไปเริ่มต้นที่ใด ในความเป็นจริง หากคุณทราบจำนวนไบต์ที่ควรคาดหวังต่อข้อความหนึ่งข้อความ และคุณเริ่มต้นที่ด้านบนสุด คุณควรจะสามารถแยกความแตกต่างได้ ตราบใดที่ไม่มีสิ่งใดสูญหายระหว่างการส่ง อย่างไรก็ตาม MIDI มอบวิธีการที่แน่นอนในการแยกวิเคราะห์ทุกข้อความ: โดยการอุทิศบิตแรกของทุกๆ ไบต์ให้กับสาเหตุ
กฎข้อที่ 1: หากบิตแรกของไบต์ MIDI เป็น1ไบต์นั้นจะเป็นสถานะไบต์ซึ่งทำเครื่องหมายส่วนแรกของข้อความ MIDI หากบิตแรกเป็น0แสดงว่าเป็นไบต์ข้อมูลซึ่งเป็นรูปแบบเนื้อหาของข้อความ
ง่าย. ทุกครั้งที่ไบต์นำหน้าด้วย1เรารู้ว่าเรากำลังอ่านจุดเริ่มต้นของข้อความใหม่ และเราสามารถตีความไบต์ต่อไปนี้ร่วมกับไบต์แรกได้ ลองใช้กฎนั้นเพื่อแบ่งประสิทธิภาพ MIDI ข้างต้นเป็นข้อความแยก
ตอนนี้เรากำลังดูบางอย่างที่เป็นระเบียบมากขึ้น คุณอาจสังเกตเห็นรูปแบบบางอย่างโผล่ออกมา ประการหนึ่ง มีเพียงสองเวอร์ชันที่ไม่ซ้ำกันของแต่ละไบต์ เมื่อรู้ว่าข้อความเหล่านี้เป็นตัวแทนของโน้ตสี่ตัวแรกของซิมโฟนีที่ห้าของเบโธเฟน คุณพอจะเดาได้ไหมว่ามันหมายถึงอะไร
2.2 ไบต์สถานะและไบต์ข้อมูล
ไบต์สถานะของข้อความ MIDI ทำหน้าที่เป็นส่วนหัว และเป็นส่วนที่สำคัญที่สุด มันบอกเราว่าข้อความทำอะไรและตีความไบต์ข้อมูลต่อไปนี้อย่างไร สิ่งที่ไบต์ข้อมูลเข้ารหัสขึ้นอยู่กับข้อความ แต่โดยทั่วไปแล้วจะให้ข้อมูลที่สำคัญต่อการดำเนินการกับข้อความ หากไบต์สถานะระบุว่า "กระโดด" ไบต์ข้อมูลอาจบอกคุณได้ว่าสูงแค่ไหน
เนื่องจากบิตแรกของทุกไบต์ถูกสงวนไว้เพื่อแยกประเภทไบต์ทั้งสองออกจากกัน จึงมีเพียง 7 บิตเท่านั้นที่ใช้งานได้ นี่คือวิธีการใช้งาน:
กฎข้อที่ 2: บิต 2, 3 และ4ของไบต์สถานะระบุประเภทข้อความ บิต 5–8 ระบุช่อง MIDIที่กำลังระบุ ไบต์ข้อมูลทำหน้าที่แตกต่างกันขึ้นอยู่กับประเภทของข้อความ
สามบิตสำหรับกำหนดประเภทข้อความและสี่สำหรับหมายเลขช่อง หมายความว่ามีแปดประเภทข้อความที่แตกต่างกัน และ 16 ช่องที่เป็นไปได้ ไบต์ข้อมูลสามารถมีค่าใดก็ได้ตั้งแต่0ถึง127 แม้ว่าข้อความส่วนใหญ่จะใช้ข้อมูล 2 ไบต์ แต่ตัวเลขดังกล่าวอาจแตกต่างกันไปขึ้นอยู่กับความต้องการของข้อความ ตัวอย่างเช่น ข้อความ "การเปลี่ยนแปลงโปรแกรม" ต้องการเพียงหนึ่งไบต์ข้อมูล และข้อความ "เฉพาะตัวของระบบ" สามารถมีหมายเลขใดก็ได้
หากคุณเคยทำงานกับ MIDI มาก่อน คุณอาจคุ้นเคยกับช่อง MIDI อยู่แล้ว แต่ในกรณีที่คุณไม่ใช่ ทุกๆ การเชื่อมต่อ MIDI สามารถสั่งเสียงได้สูงสุด 16 เสียง ไบต์สถานะระบุในสี่บิตที่มีนัยสำคัญน้อยที่สุดซึ่งในแชนเนลเหล่านี้ข้อความกำลังระบุอยู่³
3. ประเภทข้อความ
ตารางต่อไปนี้ระบุประเภทข้อความ MIDI ต่างๆ และวิธีการใช้ข้อมูลเป็นไบต์ เราจะสำรวจแต่ละส่วนในหัวข้อย่อยต่อไปนี้
3.1 ปิดโน้ต / เปิดโน้ต (0x8n, 0x9n)
ข้อความเหล่านี้เป็นข้อความ MIDI พื้นฐานที่สุดและเข้าใจง่ายที่สุด เมื่อคุณต้องการเล่นโน้ต ให้ส่งข้อความ “โน้ตบน” และเมื่อคุณต้องการจบโน้ต ให้ส่งข้อความ “โน้ตปิด” ข้อความเหล่านี้ใช้ข้อมูลสองไบต์: รายการแรกระบุระดับเสียงที่คุณต้องการควบคุม และรายการที่สองระบุความเร็ว ⁴ การ “จดบันทึก” ด้วยความเร็ว 0 จะไม่ทำให้เกิดเสียง และเทียบเท่ากับข้อความ “จดบันทึก”
ข้อพิจารณา:
- การมีอยู่ของข้อความ "จดบันทึก" ความเร็วเป็นศูนย์หมายความว่าข้อความ "จดบันทึก" ไม่จำเป็นโดยสิ้นเชิง มาตรฐาน MIDI ระบุไว้โดยเฉพาะว่าข้อความ "จดบันทึก" และ "บันทึกเมื่อความเร็วเป็นศูนย์" นั้นเทียบเท่ากันและต้องได้รับการปฏิบัติเหมือนกัน ส่งผลให้อุปกรณ์เครื่องหนึ่งอาจยกเลิกการเรียกใช้โน้ตที่แตกต่างจากอีกเครื่องหนึ่ง
- ในขณะที่ตัวส่งต้องใช้เพียงวิธีเดียวในการเปิดโน้ต แต่ตัวรับต้องสามารถจัดการทั้งสองอย่างได้
- แม้ว่าค่าความเร็วจะไม่สมเหตุสมผลในข้อความ "จดบันทึก" แต่ก็ยังคงเป็นส่วนหนึ่งของข้อความและควรส่ง ค่านี้ไม่ได้ใช้และถูกยกเลิก
หมายเลขพิตช์ถูกแมปกับคีย์เปียโนเป็นหลักแบบหนึ่งต่อหนึ่ง อย่างไรก็ตาม เนื่องจากมีค่าที่เป็นไปได้ 128 ค่าและคีย์เปียโนเพียง 88 คีย์ MIDI จึงรองรับ 40 เซมิโทนที่ไม่พบในเปียโน 19 ตัวอยู่เหนือโน้ตสูงสุด C7 และอีก 21 ตัวอยู่เหนือโน้ตต่ำสุด A-1 ช่วงเสียง MIDI จะอยู่กึ่งกลางประมาณ Middle C ซึ่งเป็นโน้ตหมายเลข 60 ไม่มากก็น้อย
โปรดทราบว่าผู้ผลิตทั้งหมดไม่เห็นด้วยกับเลขคู่ เครื่องหมายพิตช์ทางวิทยาศาสตร์ที่ใช้โดยนักดนตรีแอ นะล็อก ระบุ C ต่ำสุดบนเปียโนเป็นC1ซึ่งทำให้ Middle C เป็น C4 ในทางกลับกัน โปรแกรมเมอร์มักจะเริ่มนับด้วย 0 ดังนั้นสำหรับพวกเขาแล้ว C ต่ำสุดคือC0 และ Middle C คือC3 นี่คือสัญลักษณ์ที่ฉันมักจะใช้ เพราะเป็นสิ่งที่เครื่องมือ MIDI ทั้งหมดของฉันใช้ อย่างไรก็ตาม ไม่ว่าคุณจะใช้ระบบใด Middle C จะเป็นโน้ตหมายเลข 60 เสมอ
ในภาคผนวก IIฉันจัดทำแผนภูมิสำหรับการแปลงเป็นและจากหมายเลขระดับเสียง MIDI
3.2 การเปลี่ยนแปลงการควบคุม (0xBn)
ข้อความ "การเปลี่ยนแปลงการควบคุม" ใช้เพื่อแก้ไขตัวควบคุมแบบต่อเนื่อง ของช่อง สัญญาณ ตัวควบคุมแบบต่อเนื่องนั้นคล้ายคลึงกับเลนอัตโนมัติ ช่วยให้สามารถควบคุมลักษณะต่างๆ ของประสิทธิภาพของช่องได้อย่างต่อเนื่อง
ไบต์ข้อมูลแรกระบุหมายเลข CC (0–119) และไบต์ที่ สองกำหนดค่า(0–127)
ข้อพิจารณา:
- ข้อมูลตัวควบคุมต่อเนื่องไม่ต่อเนื่องไม่เหมือนกับชื่อที่บอกเป็นนัย แทนที่จะสอดแทรกระหว่างค่าต่างๆ อย่างราบรื่นเหมือนที่ระบบอัตโนมัติทำ ค่าปัจจุบันของช่องทาง CC สามารถเปลี่ยนแปลงได้ในขั้นตอนที่ไม่ต่อเนื่องกันเท่านั้น หากต้องการเพิ่มค่าอื่นอย่างราบรื่น คุณต้องส่งข้อความ "ควบคุมการเปลี่ยนแปลง" จำนวนมาก โดยเพิ่มหรือลดค่าในอัตราที่ควบคุมได้
- ข้อกำหนด MIDI กำหนดว่าเครื่อง 120 CC ส่วนใหญ่มีไว้สำหรับใช้งานอะไร แม้ว่าจะมีอุปกรณ์เพียงไม่กี่เครื่องที่สังเกตได้มากกว่าไม่กี่เครื่อง ฉันให้ตารางของ CC ทั้งหมดในภาคผนวก III
- หมายเลข CC แปดตัวสุดท้าย(120–127)ไม่ได้แสดงถึง CC เลย แต่เป็นตัวแทนของหมวดหมู่ข้อความพิเศษที่เรียกว่าข้อความโหมดช่องสัญญาณ ข้อความโหมดช่องเป็นคำสั่งพิเศษที่มีผลกับอุปกรณ์ทั้งหมดที่ได้รับ ในทางปฏิบัติ คุณไม่ต้องกังวลเกี่ยวกับสิ่งเหล่านี้มากเกินไป แต่ฉันให้ข้อมูลเพิ่มเติมเกี่ยวกับสิ่งเหล่านี้ในภาคผนวก I
- อุปกรณ์จำนวนมากใช้หมายเลข CC 0และ32 เพื่อจุดประสงค์ในการเลือกแพตช์ อ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ในภาคผนวก IV
งอสนามขึ้นหรือลง หึ
Pitch Bend มีลักษณะเหมือน CC ในความเป็นจริง ตัวแก้ไข MIDI ส่วนใหญ่ปฏิบัติต่อ Pitch Bend เหมือนเป็นแค่ CC อีกตัวหนึ่ง อย่างไรก็ตาม ค่า CC ขนาด 7 บิตที่มีค่าที่เป็นไปได้ 128 ค่านั้นไม่มีความละเอียดเพียงพอที่จะขายเอฟเฟกต์การโค้งงอ หูของเรานั้นยอดเยี่ยมมากในการหาระดับเสียงสูง ดังนั้นแม้เมื่อเราเข้าใกล้ระดับเสียงใหม่ทีละ 1/128 เสียงก็จะไม่ราบรื่นและเป็นธรรมชาติ
เพื่อให้ได้ความละเอียดที่ละเอียดยิ่งขึ้น ข้อความ "pitch bend" จะใช้ข้อมูลสองไบต์เพื่อส่งค่าขนาดใหญ่เพียงค่าเดียว โดยทั่วไป หากคุณบีบเจ็ดบิตของข้อความหนึ่งและเจ็ดบิตของอีกข้อความหนึ่งรวมกัน คุณสามารถรวบรวมค่า 14 บิตค่าเดียว ซึ่งจะเพิ่มความละเอียดของคุณขึ้นอีก 2⁷ หรือ 128
ตอนนี้ แทนที่จะมีค่าที่เป็นไปได้ 128 ค่าสำหรับการโค้งงอของสนาม เรามีขั้นตอนมากถึง 16,384 ขั้น ซึ่งมากเกินพอที่จะทำให้การโค้งงอของสนามเป็นไปอย่างราบรื่น ครึ่งขวามาจากข้อมูลไบต์แรก (ไบต์ที่มีนัยสำคัญน้อยที่สุดหรือ LSB) และครึ่งซ้ายมาจากไบต์ที่สอง (ไบต์ที่มีนัยสำคัญที่สุดหรือ MSB)
ข้อพิจารณา:
- ความแข็งแรงของพิตช์เบนด์ (จำนวนเซมิโทนขึ้นหรือลงของพิทช์เบนด์สูงสุด) จะแตกต่างกันไปในแต่ละเครื่องดนตรี มักจะกำหนดค่าได้
- Pitch Bend คือ "กึ่งกลาง" ที่8192 (ซึ่งไม่มีการเปลี่ยนแปลง Pitch)
- การโค้งงอของระดับเสียงส่งผลต่อโน้ตที่เล่นทั้งหมดในช่อง เช่นเดียวกับที่ CC ทำ
- การเขียนโปรแกรมด้วย MSB และ LSB ทำได้ดีที่สุดด้วยตัวดำเนินการระดับบิต ฉันจะไม่พูดถึงสิ่งเหล่านี้ แต่ฉันได้ให้แหล่งข้อมูลบางอย่างในภาคผนวก Vหากคุณต้องการเรียนรู้เพิ่มเติม
คอนโทรลเลอร์ MIDI บางตัว เช่นAkai MPK225มีคุณสมบัติบางอย่างที่เรียกว่าaftertouch ตัวควบคุม Aftertouch ไม่เพียงไวต่อความเร็วของการกดแป้นแต่ละครั้งเท่านั้น แต่ยังไวต่อแรงกดที่แป้นกดค้างไว้อีกด้วย
Aftertouch มีให้เลือก 2 แบบ ได้แก่channel aftertouchและpolyphonic aftertouch Channel aftertouch หรือที่เรียกว่าmono pressureวัดแรงกดทั่วทั้งคีย์บอร์ด ในขณะที่ polyphonic aftertouch วัดแรงกดแยกกันสำหรับทุกคีย์ เนื่องจากต้นทุนฮาร์ดแวร์ที่ต่ำกว่า แชนเนล aftertouch จึงเป็นเรื่องธรรมดาของทั้งสองสิ่งนี้ ข้อความแรงดันแชนเนลใช้เพียงหนึ่งไบต์ข้อมูล ซึ่งแสดงถึงระดับแรงดันโดยรวม ข้อความกดดันคีย์โพลีโฟนิกใช้สองข้อความ: ข้อความแรกรายงานระดับเสียง (โดยใช้หมายเลขระดับเสียงมาตรฐาน) และข้อความที่สองรายงานระดับเสียง
ข้อพิจารณา:
- อาฟเตอร์ทัชแบบโพลีโฟนิกเป็นตัวควบคุมเดียวที่สามารถตั้งค่าได้อย่างอิสระสำหรับแต่ละระดับเสียง การควบคุมอื่นๆ ทั้งหมด (นอกเหนือจากการเปิดหรือปิดโน้ต) มีผลกับช่องทั้งหมด
- ส่วนขยายของ MIDI ที่เรียกว่า "MIDI Polyphonic Expression" (MPE) ได้รับการออกแบบมาเพื่อให้ CC's และ pitch bend สามารถใช้โพลีโฟนิคได้เช่นกัน MPE ไม่ใช่เรื่องธรรมดา แต่ได้รับความนิยมจากอุปกรณ์เช่นROLI Seaboard ฉันได้ให้ลิงก์ไปยังแหล่ง ข้อมูลที่ครอบคลุมในภาคผนวก V
หากคุณไม่ได้ใช้ฮาร์ดแวร์ MIDI ภายนอกมากนัก คุณอาจไม่ได้ใช้ข้อความประเภทนี้บ่อยเกินไป ข้อความ “เปลี่ยนโปรแกรม” สั่งให้อุปกรณ์โหลดโปรแกรมใหม่ (แพทช์ใหม่หรือพรีเซ็ต) ใช้เพียงหนึ่งไบต์ข้อมูลซึ่งระบุดัชนีของแพตช์
ข้อความประเภทนี้มีประโยชน์อย่างยิ่งเมื่อเขียนด้วยอุปกรณ์ MIDI ภายนอก ตราบใดที่ฮาร์ดแวร์ของคุณรองรับค่าที่ตั้งไว้ล่วงหน้า โปรเจกต์หรือเซสชันของคุณจะสามารถจัดการการเลือกและโหลดได้ เพียงแค่จัดลำดับข้อความ "เปลี่ยนโปรแกรม" ที่เหมาะสมเมื่อเริ่มต้น
ข้อพิจารณา:
- ตราสารที่มี การตั้งค่าล่วงหน้ามากกว่า 128 รายการมักจะจัดเก็บแพตช์ไว้ในธนาคาร หลายแห่ง หากต้องการเรียกคืนโปรแกรมที่จัดเก็บไว้ในธนาคารอื่น เลข 0และ32ของ CC จะถูกเปลี่ยนให้เป็นข้อความ "เลือกธนาคาร" ในภาคผนวก IVฉันจะกล่าวถึงวิธีการทำงานนี้
- ด้วยการตั้งเวลาอย่างชาญฉลาดสำหรับข้อความเปลี่ยนโปรแกรม เป็นไปได้ที่อุปกรณ์หนึ่งเครื่องจะใช้แพตช์ที่แตกต่างกันมากกว่า 16 รายการในแพตช์เดียว ตราบใดที่ไม่ได้เล่นพร้อมกัน แม้ว่าจะเป็นเรื่องจริง คุณควรแยกสิ่งต่างๆ ออกเป็นการบันทึกแยกกันหากต้องการแยกเสียงจำนวนมากออกจากอุปกรณ์เครื่องเดียว
- Cubase และ Nuendo ให้การสนับสนุนแบบเนทีฟสำหรับข้อความเปลี่ยนโปรแกรมในตัวตรวจสอบแทร็ก MIDI ฉันไม่แน่ใจว่ามี DAW อีกกี่แห่งที่รองรับสิ่งนี้
ข้อความของระบบเป็นหัวข้อขั้นสูงที่ฉันจะไม่พูดถึงในที่นี้ พวกเขาสมควรได้รับบทความของพวกเขาเอง ใช้สำหรับทุกสิ่ง การถ่ายโอนข้อมูลขนาดยักษ์ (เรียกว่า “ ดัมพ์ ”) การซิงโครไนซ์นาฬิกา การส่งรหัสเวลา และอื่นๆ
ในอนาคต ฉันอาจเขียนคำแนะนำเกี่ยวกับข้อความระบบ แต่สำหรับตอนนี้ ไม่ต้องกังวลเกี่ยวกับข้อความเหล่านี้ โปรดทราบว่ามีอยู่จริงและไม่ได้ใช้โดยทั่วไปในการจัดองค์ประกอบ MIDI
4. เกี่ยวกับเลขฐานสิบหก
ก่อนที่จะไปต่อ เราควรพูดถึง0x ทั้งหมดที่ ฉันใช้ในส่วนที่แล้ว คำนำหน้า0xบอกคุณว่าตัวเลขเป็นเลขฐานสิบหก⁵ เมื่อคุณเจาะลึกเครื่องมือ MIDI ขั้นสูงและคู่มืออุปกรณ์ คุณจะสังเกตเห็นว่าข้อความ MIDI มักจะแสดงเป็นเลขฐานสิบหกแทนที่จะเป็นเลขฐานสองหรือฐานสิบ สิ่งนี้อาจดูสวนทางกับสัญชาตญาณในตอนแรก — ฉันหมายความว่า ถ้าคุณจะแปลงเลขฐานสองเลย ทำไมไม่ลองแปลงเป็นฐานสิบที่มนุษย์อ่านได้ล่ะ
คำตอบคือมันใช้งานได้จริงมากกว่า แม้ว่าฉันคิดว่าไบนารี่เป็นวิธีที่ดีที่สุดในการเริ่มเรียนรู้ MIDI แต่การทำงานจริง ๆ นั้นค่อนข้างยุ่งยาก การกระจายทุกๆ ไบต์ที่มากกว่า 8 หลักทำให้การอ่านและการเขียนเป็นเรื่องน่าเบื่อ และเนื่องจากทุกอย่างในไบนารีเป็นเพียงเลข 1 และเลขศูนย์ คุณจึงเสียตำแหน่งได้ง่ายๆ เมื่ออ่านลำดับที่ยาว
ดังนั้นโปรแกรมเมอร์ระดับบิตมักจะทำงานเป็นเลขฐานสิบหก มันลดทุกไบต์ให้เหลือเพียงสองหลัก และเนื่องจาก 16 เป็นเลขยกกำลัง 2 แต่ละบิตที่คุณเปลี่ยนจึงมีผลกับเลขฐานสิบหกเพียงหนึ่งหลักเท่านั้น ซึ่งช่วยให้คุณคิดว่าเลขฐานสิบหกแต่ละหลักเป็นเลขสี่บิตของมันเอง หากคุณต้องการทำงานในระดับบิตในการแสดงทศนิยม คุณจะต้องแปลงไบต์ทั้งหมดเป็นไบนารี่แล้วย้อนกลับมาใหม่
มีเพียงบางสิ่งที่ควรทราบเมื่อทำงานกับ MIDI ในเลขฐานสิบหก
- เนื่องจากวิธีที่บิตถูกจัดกลุ่มเป็นเลขฐานสิบหก คุณจึงสามารถบอกได้ว่าช่อง MIDI ใดที่ไบต์สถานะระบุอยู่โดยดูที่อะไรมากไปกว่าเลขฐานสิบหกทางขวามือ
- หากตัวเลขทางซ้ายมือของไบต์มีค่า
0x7น้อยกว่า แสดงว่าเป็นไบต์ข้อมูล และในทำนองเดียวกัน ไบต์ที่ขึ้นต้นด้วย0x8หรือมากกว่านั้นเป็นไบต์สถานะ - ค่าไบต์ข้อมูลสูงสุด 127 เป็น
0x7Fเลขฐานสิบหก
5. ตัวอย่างประยุกต์: ซิมโฟนีที่ห้าของเบโธเฟน
เมื่อเราออกจากตัวอย่างนี้ เราเพิ่งแบ่งไบนารีดิบออกเป็นข้อความที่ไม่ต่อเนื่อง ที่มีลักษณะดังนี้:
เพื่อให้ง่ายต่อการโต้เถียงลองแปลงเป็นเลขฐานสิบหก ฉันจะปล่อยให้สถานะไบต์เป็นสีแดง และไบต์ข้อมูลเป็นสีน้ำเงิน
เมื่อรู้ว่าตอนนี้เรารู้อะไรแล้ว เรารู้ว่าไบต์สถานะของ 0x9 และ 0x8 นำหน้าระบุข้อความว่า "จดบันทึก" และ "จดบันทึก" ตามลำดับ ตัวเลขด้านขวาของไบต์บอกเราว่าพวกเขากำลังกำหนดเป้าหมาย MIDI Channel 1.⁶
นี่คือลักษณะการทำงานของไบต์สถานะที่แปลแล้ว
ในประเภทข้อความ "จดบันทึก" และ "จดบันทึก" ไบต์ข้อมูลแรกเข้ารหัสระดับเสียง และไบต์ที่สองเข้ารหัสความเร็ว ค่าความเร็วเป็นเพียงตัวเลข ในการหาระดับเสียง เรา จำเป็นต้องอ้างอิงตารางโน้ต MIDI และจำไว้ว่าความเร็ว "จดบันทึก" จะไม่ถูกใช้
ขอจบการแปล:
แค่นั้นแหละ! นี่คือคำสั่ง MIDI ที่แปลแล้วซึ่งเข้ารหัสโน้ตสี่ตัวแรกของ Beethoven's Fifth ตึม ตึม ตึม ตึม!
เมื่อรู้ว่าตอนนี้คุณรู้อะไรแล้ว คุณสามารถสร้างและถอดรหัสข้อความ MIDI ทั่วไปได้ด้วยมือ ขณะนี้เครื่องมือขั้นสูง เช่น ตัวแปลง MIDI และตัวแก้ไขแบบลอจิคัลพร้อมให้คุณใช้งานแล้ว อย่างไรก็ตาม ยังมีอะไรให้เรียนรู้อีกมากเสมอ หากคุณเป็นคนตะกละในความรู้ ฉันได้จัดเตรียมแหล่งข้อมูลบางอย่างที่คุณสามารถใช้เพื่อศึกษา MIDI เพิ่มเติมในภาคผนวก V
6. บทเรียนโบนัส: สถานะการทำงาน
มีข้อเสนอทางลัด MIDI ที่มีประโยชน์ซึ่งฉันยังไม่ได้พูดถึงจนถึงตอนนี้เพื่อให้ทุกอย่างง่ายขึ้น วิธีการทำงาน: เมื่อคุณส่งไบต์สถานะแล้ว คุณไม่จำเป็นต้องส่งอีกจนกว่าจะแตกต่างจากครั้งล่าสุด ไบต์สถานะสุดท้ายที่ได้รับยังคงเป็น "เปิด" และใช้เพื่อตีความไบต์ข้อมูลทั้งหมดที่จะตามมา สิ่งนี้เรียกว่าRunning Status
พิจารณาสตริงไบต์ต่อไปนี้:
สิ่งที่คุณกำลังดูคือประสิทธิภาพเดียวกันทุกประการของ Beethoven's Fifth ที่เราแปลในตัวอย่างที่นำไปใช้ แต่เนื่องจากไบต์สถานะเกือบทั้งหมดขาดหายไป อย่างไรก็ตาม เนื่องจากสถานะการทำงาน ประสิทธิภาพนี้จึงใช้ได้เหมือนครั้งแรก เมื่อเราส่งสถานะไบต์0x90มันจะกลายเป็นสถานะกำลังทำงาน และทุกคู่ของไบต์ที่ตามมาจะถือว่าเหมือนกับว่านำหน้าด้วย " " ของตัว0x90เอง
สิ่งนี้ทำให้เราสามารถตัดไบต์สถานะซ้ำๆ จำนวนมากออก ซึ่งจะทำให้สตรีม MIDI ของเราสั้นลงอย่างมาก ย้อนกลับไปเมื่อคอมพิวเตอร์ช้าลงและอัตรารับส่งข้อมูลมีข้อจำกัดมากขึ้น สิ่งนี้มีประโยชน์อย่างเหลือเชื่อ อย่างไรก็ตาม ทุกวันนี้ คอมพิวเตอร์เร็วมากจนการใช้สถานะกำลังทำงานไม่ได้ทำให้ประสิทธิภาพดีขึ้นอย่างเห็นได้ชัด อย่างไรก็ตาม ฉันยังคงพูดถึงเรื่องนี้ เนื่องจากหากคุณพบว่าตัวเองกำลังเขียนโปรแกรม MIDI อยู่ คุณควรเตรียมพร้อมที่จะเห็นสถานะไบต์ถูกละเว้นที่นี่และที่นั่น
โปรดสังเกตว่าเนื่องจากความเร็วศูนย์ "โน้ตบน" นับเป็น "โน้ตปิด" เราจึงสามารถเริ่มต้นและสิ้นสุดโน้ตได้โดยไม่ทำลายสถานะการวิ่ง อย่างน้อยก็จนกว่าเราจะต้องส่งการเปลี่ยนแปลงการควบคุมหรือข้อความไปยังช่องทางอื่น
- สิ่งนี้ทำได้ด้วยส่วนขยายของ MIDI ที่เรียกว่า MIDI Show Control
- "สิ่งที่คุณเห็นคือสิ่งที่คุณได้รับ".
- หมายเลขช่อง MIDI เริ่มต้นด้วย 1 ในขณะที่การแสดงในที่นี้เริ่มต้นด้วย 0 ค่า 0 หมายถึงช่อง 1 และค่า 15 หมายถึงช่อง 16
- ความเร็วสามารถคิดได้ว่าเป็นโน้ตที่ "หนัก" แค่ไหน
- สัญกรณ์ทั่วไปอื่นคือการตามหลังตัวเลขด้วยอักษรตัวใหญ่ "H" เช่นเดียวกับใน "78H"
- โปรดจำไว้ว่าแม้ว่าตัวเลขในข้อความจะเป็นศูนย์ แต่ก็ตรงกับช่อง 1 เพราะเราเริ่มนับตัวเลขที่ 0 และช่องที่ 1
ภาคผนวก I: ข้อความโหมดช่องสัญญาณ
ข้อความ "โหมดช่องสัญญาณ" เป็นคำ สั่งพิเศษที่เปลี่ยนแปลงลักษณะการทำงานของอุปกรณ์ทั้งหมดโดยการเปลี่ยนโหมด MIDI ประเภทของ
ในทางปฏิบัติ ข้อความ "โหมดช่องสัญญาณ" ใช้เพื่อเปิดหรือปิดคุณสมบัติบางอย่างและส่งคำสั่งบางอย่างเท่านั้น สิ่งที่ MIDI ระบุว่าเป็น "โหมด" นั้นเป็นเพียงการกำหนดค่าที่แตกต่างกันของการสลับ Omni และ Poly พูดตามตรง ฉันไม่คิดว่า "โหมด" เป็นวิธีที่เหมาะสมอย่างยิ่งในการคิดเกี่ยวกับคำสั่งเหล่านี้ แต่อย่างน้อยฉันจะอธิบายสิ่งที่คำสั่งทำ
ข้อความโหมดช่องไม่มีประเภทข้อความของตนเอง หมายเลขตัวควบคุมต่อเนื่องแปดตัวสุดท้าย (CC 120–127) จะถูกเปลี่ยนวัตถุประสงค์แทน ข้อความโหมดช่องมีดังนี้:
เพื่อให้อุปกรณ์ตอบสนองต่อข้อความในโหมดแชนเนล อุปกรณ์จะต้องได้รับข้อความจากแชนเนลพื้นฐาน ช่องพื้นฐานของอุปกรณ์เป็นช่อง MIDI เพียงช่องเดียวที่ข้อความโหมดช่องถือว่าถูกต้อง สำหรับอุปกรณ์จำนวนมาก ช่องนี้สามารถกำหนดค่าได้ ด้วยวิธีนี้ ข้อความโหมดแชนเนลสามารถกำหนดเป้าหมายไปยังอุปกรณ์เฉพาะภายในเดซี่เชน
สิ่งต่อไปนี้คือสรุปโดยย่อของข้อความโหมดช่องสัญญาณแต่ละโหมด ภาคผนวก Vมีแหล่งข้อมูลสำหรับการศึกษาเพิ่มเติม
- ปิดเสียงทั้งหมด (“CC” 120): ตัดเสียงทั้งหมดที่เครื่องดนตรีกำลังสร้างอยู่ รวมถึงเอฟเฟกต์การสลายตัวของโน้ตและเอฟเฟกต์รีเวิร์บ
- รีเซ็ตคอนโทรลเลอร์ทั้งหมด (“CC” 121): ตั้งค่า CC ทั้งหมด, สวิตช์คอนโทรลเลอร์, pitch pitch และเอฟเฟกต์ aftertouch เป็นค่าเริ่มต้น ค่าที่ตัวควบคุมแต่ละตัวส่งคืนจะขึ้นอยู่กับตัวควบคุม และกำหนดไว้ในข้อมูลจำเพาะ MIDI
- Local Control (“CC” 122): ตัดการเชื่อมต่อคีย์บอร์ดบนซินธิไซเซอร์จากเครื่องกำเนิดเสียง สิ่งนี้ช่วยให้คุณใช้ซินธิไซเซอร์เป็นตัวควบคุม MIDI ในขณะเดียวกันก็จัดลำดับของมัน ตั้งค่า
0x00ให้ปิดการควบคุมภายในเครื่องและ0x7Fเปิดอีกครั้ง - All Notes Off (“CC” 123): “ปุ่มตกใจ” การปิดโน้ตทั้งหมดจะเทียบเท่ากับการส่งข้อความ "การปิดโน้ต" สำหรับทุกการเสนอขายในทุกช่อง มันสะดวกสำหรับการแก้ไขบันทึกที่ติดอยู่ บันทึกที่ทริกเกอร์ในเครื่องจะไม่ได้รับผลกระทบ
- ปิด/เปิดโหมด Omni (“CC” 124, 125): เมื่อเปิดโหมด Omni ทุกช่องสัญญาณจะตอบกลับทุกข้อความขาเข้า ไม่ว่าจะระบุช่องใดในไบต์สถานะ
- โหมดโมโน / โหมดโพลี (“CC” 126, 127): บังคับเสียงหรือเสียงให้มีลักษณะแบบโมโนโฟนิกหรือแบบโพลีโฟนิก หากตั้งค่า "เปิดโหมดโมโน" เป็น
0x00ช่องพื้นฐานและทุกช่องด้านบนจะถูกตั้งค่าเป็นโหมดโมโน สำหรับค่าอื่นๆnช่องnถึงn+m-1จะถูกตั้งค่าเป็นโหมดโมโน (โดยที่mคือค่าของข้อมูลไบต์ที่สอง) ข้อความ "เปิดโหมดโพลี" จะตั้งค่าช่องทั้งหมดกลับเป็นโหมดโพลี
ภาคผนวก III: การมอบหมาย CC มาตรฐาน
ข้อกำหนด MIDI กำหนดการใช้มาตรฐานของ CC ซึ่งฉันได้คัดลอกไว้ที่นี่ มีการกำหนดหมายเลข CC ทั้งหมด ยกเว้น: 3, 9, 14, 15, 20–31, 85–90 และ102–119 CC ที่ได้รับการสนับสนุนอย่างกว้างขวางที่สุดคือ Modulation ( 0x01), Foot Controller ( 0x04), Channel Volume ( 0x07), Pan ( 0x0A), Expression ( 0x0B) และ Sustain ( 0x40)
ตรวจสอบแหล่งข้อมูลในภาคผนวก Vหากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ CC เหล่านี้
ภาคผนวก IV: ข้อความแจ้งการเปลี่ยนแปลงธนาคาร
ซินธิไซเซอร์สมัยใหม่สามารถจัดเก็บและเรียกคืนค่าที่ตั้งไว้ล่วงหน้าได้มากมาย มากกว่าที่จะสามารถระบุได้ด้วยข้อความเปลี่ยนโปรแกรมเพียงข้อความเดียว เพื่อหลีกเลี่ยงปัญหานี้ ผู้ผลิตมักจะจัดเรียงโปรแกรมของตนเป็นธนาคาร ธนาคารแต่ละแห่งมีค่าที่ตั้งไว้ล่วงหน้าสูงสุด 128 ค่า และที่อยู่ 7 บิตหรือ 14 บิตที่ไม่ซ้ำกัน
หากต้องการเรียกคืนแพตช์จากธนาคารอื่น คุณต้องส่งข้อความ "เลือกธนาคาร" พร้อมที่อยู่ก่อน หลังจากนั้นให้ส่งข้อความเปลี่ยนโปรแกรมตามปกติ และแพทช์ที่โหลดจะมาจากธนาคารใหม่
ดังที่คุณ อาจสังเกตเห็น ข้อความเหล่านี้เป็นข้อความ "ควบคุมการเปลี่ยนแปลง" สำหรับ0และ32 ของ CC สำหรับแอดเดรส 7 บิตจะใช้ CC 0 เท่านั้น สำหรับแอดเดรส 14 บิต CC 0แทน MSB และ32แทน LSB หากคุณต้องการไพรเมอร์สำหรับ MSB และ LSB มีอยู่ใน ส่วน Pitch Bendของบทความหลัก
ไม่ว่าอุปกรณ์จะใช้ที่อยู่แบบ 7 บิตหรือ 14 บิตนั้นขึ้นอยู่กับอำเภอใจ และคุณจะต้องตรวจสอบคู่มือของคุณเพื่อดูว่าจะใช้ที่อยู่ใดเมื่อสื่อสารกับอุปกรณ์ของคุณ
ภาคผนวก V: แหล่งข้อมูลเพิ่มเติม
- MIDI Association : MIDI Association เป็นที่เก็บข้อมูลหลักเกี่ยวกับหรือเกี่ยวข้องกับเทคโนโลยี MIDI ลงทะเบียนได้ฟรี และเมื่อลงทะเบียนแล้ว คุณสามารถดาวน์โหลดข้อกำหนดโดยละเอียดของ MIDI 1.0 ฉบับสมบูรณ์ได้ที่นี่
- Bitwise Operation (วิกิพีเดีย) : ฉันรู้ ฉันรู้ว่าวิกิพีเดียไม่ใช่แหล่งข้อมูลหลักที่ดี แต่ฉันชอบบทความนี้เพราะเป็นภาษากลางและไม่มีโฆษณา ศึกษาเกี่ยวกับการเลื่อนบิตทางเลขคณิตและ OR ระดับบิต ซึ่งมีประโยชน์เมื่อทำงานกับ MSB และ LSB
- MPE คืออะไร? : บทความในฐานข้อมูลสนับสนุนของ ROLI เกี่ยวกับ MIDI Polyphonic Expression ซึ่งใช้ในคอนโทรลเลอร์หลายมิติ เช่น ผลิตภัณฑ์ Seaboard MPE ได้รับการรับรองอย่างเป็นทางการจากสมาคมผู้ผลิต MIDI ในเดือนมกราคม 2018 และมีลิงก์ดาวน์โหลดไปยังข้อมูลจำเพาะที่นี่
- โหมด MIDI (Electronic Music Interactive v2, University of Oregon): หน้านี้นำเสนอภาพรวมที่ดีและกระชับของโหมด MIDI มาตรฐานสี่โหมด เป็นส่วนหนึ่งของหลักสูตรออนไลน์เกี่ยวกับดนตรีอิเล็กทรอนิกส์ที่ยาวขึ้น
- MIDI CC List (Nick Fever) : รายการ CC มาตรฐานพร้อมคำอธิบายเพิ่มเติม หากคุณยังต้องการข้อมูลเพิ่มเติมหลังจากดูรายชื่อของ Nick แล้ว โปรดดูข้อกำหนดโดยละเอียดของ MIDI 1.0 ฉบับสมบูรณ์ ซึ่งคุณสามารถดาวน์โหลดได้ที่นี่
- MIDI System Common Messages , MIDI System Realtime Messages , MIDI System Exclusive Message (RecordingBlogs Wiki): บทนำที่ยอดเยี่ยมสำหรับข้อความระบบแต่ละประเภท
- MIDI Registered Parameter Number (RecordingBlogs Wiki): ภาพรวมของ Registered Parameter Numbers ซึ่งสามารถคิดได้ว่าเป็นส่วนขยายของ CC เมื่อคุณเข้าใจ RPN แล้ว คุณจะเข้าถึง NRPN (Non-Registered Parameter Numbers) ได้เช่นกัน





































![รายการที่เชื่อมโยงคืออะไร? [ส่วนที่ 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)