reaper-jsfx-midi
SKILL.md
REAPER JSFX MIDI Processing
Patterns for MIDI utility plugins including note processing, arpeggiators, chord generators, and CC manipulation.
Requires: reaper-jsfx-core for language fundamentals.
Rules
| Rule | Description |
|---|---|
| midi-basics | MIDI message structure, receive/send, SysEx handling |
| midi-transform | Note transposition, velocity scaling, CC mapping |
| midi-generate | Arpeggiators, sequencers, chord generators |
| midi-routing | Multi-bus routing, channel filtering, splitting |
Official Documentation
Key Principles
1. MIDI-Only Plugin Structure
desc:MIDI Utility
tags:midi
in_pin:none
out_pin:none
@block
while(midirecv(offset, msg1, msg2, msg3)) (
// Process and forward
midisend(offset, msg1, msg2, msg3);
);
2. Always Forward or Handle All Messages
@block
while(midirecv(offset, msg1, msg2, msg3)) (
status = msg1 & $xF0;
status == $x90 || status == $x80 ? (
// Process notes
process_note(offset, msg1, msg2, msg3);
) : (
// Pass through everything else unchanged
midisend(offset, msg1, msg2, msg3);
);
);
3. Preserve Timing
@block
// Use original offset for timing-critical events
while(midirecv(offset, msg1, msg2, msg3)) (
// Transform but keep original offset
midisend(offset, new_msg1, new_msg2, new_msg3);
);
Quick Reference
| Use Case | Rule |
|---|---|
| Understanding MIDI | midi-basics |
| Transpose / Velocity | midi-transform |
| Arpeggiator | midi-generate |
| Channel Filter | midi-routing |
Weekly Installs
2
Repository
mthines/jsfx-ag…t-skillsFirst Seen
11 days ago
Security Audits
Installed on
amp2
cline2
opencode2
cursor2
kimi-cli2
codex2