-section = main download faq screenshots scratches turntable aseqjoy
+section = main download faq screenshots scratches turntable aseqjoy docs
-all: index.html aseqjoy.html download.html faq.html scratches.html turntable.html screenshots.html
+all: index.html aseqjoy.html download.html faq.html scratches.html docs.html turntable.html screenshots.html
clean: Makefile
rm -rf *.html *.tmp
and Robert Ham's <link ref="http://pkl.net/%7Enode/alsa-patch-bay.html">alsa-patch-bay</link>
or aconnect from the <link ref="http://www.alsa-project.org">alsa-utils</link> package to connect aseqjoy's MIDI output port
to other input ports.</para>
-<para>aseqjoy is distributed under the terms of the GPL V2, too.</para>
+<para>aseqjoy is distributed under the terms of the <link ref="COPYING">GNU General Public License</link>.</para>
</aseqjoy>
</section>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE section SYSTEM "./tX.dtd"[
+]>
+<section name="docs">
+ <docs>
+ <para>The following documentation is available:
+ <itemizedlist>
+ <listitem><para>An HTML version of the
+ <link ref="manual/index.html">terminatorX online manual</link>. If you have
+ GNOME2's <italic>yelp</italic> installed you should be able to read this manual
+ by selecting it from the <italic>Help</italic> menu.
+ </para></listitem>
+ <listitem><para><person><name>Brian</name><email>bredfern@calarts.edu</email></person>
+ wrote a nice <italic>QuickToot</italic> tutorial on terminatorX. Check it out
+ <link ref="tutorial.html">here</link>
+ </para></listitem>
+ <listitem><para>If you're stuck on installing terminatorX I recommend having
+ a look at the <link ref="INSTALL">INSTALL</link> file.
+ </para></listitem>
+ <listitem>
+ <para>I also maintain a <link ref="faq.html">Frequently Asked Questions</link> document.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>Additionally there's a
+ <itemizedlist>
+ <listitem><para>HTML version of the <link ref="aseqjoy.html">aseqjoy</link>
+ <link ref="aseqjoy-man.html">man page</link>.
+ </para></listitem>
+ <listitem><para>And a rather old <link ref="oldturntable.html">description</link> on how I turned by broken
+ turntable into terminatorX turntable.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+</docs>
+</section>
+
<qa>
<question>What is terminatorX?</question>
<answer>
- <para>terminatorX is a realtime audio synthesizer that allows you to
- scratch on digitally sampled audio data (*.wav, *.au, *.mp3, etc.)
- the way hiphop-DJs scratch on vinyl records. It features multiple
- turntables, realtime effects and an easy-to-use gtk+ GUI. The latest
- feature is the builtin sequencer. <bold>This software runs under
- LINUX only.</bold>
- </para>
+ <para>terminatorX is a
+ realtime audio synthesizer that allows you to "scratch" on digitally
+ sampled audio data (*.wav, *.au, *.ogg, *.mp3, etc.) the way hiphop-DJs
+ scratch on vinyl records. It features multiple turntables, realtime
+ effects (buit-in as well as
+ <link ref="http://www.ladspa.org">LADSPA</link> plugin
+ effects), a sequencer and MIDI interface - all accessible through
+ an easy-to-use gtk+ GUI. <bold>This sofware is designed to run
+ under Linux, FreeBSD and the like</bold>.</para>
</answer>
</qa>
<qa>
<question>What does it cost?</question>
<answer>
- <para>Nothing. TerminatorX is free software. Read the
+ <para>Nothing. TerminatorX is <link ref="http://fsf.org/free-software.html">free software</link>. Read the
<link ref="COPYING">license</link> (GPL V2).
</para>
</answer>
<qa>
<question>What platforms does it run on?</question>
<answer>
- <para>TerminatorX should run on any recent Linux system. I develop
+ <para>TerminatorX should run on any recent Linux or FreeBSD system. I develop
terminatorX on an X86-System, but the source contains support for
bigendian machines (PowerPC for example). If you experience platform
related troubles, please let me know.
<qa>
<question>What audio quality is supported? </question>
<answer>
- <para>TerminatorX operates at 16Bit / 44.1 kHz / Stereo
- (Since 3.71). Samples will be converted to Mono on
- loading.
+ <para>TerminatorX operates at an arbitrary sampling rate with 16Bit
+ samples and 2 channels (aka stereo). Samples will be converted to mono on
+ loading.
</para>
</answer>
</qa>
<answer>
<para>This depends on the file your loading. Wavfiles are loaded with
the builtin wavloading routines (if enabled on compiletime) and this
- happens very fast. Other files will be opened through either sox or
- mpg123 and that may consume quite some time.
+ happens very fast. For compressed audio files the necessary decompression
+ will consume quite some cpu time on loading.
</para>
<para>
Since Version 3.73 loading of audiofiles has been
></qa>
<qa>
- <question>Why doesn't terminatorX support streaming? </question>
+ <question>Why doesn't terminatorX support mmap'ed wav reading? </question>
<answer>
<para>Oh well due to my laziness I guess.
<person>
scratching?
</question>
<answer>
- <para>Well, you need to configure this mouse as an XFree86 XInput
+ <para><bold>Update:</bold>
+ If you want to use your joystick along with your mouse I suggest using
+ my tiny <link ref="aseqjoy.html">aseqjoy</link> tool to connect your
+ joystick to the MIDI input port of terminatorX.
+ </para>
+ <para>If you want to use another mouse however, you need to configure
+ this mouse as an XFree86 XInput
devices and from what I've read I assume you'll need to have XFree86
3.3.3.1 or higher. If you want to know how to do this read your
XF86Config manual page (run man XF86Config) and find the part on
turn on XInput-support in the Options-dialog of terminatorX and you
have to select the XInput device you want terminatorX to
initialize. Now either press "Apply" or "Ok" and you should be able
- to scratch with that devices next time you press "Start". I haven' t
- tested joysticks though....
+ to scratch with that devices next time you press "Start".
</para>
</answer>
</qa>
</para>
</answer>
</qa>
+
+ <qa>
+ <question>Is there a Windows version of terminatorX?</question>
+ <answer>
+ <para>No, there is no such version, nor will I write one myself. If you plan on doing so,
+ please let me know.
+ </para>
+ </answer>
+ </qa>
<qa>
<question>Where does the name come from?</question>
<answer>
scratch on vinyl records. It features multiple turntables, realtime
effects (buit-in as well as
<link ref="http://www.ladspa.org">LADSPA</link> plugin
- effects), a sequencer and
+ effects), a sequencer and MIDI interface - all accessible through
an easy-to-use gtk+ GUI. <bold>This sofware is designed to run
under Linux, FreeBSD and the like</bold>. <!-- It will possibly run und
other UNIXish systems running
</general>
<news>
+ <newsitem>
+ <newsheader date="April 03"><link ref="download.html#Current Version">terminatorX 3.80</link> and <link ref="aseqjoy.html">aseqjoy 0.0.1</link></newsheader>
+ <newstext>
+ <para>This terminatorX release does a very good job at erasing points from my TODO-for-4.0 list. Among
+ other things this release introduces:
+ <itemizedlist>
+ <listitem>
+ <para>Finally terminatorX has a <bold>native</bold> <link ref="http://www.alsa-project.org">ALSA</link>
+ <bold>backend</bold>. See the new <italic>Preferences</italic> dialog and the online manual for details.
+ The ALSA and the OSS backends now both support operating at an
+ <bold>arbitrary sampling rate</bold>.</para>
+ </listitem>
+ <listitem><para>I finally untied audio rendering and audio backend. terminatorX now operates
+ at a <bold>fixed internal blocksize</bold> of 1 ms. So now it doesn't matter anymore with which blocksize
+ events were recorded - they will be played back correctly with any audio device blocksize.</para>
+ <para>Note that
+ a a minor problem remains: the sampling rate has an effect on the blocksize, too. While there is
+ no problem switching from 22 or 32 kHz to 48kHz, there will be a slight rounding error switching from or
+ to 44.1 kHz. So if you record and playback events I suggest you keep the sampling rate the same,
+ or use "straight" sampling rates like 22, 32 and 48 kHz only.
+ </para></listitem>
+ <listitem>
+ <para>The audio data display is now <bold>zoomable</bold>. This helps scratching large audio
+ files (like complete songs) significantly. Use the slider on the right of the display area to adjust
+ the zoom level. When playing the audio data will scroll in such a manner that the current position
+ is always centered.
+ </para>
+ <para>To optimize playback performance terminatorX does a lot of "zoom" calculations in
+ advance - so adjusting the slider will cause quite some amount of recalculation on large audio
+ files.</para>
+ </listitem>
+ <listitem><para>A <bold>MIDI interface</bold> thanks to a patch by
+ <person><name>Arthur Peters</name><email>amp@singingwizard.org</email></person>. The MIDI interface
+ is based upon the <link ref="http://www.alsa-project.org">ALSA</link> sequencer API, so you'll
+ have to connect terminatorX' input port to an output port of your choice with either <screen>aconnect</screen>
+ or for example the <link ref="http://pkl.net/~node/alsa-patch-bay.html">alsa-patch-bay</link>. To map a MIDI controller or note events
+ to a turntable's parameter click the <italic>MIDI Mapping</italic> button.
+ </para>
+ <para>In order to test the new interface I hacked a little tool called
+ <link ref="aseqjoy.html">aseqjoy</link> that emits MIDI controller messages based on
+ Joystick motion.</para>
+ </listitem>
+ <listitem>
+ <para>Advancing the use of XML: many XML-related bugs have been fixed, and I moved the <bold>set file format
+ to XML</bold>, too. The MIDI mappings of parameters will be stored within set files, too. As XML set files
+ with a lot of sequencer events can grow quite big tX supports writing <bold>gzip compressed set files</bold>
+ through the use of <link ref="http://www.zlib.org">zlib</link>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Thanks to a suggestion by
+ <person><name>Darrick Servis</name><email>darrick@dcn.davis.ca.us</email></person>
+ terminatorX <bold>no longer clips audio</bold>. If the generated amplitude goes beyond the maximum
+ it will simply be cut off.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Further cleaning up the layout for small DJ laptop displays: moved some buttons to
+ a <bold>menu bar</bold> to waste less space. Addtionally you can now hit <screen>F11</screen> to
+ enter <bold>fullscreen</bold> mode - if your window manager supports <italic>NETWM</italic>.
+ </para>
+ </listitem>
+ <listitem><para>Dropped support for the old gtk+ 1.2 - you have to use gtk+ >= 2.0, now.</para></listitem>
+ </itemizedlist>
+ </para>
+ </newstext>
+ </newsitem>
<newsitem>
<newsheader date="18 Sep"><link ref="download.html#Current Version">terminatorX
V3.73</link> available,
</para>
</listitem>
<listitem>
- <para>Minor fixes to make W3C's validator accept the
+ <para>Minor fixes to make <link ref="http://www.w3.org">W3C</link>'s validator accept the
pages again, and a favicon that needs some improvement.</para>
</listitem>
</itemizedlist>
</newstext>
</newsitem>
- <newsitem>
+<!-- <newsitem>
<newsheader date="20 jun">New scratches, turntables & FAQ updates
</newsheader>
<newstext>
Reber</name><email>adrian@lisas.de</email></person>
applied, that fixes some issues with newer gcc releases, some
minor bugs and cleans up the startup switches (there are
- some new ones, too - run <italic>terminatorX --help</italic>
+ some new ones, too - run <italic>terminatorX -help</italic>
for more details).
</para>
</listitem>
</newstext>
</newsitem>
-<!-- <newsitem>
+ <newsitem>
<newsheader date="18 dec"><link ref="download.html#Current Version">
RPMs</link> done and some remixes.
</newsheader>
<section name="screenshots">
<screenshots>
<subsection>
- <title>So you want to see some graphics?</title>
+ <title>What it looks like...</title>
- <para>Ok, so here are some screenshots I took of terminatorX 3.73 in
- action. These screenshots utilze gtk+ Version 2 and the
- wonderful Crux theme engine.
- </para>
+ <para>Here are some screenshots I took of terminatorX 3.80 in
+ action.</para>
<para>
- <screenshot filename="shot-3.73-1.png">
+ <screenshot filename="shot-3.80-1.png">
<nopara>This shows terminatorX with the sequencer
and live scratching in effect.</nopara>
</screenshot>
- <screenshot filename="shot-3.73-2.png">
+ <screenshot filename="shot-3.80-2.png">
<nopara>Selecting a <link ref="http://www.ladspa.org">LADSPA</link>
- plugin.
+ plugin from a <link ref="liblrdf">liblrdf</link> structured menu.
</nopara>
</screenshot>
- <screenshot filename="shot-3.73-3.png">
+ <screenshot filename="shot-3.80-3.png">
<nopara>Mapping a parameter to a turntable's axis. This works
for <link ref="http://www.ladspa.org">LADSPA</link> plugins, too.
</nopara>
</screenshot>
- <screenshot filename="shot-3.73-4.png">
+ <screenshot filename="shot-3.80-4.png">
<nopara>Configuring terminatorX.</nopara>
</screenshot>
+
+ <screenshot filename="shot-3.80-5"><nopara>Mapping MIDI events
+ to turntable parameters.</nopara></screenshot>
</para>
</subsection>
-<!ELEMENT section (main|download|screenshots|scratches|links|faq|turntable|aseqjoy)>
+<!ELEMENT section (main|download|screenshots|scratches|links|faq|turntable|aseqjoy|docs)>
<!ATTLIST section
- name (main|download|screenshots|scratches|links|faq|turntable|aseqjoy) #REQUIRED>
+ name (main|download|screenshots|scratches|links|faq|turntable|aseqjoy|docs) #REQUIRED>
<!ELEMENT main (general, news)>
<!ELEMENT download (index, current, subsection+)>
<!ELEMENT faq (qa+)>
<!ELEMENT turntable (para*, turntabletable, para*)>
<!ELEMENT aseqjoy (para*)>
+<!ELEMENT docs (para*)>
<!ELEMENT screenshots (subsection)+>
<!ELEMENT scratchtable (scratch)*>
rolloverLoad('download','pix/vinyl-hover.gif','pix/vinyl.png');
rolloverLoad('screenshots','pix/vinyl-hover.gif','pix/vinyl.png');
rolloverLoad('faq','pix/vinyl-hover.gif','pix/vinyl.png');
+ rolloverLoad('docs','pix/vinyl-hover.gif','pix/vinyl.png');
rolloverLoad('turntable','pix/vinyl-hover.gif','pix/vinyl.png');
rolloverLoad('scratches','pix/vinyl-hover.gif','pix/vinyl.png');
rolloverLoad('aseqjoy','pix/vinyl-hover.gif','pix/vinyl.png');
</xsl:if>
</tr>
+ <tr>
+ <xsl:if test="@name='docs'">
+ <td bgcolor="#777777"><img alt="-" border="0" src="pix/vinyl-highlight.png" vspace="0"/></td><td bgcolor="#777777">docs</td><td bgcolor="#777777"><img alt="-" border="0" src="pix/vinyl-spacer.png" vspace="0"/></td>
+ </xsl:if>
+ <xsl:if test="@name!='docs'">
+ <td><img name="docs" alt="-" border="0" src="pix/vinyl.png" vspace="0"/></td><td><a onMouseOut="rolloverOff('docs');" onMouseOver="rolloverOn('docs');" href="docs.html">docs</a></td><td/>
+ </xsl:if>
+ </tr>
+
<tr>
<xsl:if test="@name='scratches'">
<td bgcolor="#777777"><img alt="-" border="0" src="pix/vinyl-highlight.png" vspace="0"/></td><td bgcolor="#777777">scratches</td><td bgcolor="#777777"><img alt="-" border="0" src="pix/vinyl-spacer.png" vspace="0"/></td>
<table border="0" cellspacing="0" cellpadding="2px">
<tr>
<td><img src="pix/new.png" alt="new:"/></td>
- <td align="left" valign="middle" width="100%"><font size="+1"><xsl:apply-templates/></font> <font color="#DDDDDD" size="+1">[<xsl:value-of select="@date"/>]</font></td>
+ <td align="left" valign="middle" width="100%"><font size="+1"><xsl:apply-templates/></font><font color="#DDDDDD" size="+1"> [<xsl:value-of select="@date"/>]</font></td>
</tr>
</table>
</xsl:for-each>