เสียง MIDI (.mid)
MIDI มาตรฐานMusical Instrument Digital Interface (MIDI) คือมาตรฐานโน้ตเพลงเชิงสัญลักษณ์ที่บันทึกเหตุการณ์การบรรเลงเครื่องดนตรี แทนที่จะเป็นรูปคลื่นเสียงอะคูสติก
ตรวจสอบไฟล์และข้อมูลเมตา
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ MID โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็นส่วนหัวระดับไบต์
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ MID โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็น HEX (OFFSET 0):
4D 54 68 64การแสดงผลรูปแบบ ASCII: MThd
มาตรฐาน: MIDI Manufacturers Association (MMA) / AMEI
ข้อมูลจำเพาะทางเทคนิค
| สถาปัตยกรรมคอนเทนเนอร์ | โครงสร้างชังก์แบบลำดับชั้นของ Standard MIDI File (SMF) (ส่วนหัว MThd + ชังก์แทร็ก MTrk) |
| การบีบอัด | เหตุการณ์การบรรเลงเชิงสัญลักษณ์แบบไม่บีบอัด (Note On, Note Off, Velocity, Pitch Bend) |
| การจัดลำดับไบต์ | การเรียงลำดับบิตและไบต์แบบ Big-Endian |
| พื้นที่สี | ไม่เกี่ยวข้อง (สตรีมคำสั่งโน้ตเชิงสัญลักษณ์) |
| ช่องสัญญาณและโครงสร้าง | ช่องสัญญาณ MIDI เชิงตรรกะ 16 ช่องต่อแทร็ก |
| ขนาดสูงสุด | ความละเอียดเวลาเดลตาแบบแปรผัน (ติ๊กต่อโน้ตตัวดำ สูงสุด 65,535) |
| ความโปร่งใส | ลำดับเหตุการณ์เชิงคณิตศาสตร์ล้วน ไม่มีการจัดเก็บเสียงรูปคลื่น |
| การสตรีมและแบบโปรเกรสซีฟ | สตรีมเหตุการณ์ตามลำดับ สามารถแยกวิเคราะห์และส่งคำสั่งทีละโน้ตได้ |
ตารางเปรียบเทียบทางเทคนิค: MID กับคู่แข่ง
| คุณลักษณะทางเทคนิค | MID (ปัจจุบัน) | WAV | MP3 | MOD |
|---|---|---|---|---|
| เนื้อหาที่จัดเก็บ | คำสั่งเหตุการณ์ (โน้ต ระดับเสียง ความแรงในการกด) | รูปคลื่น PCM แบบไม่บีบอัด | รูปคลื่นที่บีบอัดแบบสูญเสียข้อมูล | คำสั่งแทร็กและตัวอย่างเสียงเครื่องดนตรีที่ฝังอยู่ |
| ขนาดไฟล์เฉลี่ย | 10 KB - 100 KB | 30 MB - 50 MB | 3 MB - 5 MB | 500 KB - 2 MB |
| ความสม่ำเสมอของเสียง | แตกต่างกันอย่างมากตามเครื่องสังเคราะห์เสียง/ซาวด์ฟอนต์ของผู้ใช้ | ข้อมูลเหตุการณ์ MIDI สามารถถ่ายโอนได้ แต่เสียงขณะเล่นขึ้นอยู่กับซินธิไซเซอร์หรือคลังเสียง | ข้อมูลเหตุการณ์ MIDI สามารถถ่ายโอนได้ แต่เสียงขณะเล่นขึ้นอยู่กับซินธิไซเซอร์หรือคลังเสียง | |
| การแก้ไขการเรียบเรียง | แก้ไขได้ง่ายมาก โดยปรับโน้ตทีละตัวในโน้ตเพลง | การปรับแต่งเสียงทำได้ยากมาก | การปรับแต่งเสียงทำได้ยากมาก | การแก้ไขตัวอย่างตามรูปแบบ |
รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex
โน้ตของเครื่องสังเคราะห์เสียงดังค้างไม่มีที่สิ้นสุด ('โน้ตค้าง') หรือจังหวะเร็วขึ้นอย่างมหาศาล
สาเหตุหลัก: ขาดเหตุการณ์ 'Note Off' หรือค่า delta-time แบบความยาวตัวแปรที่เสียหายในส่วน MTrk
การกู้คืน: เปิดไฟล์ใน MIDI ซีเควนเซอร์ หรือใช้เครื่องมือ MIDI ของ File2File.app เพื่อปรับ running status ให้ถูกต้องและเพิ่มคำสั่ง Note Off ที่ขาดหายไป
การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์
ตัวแยกวิเคราะห์ MIDI จะถอดรหัสค่า delta-time ที่ซับซ้อนซึ่งเข้ารหัสแบบความยาวแปรผัน (VLQ) รวมถึงข้อความ System Exclusive (SysEx) ซึ่งอาจทำให้บัฟเฟอร์ล้นในซินธิไซเซอร์ฮาร์ดแวร์และซอฟต์แวร์
เวกเตอร์การโจมตีที่ทราบ
- การขยายค่า VLQ แบบความยาวแปรผันโดยไม่ตรวจสอบ ทำให้เกิดจำนวนเต็มล้น 32 บิต
- เพย์โหลดข้อความ SysEx ขนาดใหญ่เกินไปทำให้บัฟเฟอร์ฮีปล้นในเฟิร์มแวร์ของซินธิไซเซอร์หรือปลั๊กอินซอฟต์แวร์
- มาร์กเกอร์ลูปที่สร้างขึ้นเพื่อประสงค์ร้ายทำให้เธรดเรนเดอร์เสียงวนลูปไม่สิ้นสุดและใช้ CPU
แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน: กำหนดขีดจำกัดสูงสุดของค่า delta-time และตรวจสอบบล็อกผู้ผลิต SysEx ก่อนส่งต่อให้ซินธิไซเซอร์
ประวัติความเป็นมาและเหตุการณ์สำคัญ
ข้อได้เปรียบและจุดเด่นสำคัญ
- ขนาดไฟล์เล็กมาก: การเรียบเรียงเพลงสำหรับวงซิมโฟนีเต็มรูปแบบใช้พื้นที่หลายสิบกิโลไบต์แทนที่จะเป็นหลายสิบเมกะไบต์
- ความยืดหยุ่นในการแก้ไขอย่างเต็มที่: สามารถปรับเปลี่ยนโน้ต จังหวะ คีย์ และแพตช์เครื่องดนตรีแต่ละรายการได้โดยไม่สูญเสียคุณภาพ
- ความเข้ากันได้ของฮาร์ดแวร์สากลข้ามเครื่องสังเคราะห์เสียง เปียโนดิจิทัล ซีเควนเซอร์ และ DAW ต่างๆ
ข้อจำกัดทางเทคนิคและข้อควรพิจารณา
- ไม่มีการบันทึกเสียงจริงเลยแม้แต่น้อย การเล่นซ้ำขึ้นอยู่กับเครื่องสังเคราะห์เสียงและซาวด์แบงก์ของอุปกรณ์ที่รับฟังอย่างสิ้นเชิง
- ไม่สามารถสร้างเสียงร้องของมนุษย์ที่บันทึกไว้หรือเสียงอะคูสติกที่ไม่ใช่เครื่องดนตรีที่สมจริงได้
- เสียงที่เล่นออกมาจะแตกต่างกันอย่างสิ้นเชิงในคอมพิวเตอร์แต่ละเครื่อง ขึ้นอยู่กับซาวด์ฟอนต์ General MIDI ที่ติดตั้งไว้
เกร็ดความรู้ทางเทคนิคที่น่าสนใจ
- ลายเซ็นส่วนหัว 'MThd' ย่อมาจาก 'MIDI Track Header' ตามด้วย 'MTrk' สำหรับชังก์ของแต่ละแทร็ก
- วิดีโอเกมพีซีคลาสสิกอย่าง Doom, Warcraft และ Monkey Island ใช้ MIDI เพื่อให้เล่นเพลงที่มีรายละเอียดครบถ้วนได้จากฟลอปปีดิสก์ขนาด 1.44 MB
- Dave Smith ได้รับรางวัล Technical Grammy Award ในปี 2013 สำหรับบทบาทพื้นฐานของเขาในการคิดค้น MIDI
คำถามทางเทคนิคที่พบบ่อย
ทำไมไฟล์ MIDI ถึงมีเสียงเหมือนเครื่องดนตรีราคาถูกบนคอมพิวเตอร์ของฉัน?
ไฟล์ MIDI มีเพียงคำสั่งโน้ตเพลงเท่านั้น (ว่าจะกดโน้ตตัวไหนและแรงแค่ไหน) เสียงที่คุณได้ยินถูกสร้างขึ้นโดยตัวสังเคราะห์เสียง General MIDI ในตัวระบบปฏิบัติการของคุณ การโหลด SoundFont ระดับมืออาชีพ (.sf2) จะช่วยเพิ่มความสมจริงได้อย่างมาก
ฉันจะแปลงไฟล์ MIDI เป็นไฟล์ MP3 หรือ WAV ได้อย่างไร?
เนื่องจาก MIDI ไม่มีเสียง การแปลงจึงต้องอาศัยการ 'เรนเดอร์' ผ่านซอฟต์แวร์ซินธิไซเซอร์ที่มีเครื่องดนตรีจำลอง File2File.app Audio Converter จะทำการเรนเดอร์ MIDI โดยอัตโนมัติโดยใช้ซาวด์แบงก์เสียงอะคูสติกคุณภาพสูงภายในเบราว์เซอร์ของคุณโดยตรง
MIDI Format 0 และ Format 1 แตกต่างกันอย่างไร?
Format 0 จะรวมช่องสัญญาณดนตรีทั้งหมดไว้ในชังค์แทร็กเดียว ส่วน Format 1 จะแยกเครื่องดนตรีแต่ละชิ้น (เปียโน, เบส, กลอง) ออกเป็นชังค์แทร็กอิสระของตัวเองสำหรับการแก้ไขแบบหลายแทร็ก