diff --git a/README.md b/README.md new file mode 100644 index 0000000..80ee6db --- /dev/null +++ b/README.md @@ -0,0 +1,160 @@ +# 🦆 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 + +## Pictures of the PCB And Schematic / Early Prototypes + +Schematic : +image +PCB (Silkscreen Removed) : +image +Early Prototypes : +IMG_0382-min + + +--- + +## 💻 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! 🦆*