ชื่อโปรเจกต์: MIDI Controller สไตล์ Ondes Martenot สุดเก๋า












**คำเตือน:** น้องต้องมีพื้นฐานเรื่อง MIDI Protocol บ้างนะ ไม่งั้นงงตึ๊บแน่
*****************************************************************
พี่จัดทำตัวต้นแบบ MIDI Controller ที่เลียนแบบ Ondes Martenot ซึ่งเป็นเครื่องดนตรีคลาสสิกของฝรั่งเศสช่วงปี 1920 มาให้ดู บอกเลยว่าตัวจริงน่ะหายากหยั่งกะงมเข็มในมหาสมุทร แถมราคาก็แรงจนกระเป๋าฉีกแน่นอน รุ่นอื่นอย่าง Ondomo ก็แพงพอกัน พี่เลยตัดสินใจสร้าง Controller ขึ้นมาเองซะเลย เอาไว้ใช้กับ Ondes Kontakt ของ Soniccouture ซึ่งเป็น VST ของ Ondes Martenot ที่ดีที่สุดในปฐพีนี้แล้ว
การส่งข้อมูล MIDI พี่ใช้ผ่านทาง USB โดยมีตัวช่วยอย่าง Hairless MIDI/serial bridge กับ loopMIDI (เอาไว้ทำ Virtual MIDI Input) หรือถ้าใครอยากเท่จะต่อผ่านหัว MIDI มาตรฐานก็ได้ (แค่ไป comment `Serial.begin` แล้วเอา comment ออกที่ `Midi.begin` ในส่วน `setup` ของ Sketch เอาเองนะวัยรุ่น)
งานนี้พี่พยายามแกะแบบ "ลิ้นชัก" (Drawer) ของเครื่อง Ondes Martenot ของจริงมาให้เหมือนที่สุดเท่าที่จะทำได้ ทั้งพวกปุ่มกดและ Fader ต่างๆ
หลักๆ ก็มี Potentiometer ไม่กี่ตัวกับปุ่มกดสำหรับส่งค่า MIDI CC พี่เลือกใช้ CC ตัวที่ยังว่างๆ อยู่ แล้วค่อยไป Map ค่าเข้ากับ Parameter ใน Ondes VST เอาเอง ถ้าอยากให้ได้อารมณ์สมจริงนะน้อง พี่แนะนำให้ใช้ Slide Pot (ตัวต้านทานแบบเลื่อน) แทนแบบหมุน ถ้าพี่ทำแผ่น PCB เมื่อไหร่ พี่คงจัดแบบนั้นแหละ หล่อเท่กว่าเยอะ
หัวใจหลักของโปรเจกต์นี้คือ 10-turn 10k Pot เอาไว้ส่งค่า Pitchbend นี่แหละที่ทำให้เราทำเสียงรูด (Slide) ด้วยแหวนได้เหมือนต้นฉบับเป๊ะ นี่แหละคือเสน่ห์ที่ทำให้ Ondes Martenot มันยูนีคไม่เหมือนใคร ห้ามช็อตนะตัวนี้!
ส่วนปุ่มวอลลุ่ม พี่ใช้ FSR (Pressure [Sensor](https://s.shopee.co.th/7VBG2rX65j)) ส่งค่า CC11 เวลากดปุ่มมันจะส่งคำสั่ง NOTE ON (Middle C + Octave Shift) พอปล่อยปุ่มก็ส่ง NOTE OFF จัดไปวัยรุ่น
พี่แถมปุ่ม "trill buttons" ให้ 6 ปุ่มเหมือนของจริงเลย แต่ละปุ่มจะเอาไว้เพิ่มค่า Pitchbend เพื่อโมดิฟายเสียงชั่วคราว (มีทั้งแบบเศษเสี้ยวเสียงขึ้น/ลง, ครึ่งเสียง, เต็มเสียง, ไปจนถึงคู่ห้าเลยนะน้อง)
นอกจากนี้ยังมีปุ่ม Octave Shift กับปุ่มเลือก MIDI Channel พร้อมไฟ LED ด้วย แต่บอกตรงๆ ไฟ LED นี่ยังมีปัญหาอยู่หน่อย พี่ก็ยังงมอยู่ว่าทำไม บางทีพอเปิดไฟแล้วโปรแกรมมันรัว Note On/Off เฉยเลย หรือบางทีเสียง Pitch Shift ก็เพี้ยนๆ (เสียงสูงกลายเป็นคลื่น Saw wave เฉย) น่าจะบั๊กที่ Code แหละ พี่ก็มือใหม่ด้านนี้เหมือนกัน... เอาเป็นว่าตอนนี้พี่ปิด LED ไปก่อน ทุกอย่างเลยลื่นปรื๊ด ยกเว้น Pot บางตัวที่ค่ามันสั่นๆ สงสัยสายจะหลวม เดี๋ยวค่อยเปลี่ยนใหม่ สู้งานนะน้อง
ถ้าจะอัปเกรดให้เทพกว่านี้ ต้องหา Keyboard จริงๆ มาใส่ แล้วทำ Switch สลับระหว่างการคุมด้วย Ribbon กับ Keyboard ของจริงตัว Keyboard มันจะ "ลอย" (Floating) ได้ ทำให้คนเล่นสั่นเสียง (Vibrato) ขณะกดโน้ตได้ด้วย ท้าทายหน่อยนะถ้าจะทำเองในโปรเจกต์ DIY แต่พี่เชื่อว่าทำได้!
แล้วถ้าเพิ่ม Switch เลือกว่าจะส่ง MIDI ทาง USB หรือหัว 5-pin MIDI จะแจ่มมาก จะได้ไม่ต้องมานั่งแก้ Sketch แล้ว Reupload ลง Board บ่อยๆ ให้เสียเวลา แล้วก็อย่าลืมทำ Switch เปิด/ปิด ตัว Pitchbend Ribbon ด้วยล่ะ มีประโยชน์ชัวร์
เพื่อความอิสระ พี่ว่าเพิ่ม Slide Pot สำหรับ Volume (CC7) แยกไปเลยก็ดี โดยเฉพาะถ้าใช้ CC11 กับ FSR อยู่แล้วมันจะลงตัวมาก แต่ถ้าใช้ FSR คุม CC7 อยู่แล้วก็ข้ามไปได้
อ้อ ถ้าอยากให้ตัว Ribbon มันลื่นๆ เงียบๆ ใช้รอก (Pulley) แค่ 2 ตัวพอ ไม่ต้องจัดเต็ม 4 ตัวหรอก แต่เน้นของเกรดดีๆ หน่อยนะงานจะออกมาเนี้ยบ
รายละเอียดทางเทคนิคเพิ่มเติม
อินเตอร์เฟซดนตรีแบบ Micro-Tonal (HID Interface)
โปรเจกต์นี้คืนชีพเสียงที่เหมือนหลุดมาจากต่างดาวและฟีลการเล่นแบบคลาสสิกของ Ondes Martenot โดยใช้เทคโนโลยี MIDI ยุคใหม่ร่วมกับ Arduino
- ตัวคุม Ribbon แบบ Linear Potentiometer: ใช้ Pot แบบรางเลื่อนคุณภาพสูงเลียนแบบ "แหวน" ของเครื่องดนตรีจริง ทำให้รูดเสียง (Glissandos) และเปลี่ยน Pitch แบบละเอียด (Micro-tonal) ได้เนียนกริ๊บ
- การส่งข้อมูลผ่าน Hairless MIDI-to-Serial: ตัว Arduino จะส่ง Raw Data ความละเอียดสูงไปที่คอมพิวเตอร์ แล้วใช้ Hairless MIDI/Serial Bridge แปลงเป็น MIDI Message มาตรฐาน เพื่อเอาไปขับ VST ระดับมืออาชีพอย่าง Kontakt Player
ความสวยงามและการใช้งาน
- ระบบสัมผัสรับน้ำหนักการกด (Tactile Key Trigger): มีการใช้ "Intensity Key" (Pressure Sensor) ที่ปรับแต่งเอง ช่วยให้คนเล่นคุมความดังและเนื้อเสียง (Timbre) ได้ตามน้ำหนักมือ ให้สัมผัสที่สมจริงสุดๆ เลยน้องเอ๋ย