151 lines
4.1 KiB
Markdown
151 lines
4.1 KiB
Markdown
# 🦆 DuckyMIDI
|
||
|
||
**DuckyMIDI** is a simple, compact USB-C MIDI drumpad with **17 keys**, designed for music production, live performance, and drumming workflows.
|
||
It's powered by the **Orpheus Pico** and shows up as a standard USB MIDI device — no drivers needed.
|
||
|
||
Duck themed. Simple. Hackable.
|
||
|
||
---
|
||
|
||
## Features
|
||
|
||
- **17 programmable MIDI pads**
|
||
- **USB-C powered & data** - Simple, clean and efficient
|
||
- **USB MIDI (class-compliant)** - Works instantly on macOS, Windows, Linux
|
||
- **Powered by the Orpheus Pico** – Made by [Adam](https://admk.dev/) from [Hack Club](https://hackclub.com)!
|
||
- Low-latency, fast response for drumming
|
||
- 🦆 Duck-themed PCB & design
|
||
|
||
---
|
||
|
||
## 🧩 Hardware
|
||
|
||
- **MCU:** Orpheus Pico (RP2040-based)
|
||
- **Keys:** 17 mechanical switches
|
||
- **Interface:** USB-C
|
||
- **MIDI:** USB MIDI (no DIN, no adapters)
|
||
- **Power:** USB-C powered
|
||
|
||
---
|
||
|
||
## 💻 Software
|
||
|
||
- The firmware was written using **TinyUSB MIDI**
|
||
- Appears as "DuckyMIDI" on your system
|
||
- Works with all DAWs such as:
|
||
- Logic Pro
|
||
- Ableton Live
|
||
- FL Studio
|
||
- Reaper
|
||
|
||
Each key sends a MIDI **Note On / Note Off** message for the daw to proccess and then record/output.
|
||
|
||
---
|
||
|
||
## Default MIDI Mapping
|
||
|
||
DuckyMIDI uses General MIDI drum mapping on **Channel 10**:
|
||
|
||
| Key | MIDI Note | Drum Sound |
|
||
|-----|-----------|------------|
|
||
| 1 | 36 (C1) | Kick Drum |
|
||
| 2 | 38 (D1) | Snare |
|
||
| 3 | 42 (F#1) | Closed Hi-Hat |
|
||
| 4 | 46 (A#1) | Open Hi-Hat |
|
||
| 5 | 48 (C2) | Tom 1 |
|
||
| 6 | 50 (D2) | Tom 2 |
|
||
| 7 | 45 (A1) | Low Tom |
|
||
| 8 | 47 (B1) | Mid Tom |
|
||
| 9 | 49 (C#2) | Crash Cymbal |
|
||
| 10 | 51 (D#2) | Ride Cymbal |
|
||
| 11 | 52 (E2) | Crash 2 |
|
||
| 12 | 53 (F2) | Ride Bell |
|
||
| 13 | 54 (F#2) | Tambourine |
|
||
| 14 | 55 (G2) | Splash Cymbal |
|
||
| 15 | 56 (G#2) | Cowbell |
|
||
| 16 | 57 (A2) | Crash 3 |
|
||
| 17 | 58 (A#2) | Vibraslap |
|
||
|
||
**Want to customize?** Just edit the `MIDI_NOTES` array in the firmware!
|
||
|
||
Also a quick note that you don't have to use DuckyMidi as a drumpad only! It can be configured to be used with instruments like the piano and synths as well!
|
||
|
||
---
|
||
|
||
## 🚀 Getting Started
|
||
Note DuckyMidi doesn't only have to be a drumkit! I've configured it such as thats what I mainly play but you could totally use it as a synth!
|
||
|
||
### For Logic Pro:
|
||
1. Plug DuckyMIDI into your computer via **USB-C**
|
||
2. Open Logic Pro
|
||
3. Create a new **Drummer** or **Software Instrument** track
|
||
4. In the track inspector, set MIDI input to **DuckyMIDI**
|
||
5. Load your favorite drum kit (Drum Kit Designer, Battery, etc.)
|
||
6. Start jamming! 🦆
|
||
|
||
### For Other DAWs:
|
||
1. Plug in DuckyMIDI
|
||
2. Open your DAW preferences/settings
|
||
3. Enable **DuckyMIDI** as a MIDI input device
|
||
4. Assign it to a drum instrument or sampler
|
||
5. Tada!!
|
||
---
|
||
|
||
## Flashing Firmware
|
||
|
||
1. Hold **BOOTSEL** button on the Orpheus Pico
|
||
2. Plug it into USB (while holding BOOTSEL)
|
||
3. The Pico appears as a USB drive
|
||
4. Copy the `DuckyMIDI.uf2` firmware file onto the drive
|
||
5. It will auto-reboot and you're done 🦆
|
||
|
||
---
|
||
|
||
## Customization
|
||
|
||
Want different notes or velocity? Easy!
|
||
|
||
Open the firmware and edit these lines:
|
||
|
||
```cpp
|
||
// Change MIDI notes (line ~20)
|
||
const byte MIDI_NOTES[17] = {
|
||
36, 38, 42, 46, 48, 50, 45, 47, 49,
|
||
51, 52, 53, 54, 55, 56, 57, 58
|
||
};
|
||
|
||
// Change velocity (line ~29)
|
||
byte velocity = 100; // 0-127
|
||
|
||
// Change MIDI channel (line ~30)
|
||
byte midiChannel = 10; // 1-16
|
||
```
|
||
|
||
Then reflash and you're golden!
|
||
|
||
---
|
||
|
||
## 🦆 Why DuckyMIDI?
|
||
|
||
I started building this project after noticing a lack of MIDI Macropads in the market, Most of them that acomplish the same purpose often cost 100 AUD + while DuckyMidi Does it in only 15 AUD!!!
|
||
|
||
Don't believe me on that one?
|
||
Heres the cost breakdown:
|
||
|
||
1 - PCB - 12 AUD including shipping from JLC PCB for 5! = 2.40 per board
|
||
2 - Switches - 17 switches is around $3 from aliexpress
|
||
3 - 3D printed case uses around 73 grams of filament and at a price of around 20 aud for 1000g thats only $1.7
|
||
3 - As for the Pico - It's not widley available for sale but you can use any sort of USB C or even a normal pico from AliExpress around $3
|
||
|
||
---
|
||
|
||
## 📜 License
|
||
|
||
MIT License
|
||
|
||
---
|
||
|
||
Made with ❤️ by The-UnknownHacker
|
||
|
||
*Quack on! 🦆*
|