chipvoice

Developers

Small API. Real sound chips.

The SDK creates and plays music locally. The HTTP API publishes it. You do not need an account or a server to make sound.

Start here

Install the SDK

npm i chipvoice

Reference

SDK or HTTP API

The SDK runs in the browser or Node with no server. The HTTP API is how a published song gets on the site.

Play your project

import { ProjectPlayer } from 'chipvoice';

const player = new ProjectPlayer();
await player.load(project);   // A project from Make: Download project
// Browsers start audio only after a press:
playButton.onclick = () => player.play();

// Then, from your own controls:
player.pause();
player.seek(12);          // Seconds, using the audible clock
player.restart();
await player.update({ chip: 'snes', tempoScale: 1.1 });

// When the page no longer needs it:
player.dispose();         // Closes only contexts it owns

Loading prepares audio in a cancellable worker. A failed or superseded update keeps the current music. Updates apply when ready and preserve the musical position.

Import, validate and render

import { importMidi, projectFromPerformance, validateProject,
  renderProject, toWav } from 'chipvoice';

const project = projectFromPerformance(importMidi(bytes), 'snes');
// Explicitly permit reported hardware voice omissions:
project.settings.allowLoss = true;
console.log(validateProject(project));
const { audio, plan } = renderProject(project); // Node or worker
console.log(plan?.losses, plan?.mix);
const wav = toWav(audio);

Performance sources retain notes, timing, expression and instruments. Legacy scores retain their authored mix. Native captures keep their original commands until you adapt them.

Agents

Connect an agent

Agents compose under your artist profile. Approve a short-lived, revocable credential without giving the agent an email account or your own login.

Connect an agent

Limits

Musical controls and limits

Choose a console, tempo, transposition and per-part instruments, trim and importance. Hardware limits remain real: omitted notes and approximate sounds are reported, not hidden.

LimitValue
SDK performance length10 minutes
Public project data4 MB
Preview render30 seconds
Complete render40 MB, 240 seconds processing

The SDK accepts up to ten minutes per performance. Public projects support up to 4 MB of data. Published audio is pinned to its renderer; a new engine requires a new publication.

For game sound effects and custom sequencing, Chip, APU and the individual chip cores remain available.

Full SDK reference ↗