I- บทนำ:
สวัสดีครับเพื่อนๆ ในโปรเจกต์นี้ ผมได้สร้าง LED MIDI controller โดยใช้ Arduino และ FL Studio เพื่อซิงโครไนซ์ระหว่างเพลงกับแสงไฟ ในการทำสิ่งนี้ ผมต้องทำการค้นคว้าเกี่ยวกับ MIDI messages ซึ่งเป็นสิ่งสำคัญที่สุดในโปรเจกต์นี้ ผมรู้ว่ามีไลบรารี MIDI บางตัวใน Arduino ที่สามารถทำงานให้คุณได้โดยไม่ต้องมีความรู้เกี่ยวกับ MIDI messages แต่ MIDI messages เป็นสิ่งที่ดีมากที่จะเพิ่มพูนความรู้ของคุณ ผมจึงแนะนำให้คุณศึกษาค้นคว้าเกี่ยวกับมัน ผมใช้ LEDs กับ MIDI messages เพราะเป็นสิ่งเดียวที่ผมมีและสามารถใช้กับมันได้ ดังนั้นโปรเจกต์นี้จึงไม่จำกัดอยู่แค่ LEDs ด้วยวัสดุที่ดีกว่า คุณสามารถใช้ MIDI เพื่อควบคุมการเคลื่อนไหวของหุ่นยนต์อัตโนมัติ หรือซิงโครไนซ์ระหว่างเพลงกับน้ำพุ...
II- คำอธิบาย:
1- เกี่ยวกับโปรเจกต์:
โปรเจกต์นี้เป็นโปรเจกต์ที่ง่ายมาก สิ่งที่คุณต้องมีคือความรู้พื้นฐานเกี่ยวกับ PWM pins และ Serial communication บน Arduino
2- เกี่ยวกับ MIDI messages:
MIDI เป็นภาษาบรรยายดนตรีในรูปแบบดิจิทัล และยังใช้สำหรับการสื่อสารระหว่างเครื่องดนตรีต่างๆ

MIDI message แต่ละข้อความประกอบด้วยข้อมูลสูงสุดสาม bytes:
byte แรกคือ Status byte ซึ่งเก็บข้อมูลเกี่ยวกับ MIDI message ส่วนอีกสอง bytes คือ Data bytes ซึ่งเก็บข้อมูลของ message

และมี MIDI messages หลายประเภท
ในกรณีของเรา เราจะใช้ CC MIDI messages ซึ่งประกอบด้วยสาม bytes สี่ bits แรกของ Status byte จะมีค่าเป็น 11 ซึ่งบ่งบอกถึง CC MIDI message และอีกสี่ bits ที่เหลือจะเก็บหมายเลขของ Communication channel Data byte แรกจะเก็บ Controller number ซึ่งในกรณีของเราคือหมายเลข LED
Data byte ที่สองจะเก็บ Controller value และควบคุมความสว่างของ LED:
3- วิธีการสื่อสาร
โดยปกติ เราจะใช้สาย MIDI to USB เพื่อเชื่อมต่ออุปกรณ์ MIDI เข้ากับคอมพิวเตอร์

ในกรณีของผม การใช้สายนี้จะมีค่าใช้จ่ายสูง แต่เราสามารถใช้โปรแกรมสองตัวนี้ได้:
โปรแกรมแรกคือ loop MIDI ซึ่งจะสร้าง Virtual MIDI device ให้กับระบบเพื่อเชื่อมต่อกับ FL Studio โปรแกรมที่สองคือ Hairless MIDI ซึ่งจะเชื่อมต่อ Virtual MIDI เข้ากับ Serial ของ Arduino และยังช่วย Debug messages ได้ด้วย
4- วงจร:
วงจรนี้ง่ายมาก เราจะใช้ LED 10 ตัวที่เชื่อมต่อกับ PWM pins ใน Arduino Mega เพื่อควบคุมความสว่าง โดยต่ออนุกรมกับ Resistors ขนาด 330 โอห์ม:
รายละเอียดทางเทคนิคเพิ่มเติม
ศูนย์กลางการผลิต DAW ระดับมืออาชีพ
โปรเจกต์นี้เปลี่ยน Arduino ให้เป็น MIDI interface ประสิทธิภาพสูงสำหรับซอฟต์แวร์การผลิตเพลงระดับมืออาชีพ เช่น FL Studio หรือ Ableton Live
- MIDI-over-Serial Pipeline: ใช้ Hairless MIDI และ LoopMIDI เพื่อสร้าง Virtual MIDI port บน PC โดย Arduino จะส่ง MIDI packets ขนาด 3-byte (Status, Pitch, Velocity) ด้วยอัตรา Baud rate สูงที่ 115200 เพื่อให้มั่นใจว่าจะไม่มีความล่าช้าที่สังเกตได้
- Tactile Performance Interface: มีชุดของปุ่มและ Rotary encoder ความละเอียดสูงสำหรับควบคุม Knobs, Faders และ VST instruments ในแบบเรียลไทม์
สัญญาณจังหวะภาพ
- Synchronized LED Feedback: Arduino รับข้อมูล MIDI Clock กลับมาจาก FL Studio ซึ่งทำให้แถบ LED ที่รวมอยู่ในระบบสามารถกะพริบเป็นจังหวะที่ซิงโครไนซ์กับ BPM (Tempo) ของโปรเจกต์ได้อย่างสมบูรณ์แบบ