-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' of https://github.com/plugdata-team/plugdata-team…
- Loading branch information
Showing
166 changed files
with
29,613 additions
and
0 deletions.
There are no files selected for viewing
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
# Compilation and Integration with HVCC Compiler | ||
|
||
## Overview | ||
|
||
**plugdata** provides the additional functionality to compile your patches for various targets. The supported targets include: | ||
|
||
- **C++ Code:** Generates C/C++ source code for use in other DSP projects. | ||
- **Electro-Smith Daisy:** Compiles and flashes code onto a Daisy microcontroller board. | ||
- **DPF Audio Plugin:** Creates an audio plugin for use in various plugin hosts. | ||
- **Pd External:** Compiles your patch into a Pure Data external object, optimizing its performance. | ||
|
||
WARNING: Ensure that the destination path for exporting code or plugin binaries does not contain any spaces. | ||
|
||
## Compiled Mode | ||
|
||
In the main plugdata menu, you'll find a toggle box labeled ***Compiled Mode***. This mode checks your patch for compliance with plugdata compilation tools. It uses the [Heavy hvcc compiler](https://wasted-audio.github.io/hvcc/docs/01.introduction.html#what-is-heavy), which is limited to a subset of Pure Data Vanilla objects. | ||
|
||
***Compiled Mode*** identifies unsupported objects in your patch, posting a message to the console and providing auto-completion only for compatible objects. | ||
|
||
By downloading the compilation toolchain, the [Heavy hvcc compiler](https://wasted-audio.github.io/hvcc/docs/01.introduction.html#what-is-heavy) maintained by [Wasted Audio](https://wasted.audio/) will be installed, along with additional compilation utilities. hvcc can only generate code for a portion of the objects included with plugdata, which are a subset of the Pure Data Vanilla set of objects. | ||
|
||
***Compiled Mode*** indicates if there are objects in your patch that cannot be used in a compiled patch by posting a message to the console, and outlining the object in question. The auto-completion in plugdata will also only provide compatible objects when this mode is activated. | ||
|
||
<img width="145" alt="PlugData Compilation Mode - unsupported object" src="images/heavy_unsupported.png"> | ||
|
||
<sub>Object error indication when using an unsupported object in Compilation Mode</sub> | ||
|
||
<img width="251" alt="PlugData Compilation Mode - unsupported object console warning" src="images/heavy_unsupported_warning.png"> | ||
|
||
<sub>Console error warning when using an unsupported object in Compilation Mode</sub> | ||
|
||
|
||
## Compiling in plugdata | ||
|
||
Selecting `Compile...` opens a window with compilation options for different modes, each with common and mode-specific configurations. | ||
|
||
### General Configuration | ||
|
||
![General Configuration](images/heavy_general_config.png) | ||
|
||
Common fields in this section include: | ||
|
||
- **Patch to export:** Choose the patch you wish to export. | ||
- **Project Name (Optional):** Autofills with the patch's name. | ||
- **Project Copyright (Optional):** Specify under one of the [common source licenses](https://spdx.org/licenses/). | ||
|
||
### C++ Code | ||
|
||
![C++ Code Configuration](images/heavy_cpp_menu.png) | ||
|
||
In C++ Code mode, your plugdata patch is transpiled to generic C/C++ code. Adapt the raw code for specific applications. Learn more in the [official documentation](https://wasted-audio.github.io/hvcc/docs/05.c.html). | ||
|
||
### Electro-Smith Daisy | ||
|
||
![Daisy Configuration](images/heavy_daisy_menu.png) | ||
|
||
Daisy mode allows running your patch on an embedded hardware device based on an STM32 microcontroller. Options include choosing a target board, export types (Source Code, Binary, Flash), enabling USB MIDI, and configuring patch size. | ||
|
||
### DPF Audio Plugin | ||
|
||
![Plugin Configuration](images/heavy_dpf_menu.png) | ||
|
||
DPF mode exports self-contained versions of your patch in various formats (VST2, VST3, LV2, CLAP, JACK). Choose export type (Source Code, Binary) and plugin type (Effect, Instrument, Custom). Select plugin formats in the provided list. | ||
|
||
### Pd External | ||
|
||
![External Configuration](images/heavy_pdexternal_menu.png) | ||
|
||
Export your patch as a Pd external for optimized performance. Choose export type (Binary or Source Code) and enable copying to the externals path. | ||
|
||
Refer to the [official documentation](https://wasted-audio.github.io/hvcc/docs/03.gen.pdext.html) for more details on each export option. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# Creating your first patch | ||
|
||
### Browsing and adding modules and objects | ||
|
||
|
||
### Creating connections | ||
|
||
|
||
### Adding effects | ||
|
||
|
||
### Finding the included examples | ||
|
||
|
||
### Next steps | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,204 @@ | ||
# DAW Integration | ||
|
||
## Ableton Live | ||
|
||
#### MIDI IN | ||
|
||
1. Add **plugdata** as an instrument to an empty MIDI track. | ||
2. In **plugdata**, use one of the MIDI IN objects and route MIDI data from it *(see example)*. | ||
3. Play notes on this MIDI track using any usual method — keyboard, piano roll, etc. | ||
|
||
![live-midiin](images\pd-midiin.png) | ||
|
||
#### MIDI OUT | ||
|
||
In Live, routing MIDI data out of **plugdata** is a bit more complicated than in other DAWs. | ||
|
||
![live-midiout](images\live-midiout.png) | ||
|
||
1. Create a MIDI track with the VST3 (not AUV3) version of **plugdata** on it *(a)*. | ||
2. Create an empty MIDI track. We'll call it **MIDI BRIDGE** *(b)*. In the **MIDI From** drop-down menu, select the **plugdata** MIDI track *(c)*. Select **plugdata** in the drop-down menu right bellow it. Switch **Monitor** to **In** mode (d). | ||
3. Create a third MIDI track. We'll cal it RECEIVER *(e)*. Load an instrument that you want to receive MIDI from **plugdata** on this track. | ||
4. In the **MIDI To** drop-down menu of the **MIDI BRIDGE** track, select the **RECEIVER** track as the destination *(f)*. | ||
5. *(optional)* In the **MIDI From** drop-down menu of the RECEIVER track select the **MIDI BRIDGE** track *(g)*. | ||
6. Arm the RECEIVER track *(h)*. | ||
7. In **plugdata** plugin, use one of the objects that sends out MIDI data *(see examples)*. | ||
|
||
![pd-midi](images\pd-midiout.png) | ||
|
||
#### FX | ||
|
||
1. Add **plugdata-fx** as an effect device to an audio or MIDI track. | ||
2. In **plugdata**, use [adc~] object to receive audio from your DAW *(see examples)*. | ||
|
||
![live-a3](images\pd-fx.png) | ||
|
||
## Bitwig Studio | ||
|
||
#### MIDI IN | ||
1. Add **plugdata** to an empty MIDI track. | ||
2. In **plugdata**, use one of the MIDI IN objects and route MIDI data from it *(see example)*. | ||
3. Play notes on this MIDI track using any usual method — keyboard, piano roll, etc. | ||
|
||
![bitwig-midiin](images\pd-midiin.png) | ||
|
||
#### MIDI OUT | ||
|
||
![bitwig](images\bitwig-a1.png) | ||
|
||
1. Add the **plugdata** plugin to an empty MIDI track. | ||
2. In **plugdata** plug-in, use one of the objects that sends out MIDI data *(see examples)* | ||
3. Add an instrument which will receive MIDI data on the same MIDI track, right after the **plugdata** plugin. | ||
|
||
![pd-midi](images\pd-midiout.png) | ||
|
||
#### FX | ||
1. Add **plugdata-fx** as an effect device to an audio or MIDI track. | ||
2. In **plugdata**, use [adc~] object to receive audio from your DAW *(see examples)*. | ||
|
||
![live-a3](images\pd-fx.png) | ||
|
||
## Reaper | ||
|
||
#### MIDI IN | ||
1. Add **plugdata** to an empty track. | ||
2. In **plugdata**, use one of the MIDI IN objects and route MIDI data from it *(see example)*. | ||
3. Play notes on this MIDI track using any usual method — keyboard, piano roll, etc. | ||
|
||
![reaper-midiin](images\pd-midiin.png) | ||
|
||
#### MIDI OUT | ||
|
||
![reaper-midiout](images\reaper-midiout.png) | ||
|
||
1. Add **plugdata** to an empty track *(a)*. | ||
2. In **plugdata**, use one of the objects that sends out MIDI data *(see examples)* | ||
3. Add another track. We'll call it RECEIVER *(b)*. Load an instrument that you want to receive MIDI from **plugdata** on this track. | ||
4. Click and drag the Route button of the **plugdata** track *(c1)* to the Route button of the RECEIVER track *(c2)*. | ||
|
||
![pd-midi](images\pd-midiout.png) | ||
|
||
#### FX | ||
1. Add **plugdata-fx** as an effect device to an audio or MIDI track. | ||
2. In **plugdata**, use [adc~] object to receive audio from your DAW *(see examples)*. | ||
|
||
![reaper-fx](images\pd-fx.png) | ||
|
||
## Ardour | ||
|
||
#### MIDI IN | ||
|
||
1. Add **plugdata** as an instrument to an empty MIDI track. | ||
2. In **plugdata**, use one of the MIDI IN objects and route MIDI data from it *(see example)*. | ||
3. Play notes on this MIDI track using any usual method — keyboard, piano roll, etc. | ||
|
||
![live-midiin](images\pd-midiin.png) | ||
|
||
#### MIDI OUT | ||
|
||
![ardour-midiout](images\ardour-midiout.png) | ||
|
||
1. Add **plugdata** as an instrument to an empty MIDI track. | ||
2. In the **Editor Mixer** (*Shift-E* to toggle) for the **plugdata** track, add an instrument which will receive MIDI data, right below the **plugdata** plugin *(a)*. | ||
3. In **plugdata** plugin, use one of the objects that sends out MIDI data *(see examples)*. | ||
|
||
![pd-midi](images\pd-midiout.png) | ||
|
||
#### FX | ||
|
||
1. Add **plugdata-fx** as an effect device to an audio or MIDI track. | ||
2. In **plugdata**, use [adc~] object to receive audio from your DAW *(see examples)*. | ||
|
||
![live-a3](images\pd-fx.png) | ||
|
||
## FL Studio | ||
|
||
#### MIDI IN | ||
|
||
1. Add **plugdata** to your channel rack. | ||
2. In **plugdata**, use one of the MIDI IN objects and route MIDI data from it *(see example)*. | ||
3. Play notes on this channel using any usual method — keyboard, piano roll, etc. | ||
|
||
![fl-midiin](images\pd-midiin.png) | ||
|
||
#### MIDI OUT | ||
|
||
![fl-midiout](images\fl-midiout1.png) | ||
|
||
1. Add **plugdata** to your Channel rack. | ||
2. In the plugin's window, press the **Detailed Settings** button *(a)*. Select the **VST Wrapper Settings** menu *(b)*. Specify the MIDI output port *(c)*. | ||
3. Load a plugin that you want to receive MIDI from **plugdata** to another channel in your rack. Open its **VST Wrapper Settings** menu. Specify the MIDI input port that corresponds to the previously specified MIDI output port of **plugdata** *(d)*. | ||
|
||
![fl-midiout](images\fl-midiout2.png) | ||
|
||
In **plugdata** plugin, use one of the objects that sends out MIDI data *(see examples)*. | ||
|
||
![pd-midi](images\pd-midiout.png) | ||
|
||
#### FX | ||
|
||
1. In the Mixer window, add **plugdata-fx** to an empty slot of any channel that you wish to affect. | ||
2. In **plugdata**, use [adc~] object to receive audio from your DAW *(see examples)*. | ||
|
||
![fl-fx](images\fl-fx.png) | ||
|
||
## Studio One | ||
|
||
#### MIDI IN | ||
1. Add **plugdata** to an empty track. | ||
2. In **plugdata**, use one of the MIDI IN objects and route MIDI data from it *(see example)*. | ||
3. Play notes on this MIDI track using any usual method — keyboard, piano roll, etc. | ||
|
||
![one-midiin](images\pd-midiin.png) | ||
|
||
#### MIDI OUT | ||
|
||
![one-midiout](images\one-midiout.png) | ||
|
||
1. Add **plugdata** to an empty instrument track. | ||
2. In **plugdata** plug-in, use one of the objects that sends out MIDI data *(see examples)* | ||
3. Create a second instrument track. Load an instrument that you want to receive MIDI from **plugdata** on this track. In the drop-down **Instrument input** menu select **plagdata** *(a)*. | ||
|
||
![pd-midi](images\pd-midiout.png) | ||
|
||
#### FX | ||
|
||
1. In your project's **Mixer** panel (press F3 to toggle), add **plugdata-fx** as an insert effect to an audio or instrument track. | ||
2. In **plugdata**, use [adc~] object to receive audio from your DAW *(see examples)*. | ||
|
||
![one-fx](images\one-fx.png) | ||
|
||
## Logic | ||
|
||
#### MIDI IN | ||
1. Add **plugdata** to an empty MIDI track. | ||
2. In **plugdata**, use one of the MIDI IN objects and route MIDI data from it *(see example)*. | ||
3. Play notes on this MIDI track using any usual method — keyboard, piano roll, etc. | ||
|
||
![logic-midiin](images\pd-midiin.png) | ||
|
||
#### MIDI OUT | ||
|
||
![logic-midiout](images\logic-midiout.png) | ||
|
||
1. Add a new **Software Instrument** track. Load an instrument to which you want to send MIDI data *(a)*. | ||
2. In the **Mixer** view (press *X* to toggle), add **plugdata-midi** Audio Unit plugin as a MIDI FX *(b)*. Alternatively, use the Inspector view (press *I* to toggle). | ||
3. In **plugdata**, use one of the objects that sends out MIDI data *(see examples)* | ||
|
||
![pd-midi](images\pd-midiout.png) | ||
|
||
#### FX | ||
1. Add **plugdata-fx** as an Audio FX to an audio or MIDI track. | ||
2. In **plugdata**, use [adc~] object to receive audio from your DAW *(see examples)*. | ||
|
||
![logic-fx](images\pd-fx.png) | ||
|
||
## Setting up MIDI CC messages in a DAW | ||
|
||
|
||
## DAW parameter automation | ||
|
||
|
||
## Tempo syncing a plugin's internal clock to its host DAW | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
# Development | ||
|
||
|
||
## Known issues | ||
|
||
## Reporting bugs and requesting new features |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
## F.A.Q. | ||
|
||
* *Can I use externals in **plugdata**?* | ||
|
||
**plugdata** comes with ELSE, Cyclone, Heavy and pdlua libraries built-in. You can use any other externals in **plagdata's** standalone mode. Unfortunately, you can't use **plugdata** with externals inside DAWs. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# Getting Started | ||
|
||
### Installing plugdata | ||
|
||
|
||
### Differences between running plugdata standalone and as a plugin | ||
|
||
|
||
### Setting up plugdata | ||
|
||
|
||
### Configuring audio and MIDI devices | ||
|
||
|
||
### Testing audio and MIDI IO | ||
|
||
|
||
### Installing external libraries | ||
|
||
|
||
### Building from source | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# Glossary |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# Introduction | ||
|
||
|
||
### About plugdata | ||
|
||
|
||
### Documentation guide | ||
|
||
|
Oops, something went wrong.