กลับไปหน้ารวมไฟล์
pad-pedal-8e40e1.md

ชื่อโปรเจกต์: Pad Pedal

บางทีจะหาคนมาเล่น Pad ตอนเล่นสดมันก็ยากอยู่นะไอ้น้อง... พี่เลยแก้ปัญหาด้วยการสร้าง Pad Pedal มาให้เอาไว้ส่ง MIDI notes เข้าคอมฯ แล้วให้พวก VST/VST3 จะรันแบบ standalone หรือรันใน DAW อย่าง Ableton หรือตัวอื่นๆ จัดการเรื่องเสียงแทน จัดไปวัยรุ่น!

เจ้า Pad Pedal ตัวนี้ใช้ [Arduino](https://s.shopee.co.th/7fUgFAWSki) UNO เป็นหัวใจหลักในการส่ง MIDI notes — แถมจะคุม Volume กับ Modulation เพิ่มก็ได้ — ส่งผ่าน USB เข้าคอมฯ ไปเลย ปุ่มกด (Pushbutton) แต่ละตัวจะส่งโน้ตต่างกันตั้งแต่ C ถึง B และโน้ตจะดังค้างไว้จนกว่าจะกดปุ่มเดิมซ้ำ (แบบ Toggle) แต่ถ้าไปกดปุ่มอื่น โน้ตที่ดังอยู่จะหยุดทันทีแล้วโน้ตใหม่จะเริ่มทำงานแทน หล่อเท่เลยงานนี้

ค่าเริ่มต้นพี่ตั้งไว้ให้แต่ละโน้ตเล่นคู่ 5 ไปด้วย (เช่น D+A หรือ E+B) จะได้เสียงเต็มๆ เข้าได้ทั้งคอร์ด Minor และ Major แต่ถ้าอยากเปลี่ยนสไตล์ก็กด 2 ปุ่มพร้อมกันได้เลย: (F+G) จะเล่นเฉพาะโน้ตหลัก, (G+A) จะเล่นโน้ตหลักบวกคู่ 5, และ (A+B) จัดเต็มโน้ตหลักบวกคู่ 5 และคู่ 8 (Octave)

ถ้าจะเปลี่ยน Octave ให้กด (C+D) หรือ (D+E) พร้อมกัน กดแต่ละครั้งเสียงจะต่ำลงหรือสูงขึ้นทีละหนึ่ง Octave ตามลำดับนะน้อง

ส่วนเรื่องสถานะไม่ต้องกลัวงง พี่ใส่ LED ไว้ให้แล้ว มันจะสว่างตอนที่เสียงกำลังเล่นอยู่

ถ้าอยากปรับ Volume หรือ Modulation ก็เอา Potentiometer มาต่อเพิ่มได้เลย ปกติพี่ปิดฟังก์ชันนี้ไว้ใน Code ถ้าจะใช้ก็แค่ไปเปลี่ยนค่า Constant จาก "false" เป็น "true" ที่ต้นไฟล์ Code ซะ

วงจรน่ะง่ายๆ พื้นฐานมากไอ้น้อง แต่ที่ปราบเซียนคือการลง Software ให้มันทำงานบนคอมฯ ได้นี่แหละ สิ่งที่น้องต้องเตรียมคือ:

- Loop MIDI port พี่ใช้ LoopMIDI ของ Tobias Erichsen ติดตั้งซะแล้วสร้าง Port ขึ้นมาด้วยการคลิกเครื่องหมาย "+"

- Serial to MIDI software พี่ใช้ hairless-midiserial ตัวนี้ใน GitHub มันหายไปแล้ว ไปหาโหลดเอาใน Web Archive มาซะ (มีทั้งเวอร์ชัน Windows, Mac และ Linux) แค่แตกไฟล์แล้วรัน เลือก Arduino USB serial port ที่ฝั่งซ้าย และเลือก "loopMIDI" ตรง MIDI Out

- เครื่องดนตรีจำลอง (Virtual Instrument) ไว้เล่นเสียง ในเน็ตมี VST หรือ VST3 ฟรีเยอะแยะ บางตัวรันได้เลย บางตัวต้องใช้ผ่าน DAW อย่าง Reaper, Ableton Live หรืออื่นๆ — ถ้าใช้ DAW ก็สร้าง Track MIDI ขึ้นมา เลือก Input เป็น loopMIDI แล้วตั้ง Record Mode ไว้ แต่ถ้าเป็น VST แบบ standalone ก็เลือก MIDI input เป็น loopMIDI ได้เลย

หมายเหตุ: ก่อนจะอัปโหลดโปรแกรมลง Arduino ให้ตั้งค่า hairless-midiserial เป็น "not connected" ก่อนนะ (ไม่งั้น Error แดกแน่) พออัปโหลดเสร็จค่อยเลือก COM port กลับมาเหมือนเดิม

ลุยเลยน้อง!

ปล. ดูวิดีโอตัวอย่างตอนมันทำงานได้ที่ YouTube: https://www.youtube.com/watch?v=Q-MtA13by1o

EXPANDED TECHNICAL DETAILS

Digital MIDI Foot-Controller

Pad Pedal จะเปลี่ยน Pedal กายภาพ (จะ Sustain, Expression หรือของทำเองแบบ DIY) ให้กลายเป็น USB MIDI controller สารพัดประโยชน์สำหรับพวก Software DAW

  • Hairless MIDI-Serial Bridge Integration: ตัว Arduino จะส่ง MIDI packets มาตรฐานผ่าน Serial link แล้วให้ Software Bridge ในคอมฯ แปลงเป็น Virtual MIDI Port ที่พวก VST/VST3 รู้จัก
  • Analog Sustain Curve: อ่านค่า Analog จาก Pedal ที่ใช้ Potentiometer เพื่อส่งสัญญาณ Control Change ($CC$) ค่า 0-127 แบบเนียนๆ เอาไว้คุม Volume หรือ Filter Sweeps ให้เสียงมีมิติ

Hardware

  • loopMIDI Virtual Porting: ใช้ loopMIDI ฝั่ง PC เพื่อส่งสัญญาณจาก Arduino เข้าโปรแกรมดนตรีระดับโปรได้เลย โดยไม่ต้องพึ่ง Interface MIDI-to-USB แพงๆ ห้ามต่อสายผิดจนช็อตนะตัวนี้ สู้งานนะน้อง!

ข้อมูล Frontmatter ดั้งเดิม

title: "Pad Pedal"
description: "This pedal is used by musicians in a band (e.g. bass or guitar player) to play pads (background chords), the pedal sends MIDI signals to a PC that plays the sounds using VSTs or DAWs."
author: "brindis15"
category: "Audio & Sound"
tags:
  - "Music"
  - "Communication"
views: 640
likes: 1
price: 299
difficulty: "Intermediate"
components:
  - "1x 5 mm LED: Yellow"
  - "12x Guitar pedal button"
  - "1x drill, screwdriver, soldering iron"
  - "1x Any Arduino or Arduino compatible board"
  - "1x Resistor 10 kΩ"
  - "2x 10kOhm potentiometer"
tools: []
apps:
  - "1x VST/VST3 (any)"
  - "1x Hairless MIDI/Serial Bridge"
  - "1x loopMIDI"
downloadableFiles:
  - "https://projects.arduinocontent.cc/5c048b1d-bf29-4096-943e-7c878f504db9.ino"
documentationLinks: []
passwordHash: "dfc2502dcb965ed6257fe890e768ca653dc3d047e103088d401d809f41125574"
encryptedPayload: "U2FsdGVkX1+cDBZ5f/4NFKLSBMeMRMZl6xoyFdKephYxWOpcNUeOgzLuwDDIMNM8n1HsgFQRZJBVC/s+YOn21Wk/WnabnQK+D8+TOiHlBej+yHFlyEomSJ/uPQ8+LPlC76a6fIkJTfLk33aQ3Szc+Nz+w3+HWtEze4GU9n/WJT8="
seoDescription: "Pad Pedal for musicians to play background chords. Sends MIDI signals to PC for VSTs or DAWs. Ideal for bass and guitar players."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/pad-pedal-8e40e1_cover.png"
lang: "th"