Artscripture
A keyboard-first music transcription tool for macOS and iPadOS.
When you transcribe, your hands are on an instrument — not on a mouse. Load a track, select a passage, loop it seamlessly, and slow it down without changing pitch. Every operation has a key.
Download for macOS macOS 26 · Apple Silicon · iPadOS coming · free and open source
Seamless looping
A repeat you cannot hear
The time stretcher is never reset at a loop boundary — audio is fed continuously across the seam. That is the difference between a clean loop and a click on every repetition, in a tool whose whole purpose is repetition. It is verified rather than asserted: a looped render is compared against a file with the same passage already laid out end to end, and the measured difference across every wrap is exactly zero. Forcing a reset at the boundary produces a 28× discontinuity against the signal's own natural step size.
Studio-grade slowdown
Slow, and still in tune
Time stretching sits behind a single interface with two interchangeable backends, chosen per platform. macOS uses Rubber Band 4.0's R3 “Finer” engine; iPadOS uses Signalsmith Stretch, compiled from vendored source into the app. Both are measured rather than assumed: as an FFT peak against a reference tone, pitch error at half speed is ~0.00 cents for R3 and within 0.05 cents for Signalsmith — and Signalsmith's figure is identical at both ratios to five decimal places, which means it is reporting the estimator's own bias rather than anything the stretcher did.
Speed and pitch are independent controls: you can transpose a passage by semitones or by single cents without touching the tempo.
One codebase, two platforms
The iPad is not a port
The audio stack below the interface — decoding, the peak pyramid, time stretching, the playback engine — builds for iPadOS as well as macOS, and CI compiles it for iOS on every push and runs the portable suites on an iPad simulator. Compiling is not behaviour, and the difference mattered: the test proving that a loop is indistinguishable from a continuous render now runs against the backend that is the only one on iPad.
The two platform differences are narrow and both sit behind a seam rather than being sprayed through the code as conditionals — choosing an output device is a macOS idea, and being interrupted by a phone call is an iPadOS one.
Keyboard-first
Seventy-one actions, all under your hands
Transport, selection, looping, zoom, speed, pitch and volume are all keys — clustered so the whole transport sits under the left hand. Press ⌘/ for a separate window with the entire keymap drawn on a keyboard beside a searchable list. It follows the modifiers you hold: press ⇧ and A S D F change from setting the loop's edges to moving them. It is generated from the same catalog the menus are built from, so it cannot fall out of step with what the keys actually do.
Preroll
Land before the note you stopped on
You stop on a note; to hear it in context you have to start slightly before it. Space therefore resumes from position − preroll — two seconds by default, configurable, and 0 turns it off. It clamps at the start of the file, and at the loop's in point when a loop is active, so a resume never steps outside the passage you set. Pausing and resuming twice rolls back twice, which is how you inch back through a phrase.
Practice ramp
From slow to tempo, automatically
Press ⌘P for a separate window that plays your loop over and over while the speed climbs. Give it a start speed, an end speed and a number of repetitions; it works out the per-repetition step and shows it. It advances when the loop comes round, not on a timer, so it cannot drift when the loop length or the speed changes underneath it. An end speed below the start speed ramps down, which is a real way to practise.
Track marks
One-file albums, navigable
A single FLAC of a whole record is a wall with no landmarks. Artscripture reads
the .cue sheet sitting beside it and draws a lane showing where
each track begins. T shows and hides it.
Sessions
A sidecar you can read
⌘S writes a plain .artscripture file next to your audio,
holding the loop, the speed, the pitch, the playhead and the viewport. It is
JSON, so you can read it, diff it and hand-edit it — and reopening the track
picks up exactly where you left off. Every field is optional, so a
hand-edited or truncated file is repaired field by field rather than thrown
away.
Formats
Decoded natively, nothing bundled
MP3, AAC, M4A/MP4, ALAC, FLAC (including 24-bit), WAV, AIFF, CAF, Ogg Vorbis and Opus — all decoded by the operating system. No ffmpeg, no bundled codecs. Ogg Vorbis is macOS only; iPadOS cannot decode it.
Privacy
Nothing leaves your machine
Artscripture has no accounts, no analytics, no telemetry and no network code of any kind. Your audio is read from disk and never transmitted anywhere. See the privacy policy — it is short, because there is very little to say.
Getting it
Download, or build it yourself
Signed, notarised builds are on the
releases page: unzip and drag
Artscripture.app to /Applications. It needs
macOS 26 on Apple Silicon.
iPadOS is in preparation for the App Store and is not published yet. It builds and runs from the same tree today — the whole source is on GitHub under Apache-2.0.