Link Search Menu Expand Document

Pure Data support

ossia score supports running Pure Data patches as processes. Simply drop a patch in the score to add it.

This is done thanks to libpd.


The following Pure Data patch:

Pd patch

Will look like this when loaded in score:

Pd patch in score

This particular example can be downloaded in the user library.

Feel free to contribute your own useful patches here !


For now do not use the “Parallel” execution mode when running Pd patches.


score will detect:

  • Audio inlets/outlets: [adc~], [dac~] and create a corresponding audio input and output port.
    • Important ! You have to set in the inspector how many audio channels are needed, as they are multiplexed into a single port.
  • MIDI inlets/outlets: [midiin], [notein], [controlin], [midiout], [noteout], [controlout] and will create a MIDI input and / or output port.
  • Value inlets/outlets: [s] / [send], [r] / [receive].

It is possible (but still work-in-progress) to use the libossia ossia.parameter syntax for the receives, so that score is able to create nice GUI controls.

Additionally, a widget attribute can be used, which will directly create the expected widget, among:

  • intslider
  • floatslider
  • logfloatslider
  • intspinbox
  • toggle
  • button
  • lineedit
  • xyslider
  • hsvslider

Valid cases would be (not all of them work yet):

[r myInput @type float @range -1 1]

[r myInput @widget intslider @min 0 1000]

[r myInput @type impulse]

[r myInput @type bool @default true]

[r myInput @unit color.hsv]

Editing the patch

While editing the patch in real-time does not yet work, editing it when the score is stopped will reload it when execution is restarted.

If a Purr Data, Pd-l2ork, or Pure Data binary is detected on the host computer (by looking into their default installations folders and in the PATH), then it will be possible to open the patch directly from score.