Skip to content

Commit

Permalink
Release 1.11
Browse files Browse the repository at this point in the history
  • Loading branch information
tresf committed Oct 30, 2020
1 parent 360c3f1 commit 91ff2d7
Show file tree
Hide file tree
Showing 47 changed files with 8,677 additions and 0 deletions.
7 changes: 7 additions & 0 deletions README
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Computer Music Toolkit (CMT)
----------------------------

This toolkit is a set of musical sound processing and synthesis tools
presented as a LADSPA plugin library. See the doc/ directory for
documentation and installation instructions. See http://www.ladspa.org
for LADSPA information. See http://www.ladspa.org/cmt for CMT updates.
340 changes: 340 additions & 0 deletions doc/COPYING

Large diffs are not rendered by default.

54 changes: 54 additions & 0 deletions doc/adding_plugins.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
<H1>Adding Plugins to the CMT Library</H1>

<P>The CMT <A HREF="http://www.ladspa.org">
LADSPA</A> plugin collection is written in C++ and uses a little
additional sophistication to make plugin writing easier. This document
describes how to add a new plugin to the toolkit.</P>

<P>At the moment CMT is not under public version control, so please
send changes to <A HREF="mailto:[email protected]">Richard
Furse</A>.</P>

<P>CMT plugins interpret <CODE>LADSPA_Handle</CODE> entities as
pointers to objects derived from the <CODE>CMT_PluginInstance</CODE>
class. Plugin instance structures are defined by subclassing this, so
writing a descendent of <CODE>CMT_PluginInstance</CODE> is the first
thing to do. The CMT library provides its own implementation of
<CODE>connect_port()</CODE>, <CODE>cleanup()</CODE> and a templated
form of <CODE>instantiate()</CODE> (see
<CODE>CMT_Instantiate<>()</CODE>). These calls assume that any
instantiation or cleanup mechanisms required will be written in the
constructor or destructor of the class.</P>

<P>When writing a plugin module, an initialisation function should be
included. To ensure this is called, add a call to the
<CODE>initialise_modules()</CODE> function in
<CODE>descriptor.cpp</CODE>. The module should also be added to the
<CODE>makefile</CODE>.</P>

<P>Your initialisation function should construct new
<CODE>CMT_Desctiptor</CODE> plugin descriptor structures and pass them
to <CODE>registerNewPluginDescriptor()</CODE>. The
<CODE>CMT_Descriptor</CODE> is directly descended from
<CODE>LADSPA_Descriptor</CODE> but provides constructor, destructor
and <CODE>addPort()</CODE> methods.</P>

<P>All plugins need unique IDs. During development, use values between
1 and 1000. When the plugin is ready, please request an ID from <A
HREF="mailto:[email protected]">[email protected]</A>. Please
also add a brief description of your module to <A
HREF="plugins.html"><CODE>plugins.html</CODE></A>.</P>

<P>In practice, CMT plugin writing is probably best learned by
example. For a simple case, see the <CODE>mixer.cpp</CODE>
module. This defines a <CODE>SimpleMixer</CODE> class to handle
instance data, a <CODE>runSimpleMixer()</CODE> function for use with
it and a <CODE>mixer_descriptor()</CODE> function to provide a
description of the plugin to the CMT core. The
<CODE>mixer_descriptor()</CODE> function is declared and referenced in
the <CODE>descriptor.cpp</CODE> module. Additional information is
available in <CODE>cmt.h</CODE> and <CODE>ladspa.h</CODE>.</P>

<P>CMT plugins are <A HREF="license.html">licenced</A> under GPL
version 2. Please read and understand this license before submitting
plugins to the library.</P>
20 changes: 20 additions & 0 deletions doc/bugs.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<H1>CMT Bugs</H1>

<P>Please report bugs to <A HREF="mailto:[email protected]">
[email protected]</A>.</P>

<UL>

<LI>I'm not sure I've got attack & decay the right way around in the
expander plugins.</LI>

<LI>Need to have a look at dynamic.cpp for handling of unusual
arithmetic situation such as <CODE>isnan()</CODE>,
<CODE>isinf()</CODE> etc.</LI>

<LI>Memory management is a little haphazard at present. What happens
when <CODE>new()</CODE> fails? The host can use
<CODE>set_new_handler()</CODE>, but I suspect this needs further
thought anyway.</LI>

</UL>
99 changes: 99 additions & 0 deletions doc/changes.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
<H1>CMT Changes</H1>

<H2>Version 1.01 - 4 May 2000</H2>
<UL>

<LI>Initial Release.</LI>

</UL>

<H2>Version 1.02 - 11 May 2000</H2>
<UL>

<LI>Use <CODE>_init()</CODE> and <CODE>_fini()</CODE>. To handle
memory management automatically.</LI>

<LI>Change from <CODE>*_descriptor()</CODE> approach simpler
initialise_*() approach. Use <CODE>_init()</CODE> and
<CODE>_fini()</CODE> to handle memory management. Supply
<CODE>CMT_Descriptor::~CMT_Descriptor()</CODE>.</LI>

<LI>Make comments compatible with Doxygen.</LI>

<LI>Addition of Ambisonic encoder, decoder, converter and rotation
plugins.</LI>

<LI>Addition of Sine Waveshaper and Granular Scatter Processor
plugin.</LI>

</UL>

<H2>Version 1.03 - 14 May 2000</H2>
<UL>

<LI>Updated to correspond to http://www.ladspa.org/.</LI>

</UL>

<H2>Version 1.04 - 18 May 2000</H2>
<UL>

<LI>Bugfixes: Ambisonic encoder inputs, white noise amplitude/DC,
Ambisonic rotation inplace support, sine oscillator frequency input
inplace support.</LI>

