-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathindex.html
123 lines (117 loc) · 9.98 KB
/
index.html
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<!DOCTYPE html>
<html lang="en-US">
<head>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-138001424-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-138001424-1');
</script>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Begin Jekyll SEO tag v2.5.0 -->
<title>iPlug2 - C++ audio plug-in framework | iPlug2.github.io</title>
<meta name="generator" content="Jekyll v3.7.4" />
<meta property="og:title" content="iPlug2 C++ Audio Plug-in Framework" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="iPlug2 website" />
<meta property="og:description" content="iPlug2 website" />
<link rel="canonical" href="https://iplug2.github.io/" />
<meta property="og:url" content="https://iplug2.github.io/" />
<meta property="og:site_name" content="iPlug2.github.io" />
<script type="application/ld+json">
{"headline":"iPlug2 C++ audio plug-in framework","@type":"WebSite","url":"https://iplug2.github.io/","name":"iPlug2.github.io","description":"iPlug2 website","@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<link rel="stylesheet" href="/assets/css/style.css?v=8711796cc4b22e84eaf97157b6d0e2c285081a4c">
</head>
<body>
<div align="right"><a href="https://github.com/iplug2/iplug2"><img width="149" height="149" src="https://github.blog/wp-content/uploads/2008/12/forkme_right_darkblue_121621.png?resize=149%2C149" class="attachment-full size-full" alt="Fork me on GitHub" data-recalc-dims="1"></a></div>
<div class="container-lg px-3 my-5 markdown-body">
<h1>iPlug2 - C++ audio plug-in framework</h1>
<p>iPlug2 is a simple-to-use C++ framework for developing cross-platform audio plug-ins/apps and targeting multiple plug-in APIs with the same minimalistic code. It abstracts an audio plug-in (IPlug) and its drawing engine/GUI toolkit (IGraphics). IGraphics is a simple UI toolkit with good performance which contains a collection of common controls well suited for audio plug-ins, either using bitmap or vector graphics. Alternatively examples are included showing how you can use technologies such as HTML/CSS or SwiftUI on top of a C++ DSP layer.
</br></br>
The recommended starting point for an iPlug2 project in 2024 can be found in a separate repo, <a href="https://github.com/iplug2/iPlug2OOS">iPlug2OOS (out-of-source)</a>
</br></br>
The original version of iPlug was released in 2008 as part of Cockos' WDL library. iPlug2 (2018...) is a substantial reworking that brings multiple vector graphics backends to IGraphics (including GPU accelerated options and HiDPI/scaling), a better approach to concurrency, support for distributed plug-in formats and compiling to WebAssembly via emscripten, amongst many other things.
</br></br>
iPlug2 targets the CLAP, VST2, VST3, AUv2, AUv3, AAX (Native) and the Web Audio Module (WAM) plug-in APIs. It can also produce standalone win32/macOS apps with audio and MIDI I/O, as well as Reaper extensions. Windows 8, macOS 10.13, and iOS 14 are the official minimum target platforms, but depending on the graphics backend used, you may be able to make it work on earlier operating systems.
iPlug2 is licensed with a liberal zlib-like license, which means that it is free to use in closed source projects and is free from corporate interference.
</p>
<h1 id="iplug2-web-examples">Web Audio Module Examples</h1>
<table>
<tbody>
<tr>
<td></td>
<td><strong>src</strong></td>
<td align="center"><img src="WAM.jpg" height="60px" width="60px"></img></td>
</tr>
<tr>
<tr>
<td><strong>IPlugEffect</strong></td>
<td><a href="https://raw.githubusercontent.com/iPlug2/iPlug2/master/Examples/IPlugEffect/IPlugEffect.h" target="_blank">.h</a> | <a href="https://raw.githubusercontent.com/iPlug2/iPlug2/master/Examples/IPlugEffect/IPlugEffect.cpp" target="_blank">.cpp</a></td>
<td><a href="https://iplug2.github.io/NANOVG/IPlugEffect/">WebGL</a> | <a href="https://iplug2.github.io/CANVAS/IPlugEffect/">Canvas</a></td>
</tr>
<tr>
<td><strong>IPlugInstrument</strong></td>
<td><a href="https://raw.githubusercontent.com/iPlug2/iPlug2/master/Examples/IPlugInstrument/IPlugInstrument.h" target="_blank">.h</a> | <a href="https://raw.githubusercontent.com/iPlug2/iPlug2/master/Examples/IPlugInstrument/IPlugInstrument.cpp" target="_blank">.cpp</a></td>
<td><a href="https://iplug2.github.io/NANOVG/IPlugInstrument/">WebGL</a> | <a href="https://iplug2.github.io/CANVAS/IPlugInstrument/">Canvas</a></td>
</tr>
<tr>
<td><strong>IPlugControls</strong></td>
<td><a href="https://raw.githubusercontent.com/iPlug2/iPlug2/master/Examples/IPlugControls/IPlugControls.h" target="_blank">.h</a> | <a href="https://raw.githubusercontent.com/iPlug2/iPlug2/master/Examples/IPlugControls/IPlugControls.cpp" target="_blank">.cpp</a></td>
<td><a href="https://iplug2.github.io/NANOVG/IPlugControls/">WebGL</a> | <a href="https://iplug2.github.io/CANVAS/IPlugControls/">Canvas</a></td>
</tr>
<tr>
<td><strong>IPlugResponsiveUI</strong></td>
<td><a href="https://raw.githubusercontent.com/iPlug2/iPlug2/master/Examples/IPlugResponsiveUI/IPlugResponsiveUI.h" target="_blank">.h</a> | <a href="https://raw.githubusercontent.com/iPlug2/iPlug2/master/Examples/IPlugResponsiveUI/IPlugResponsiveUI.cpp" target="_blank">.cpp</a></td>
<td><a href="https://iplug2.github.io/NANOVG/IPlugResponsiveUI/">WebGL</a> | <a href="https://iplug2.github.io/CANVAS/IPlugResponsiveUI/">Canvas</a></td>
</tr>
<!-- <tr>
<td><strong>IPlugFaustDSP</strong></td>
<td><a href="https://raw.githubusercontent.com/iPlug2/iPlug2/master/Examples/IPlugFaustDSP/IPlugFaustDSP.h" target="_blank">.h</a> | <a href="https://raw.githubusercontent.com/iPlug2/iPlug2/master/Examples/IPlugFaustDSP/IPlugFaustDSP.cpp" target="_blank">.cpp</a></td>
<td><a href="https://iplug2.github.io/NANOVG/IPlugFaustDSP/">WebGL</a> | <a href="https://iplug2.github.io/CANVAS/IPlugFaustDSP/">Canvas</a></td>
</tr> -->
<tr>
<td><strong>IGraphicsTest</strong></td>
<td><a href="https://raw.githubusercontent.com/iPlug2/iPlug2/master/Tests/IGraphicsTest/IGraphicsTest.h" target="_blank">.h</a> | <a href="https://raw.githubusercontent.com/iPlug2/iPlug2/master/Tests/IGraphicsTest/IGraphicsTest.cpp" target="_blank">.cpp</a></td>
<td><a href="https://iplug2.github.io/NANOVG/IGraphicsTest/">WebGL</a> | <a href="https://iplug2.github.io/CANVAS/IGraphicsTest/">Canvas</a></td>
</tr>
<tr>
<td><strong>IGraphicsStressTest</strong></td>
<td><a href="https://raw.githubusercontent.com/iPlug2/iPlug2/master/Tests/IGraphicsStressTest/IGraphicsStressTest.h" target="_blank">.h</a> | <a href="https://raw.githubusercontent.com/iPlug2/iPlug2/master/Tests/IGraphicsStressTest/IGraphicsStressTest.cpp" target="_blank">.cpp</a></td>
<td><a href="https://iplug2.github.io/NANOVG/IGraphicsStressTest/">WebGL</a> | <a href="https://iplug2.github.io/CANVAS/IGraphicsStressTest/">Canvas</a></td>
</tr>
<!-- <td><strong>MetaParamTest</strong></td>
<td><a href="https://raw.githubusercontent.com/iPlug2/iPlug2/master/Tests/MetaParamTest/MetaParamTest.h" target="_blank">.h</a> | <a href="https://raw.githubusercontent.com/iPlug2/iPlug2/master/Tests/MetaParamTest/MetaParamTest.cpp" target="_blank">.cpp</a></td>
<td><a href="https://iplug2.github.io/NANOVG/MetaParamTest/">WebGL</a> | <a href="https://iplug2.github.io/CANVAS/MetaParamTest/">Canvas</a></td>
</tr> -->
</tbody>
</table>
<h1 id="iplug2-plugin-examples">Plug-in Examples</h1>
<a href="https://github.com/iPlug2/iPlug2.github.io/releases">iPlug2 binary releases page</a>
<h1 id="iplug2-vids">Documentation</h1>
<a href="https://github.com/iPlug2/iPlug2/wiki">iPlug2 Wiki</a> | <a href="https://iplug2.github.io/docs/">API docs</a>
<h1 id="iplug2-vids">Conference talks / papers</h1>
<ul>
<li>1 - International Faust Conference (IFC 2018) <a href="https://github.com/iPlug2/iPlug2/raw/master/Documentation/Papers/IFC2018.pdf" target="_blank">PAPER</a> | <a href="https://youtu.be/SLHGxBYeID4">TALK</a></li>
<li>2 - Web Audio Conference (WAC2018) <a href="https://github.com/iPlug2/iPlug2/raw/master/Documentation/Papers/WAC2018.pdf" target="_blank">PAPER</a> | <a href="https://youtu.be/DDrgW4Qyz8Y">TALK</a></li>
<li>3 - Audio Developers Conference (ADC2018) <a href="https://youtu.be/IRLxMhksUZ0">TALK</a></li>
</ul>
<h1 id="iplug2-vids">Videos</h1>
<iframe width="560" height="315" src="https://www.youtube.com/embed/eVi-OWFPwO4" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<!--<iframe width="560" height="315" src="https://www.youtube.com/embed/AlDw6iCD-7Y" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe width="560" height="315" src="https://www.youtube.com/embed/DDrgW4Qyz8Y" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>-->
<div id="community">
<h1 id="iplug2-community">Community</h1>
<p>You can discuss iPlug2 on the <a href="https://iplug2.discourse.group" rel="nofollow">iPlug2 forum</a> or on the <a href="https://discord.com/invite/7h9HW8N9Ke" rel="nofollow">iPlug2 discord server</a></p>
</div>
<div id="support">
<h1 id="iplug2-support">Support the project</h1>
<p>iPlug2 is a time consuming project. You can help make the project financially via <a href="https://github.com/sponsors/iplug2">github sponsors</a>. With regular financial support, more time can be spent maintaining and improving the project. Even small contributions are very much appreciated.</p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/anchor-js/4.1.0/anchor.min.js" integrity="sha256-lZaRhKri35AyJSypXXs4o6OPFTbTmUoltBbDCbdzegg=" crossorigin="anonymous"></script>
<script>anchors.add();</script>
</body>
</html>