Pure Data to NTS-3 kaoss pad Converter

Pure Data to NTS-3 kaoss pad Converter

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

Features

* Convert .pd patches into ready-to-use KORG NTS-3 kaoss pad user units
* No need to install any software — runs entirely in your browser
* Supports key parameters such as touch_began, touch_move, touch_ended

Try It Now

* Launch the converter
* Upload your .pd patch
* Receive a .zip containing ready-to-load user unit files for your NTS-3 kaoss pad

Sample Patches

Explore example patches and prebuilt binaries:

➡️ User Units and Pure Data Patches for NTS-3 kaoss pad

Writing Your Own Patches

Supported Pure Data Objects

Under the hood, it uses hvcc_nts3kaoss, an external generator for HVCC, adapted to produce user unit code for the logue SDK for NTS-3 kaoss pad.

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

➡️ Supported Vanilla Objects (hvcc documentation)

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

Some objects, like [noise~], may produce code that is too large to fit in a generic FX user unit.
If you need a noise source, see this workaround for how to generate white noise using a table object.

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 (especially oscillator patches) work well with this web app.

➡️ heavylib GitHub Repository

Receiving Parameters in Your Patch

A set of built-in parameters is provided to receive touch pad events. These events carry x-y coordinates indicating where the touch event occurred.

While the logue SDK for NTS-3 has no fixed parameters, the OSC FX mode introduces several built-in parameters to help in implementing oscillator-type FX units.

name type format description
touch_began built-in f f for x, y * sent when a new touch was detected.
touch_moved built-in f f for x, y * sent while touching on the X-Y pad.
touch_ended built-in f f for x, y * sent at the end of a touch.
touch_stationary built-in f f for x, y * used to force-refresh current coordinates.
touch_cancelled built-in f f for x, y * sent when a touch forcibly ended.
sys_tempo built-in f sent when a tempo change occurs.
metro_4ppqn built-in bang sent when a clock event (16th note) occurs.
pitch ** fixed f a MIDI note frequency in Hz.
slfo ** fixed f a unipolar LFO.
pitch_note ** built-in f a MIDI note number (integer).
noteon_trig ** built-in bang sent when a new touch was detected.
noteoff_trig ** built-in bang sent at the end of a touch.

*Both x and y are integers ranging from 0 to 1023.
**These parameters are available only for OSC FX.

Restrictions and Limitations

This environment comes with several limitations. Be sure to review the current constraints:

➡️ Restrictions (hvcc_nts3kaoss)