</UL>

<H2>Version 1.05 - 18 May 2000</H2>
<UL>

<LI>Bugfix: use explicit pointer type when deleting
<CODE>ImplementationData</CODE> in <CODE>~CMT_Descriptor</CODE>.</LI>

</UL>

<H2>Version 1.06 - 24 Sep 2000</H2>
<UL>

<LI>Introduction of Identity plugins.</LI>

</UL>

<H2>Version 1.07 - 30 Sep 2000</H2>
<UL>

<LI>Use constructor/destructor rather than _fini() and _init(). Use
C++ for linkage.</LI>

</UL>

<H2>Version 1.08 - 30 Sep 2000</H2>
<UL>

<LI>Fix to Ambisonic decode equations.</LI>

</UL>

<H2>Version 1.09 - 4 Nov 2000</H2>
<UL>

<LI>Addition of a port of Freeverb (version 3) and a collection of
plugins by David Bartold (analogue, canyon_delay, organ, syndrum,
vcf303).</LI>

</UL>

<H2>Version 1.10 - 17 Feb 2001</H2>
<UL>

<LI>Small compile fixes to some modules. Apologies to David who sent
me a patch ages ago for the analogue module.</LI>

</UL>

<H2>Version 1.11 - 8 May 2001</H2>
<UL>

<LI>Addition of newline character to end of allpass.h.</LI>

</UL>
25 changes: 25 additions & 0 deletions doc/download.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<H1>CMT Library Downloads</H1>

<P>Please select the file you wish to download:</P>

<TABLE BORDER=1>

<TR>
<TH>File</TH>
<TH>Description</TH>
</TR>

<TR>
<TD><A HREF="http://www.ladspa.org/download/cmt_lib.tgz">
cmt_lib.tgz</A></TD>
<TD>The Computer Music Toolkit LADSPA plugin library.</TD>
</TR>

<TR>
<TD><A HREF="http://www.ladspa.org/download/cmt_src.tgz">
cmt_src.tgz</A></TD>
<TD>The Computer Music Toolkit LADSPA plugin collection source code
and documentation.</TD>
</TR>

</TABLE>
26 changes: 26 additions & 0 deletions doc/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<H1>CMT Index</H1>

<UL>
<LI><A HREF="overview.html">Overview</A></LI>
<LI><A HREF="download.html">Download</A></LI>
<LI><A HREF="installation.html">Installation</A></LI>
<LI><A HREF="license.html">License (LGPL)</A></LI>
<LI><A HREF="plugins.html">Plugins in the Library</A></LI>
<LI><A HREF="adding_plugins.html">Adding Plugins to the Library</A></LI>
<LI><A HREF="changes.html">Change History</A></LI>
<LI><A HREF="bugs.html">Bugs</A></LI>
<LI><A HREF="tasks.html">Task List</A></LI>
</UL>

<H2>Other Links</H2>

<UL>
<LI>The <A HREF="http://www.ladspa.org/ladspa_sdk">The LADSPA Software
Development Kit</A></LI>
</UL>

<P><AUTHOR>Richard Furse</AUTHOR> can be emailed as <A
HREF="mailto:[email protected]">[email protected]</A>.

</P>

19 changes: 19 additions & 0 deletions doc/installation.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<H1>CMT Installation</H1>

<P>To build the plugin library, enter the <CODE>src/</CODE> directory
and run <CODE>make</CODE>. The makefile expects to find the
<CODE>ladspa.h</CODE> header file in your include path or
<CODE>/usr/local/include/</CODE>. If you do not have this file it can
be downloaded as part of the LADSPA SDK from <A
HREF="http://www.ladspa.org/ladspa_sdk/download.html">
http://www.ladspa.org/ladspa_sdk/download.html</A>.</P>

<P>Running <CODE>make</CODE> will generate the CMT LADSPA plugin
library (<CODE>cmt.so</CODE>) in the <CODE>plugins/</CODE>
directory. This can be moved to an appropriate location depending on
the application you are using. Running <CODE>make install</CODE> from
the <CODE>src/</CODE> directory as root will install to
<CODE>/usr/local/lib/ladspa/</CODE> which is on the search path
recommended for hosts looking for plugin libraries. Some applications
may not search this directory automatically.</P>

16 changes: 16 additions & 0 deletions doc/license.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<H1>CMT License</H1>

<P>The CMT toolkit is licensed under <A HREF="COPYING">GPL version
2</A>.</P>

<P>As I understand it (I'm not a lawyer) this means that, once built,
the CMT library <EM>may</EM> be used with non-GPL'd applications as
long as it is built and loaded using the standard LADSPA
dynamic-linking approach without modification. In my opinion this is a
good thing for the toolkit, if not for the GPL.</P>

<P>The above may not be correct when built against the LGPL version of
the ladpsa.h header file, but it is certainly the way we would like
things to be. See the <A
HREF="http://www.ladspa.org/ladspa_sdk/license.html">LADPSA
license</A> for further details.</P>
13 changes: 13 additions & 0 deletions doc/overview.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<H1>Computer Music Toolkit (CMT) v1.11 Overview</H1>

<P>The Computer Music Toolkit (CMT) is a collection of <A
HREF="http://www.ladspa.org">LADSPA</A> plugins for use with software
synthesis and recording packages on Linux. See the <A
HREF="license.html">license</A> before use.</P>

<P>The CMT is developed primarily by Richard W.E. Furse the principle
designer of the LADSPA standard, with additional plugins by Jezar and
David Bartold. If you are a programmer or can write documentation and
would like to help out, please feel free to <A
HREF="mailto:[email protected]">contact Richard</A>.</P>

Loading

0 comments on commit 91ff2d7

Please sign in to comment.