Tetorica MIDI Playground

CREATE · PLAY · CONNECT

Write JavaScript.
Play your instruments.

A little code. A melody. Your next idea.
Tetorica MIDI Playground connects live coding to the instruments you love.

Experimental desktop app · Choose the build for your Mac

Tetorica MIDI Playground app icon, with a MIDI connector and teal and orange details
Tetorica MIDI Playground on macOS: JavaScript loop editor, files, Run and Stop controls, and MIDI settings
The Playground in action — a JavaScript melody, ready for your MIDI output. Screenshot from September 2026; the interface may evolve.

FROM CODE TO SOUND

A playground for musical ideas.

Write melodies, choose notes, repeat patterns, and change the tempo. Send your performance to GarageBand, another DAW, or an external MIDI instrument.

Tetorica sends MIDI; your connected instrument makes the sound. The packaged app needs no Node.js or Rust installation.

01 / WRITE

Start with a few lines.

Use familiar JavaScript with play(), beat(), and liveLoop(). Explore the included examples and English / Japanese guides.

02 / PLAY

Hear an idea take shape.

Control tempo, note duration, velocity, and MIDI channel. Run a pattern, listen, then stop and try something new.

03 / KEEP

Make it yours.

Organize scripts in the file panel. Save locally and import or export JavaScript files to keep your experiments.

YOUR FIRST LOOP

Three notes.
Room to explore.

Pick a note from C, E, and G. Play it for half a beat, rest for half a beat, then repeat.

Change the notes or the BPM and hear what happens.

setBpm(120);

liveLoop("melody", async () => {
  await play(choose(["C4", "E4", "G4"]), {
    duration: 0.5,
    channel: 1,
    velocity: 90
  });
  await beat(0.5);
});

GET CONNECTED

Start with GarageBand.

  1. Choose an instrument.

    Open GarageBand, create a software instrument track, and keep it selected.

  2. Connect your MIDI output.

    Open Tetorica’s MIDI settings and select GarageBand’s virtual input if available. Otherwise, enable an IAC bus in Audio MIDI Setup and select that output. The in-app guide walks through both routes.

  3. Run an example.

    Test a note, choose an example as the Run file, and press Run. Press Stop to finish. Start with the internal BPM clock; external-clock features are experimental.