Pure Data to drumlogue Converter

Pure Data to drumlogue Converter

This web application allows you to convert Pure Data patches into custom user units for the KORG drumlogue.
It’s a powerful and accessible way to build new sounds for your drumlogue — without writing a single line of C code.

Features

* Convert .pd patches into ready-to-use KORG drumlogue user units
* No need to install any software — runs entirely in your browser
* Supports synth, delay FX, reverb FX, and master FX units
* Copy built-in drumlogue sample data into Pure Data tables
* Handles mono and stereo samples, with optional guard-sample insertion for interpolation

Basic familiarity with Pure Data is assumed, but no prior experience with the logue SDK or C/C++ is required.

Try It Now

* Launch the converter
* Upload your .pd patch
* Receive a .zip file containing ready-to-load user unit files for your drumlogue

Sample Patches

Explore example patches and prebuilt binaries:

➡️ User Units and Pure Data Patches for drumlogue

Writing Your Own Patches

Supported Pure Data Objects

Under the hood, it uses hvcc_drumlogue, an external generator for HVCC, adapted to produce user unit code for the logue SDK for drumlogue. This converter is designed as a web-based interface to hvcc_drumlogue. It allows you to focus on patch design rather than build environments.

HVCC does not support every Pure Data object.
Refer to this official list:

➡️ Supported Vanilla Objects (hvcc documentation)

If you use unsupported objects, the conversion will fail. Please stick to this reference during development.

heavylib: A Patch-Compatible Utility Library

A Pure Data library called heavylib offers prebuilt audio utilities compatible with HVCC. While originally designed for DAW plugins, some parts work well with this web converter.

➡️ heavylib GitHub Repository

Receiving Parameters in Your Patch

Your Pure Data patch can receive parameter values from the drumlogue knobs like this:
[r myParameter @hv_param 0 100 50]

The symbol name (myParameter) is shown on the drumlogue’s display.

@hv_param must be placed as the second argument to expose the symbol as a parameter on drumlogue.
0 100 50 means the parameter’s min, max, and default values. These values must be integers.

Optionally, you can use floating-point numbers by adding “_f” to myParameter like this:
[r myParameter_f @hv_param 0 1 0.5]

The details of parameters are documented here:
➡️ Receiving Parameters (hvcc_drumlogue)

MIDI Events

The Pure Data objects [notein], [bendin], and [touchin] can be used in patches for synth units. The [ctlin] object does not work because all MIDI control messages are used to control the parameters of drumlogue instruments.

The MIDI channel number outlet of the [notein] object always outputs zero, regardless of the drumlogue MIDI channel settings.

The details of MIDI events are documented here:
➡️ MIDI Events (hvcc_drumlogue)

Using Sample Sounds

Sample audio data on drumlogue can be copied to a table whose name ends with “_s” and has the third argument @hv_table. The table can be used with [tabread~] and [tabread4~].

The sample data is specified by sending messages to the corresponding symbol whose name ends with “_set”.

The sample length can be received with the corresponding symbol whose name ends with “_size”.

Here is a basic Pure Data patch for sample playback:

Due to the restriction of hvcc, it is required to send the [set tableName ( message to the [tabread~ tableName] object whenever the table size is changed.

The details of using sample sounds are documented here:
➡️ Using Sample Sounds in Your Pure Data Patch
(hvcc_drumlogue)

Restrictions

* The web app supports only single file patches, so Pure Data abstractions are not supported.
* hvcc unsupported objects cannot be used
* [ctlin] object is not supported
* The sampling rate is fixed to 48,000 Hz
* The number of output channels of [dac~] must be 1 or 2 for all types of units
* The number of input channels of [adc~] must be 4 for master FX units, and 2 for other types of units