aboutsummaryrefslogtreecommitdiff
path: root/audio/clap/README
blob: 992237e19aa053559b5cc2178eca25f38c71de1c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
CLAP (“CLever Audio Plug-in API”)

Developed in collaboration with experts from diverse fields in the music
software industry, CLAP is a cutting-edge plug-in standard, designed
for modern computers, software, and paradigms. CLAP caters to novel DAW
concepts, and opens up new horizons for what a plug-in can do or be.

Here are some immediately useful advantages of CLAP:
Better Performance From Modern CPUs

Developed with modern CPUs in mind, CLAP takes multi-thread management
to a new level, with a clear and efficient allocation of roles between
plug-in and host. Specifically, CLAP allows collaborative multicore
support between plug-in and host through a so-called “thread-pool”,
also allowing hosts to manage CPU-threading for plug-ins that provide
their own multicore support. Preliminary tests show significant
performance gains compared with current solutions.

CLAP hosts can read plug-in metadata and help organize your plug-ins.
As CLAP hosts can retrieve information from plug-ins without having to
wait for them to initialize, plug-in scans can be much faster.

Furthermore, we’re currently finalizing an extension which
lets plug-ins tell the host which files they need
(e.g. samples or wavetables), and the host can consolidate those in
the project file. That means you’ll never lose a sample while
transferring a project between systems!
Better Modulation

The CLAP standard promotes new ways to create music with automation,
modulation, and expressions. Here are a few examples:

CLAP supports per-note automation and modulation
(in accordance with the recent MIDI 2.0 specifications).

Going one step further, CLAP’s parameter modulation concept allows for
temporary parameter offsets. Parameter modulation is non-destructive,
so as soon as the modulation has finished, the target parameter will
return to its original state.

CLAP makes it possible for polyphonic plug-ins to have their per-voice
parameters modulated for individual notes (“MPE on steroids”).

The KISS (keep it simple, silly) mantra belongs to CLAP.
From the C-only ABI, which allows binding to any programming language,
to the transparent client-server model between host and plug-in,
the robustness and clarity of the threading model,
and the single event queue for all kinds of parameter changes,
timing and MIDI. Despite being so comprehensive, everything in CLAP is
easy to find and easy to implement.

A single cpp/hpp glue layer for C++ offers a quick start into the ABI,
and its built-in “proxy layer” finds common threading bugs in an
instant. Apropos C-only ABI: There are no platform specific
dependencies: In theory CLAP should also run well on embedded platforms,
game consoles or specialized supercomputers.

Open Source & Liberal License

CLAP is open source, released under the MIT license:
No fees, memberships or proprietary license agreements are required
before developing or distributing a CLAP capable host or plug-in, and
the license never expires. In a nutshell, there are no entry hurdles for
developers, and plenty of open source projects already benefit from
CLAP.

MIDI Just Works!

Inspired by MPE and MIDI 2.0, CLAP can adapt to any future MIDI
standard. Wherever a solid standard exists, we allow developers to
freely decide how to apply it. Plug-ins can receive and send any MIDI
event on multiple ports.

Extensibility & Governance

A simple system for extensions makes CLAP future-proof. Companies can
offer proprietary extensions if required for specific features.