mpe

Integrate MPE into a Pulp synth via PluginDescriptor and MpeVoiceAllocator.

13|1|Updated Apr 6, 2026
One-click install
npx skills add https://github.com/danielraffel/pulp --skill mpe
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: mpe
Source: https://github.com/danielraffel/pulp/tree/main/.agents/skills/mpe
Command: npx skills add https://github.com/danielraffel/pulp --skill mpe

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Add per-note expression to a Pulp synth by enabling MPE as an opt-in sidecar to the normal MIDI path, allowing per-voice pitch bend, pressure, and timbre data to influence synthesis.

Core Features & Use Cases

  • Integrate MPE via PluginDescriptor and expose MpeBuffer to the processor
  • Route per-note expression to voices via MpeVoiceAllocator for polyphonic control
  • Platform/host readiness: CLAP, VST3, AU with MPE-enabled plugins and host adapters

Quick Start

Create an MPE-enabled instrument project using the CLI with the --mpe option.

Frequently Asked Questions about mpe

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add per-note expression to a software synth?

Per-note expression is added to a software synth by enabling MIDI Polyphonic Expression (MPE) as an optional sidecar to the normal MIDI path, allowing per-voice pitch bend, pressure, and timbre data to influence synthesis. This requires routing expression data through a voice allocator for polyphonic control.

What is MPE and how does it work with host adapters?

MPE (MIDI Polyphonic Expression) is a protocol that enables per-note expression data to be routed to individual voices. It works with host adapters by exposing an MPE buffer to the processor, allowing supported hosts like CLAP, VST3, and AU to transmit per-voice pitch bend, pressure, and timbre data.

How do I implement MPE voice allocation for polyphonic control?

MPE voice allocation for polyphonic control is implemented by routing per-note expression data via an MPE voice allocator. This involves consuming MPE buffer data per voice and tracking per-note state to dispatch expression parameters accurately across polyphonic voices.

Does the MPE buffer work with CLAP, VST3, and AU plugins?

Yes, the MPE buffer works with CLAP, VST3, and AU plugins. Platform and host readiness is achieved by exposing the MPE buffer through host adapters and setting the MPE support flag to true in the plugin descriptor.

How do I enable MPE support in a plugin descriptor?

MPE support is enabled in a plugin descriptor by setting the supports_mpe flag to true. This exposes the MPE buffer to the processor and allows host adapters to route per-note expression data for polyphonic synthesis.

Can I use standard MIDI alongside per-note expression data?

Yes, standard MIDI can be used alongside per-note expression data. MPE functions as an optional sidecar to the normal MIDI path, allowing you to integrate per-voice pitch bend, pressure, and timbre data without replacing standard MIDI functionality.