Skip to content

Overview ​

HARP is a sample editor for hosted, asynchronous, remote processing of audio and MIDI with machine learning. It runs as a standalone application or as an external editor beside a DAW. HARP sends the file you open, with the settings you choose, to a model hosted on a server, then displays the result, ready to play or to send back to the DAW.

DAWs process audio with plugins, which run on the local CPU, within the real-time deadline of the audio callback, and in a compiled format such as VST3, AU, or AAX. Many machine learning models for audio cannot meet these requirements. They depend on a GPU, a specific Python environment, and weights that can occupy several gigabytes, and their inference can take seconds or minutes. Porting such a model to a plugin means reimplementing and optimizing it for real-time use, which falls outside the scope of most research, and few models are ever made available inside a DAW.

HARP instead treats a model as a remote service. The model runs on hardware suited to it, whether a Hugging Face Space, a server of your own, or the infrastructure of a third-party API, and HARP communicates with it over HTTP, so the user needs no GPU or Python environment. Requests run asynchronously, in a process separate from the DAW, so inference of any duration blocks neither the DAW nor HARP's interface. Any DAW that supports an external sample editor, such as REAPER, Logic Pro, or Ableton Live, can send audio to a model this way, and a model deployed with PyHARP is available to every user of HARP as soon as it is online.

How It Works ​

HARP never runs a model itself. Most models are Gradio apps built with our companion library PyHARP, and hosted on Hugging Face Spaces, a dedicated server, or a local machine. A few are third-party APIs that HARP calls directly, such as that of Stability AI. Each model describes its interface to HARP, which displays it as native controls and tracks.

  1. Open a model. HARP reads the model card (name, author, description, and tags) and the components of the model: the tracks it reads and writes, and the controls that adjust it.
  2. Process. HARP uploads the input tracks, sends the control values, and waits for the result without blocking the interface.
  3. Use the result. Output audio, MIDI, files, and labels appear in output tracks, from which they can be played, saved, dragged into a DAW, or used as the input of another model.
Two regions. Producers launch HARP, on its own or from a DAW, and access deployed models. Developers write inference code, deploy it with PyHARP, and optionally host it remotely, or wrap an existing third-party API, and each of these routes leads into HARP.
Developers deploy models with PyHARP or wrap existing third-party APIs, and producers use any deployed model in HARP, on its own or from a DAW.

A model only has to consume and produce files, so HARP works with any Python code and any framework, from a few lines of signal processing to a large generative model on a GPU.

What You Can Do ​

HARP's Home tab lists the models we host, in the categories of PyHARP's taxonomy:

  • Generation: music, sound, or MIDI from a text prompt, and the continuation, infilling, accompaniment, and editing of an existing recording or score.
  • Synthesis: an instrument performance rendered from MIDI, or speech and singing from text.
  • Effects: neural emulations of analog gear, timbre transfer, and the removal of effects.
  • Enhancement: denoising, dereverberation, bandwidth extension, and restoration.
  • Production: automatic mixing, mixing style transfer, and mastering.
  • Separation: a mix into stems, or a single source described in text or by example.
  • Analysis: key, beats, chords, and structure, transcription to MIDI, speech to text, tagging, and quality scores, returned as labels over the audio, as MIDI, or as a file.
  • Utility: tools such as watermarking.

HARP opens any HARP-compatible Gradio app by its address as well, including one running on your own machine.

Using This Guide ​

  • Using HARP: download HARP, set it up as a standalone application or with your DAW, and learn the interface and the hosted models.
  • Deploying Models with PyHARP: run a model of your own in HARP, through two examples taken from the models we host.
  • Hosting Models: put a model on Hugging Face Spaces, or reach an existing API.
  • Contributing to HARP: build, debug, and extend the application.

Citing HARP ​

If you use HARP in academic work, please cite the paper for the version you used.

NeurIPS 2025 Workshop on AI for Music Paper:

@inproceedings{cwitkowitz2025harp,
    title     = {{HARP} 3.0: Generalizing {I/O} and {API} Support for Machine Learning in Digital Audio Workstations},
    author    = {Cwitkowitz, Frank and Benetatos, Christodoulos and Deng, Qixin and Yu, Huiran and Pruyne, Nathan and O'Reilly, Patrick and Garcia, Hugo Flores and Duan, Zhiyao and Pardo, Bryan},
    year      = 2025,
    booktitle = {NeurIPS AI for Music Workshop}
}

ISMIR 2024 Late Breaking Demo:

@article{benetatos2024harp,
    title     = {{HARP} 2.0: Expanding Hosted, Asynchronous, Remote Processing for Deep Learning in the {DAW}},
    author    = {Benetatos, Christodoulos and Cwitkowitz, Frank and Pruyne, Nathan and Garcia, Hugo Flores and O'Reilly, Patrick and Duan, Zhiyao and Pardo, Bryan},
    year      = 2024,
    journal   = {ISMIR Late Breaking Demo Papers}
}

NeurIPS 2023 Workshop on Machine Learning for Creativity and Design Paper:

@inproceedings{garcia2023harp,
    title     = {{HARP}: Bringing Deep Learning to the {DAW} with Hosted, Asynchronous, Remote Processing},
    author    = {Garcia, Hugo Flores and O’Reilly, Patrick and Aguilar, Aldo and Pardo, Bryan and Benetatos, Christodoulos and Duan, Zhiyao},
    year      = 2023,
    booktitle = {NeurIPS Workshop on Machine Learning for Creativity and Design}
}

Our Team ​

HARP is developed by TEAMuP, a collaboration funded by NSF Award 2222129.

Released under the BSD 3-Clause License.