mthines/jsfx-agent-skills · Archived

reaper-jsfx-midi

MIDI processing patterns for JSFX plugins. Use when building MIDI utilities, arpeggiators, chord generators, note filters, or CC processors. Triggers on requests for MIDI effects, arpeggiator, chord, transpose, or MIDI routing in JSFX.

First seen Mar 4, 2026

Installation

$ npx skills add mthines/jsfx-agent-skills --skill reaper-jsfx-midi

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from mthines/jsfx-agent-skills.

npx skills add mthines/jsfx-agent-skills

Browse all from mthines/jsfx-agent-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 1
License MIT
Default branch main
Open issues 0
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.0.0
LicenseMIT
More metadata
author
mthines
author_name
Mads Thines Coello
author_email
[email protected]
version
1.0.0
workflow_type
implementation
tags
["jsfx","reaper","midi","arpeggiator","chord"]

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,434 B
  • docs README.md 1,633 B
  • docs SUMMARY.md 259 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 4 installs

SKILL.md

REAPER JSFX MIDI Processing

Patterns for MIDI utility plugins including note processing, arpeggiators, chord generators, and CC manipulation.

Requires: [reaper-jsfx-core](../reaper-jsfx-core/SKILL.md) for language fundamentals.

Rules

Rule Description
[midi-basics](./rules/midi-basics.md) MIDI message structure, receive/send, SysEx handling
[midi-transform](./rules/midi-transform.md) Note transposition, velocity scaling, CC mapping
[midi-generate](./rules/midi-generate.md) Arpeggiators, sequencers, chord generators
[midi-routing](./rules/midi-routing.md) 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](./rules/midi-basics.md)
Transpose / Velocity [midi-transform](./rules/midi-transform.md)
Arpeggiator [midi-generate](./rules/midi-generate.md)
Channel Filter [midi-routing](./rules/midi-routing.md)