all: index.html aseqjoy.html download.html faq.html scratches.html docs.html turntable.html screenshots.html
+XMLFILES=$(wildcard *.xml) $(wildcard *.xsl)
+
+pretty:
+ list='$(XMLFILES)'; for file in $$list; do tidy -i -w 80 -xml < $$file > tmp; if [ $$? -eq 0 ]; then mv tmp $$file; else echo error: $$?; fi; done
+
clean: Makefile
rm -rf *.html *.tmp
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE section SYSTEM "./tX.dtd"[
-]>
-<section name="aseqjoy">
+<?xml version='1.0' encoding='utf-8'?>
+<!DOCTYPE section SYSTEM "./tX.dtd">
+<section name='aseqjoy'>
<aseqjoy>
- <para><bold>aseqjoy</bold> is a <italic>Joystick to ALSA MIDI Sequencer Converter</italic>.
- In fact it's a really
-tiny piece of software that turns a joystick into a MIDI controller for the
-<link ref="http://www.alsa-project.org">ALSA</link> sequencer infrastructure. I mainly wrote it to test the new MIDI interface
-of terminatorX but then I thought it might be useful with other scenarios and
-applications, too.
-</para>
-<para>For a more detailed description on what it does and how to use it have a look
-the <link ref="aseqjoy-man.html">manpage</link>.</para>
-
-<para>If you want to test it yourself download the source:
-<link ref="aseqjoy-0.0.1.tar.gz">aseqjoy-0.0.1.tar.gz</link>
-(Sorry no binaries - but it's so small it only takes seconds to compile it
-yourself :) Compiling aseqjoy requires kernel and ALSA (asound library) headers
-to be installed.
-</para>
-<para>To compile and install it's really just the simple:
-</para>
-<para><screen>tar xzf aseqjoy-0.0.1.tar.gz && cd aseqjoy-0.0.1 && ./configure && make && make
-install</screen>
-</para>
-<para>To make full use of aseqjoy you might require jscal from the Vojtech Pavlik's
-<link ref="http://atrey.karlin.mff.cuni.cz/%7Evojtech/joystick/">joystick package</link> (to calibrate your joystick)
-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 <link ref="COPYING">GNU General Public License</link>.</para>
+ <para>
+ <bold>aseqjoy</bold>is a
+ <italic>Joystick to ALSA MIDI Sequencer Converter</italic>. In fact it's a
+ really tiny piece of software that turns a joystick into a MIDI controller
+ for the
+ <link ref='http://www.alsa-project.org'>ALSA</link> sequencer
+ infrastructure. I mainly wrote it to test the new MIDI interface of
+ terminatorX but then I thought it might be useful with other scenarios and
+ applications, too.</para>
+ <para>For a more detailed description on what it does and how to use it
+ have a look the
+ <link ref='aseqjoy-man.html'>manpage</link>.</para>
+ <para>If you want to test it yourself download the source:
+ <link ref='aseqjoy-0.0.1.tar.gz'>aseqjoy-0.0.1.tar.gz</link> (Sorry no
+ binaries - but it's so small it only takes seconds to compile it yourself
+ :) Compiling aseqjoy requires kernel and ALSA (asound library) headers to
+ be installed.</para>
+ <para>To compile and install it's really just the simple:</para>
+ <para>
+ <screen>tar xzf aseqjoy-0.0.1.tar.gz && cd aseqjoy-0.0.1
+ && ./configure && make && make install</screen>
+ </para>
+ <para>To make full use of aseqjoy you might require jscal from the Vojtech
+ Pavlik's
+ <link ref='http://atrey.karlin.mff.cuni.cz/%7Evojtech/joystick/'>joystick
+ package</link> (to calibrate your joystick) 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
+ <link ref='COPYING'>GNU General Public License V2</link>.</para>
</aseqjoy>
</section>
-
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE section SYSTEM "./tX.dtd"[
-]>
-<section name="docs">
+<?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>
+ <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 in the termintorX main window.</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> or have look at all the other
+ <link ref='http://dcdj.com'>QuickToots</link> available.</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 my
+ broken turntable into terminatorX device.</para>
+ </listitem>
+ </itemizedlist></para>
+ </docs>
</section>
-
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE section SYSTEM "./tX.dtd"[
-]>
-<section name="download">
+<?xml version='1.0' encoding='utf-8'?>
+<!DOCTYPE section SYSTEM "./tX.dtd">
+<section name='download'>
<download>
<index>
<title>Available Downloads</title>
</index>
-
- <current version="3.73" havebz2="yes"/>
+ <current version='3.80' havebz2='yes' />
<subsection>
<title>Requirements</title>
-
- <para>terminatorX requires:
-
- <itemizedlist>
- <listitem>
- <nopara>A Linux or FreeBSD system with the GNU C library installed.</nopara>
- </listitem>
-
- <listitem>
- <nopara><link ref="http://www.xfree86.org">XFree86</link> with
- DGA/DirectMouse support. DGA should be available in all XFree86
- releases after 3.3, but <bold>not every X-server provides
- DGA</bold>, so please check that your X-server has that
- feature. <newline/><!--<red>WARNING:</red> XFree86 Version 4.0.0 has buggy
- DGA-Mouse support, please upgrade to Version 4.0.1 or above to
- be able to use terminatorX-->
- </nopara>
- </listitem>
-
- <listitem>
- <nopara>The <link ref="http://www.gtk.org">Gimp Toolkit -
- gtk+</link> Version 2.0 or above
- </nopara>
- </listitem>
-
- <listitem>
- <nopara><link ref="http://www.ladspa.org">LADSPA</link>
- The Linux Audio Developer's Simple Plugin API
- </nopara>
- </listitem>
-
- <listitem>
- <nopara>
- <link ref="http://www.libxml.org">LibXML</link> which comes installed
- with most distributions
- </nopara>
- </listitem>
-
- <listitem>
- <nopara>terminatorX supports Steve Harris'
- <link ref="http://plugin.org.uk/lrdf/">liblrdf</link> which allows categorizing
- LADSPA plugins. Although terminatorX can be built without liblrdf support I strongly
- recommend installing it when you plan on using Steve Harris' wonderful
- <link ref="http://plugin.org.uk/">plugin collection</link> with terminatorX.
- </nopara>
- </listitem>
-
- <listitem><nopara>terminatorX' MIDI interface is based on the ALSA sequencer API and therefor requires
- a working <link ref="http://www.alsa-project.org">ALSA</link> setup</nopara></listitem>
- <listitem>
- <para>
- To enhance audiofile support I strongly recommend installing:
+ <para>terminatorX requires:
<itemizedlist>
- <listitem>
- <nopara>
- <link ref="http://www.68k.org/~michael/audiofile/">
- libaudiofile</link> for loading wav, aiff and au files
- and <link ref="http://sox.sourceforge.net">sox</link> for
- pre-listening and loading of file formats not supported by
- libaudiofile.
- </nopara>
- </listitem>
- <listitem>
- <nopara>
- <link ref="http://www.xiph.org/ogg/vorbis/">libvorbis
- </link> for loading of OGG Vorbis (.ogg) streams and
- <link ref="http://www.xiph.org/ogg/vorbis/">ogg123</link> for
- pre-listening to them.</nopara>
- </listitem>
- <listitem>
- <nopara> The
- <link ref="http://www.mars.org/home/rob/proj/mpeg/">
- mad</link> (MPEG Audio Decocder) library for loading mp3
- streams and <link ref="http://www.mpg123.de">
- mpg123</link> or
- <link ref="http://mpg321.sourceforge.net">mpg321</link> for
- pre-listening of these.
- </nopara>
- </listitem>
- </itemizedlist>
- Note: Most of these libraries are included with current Linux
- distributions - so you might want to check your vendor's package
- list before building the libraries from source.
- </para>
-
- </listitem>
- </itemizedlist>
- </para>
+ <listitem>
+ <nopara>A Linux or FreeBSD system with the GNU C library
+ installed.</nopara>
+ </listitem>
+ <listitem>
+ <nopara>
+ <link ref='http://www.xfree86.org'>XFree86</link> with DGA/DirectMouse
+ support. DGA should be available in all XFree86 releases after 3.3,
+ but
+ <bold>not every X-server provides DGA</bold>, so please check that
+ your X-server has that feature.
+ <newline />
+ <!--
+<red>WARNING:
+</red>
+ XFree86 Version 4.0.0 has buggy
+ DGA-Mouse support, please upgrade to Version 4.0.1 or above to
+ be able to use terminatorX-->
+</nopara>
+ </listitem>
+ <listitem>
+ <nopara>The
+ <link ref='http://www.gtk.org'>Gimp Toolkit - gtk+</link> Version 2.0
+ or above</nopara>
+ </listitem>
+ <listitem>
+ <nopara>
+ <link ref='http://www.ladspa.org'>LADSPA</link> The Linux Audio
+ Developer's Simple Plugin API</nopara>
+ </listitem>
+ <listitem>
+ <nopara>
+ <link ref='http://www.libxml.org'>LibXML</link> which comes installed
+ with most distributions</nopara>
+ </listitem>
+ <listitem>
+ <nopara>terminatorX supports Steve Harris'
+ <link ref='http://plugin.org.uk/lrdf/'>liblrdf</link> which allows
+ categorizing LADSPA plugins. Although terminatorX can be built
+ without liblrdf support I strongly recommend installing it when you
+ plan on using Steve Harris' wonderful
+ <link ref='http://plugin.org.uk/'>plugin collection</link> with
+ terminatorX.</nopara>
+ </listitem>
+ <listitem>
+ <nopara>terminatorX' MIDI interface is based on the ALSA sequencer
+ API and therefor requires a working
+ <link ref='http://www.alsa-project.org'>ALSA</link> setup</nopara>
+ </listitem>
+ <listitem>
+ <para>To enhance audiofile support I strongly recommend installing:
+ <itemizedlist>
+ <listitem>
+ <nopara>
+ <link ref='http://www.68k.org/~michael/audiofile/'>
+ libaudiofile</link> for loading wav, aiff and au files and
+ <link ref='http://sox.sourceforge.net'>sox</link> for
+ pre-listening and loading of file formats not supported by
+ libaudiofile.</nopara>
+ </listitem>
+ <listitem>
+ <nopara>
+ <link ref='http://www.xiph.org/ogg/vorbis/'>libvorbis</link> for
+ loading of OGG Vorbis (.ogg) streams and
+ <link ref='http://www.xiph.org/ogg/vorbis/'>ogg123</link> for
+ pre-listening to them.</nopara>
+ </listitem>
+ <listitem>
+ <nopara>The
+ <link ref='http://www.mars.org/home/rob/proj/mpeg/'>
+ mad</link> (MPEG Audio Decocder) library for loading mp3 streams
+ and
+ <link ref='http://www.mpg123.de'>mpg123</link> or
+ <link ref='http://mpg321.sourceforge.net'>mpg321</link> for
+ pre-listening of these.</nopara>
+ </listitem>
+ </itemizedlist>Note: Most of these libraries are included with
+ current Linux distributions - so you might want to check your
+ vendor's package list before building the libraries from
+ source.</para>
+ </listitem>
+ </itemizedlist></para>
</subsection>
-
<subsection>
<title>Current Version</title>
- <currentversion/>
+ <currentversion />
+ <para>
+ <link ref='http://www.debian.org'>Debian</link> users may prefer to
+ install the
+ <link ref='http://packages.debian.org/unstable/sound/terminatorx.html'>
+ terminatorX Debian package</link> via
+ <italic>apt-get</italic>.</para>
+ <para>Mandrake users may be pleased to here that
+ <person>
+ <name>Some</name>
+ <email>email@email.de</email>
+ </person> has created RPMs for their distribution
+ <link ref=''>here</link>.</para>
</subsection>
-
<subsection>
<title>Old Sources</title>
<tarfiles>
- <tar version="3.73" havebz2="yes"/>
- <tar version="3.72"/>
- <tar version="3.71"/>
- <tar version="3.70"/>
- <tar version="3.60"/>
- <tar version="3.55"/>
- <tar version="3.51"/>
- <tar version="3.5"/>
- <tar version="3.2"/>
- <tar version="3.1"/>
- <tar version="3.01"/>
- <tar version="3.0"/>
+ <tar version='3.80' havebz2='yes' />
+ <tar version='3.73' havebz2='yes' />
+ <tar version='3.72' />
+ <tar version='3.71' />
+ <tar version='3.70' />
+ <tar version='3.60' />
+ <tar version='3.55' />
+ <tar version='3.51' />
+ <tar version='3.5' />
+ <tar version='3.2' />
+ <tar version='3.1' />
+ <tar version='3.01' />
+ <tar version='3.0' />
</tarfiles>
</subsection>
-
<subsection>
<title>Old RPMs</title>
<rpmfiles>
- <rpm type="i386" version="3.73" rpmsubversion="1"/>
- <rpm type="i386" version="3.72" rpmsubversion="1"/>
- <rpm type="i586" version="3.71" rpmsubversion="2"/>
- <rpm type="i586" version="3.70" rpmsubversion="1"/>
- <rpm type="i586" version="3.60" rpmsubversion="2"/>
-
- <rpm type="sparc" version="3.71" rpmsubversion="2"/>
-
- <rpm type="src" version="3.73" rpmsubversion="1"/>
- <rpm type="src" version="3.72" rpmsubversion="1"/>
- <rpm type="src" version="3.71" rpmsubversion="2"/>
- <rpm type="src" version="3.70" rpmsubversion="1"/>
- <rpm type="src" version="3.60" rpmsubversion="2"/>
+ <!-- <rpm type="i386" version="3.80" rpmsubversion="1" distribution="Mandrake 9.1" note="no lilbrdf" ext="mdk"/> -->
+<rpm rpmsubversion='1' version='3.80' type='i386' distribution='RH 8.0'
+note='without liblrdf, ALSA, MIDI and libmad support' />
+ <rpm rpmsubversion='1' version='3.73' type='i386' />
+ <rpm rpmsubversion='1' version='3.72' type='i386' />
+ <rpm rpmsubversion='2' version='3.71' type='i586' />
+ <rpm rpmsubversion='1' version='3.70' type='i586' />
+ <rpm rpmsubversion='2' version='3.60' type='i586' />
+ <rpm rpmsubversion='2' version='3.71' type='sparc' />
+ <rpm rpmsubversion='1' version='3.73' type='src' />
+ <rpm rpmsubversion='1' version='3.72' type='src' />
+ <rpm rpmsubversion='2' version='3.71' type='src' />
+ <rpm rpmsubversion='1' version='3.70' type='src' />
+ <rpm rpmsubversion='2' version='3.60' type='src' />
</rpmfiles>
</subsection>
-
<subsection>
<title>Historic Sources</title>
<filelist>
- <file>terminatorX-V23.tar.gz</file>
- <file>terminatorX-V22.tar.gz</file>
+ <file>terminatorX-V23.tar.gz</file>
+ <file>terminatorX-V22.tar.gz</file>
</filelist>
</subsection>
-
<subsection>
<title>Samples</title>
- <para>I still have the "get you started"-samples <file>scratch.wav</file>
- and <file>beat.wav</file> available. If you have some audio files to
- scratch on but no beats (loops) lying around here is
- <file>tX_beats.tar.bz2</file> which contains ten more beats I
- downloaded somewhere else - Sorry I don't remember where they're from
- - if you know please tell me so I can put some credits up here.
- </para>
- <para>If you want to have even more samples check out
- <person>
- <name>Erik's</name>
- <email>e@osterman.com</email>
- </person> <bold>huge</bold> sample-archive
- (<link ref="http://ftp.osterman.com/pub/music/samples">http</link>/<link ref="ftp://ftp.osterman.com/pub/music/samples">ftp</link>).
- </para>
+ <para>I still have the "get you started"-samples
+ <file>scratch.wav</file> and
+ <file>beat.wav</file> available. If you have some audio files to scratch
+ on but no beats (loops) lying around here is
+ <file>tX_beats.tar.bz2</file> which contains ten more beats I downloaded
+ somewhere else - Sorry I don't remember where they're from - if you know
+ please tell me so I can put some credits up here.</para>
+ <para>If you want to have even more samples check out
+ <person>
+ <name>Erik's</name>
+ <email>e@osterman.com</email>
+ </person>
+ <bold>huge</bold> sample-archive
+ (<link ref='http://ftp.osterman.com/pub/music/samples'>http</link>/<link
+ ref='ftp://ftp.osterman.com/pub/music/samples'>ftp</link>).</para>
</subsection>
</download>
</section>
-
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE section SYSTEM "./tX.dtd"[
-]>
-<section name="faq">
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section SYSTEM "./tX.dtd"[ ]>
+<section name='faq'>
<faq>
<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, *.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>
+ <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 <link ref="http://www.fsf.org/philosophy/free-sw.html">free software</link>. Read the
- <link ref="COPYING">license</link> (GPL V2).
- </para>
+ <para>Nothing. TerminatorX is
+ <link ref='http://www.fsf.org/philosophy/free-sw.html'>free
+ software</link>. Read the
+ <link ref='COPYING'>license</link> (GPL V2).</para>
</answer>
</qa>
-
<qa>
<question>What platforms does it run on?</question>
<answer>
- <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.
- </para>
+ <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.</para>
</answer>
</qa>
-
<qa>
- <question>What audio quality is supported? </question>
+ <question>What audio quality is supported?</question>
<answer>
- <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>
+ <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>
-
<qa>
- <question>
- Why does it take terminatorX so long to load samples?
- </question>
+ <question>Why does it take terminatorX so long to load
+ samples?</question>
<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. 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
- significantly accelerated with the libaudiofile, libvorbis and
- mad methods.
- </para>
- </answer
- ></qa>
-
+ <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. 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 significantly
+ accelerated with the libaudiofile, libvorbis and mad methods.</para>
+ </answer>
+ </qa>
<qa>
- <question>Why doesn't terminatorX support mmap'ed wav reading? </question>
+ <question>Why doesn't terminatorX support mmap'ed wav reading?</question>
<answer>
- <para>Oh well due to my laziness I guess.
- <person>
- <name>Benno Senoner</name>
- <email>sbenno@gardena.net</email>
- </person> wrote a
- <link ref="http://www.gardena.net/benno/linux/terminatorX-3.2-mmap.patch">patch</link>
- against 3.2 to support "on-the-fly" reading of wavfiles.
- The problem is the patch wasn't applyable to later versions of
- terminatorX, nor would it work with sox/mpg123 support.
- I still plan to port the patch to the newer releases sometime.
- </para>
+ <para>Oh well due to my laziness I guess.
+ <person>
+ <name>Benno Senoner</name>
+ <email>sbenno@gardena.net</email>
+ </person> wrote a
+ <link ref='http://www.gardena.net/benno/linux/terminatorX-3.2-mmap.patch'>
+ patch</link> against 3.2 to support "on-the-fly" reading of wavfiles.
+ The problem is the patch wasn't applyable to later versions of
+ terminatorX, nor would it work with sox/mpg123 support. I still plan to
+ port the patch to the newer releases sometime.</para>
</answer>
</qa>
-
<qa>
- <question>
- How can I use a second mouse, a joystick or other input devices for
- scratching?
- </question>
+ <question>How can I use a second mouse, a joystick or other input devices
+ for scratching?</question>
<answer>
- <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
- "the optional XInput section". If you successfully configured your
- second (third ...) mouse / input device for XFree86 you now need to
- 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".
- </para>
+ <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 "the optional XInput section". If you
+ successfully configured your second (third ...) mouse / input device
+ for XFree86 you now need to 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".</para>
</answer>
</qa>
-
<qa>
- <question>Why do I get "./terminatorX: undefined symbol:
- _t24__default_alloc_template2b1i0.free_list" when I run
- terminatorX?
- </question>
+ <question>Why do I get "./terminatorX: undefined symbol:
+ _t24__default_alloc_template2b1i0.free_list" when I run
+ terminatorX?</question>
<answer>
- <para>You proabably downloaded the binary-rpm-package and your
- libstdc++ is outdated. This seems to occur on Mandrake systems only.
- Upgrading with a newer libstdc++ package should fix this.
- </para>
+ <para>You proabably downloaded the binary-rpm-package and your
+ libstdc++ is outdated. This seems to occur on Mandrake systems only.
+ Upgrading with a newer libstdc++ package should fix this.</para>
</answer>
</qa>
-
<qa>
- <question>
- Why do I get "tX_seqpar.h:25: list: No such file or
- directory" when building terminatorX myself?
- </question>
+ <question>Why do I get "tX_seqpar.h:25: list: No such file or directory"
+ when building terminatorX myself?</question>
<answer>
- <para>You don't have the libstdc++ headers installed. Install the
- libstdc++-devel package for the libstdc++-package you have installed.
- </para>
+ <para>You don't have the libstdc++ headers installed. Install the
+ libstdc++-devel package for the libstdc++-package you have
+ installed.</para>
</answer>
</qa>
-
-
<qa>
- <question>What can I do if my mouse doesn't work in scratch mode?
- </question>
+ <question>What can I do if my mouse doesn't work in scratch
+ mode?</question>
<answer>
- <para>Now this issue is rather tricky, as it seems a lot of problems
- can be the reason here, but there are some things you can try:
- <itemizedlist>
- <listitem>
- <nopara>Make sure that your X-Server supports XFree86-DGA. Remove
- any lines that read</nopara><para><screen>Option
- "omit xfree86-dga"</screen></para><para> from your <screen>XF86Config</screen>. Check
- whether the Server loaded dga by running <bold>xdpyinfo
- </bold> - if DGA is loaded one of the lines you get from
- xdpyinfo should read <italic>XFree86-DGA</italic>. To check
- whether DGA actually works run <bold>dga</bold> as root -
- <red>Warning:</red> the only way to exit this tool is
- pressing 'q' on your keyboard - and it might take some seconds
- until it reacts.
- </para>
- </listitem>
- <listitem>
- <nopara>Try running terminatorX as root. This fixes the problem
- for most people.
- </nopara>
- </listitem>
- </itemizedlist>
- </para>
- <para>If all this doen't help let me know.
- </para>
+ <para>Now this issue is rather tricky, as it seems a lot of problems
+ can be the reason here, but there are some things you can try:
+ <itemizedlist>
+ <listitem>
+ <nopara>Make sure that your X-Server supports XFree86-DGA. Remove
+ any lines that read</nopara>
+ <para>
+ <screen>Option "omit xfree86-dga"</screen>
+ </para>
+ <para>from your
+ <screen>XF86Config</screen>. Check whether the Server loaded dga by
+ running
+ <bold>xdpyinfo</bold> - if DGA is loaded one of the lines you get
+ from xdpyinfo should read
+ <italic>XFree86-DGA</italic>. To check whether DGA actually works
+ run
+ <bold>dga</bold> as root -
+ <red>Warning:</red> the only way to exit this tool is pressing 'q'
+ on your keyboard - and it might take some seconds until it
+ reacts.</para>
+ </listitem>
+ <listitem>
+ <nopara>Try running terminatorX as root. This fixes the problem for
+ most people.</nopara>
+ </listitem>
+ </itemizedlist></para>
+ <para>If all this doen't help let me know.</para>
</answer>
</qa>
<qa>
<question>Should I install terminatorX suid root?</question>
- <answer>
- <para>
- Installing terminatorX <italic>suid root</italic> improves
- terminatorX' performance significantly for non-root users
- - as terminatorX will use the suid-root privileges to
- create the engine thread with
- realtime-scheduling-priority. Immediatley after the
- creation of the thread terminatorX drops root privileges
- before any files or devices are accessed. The problem is:
- the Linux pthreads manager thread can not be told to drop
- it's root privileges, which means that while the two
- threads executing terminatorX code run with the real
- user's privileges, the pthread manager thread still runs
- with root-privileges. While I cannot see how a malicious
- user or software could utlize this thread to acquire root
- privileges it might still be possible, so you'll have to
- make your on decision on performance vs security.
- </para>
- </answer>
+ <answer>
+ <para>Installing terminatorX
+ <italic>suid root</italic> improves terminatorX' performance
+ significantly for non-root users - as terminatorX will use the
+ suid-root privileges to create the engine thread with
+ realtime-scheduling-priority. Immediatley after the creation of the
+ thread terminatorX drops root privileges before any files or devices
+ are accessed. The problem is: the Linux pthreads manager thread can not
+ be told to drop it's root privileges, which means that while the two
+ threads executing terminatorX code run with the real user's privileges,
+ the pthread manager thread still runs with root-privileges. While I
+ cannot see how a malicious user or software could utlize this thread to
+ acquire root privileges it might still be possible, so you'll have to
+ make your on decision on performance vs security.</para>
+ </answer>
</qa>
<qa>
- <question>
- How do I install terminatorX suid root?</question>
- <answer>
- <para>As root <italic>cd</italic> into the directory you
- installed terminatorX to (typically that is
- <italic>/usr/local/bin</italic> or
- <italic>/usr/bin</italic>) and run the following
- commandline:
- </para>
- <para>
- <screen>chown root: ./terminatorX && chmod u+s ./terminatorX</screen>
- </para>
- </answer>
+ <question>How do I install terminatorX suid root?</question>
+ <answer>
+ <para>As root
+ <italic>cd</italic> into the directory you installed terminatorX to
+ (typically that is
+ <italic>/usr/local/bin</italic> or
+ <italic>/usr/bin</italic>) and run the following commandline:</para>
+ <para>
+ <screen>chown root: ./terminatorX && chmod u+s
+ ./terminatorX</screen>
+ </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>
+ <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>
- <para>If you don't know find out a little something about
- <link ref="http://www.publicenemy.com">Public Enemy</link>. Learn
- who <link ref="http://www.publicenemy.com/soldiers/termx.php">
- TerminatorX</link> is or
- <link ref="http://www.publicenemy.com/gallery/images/txday.jpg">see him</link>
- do his work
- </para>
+ <para>If you don't know find out a little something about
+ <link ref='http://www.publicenemy.com'>Public Enemy</link>. Learn who
+ <link ref='http://www.publicenemy.com/soldiers/termx.php'>
+ TerminatorX</link> is or
+ <link ref='http://www.publicenemy.com/gallery/images/txday.jpg'>see
+ him</link>do his work</para>
</answer>
</qa>
</faq>
</section>
-
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE section SYSTEM "./tX.dtd">
-<section name="main">
+<section name='main'>
<main>
<general>
<heading>Welcome to the terminatorX website!</heading>
<subtitle>
- <nopara>Bookmark this site as <link ref="http://www.terminatorX.cx">
- www.terminatorX.cx</link>. It's located on
- <link ref="http://42.fht-esslingen.de">42.fht-esslingen.de</link>
- </nopara>
+ <nopara>Bookmark this site as
+ <link ref='http://www.terminatorX.cx'>www.terminatorX.cx</link>. It's
+ located on
+ <link ref='http://42.fht-esslingen.de'>
+ 42.fht-esslingen.de</link></nopara>
</subtitle>
<text>
- <para>
- For those of you who drop by for the first time: 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>. <!-- It will possibly run und
- other UNIXish systems running
- <link ref="http://www.xfree86.org">XFree86</link> and a
- compatilbe audio device, like OpenBSD. -->
- If you have more questions read the <link
- ref="faq.html">FAQ</link>/<link ref="doc/index.html">Manual</link>/<link
- ref="http://www.boosthardware.com/LAU/quicktoots/toots/tx_toot/tx_toot1.html">Tutorial</link>/<link
- ref="COPYING">LICENSE</link> and if you have further questions, suggestions,
- patches, <link ref="scratches.html">scratches</link> send me a
- <link ref="mailto:alex@lisas.de">mail</link>
- </para>
+ <para>For those of you who drop by for the first time: 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>. If you have more questions read the
+ <link ref='faq.html'>FAQ</link>/<link ref='doc/index.html'>Manual</link>/<link
+ ref='http://www.boosthardware.com/LAU/quicktoots/toots/tx_toot/tx_toot1.html'>Tutorial</link>/<link ref='COPYING'>LICENSE</link> and if you have further questions,
+ suggestions, patches,
+ <link ref='scratches.html'>scratches</link> send me a
+ <link ref='mailto:alex@lisas.de'>mail</link></para>
</text>
</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>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>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 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 48 kHz, 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>I added a little pitch calculator that allows adjusting the playback speed
- of a turntable to that of the master turntable. Click the <screen>Pitch Adj.</screen>
- button for more details.
- </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,
- <link ref="http://www.debian.org">Debian</link> inclusion +
- a <link ref="http://www.boosthardware.com/LAU/quicktoots/toots/tx_toot/tx_toot1.html">tutorial</link>
- </newsheader>
- <newstext>
- <para>Aside of fixing numerous bugs, the new release does have
- some new features:
- <itemizedlist>
- <listitem>
- <para>I ported terminatorX to <link ref="http://www.gtk.org">gtk+</link>
- <bold>Version 2</bold> so tX should integrate nicely
- with your GNOME 2 desktop. This release still builds with
- the old gtk+ 1.2, too, but I don't plan to support it
- much longer.
- </para>
- </listitem>
- </itemizedlist>
-
- <screenshot filename="shot-3.73-1.png">
- <nopara>Minimizing controls to save space</nopara>
- </screenshot>
-
- <itemizedlist>
- <listitem>
- <para>I reworked the GUI a bit in order to make
- terminatorX fit better on those small DJ-laptop
- displays. Audio and control panels can now be minimized to
- a <bold>panel bar</bold> to save space - works just like
- GNOME's window list. The panel bar status is
- stored within setfiles and restored upon
- loading. Additionally the buttons of the audio panel have
- been restructured. To lighten up the GUI five
- buttons have been merged into <bold>two</bold> - on
- clicking one of these you'll get a popup menu with all
- previous functionality.
- </para>
- </listitem>
- <listitem>
- <para>
- After spending an evening with Adrian in front of his
- big endian system fixing the audiofile loading
- routines, I decided that loading audiofiles through a
- pipe is an ugly hack. Therefor I wrote <bold>three new audiodfile
- loading methods</bold> that utilize libraries instead of pipes. These
- are <link ref="http://www.mars.org/home/rob/proj/mpeg/">
- mad</link> (for mp3 files),
- <link ref="http://www.xiph.org/ogg/vorbis/">libvorbis</link>
- (for OGG/Vorbis files) and
- <link ref="http://www.68k.org/~michael/audiofile/">
- libaudiofile</link> (for wav/aiff/au etc.). Using these
- routines instead of the old ones brings the following
- advantages:
- <itemizedlist>
- <listitem>
- <para>loading audiofiles is significantly <bold>faster</bold></para>
- </listitem>
- <listitem>
- <para>terminatorX now evaluates the <bold>sample rate</bold> of an
- audiofile and adjusts the turntable's pitch
- accordingly (this does not affect the regular
- "pitch" setting btw)
- </para>
- </listitem>
- <listitem>
- <para>the new routines provide much better <bold>visual
- feedback</bold> on the loading progress
- </para>
- </listitem>
- </itemizedlist>
- Additionally more file formats are supported, so I
- strongly recommend installing the libraries mentioned
- above to improve terminatorX' usabilty.
- </para>
- </listitem>
- <listitem>
- <para>Slowly approaching terminator<bold>XML</bold>: the
- configuration file (now <italic>~/.terminatorXrc</italic>)
- is no longer binary but an XML document. This is necessary
- to become more flexible in the future - and it allows
- editing your terminatorX configuration with a text editor - if
- you want to. Of course, terminatorX now requires
- <link ref="http://www.libxml.org">libxml</link> to be installed. For
- convenience this release still reads the old binary config
- and stores it as an XML document on exit. I plan to move
- the set file format to XML soon, too.
- </para>
- </listitem>
- <listitem>
- <para>I completely rewrote the <italic>tX_engine</italic> in
- order to allow installing terminatorX <bold>suid
- root</bold>. This way terminatorX can run with
- realtime scheduling policy even for unprivileged
- users. Right after creation of the engine thread
- terminatorX drops root privileges - so it might even
- be safe to install terminatorX suid root - but I'll
- leave that up to security experts to decide. For a
- more detailed discussion read
- <link ref="faq.html#11">this FAQ entry</link>.
- </para>
- </listitem>
- <listitem>
- <para>
- Playing around with the wonderful
- <link ref="http://www.povray.org">povray</link> a bit I
- came up with a new logo for terminatorX. The icons have
- been replaced, too - the new ones should be easier for
- your desktop perception.
- </para>
- </listitem>
- <listitem>
- <para>
- Thanks to
- <person><name>Adrian</name><email>adrian@lisas.de</email>
- </person> terminatorX now has a <bold>manpage</bold>.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- A lot of bug fixing went into this release, too, most notably:
- <itemizedlist>
- <listitem>
- <para>An old clipping bug in the <italic>tX_dial</italic> widget code has
- been fixed.
- </para>
- </listitem>
- <listitem>
- <para>This release builds, runs and loads audiofiles on big endian architectures.
- </para>
- </listitem>
- <listitem>
- <para>terminatorX should now build from scratch not only
- on Linux but on FreeBSD, too. Thanks to <person>
- <name> Tilman Linneweh</name><email>tilman@arved.de</email></person>
- for testing.
- </para>
- </listitem>
- <listitem>
- <para>Many other fixes.
- </para>
- </listitem>
- </itemizedlist>
- Have a look at the <link ref="ChangeLog">ChangeLog</link>
- for more details and grab the tarball or the RPMS from the
- <link ref="download.html#Current Version">download
- section</link>.
- </para>
- <para>Aside of the release I'd like to bring to your attention
- that
- <person><name>Mike
- Furr</name><email>mfurr@debian.org</email></person>
- is now maintainer of the
- <link ref="http://packages.debian.org/unstable/sound/terminatorx.html">
- terminatorX Debian package</link>. So if you're a Debian
- user you may want to <italic>apt-get</italic> this release -
- if you install <italic>unstable</italic> packages at all and
- when your local mirror has been updated.
- </para>
- <para>
- For new terminatorX users
- <person><name>Brian</name><email>bredfern@calarts.edu</email></person>
- has created a wonderful step-by-step
- <link ref="http://www.boosthardware.com/LAU/quicktoots/toots/tx_toot/tx_toot1.html">
- "terminatorX TOOT" tutorial</link> - reading that will accelerate
- the creation of your first scratch considerably.
- </para>
- </newstext>
- </newsitem>
-
- <newsitem>
- <newsheader date="31 Jul"><link ref="turntable.html">Turntable gallery</link> online and a fresh
- <link ref="scratches.html">scratch</link>
- </newsheader>
- <newstext>
- <para>
- I finally managed to hack the website's DTD and XSLT stylesheet to support
- the <link ref="turntable.html">users' turntable section</link>. Now that it's easy
- to update, please keep these turntable images coming in! I'd really like
- to see more of your turntables.
- </para>
- <para><person><name>Brian</name><email>bredfern@calarts.edu</email></person> -
- a California based terminatorX DJ - has contributed a very cool scratch
- for the <link ref="scratches.html">scratches section</link>. It's just an
- excerpt of a complete drum and bass set that is available at Brian's
- <link ref="http://asapien.org">website</link> - which seems to be down currently.
- In case it doesn't come up again I'll mirror the complete set here, too.
- </para>
- <para>
- <italic>The names have been changed to protect the innocent...</italic> from
- <bold>spamming</bold>. The XSLT stylesheet now mangles all email addresses
- on this site except for mine - if you've seen a correct email address before
- you should be able to recover the real address easily. BTW if you're a spam
- victim, too, add the incredible <link ref="http://spamassassin.org">spamassassin</link>
- to your <italic>.procmailrc</italic> and spam won't annoy you anymore.
- </para>
- <para>On terminatorX news Version 3.73 should be ready for release RSN! It will
- probably still lack native ALSA support, though.
- </para>
- </newstext>
+ <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 extinguishing
+ 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>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.
+ The focused turntable now has a blue background and a yellow
+ audio signal instead of the old red border.</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>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 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 48 kHz, 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>I added a little
+ <bold>pitch calculator</bold> that allows adjusting the playback
+ speed of a turntable to that of the master turntable so it easy
+ very easy to synchronize loops now. Note that this feature is
+ proabably useless.</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>
+ <para>This release has seen quite some
+ <link ref="http://developer.kde.org/~sewardj">valgrinding</link> so it
+ should run rather stable and a major mem leak has been fixedm, too.
+ Unlike 3.73 this one compiles with gcc > 3.0 with
+ <screen>-Wall</screen> and
+ <screen>-Werror</screen> enabled.</para>
+ </newstext>
</newsitem>
<newsitem>
- <newsheader date="05 jan">happy new year:
- <link ref="download.html#Current Version">terminatorX V3.72</link> is here.
- </newsheader>
- <newstext>
- <para>
- Hope everybody had a nice start into 2002, these are the changes
- that come with terminatorX release 3.72
- (for details check the <link ref="ChangeLog">ChangeLog</link>):
- <itemizedlist>
- <listitem>
- <para>Thanks to a patch from <person>
- <name>Matthew Evans</name>
- <email>activesx@hotmail.com</email>
- </person>
- terminatorX finally supports loading
- <link ref="http://www.vorbis.com">Ogg Vorbis</link>
- audiofiles. Note that this feature requires ogg123
- (>= RC2)
- and <link
- ref="http://sox.sourceforge.net">sox</link>
- installed. The very fresh RC3 release of Ogg Vorbis
- works just fine, too.
- </para>
- </listitem>
- <listitem>
- <para><person><name>Adrian</name>
- <email>adrian@lisas.de</email></person> once again
- submitted code to the project: terminatorX now
- features <bold>mute</bold> and <bold>solo</bold>
- buttons for each turntable's mixing unit. The
- initial patch had some problems with the already
- existing mute-function in terminatorX, therefor I
- extended the turntable in such a way that the new
- buttons <bold>only affect current mixing</bold> -
- the sequencer will not record any events for them.
- </para>
- </listitem>
- <listitem>
- <para>I updated the XInput code to work with XFree86 >
- 4. terminatorX now uses the
- <italic>xsetpointer</italic> binary that comes with
- XFree86 to switch the core pointer - as the old code
- doesn't work with newer XFree86 releases anymore.
- <italic>configure</italic> should auto-detect
- <italic>xsetpointer</italic> if it's available.
- <bold>Note:</bold> You only need to specify an
- additional XInput Device in the options dialog if you
- want to use a scratching device other than your
- mouse. (Yeah, I know, I state that in the docs,
- tooltips, everywhere - but I still get bug reports
- related to that issue...)
- </para>
- </listitem>
- <listitem>
- <para>Updated mpg123 loading routines that should work
- with <link ref="http://mpg321.sourceforge.net">mpg321</link>
- (which many distros install instead of
- mpg123 these days), too. Note that you'll have to have
- <link ref="http://sox.sourceforge.net">sox</link>
- installed in order to get mp3-loading to work (As
- mpg321 doesn't support mpg123's <italic>-m</italic>
- switch).
- </para>
- </listitem>
- <listitem>
- <para>fixes for misc bugs (writing broken .wav's on big
- endian machines, gcc >= 3.x compile fixes, some gtk+
- cleanups, etc.)
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>Grab the sources or the fresh RPMs (Thanks,
- <person><name>Adrian</name><email>adrian@lisas.de</email>
- </person>!) from the <link ref="download.html#Current Version">download
- section</link>.
- </para>
- <para>Initially I planned to integrate native <link
- ref="http://www.alsa-project.org">ALSA</link>-support into
- this release but I simply failed to finish. As many people
- wanted to have some of the above features early I decided to
- release it without ALSA now, as I'll be busy for the upcomming
- weeks. I haven't given up on ALSA though, hopefully the next
- terminatorX release will feature a new audiodevice backend
- that supports ALSA (V0.9) <bold>and</bold> OSS and brings many
- other adtvantages.
- </para>
- <para>The website has undergone minor updates, too:
- <itemizedlist>
- <listitem>
- <para>The section header's now should look fine with
- <link
- ref="http://www.mozilla.org">Mozilla</link>-based
- browsers. They might look funny with older netscapes, though.
- </para>
- </listitem>
- <listitem>
- <para>Updated the
- <link ref="screenshots.html">screenshots</link> as
- people started asking howto achieve that old tX V3.5
- layout :)
- </para>
- </listitem>
- <listitem>
- <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>
- </para>
- </newstext>
- </newsitem>
-
-<!-- <newsitem>
- <newsheader date="20 jun">New scratches, turntables & FAQ updates
- </newsheader>
- <newstext>
- <para>Hey, it seems that the <link ref="turntable.html">turntable
- section</link> inspires quite some of you to build your own
- tX-turntables - which is <bold>really cool</bold>! So I plan to
- provide an additional <italic>users' turntables</italic>-section
- ASAP. Now <person><name>Fernando</name>
- <email>ffabreti@yahoo.com.br</email>
- </person> not only sent me a cool
- fresh <link ref="aint.mp3">scratch</link> you can grab from the
- <link ref="scratches.html">users' scratches-section</link> but also
- pictures from his turntable. Take a look at his turntable
- in the <link ref="fernando.html">turntable section
- </link>. In case <bold>you</bold> built
- your own turntable already, please
- <link ref="mailto:alex@lisas.de">send</link>
- me some images of it - I'm
- really keen on seeing what your turntables look like.
- </para>
- <para>
- <person>
- <name>Dr. Uggs</name>
- <email>jesset@katapultz.org</email>
- </person> visited the <link ref="scratches.html">users'
- scratches-section</link> a while ago, too, and decided to
- contribute his own scratch - not created with terminatorX but a
- <bold>real</bold> turntable. I thought this fine scratch should
- be up here, too - not in the users' scratches section though as
- it's not a user-scratch. So you can listen to it right
- <link ref="earth.mp3">here</link> - it's a good chance to compare
- a real turntable's sound against terminatorX.
- </para>
- <para>If you have problems getting your mouse to actually scratch
- with terminatorX, I have some hints on this issue in the
- <link ref="faq.html">FAQ-Section</link> now.
- </para>
- </newstext>
+ <newsheader date='18 Sep'>
+ <link ref='download.html#Current Version'>terminatorX
+ V3.73</link> available,
+ <link ref='http://www.debian.org'>Debian</link> inclusion + a
+ <link ref='http://www.boosthardware.com/LAU/quicktoots/toots/tx_toot/tx_toot1.html'>
+ tutorial</link></newsheader>
+ <newstext>
+ <para>Aside of fixing numerous bugs, the new release does have some
+ new features:
+ <itemizedlist>
+ <listitem>
+ <para>I ported terminatorX to
+ <link ref='http://www.gtk.org'>gtk+</link>
+ <bold>Version 2</bold> so tX should integrate nicely with your
+ GNOME 2 desktop. This release still builds with the old gtk+ 1.2,
+ too, but I don't plan to support it much longer.</para>
+ </listitem>
+ </itemizedlist>
+ <screenshot filename='shot-3.73-1.png'>
+ <nopara>Minimizing controls to save space</nopara>
+ </screenshot>
+ <itemizedlist>
+ <listitem>
+ <para>I reworked the GUI a bit in order to make terminatorX fit
+ better on those small DJ-laptop displays. Audio and control
+ panels can now be minimized to a
+ <bold>panel bar</bold> to save space - works just like GNOME's
+ window list. The panel bar status is stored within setfiles and
+ restored upon loading. Additionally the buttons of the audio
+ panel have been restructured. To lighten up the GUI five buttons
+ have been merged into
+ <bold>two</bold> - on clicking one of these you'll get a popup
+ menu with all previous functionality.</para>
+ </listitem>
+ <listitem>
+ <para>After spending an evening with Adrian in front of his big
+ endian system fixing the audiofile loading routines, I decided
+ that loading audiofiles through a pipe is an ugly hack. Therefor
+ I wrote
+ <bold>three new audiodfile loading methods</bold> that utilize
+ libraries instead of pipes. These are
+ <link ref='http://www.mars.org/home/rob/proj/mpeg/'>
+ mad</link> (for mp3 files),
+ <link ref='http://www.xiph.org/ogg/vorbis/'>libvorbis</link> (for
+ OGG/Vorbis files) and
+ <link ref='http://www.68k.org/~michael/audiofile/'>
+ libaudiofile</link> (for wav/aiff/au etc.). Using these routines
+ instead of the old ones brings the following advantages:
+ <itemizedlist>
+ <listitem>
+ <para>loading audiofiles is significantly
+ <bold>faster</bold></para>
+ </listitem>
+ <listitem>
+ <para>terminatorX now evaluates the
+ <bold>sample rate</bold> of an audiofile and adjusts the
+ turntable's pitch accordingly (this does not affect the
+ regular "pitch" setting btw)</para>
+ </listitem>
+ <listitem>
+ <para>the new routines provide much better
+ <bold>visual feedback</bold> on the loading progress</para>
+ </listitem>
+ </itemizedlist>Additionally more file formats are supported, so I
+ strongly recommend installing the libraries mentioned above to
+ improve terminatorX' usabilty.</para>
+ </listitem>
+ <listitem>
+ <para>Slowly approaching terminator
+ <bold>XML</bold>: the configuration file (now
+ <italic>~/.terminatorXrc</italic>) is no longer binary but an XML
+ document. This is necessary to become more flexible in the future
+ - and it allows editing your terminatorX configuration with a
+ text editor - if you want to. Of course, terminatorX now requires
+
+ <link ref='http://www.libxml.org'>libxml</link> to be installed.
+ For convenience this release still reads the old binary config
+ and stores it as an XML document on exit. I plan to move the set
+ file format to XML soon, too.</para>
+ </listitem>
+ <listitem>
+ <para>I completely rewrote the
+ <italic>tX_engine</italic> in order to allow installing
+ terminatorX
+ <bold>suid root</bold>. This way terminatorX can run with
+ realtime scheduling policy even for unprivileged users. Right
+ after creation of the engine thread terminatorX drops root
+ privileges - so it might even be safe to install terminatorX suid
+ root - but I'll leave that up to security experts to decide. For
+ a more detailed discussion read
+ <link ref='faq.html#11'>this FAQ entry</link>.</para>
+ </listitem>
+ <listitem>
+ <para>Playing around with the wonderful
+ <link ref='http://www.povray.org'>povray</link> a bit I came up
+ with a new logo for terminatorX. The icons have been replaced,
+ too - the new ones should be easier for your desktop
+ perception.</para>
+ </listitem>
+ <listitem>
+ <para>Thanks to
+ <person>
+ <name>Adrian</name>
+ <email>adrian@lisas.de</email>
+ </person>terminatorX now has a
+ <bold>manpage</bold>.</para>
+ </listitem>
+ </itemizedlist></para>
+ <para>A lot of bug fixing went into this release, too, most notably:
+ <itemizedlist>
+ <listitem>
+ <para>An old clipping bug in the
+ <italic>tX_dial</italic> widget code has been fixed.</para>
+ </listitem>
+ <listitem>
+ <para>This release builds, runs and loads audiofiles on big
+ endian architectures.</para>
+ </listitem>
+ <listitem>
+ <para>terminatorX should now build from scratch not only on Linux
+ but on FreeBSD, too. Thanks to
+ <person>
+ <name>Tilman Linneweh</name>
+ <email>tilman@arved.de</email>
+ </person>for testing.</para>
+ </listitem>
+ <listitem>
+ <para>Many other fixes.</para>
+ </listitem>
+ </itemizedlist>Have a look at the
+ <link ref='ChangeLog'>ChangeLog</link> for more details and grab the
+ tarball or the RPMS from the
+ <link ref='download.html#Current Version'>download
+ section</link>.</para>
+ <para>Aside of the release I'd like to bring to your attention that
+ <person>
+ <name>Mike Furr</name>
+ <email>mfurr@debian.org</email>
+ </person>is now maintainer of the
+ <link ref='http://packages.debian.org/unstable/sound/terminatorx.html'>
+ terminatorX Debian package</link>. So if you're a Debian user you may
+ want to
+ <italic>apt-get</italic> this release - if you install
+ <italic>unstable</italic> packages at all and when your local mirror
+ has been updated.</para>
+ <para>For new terminatorX users
+ <person>
+ <name>Brian</name>
+ <email>bredfern@calarts.edu</email>
+ </person>has created a wonderful step-by-step
+ <link ref='http://www.boosthardware.com/LAU/quicktoots/toots/tx_toot/tx_toot1.html'>
+ "terminatorX TOOT" tutorial</link> - reading that will accelerate the
+ creation of your first scratch considerably.</para>
+ </newstext>
</newsitem>
-
<newsitem>
- <newsheader date="22 mar">Fresh <link ref="download.html#Current Version">
- RPMs</link> (for i586 and Sparc machines)
- </newsheader>
- <newstext>
+ <newsheader date='31 Jul'>
+ <link ref='turntable.html'>Turntable gallery</link> online and a fresh
+ <link ref='scratches.html'>scratch</link></newsheader>
+ <newstext>
+ <para>I finally managed to hack the website's DTD and XSLT stylesheet
+ to support the
+ <link ref='turntable.html'>users' turntable section</link>. Now that
+ it's easy to update, please keep these turntable images coming in!
+ I'd really like to see more of your turntables.</para>
+ <para>
+ <person>
+ <name>Brian</name>
+ <email>bredfern@calarts.edu</email>
+ </person>- a California based terminatorX DJ - has contributed a very
+ cool scratch for the
+ <link ref='scratches.html'>scratches section</link>. It's just an
+ excerpt of a complete drum and bass set that is available at Brian's
+ <link ref='http://asapien.org'>website</link> - which seems to be down
+ currently. In case it doesn't come up again I'll mirror the complete
+ set here, too.</para>
<para>
- The RPMs for the current release have undergone some refinement by
- <person><name>Mr. RPM</name><email>adrian@lisas.de</email></person>
- himself. In addition to updating the spec-files he built
- the current release on his very own Sparc, so there is a
- Sparc RPM available now, too.
- </para>
- <para>
- As always the RPMs are available from the
- <link ref="download.html#Current Version">
- download section.</link>
- </para>
+ <italic>The names have been changed to protect the
+ innocent...</italic> from
+ <bold>spamming</bold>. The XSLT stylesheet now mangles all email
+ addresses on this site except for mine - if you've seen a correct
+ email address before you should be able to recover the real address
+ easily. BTW if you're a spam victim, too, add the incredible
+ <link ref='http://spamassassin.org'>spamassassin</link> to your
+ <italic>.procmailrc</italic> and spam won't annoy you anymore.</para>
+ <para>On terminatorX news Version 3.73 should be ready for release
+ RSN! It will probably still lack native ALSA support, though.</para>
</newstext>
- </newsitem>
-
-
- <newsitem>
- <newsheader date="20 mar"><link ref="download.html#Current Version">
- RPMs</link> for Version 3.71 available
- </newsheader>
- <newstext>
- <para>Faster than ever before
- <person><name>Adrian</name><email>adrian@lisas.de</email></person>
- has produced the rpms for the new release. The i586 and src RPMs
- are available from the <link ref="download.html#Current Version">
- download section</link>. These are V4-RPMs again - if you've got
- a problem with them read the news below (from dec 18) for
- more details on how to install V4-RPMs on a RPM-V3 systems.
- </para>
- <para>Sparc-Owners may be pleased to hear that there should be RPMs
- for their platform sometime tomorrow.
- </para>
- </newstext>
</newsitem>
-
<newsitem>
- <newsheader date="20 mar">left, right, left, right...
- <link ref="download.html#Current Version">
- terminatorX V3.71</link> is up.
- </newsheader>
- <newstext>
- <para>
- Yep, a new release is here that brings the <bold>very latest</bold>
- in HIFI technology: <italic>STEREO</italic>-operation ;)
- </para>
- <para>
- List of changes (for more details see the
- <link ref="ChangeLog">ChangeLog</link>)
- <itemizedlist>
- <listitem>
- <para>So tX is <bold>stereo</bold> now, producing stereo
- output for your soundcard and recording stereo
- wavfiles of course. The "pan" knobs for each turntable now
- actually <italic>do something</italic>. If you had
- terminatorX installed before you might have to
- increase the buffer size setting to fit stereo playback.
- </para>
- </listitem>
- <listitem>
- <para>The new release has a patch from <person><name>Adrian
- 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>
- for more details).
- </para>
- </listitem>
- <listitem>
- <para>The echo effect received <bold>two new controls</bold>:
- a pan-control - to allow positioning the echo-signal at
- position in the stereo panorama that differs from the
- turntable's main pan-position - and an additional volume
- parameter for the echo-signal.
- </para>
- </listitem>
- <listitem>
- <para>The built-in effects now <bold>clear their buffers</bold>
- on enabling
- to ensure that NANs (that some LADSPA plugins may create
- under certain conditions) do not get stuck in there.
- </para>
- </listitem>
- <listitem>
- <para>Documentation updates and more bugfixes.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>As the handling of the echo effect is somewhat special now, I
- used <link ref="http://www.lysator.liu.se/~alla/dia/">dia</link>
- and
- <link ref="http://www.gimp.org">the gimp</link> to create a little graphic
- to clear things up a bit (the manual contains a textual
- description, too):
- <screenshot filename="signalflow.jpg">
- <nopara>tX signal routing</nopara>
- </screenshot>
- </para>
- <para>RPMs will be available soon.</para>
- </newstext>
- </newsitem>
-
- <newsitem>
- <newsheader date="18 dec"><link ref="download.html#Current Version">
- RPMs</link> done and some remixes.
- </newsheader>
- <newstext>
- <para>
- <person><name>Adrian</name><email>adrian@lisas.de</email></person>
- set me up with the rpms for Version 3.70. Note that these are
- RPMV4-rpms designed for RedHat 7.0. If you want to use these with
- RedHat 6.1/6.2 you'll have to upgrade to rpm-3.0.5. You can
- download the official RedHat-rpm-updates from right here, as this
- server mirrors the RedHat updates (<link ref="ftp://rhlx01.fht-esslingen.de/Mirrors/updates.redhat.com/6.1/i386/">6.1</link>,
- <link ref="ftp://rhlx01.fht-esslingen.de/Mirrors/updates.redhat.com/6.2/i386/">6.2</link>). Then grab the terminatorX-3.70-rpms from the
- <link ref="download.html#Current Version">download section</link>.
- </para>
- <para>
- <person><name>Sean</name><email>sean@frazmtn.com</email></person>
- sent me a mail sometime ago about his
- <link ref="http://ns.ownerguard.com/~sean/">site</link>
- where he offers some cool remixes he made (with terminatorX). Go
- and <link ref="http://ns.ownerguard.com/~sean/">check them
- out</link>.
- </para>
- </newstext>
- </newsitem>
-
- <newsitem>
- <newsheader date="20 nov">It's done.
- <link ref="download.html#Current Version">terminatorX</link> V3.70
- is here.
- </newsheader>
- <newstext>
- <para>Yeah, I know, it's been a while, and sorry to everybody I told
- something about "two weeks", "next week" or even "tomorrow". I mean
- at least it's here before the 2.4.0-final kernel ;)
- </para>
- <para>
- <screenshot filename="screenshot_v3.7.jpg">
- <nopara>the new GUI with the plugin list popped up</nopara>
- </screenshot>
- </para>
- <para>Now, <italic>finally</italic> terminatorX <bold>Version
- 3.70</bold> is available for download. This release brings the
- following new features:
- <itemizedlist>
- <listitem>
- <nopara>The most exciting new feature is <bold>LADSPA plugin
- support</bold>. Note that this means terminatorX requires
- the LADSPA-SDK (ladspa.h to be exact) to build. Get the
- LADSPA-SDK from the <link ref="http://www.ladspa.org">LADSPA
- homepage</link> (untar; cd src; make
- install). Oh and while you're there why not grab
- <link ref="http://www.ladspa.org/cmt/">CMT</link> and all
- those other plugins available, too? Note that you can record
- sequencer events for controls of LADSPA plugins just like for
- the built-in effects.
- </nopara>
- </listitem>
-
- <listitem>
- <nopara><bold>Editable effect stack</bold>. To allow nice
- integration of LADSPA-plugins with the built-in effects, all
- effects now reside in the turntable's <bold>effect
- queue</bold>. The effect-processing sequence can be edited
- easily (with the two blue arrows). LADSPA plugins can be
- inserted at any position in that sequence. Press the <italic>
- FX</italic>-button to load a plugin.
- </nopara>
- </listitem>
-
- <listitem>
- <nopara>A <bold>GUI redesign</bold> again. This was necessary
- to support dynamic addition/removal of the plugin GUIs.
- Additionally you can now <bold>enter precise values</bold>
- for each parameter adjustable via a dial into a
- text entry widget alternatively. Another plus of the new GUI
- is, that you can configure it to display only those controls
- you want to see.
- </nopara>
- </listitem>
-
- <listitem>
- <nopara>The mouse-axis-to-parameter mapping is no longer
- hardcoded. You can now map <bold>any parameter</bold>
- considered mappable to the mouse-axis of your choice. This
- includes plugins' controls.
- </nopara>
- </listitem>
-
- <listitem>
- <nopara>The old README has gone. I moved the info there into a
- <bold>SGML/DocBook manual</bold>. The distribution comes with
- the HTML and the postscript version of that manual. The HTML
- version is available <link ref="doc/index.html">here</link>,
- too.
- </nopara>
- </listitem>
-
- <listitem>
- <nopara><bold>Tooltips</bold> for the new GUI.</nopara>
- </listitem>
-
- <listitem>
- <nopara>
- <person><name>Josh Steiner</name>
- <email>joschi@eds.org</email></person>
- has added some <bold>startup switches</bold> for terminatorX.
- Try -<italic>-help</italic> for more details.</nopara>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>If you want to create your very own plugins without writing a
- single line of code checkout the <italic>excellent</italic>
- <link ref="http://www.gdam.org">GDAM</link>.
- </para>
-
- <para>Ok, now grab the new release from the
- <link ref="download.html">download</link> section and have fun - I
- invested quite some time in polishing so I hope there are no bigger
- flaws in it - but you never know ;).
- </para>
- <para>
- I'll put some news up here as soon as the rpms for the new release
- are finished.
- </para>
- </newstext>
- </newsitem>
-
- <newsitem>
- <newsheader date="24 sep">website re-done & some news</newsheader>
- <newstext><para>Although hardly visible this website was completely
- re-done. I ported this site to set of XML-files and an
- XSLT-stylesheet, as this way it should be easier to maintain. Oh
- yeah and finally frames and gifs are gone forever.
- </para>
- <para>
- There might be some new bugs on this website, due to the re-design,
- so please let me know about lousy layout in some browsers, dead
- links or whatever, thanks!
- </para>
- <para>The page-contents was updated, too. People with list-linkage
- or compile errors please take a look at the updated
- <link ref="faq.html">FAQ</link>.
- </para>
- <para><bold>On terminatorX:</bold> Ok, the next release with
- <link ref="http://www.ladspa.org">LADSPA</link>-plugin-support,
- should be finished by next week. The GUI redesign is done, plugins
- work nicely, just some polishing and doc-clearup is left to do.
- Stay tuned.
- </para>
- </newstext>
+ <newsheader date='05 jan'>happy new year:
+ <link ref='download.html#Current Version'>terminatorX V3.72</link> is
+ here.</newsheader>
+ <newstext>
+ <para>Hope everybody had a nice start into 2002, these are the
+ changes that come with terminatorX release 3.72 (for details check
+ the
+ <link ref='ChangeLog'>ChangeLog</link>):
+ <itemizedlist>
+ <listitem>
+ <para>Thanks to a patch from
+ <person>
+ <name>Matthew Evans</name>
+ <email>activesx@hotmail.com</email>
+ </person>terminatorX finally supports loading
+ <link ref='http://www.vorbis.com'>Ogg Vorbis</link> audiofiles.
+ Note that this feature requires ogg123 (>= RC2) and
+ <link ref='http://sox.sourceforge.net'>sox</link> installed. The
+ very fresh RC3 release of Ogg Vorbis works just fine, too.</para>
+ </listitem>
+ <listitem>
+ <para>
+ <person>
+ <name>Adrian</name>
+ <email>adrian@lisas.de</email>
+ </person>once again submitted code to the project: terminatorX
+ now features
+ <bold>mute</bold> and
+ <bold>solo</bold> buttons for each turntable's mixing unit. The
+ initial patch had some problems with the already existing
+ mute-function in terminatorX, therefor I extended the turntable
+ in such a way that the new buttons
+ <bold>only affect current mixing</bold> - the sequencer will not
+ record any events for them.</para>
+ </listitem>
+ <listitem>
+ <para>I updated the XInput code to work with XFree86 > 4.
+ terminatorX now uses the
+ <italic>xsetpointer</italic> binary that comes with XFree86 to
+ switch the core pointer - as the old code doesn't work with newer
+ XFree86 releases anymore.
+ <italic>configure</italic> should auto-detect
+ <italic>xsetpointer</italic> if it's available.
+ <bold>Note:</bold> You only need to specify an additional XInput
+ Device in the options dialog if you want to use a scratching
+ device other than your mouse. (Yeah, I know, I state that in the
+ docs, tooltips, everywhere - but I still get bug reports related
+ to that issue...)</para>
+ </listitem>
+ <listitem>
+ <para>Updated mpg123 loading routines that should work with
+ <link ref='http://mpg321.sourceforge.net'>mpg321</link> (which
+ many distros install instead of mpg123 these days), too. Note
+ that you'll have to have
+ <link ref='http://sox.sourceforge.net'>sox</link> installed in
+ order to get mp3-loading to work (As mpg321 doesn't support
+ mpg123's
+ <italic>-m</italic> switch).</para>
+ </listitem>
+ <listitem>
+ <para>fixes for misc bugs (writing broken .wav's on big endian
+ machines, gcc >= 3.x compile fixes, some gtk+ cleanups,
+ etc.)</para>
+ </listitem>
+ </itemizedlist></para>
+ <para>Grab the sources or the fresh RPMs (Thanks,
+ <person>
+ <name>Adrian</name>
+ <email>adrian@lisas.de</email>
+ </person>!) from the
+ <link ref='download.html#Current Version'>download
+ section</link>.</para>
+ <para>Initially I planned to integrate native
+ <link ref='http://www.alsa-project.org'>ALSA</link>-support into this
+ release but I simply failed to finish. As many people wanted to have
+ some of the above features early I decided to release it without ALSA
+ now, as I'll be busy for the upcomming weeks. I haven't given up on
+ ALSA though, hopefully the next terminatorX release will feature a
+ new audiodevice backend that supports ALSA (V0.9)
+ <bold>and</bold> OSS and brings many other adtvantages.</para>
+ <para>The website has undergone minor updates, too:
+ <itemizedlist>
+ <listitem>
+ <para>The section header's now should look fine with
+ <link ref='http://www.mozilla.org'>Mozilla</link>-based browsers.
+ They might look funny with older netscapes, though.</para>
+ </listitem>
+ <listitem>
+ <para>Updated the
+ <link ref='screenshots.html'>screenshots</link> as people started
+ asking howto achieve that old tX V3.5 layout :)</para>
+ </listitem>
+ <listitem>
+ <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></para>
+ </newstext>
</newsitem>
-
- <newsitem>
- <newsheader date="12 apr">
- terminatorX V3.60 is here and 6.000 samples
- </newsheader>
- <newstext>
- <para>Sorry, this tarball is finished for quite some time now - but
- I was too busy for updating.<newline/>
- <italic>Now 3.60 is here and has some brandnew features:</italic>
- <itemizedlist>
- <listitem><nopara>Finally the <bold>Sequencer</bold>
- is available. You can now record/dub events for <italic>
- scratching, volume, effects (cutoff etc.), sync settings,
- </italic> etc. </nopara>
- </listitem>
- <listitem><nopara>New <bold>dial widget</bold> - I designed it
- for the upcoming GUI redesign - but
- I liked it so much I decided to let you betatest it right
- now ;) -
- configuring with -<italic>-disable-dial</italic> will give
- you the plain gtk+ scales
- again. </nopara>
- </listitem>
- <listitem><nopara>Some <bold>pixmaps</bold> for the main
- operation buttons. These can be disabled
- in in the Options-dialog. </nopara>
- </listitem>
- <listitem><nopara>Some <bold>soundfile-editor integration</bold>:
- You can now start your favourite
- soundfile-editor with the soundfile loaded in a turntable
- with just one
- click. If your looking for an soundfile editor check out
- Dave's
- <link ref="http://www.bright.net/~dlphilp/linuxsound/">Linux
- Sound and Midi Pages</link></nopara>
- </listitem>
- <listitem><nopara><bold>Enhanced 3DNow! support</bold>: the mixer
- routine is now 3<italic>DNow!</italic>-optimized too,
- increasing 3DNow! performance gain from a
- fromer 5% to more than 20%.</nopara>
- </listitem>
- <listitem><nopara>Big Endian support is back finally.
- <person>
- <name>Scott</name>
- <email>scknight@indiana.edu</email>
- </person> got it running on PPCs again.</nopara>
- </listitem>
- <listitem><nopara>Some<bold> GUI cleanups</bold>. Should now fit
- on smaller displays, too.</nopara>
- </listitem>
- </itemizedlist>
- The following <italic>long-outstanding bugs</italic> have been
- fixed:
- <itemizedlist>
- <listitem>
- <nopara>segfault on load / drag'n'drop is
- <bold>fixed</bold></nopara>
- </listitem>
- <listitem><nopara>zombie mpg123 and sox processes are <bold>
- killed</bold></nopara>
- </listitem>
- <listitem><nopara>constant lowpass-signal <bold>fixed</bold>
- </nopara>
- </listitem>
- <listitem><nopara>and more...</nopara>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- <person><name>Erik</name>
- <email>e@osterman.com</email>
- </person> sent me a note to inform me about his <bold>huge</bold>
- <italic>sample-archive</italic>
- (<link ref="http://ftp.osterman.com/pub/music/samples">http</link>/<link ref="ftp://ftp.osterman.com/pub/music/samples">ftp</link>).
- They have more than 6.000 samples at the moment and if you want to
- put up a mirror send him a note.
- </para>
- <para>Speedy <person><name>Adrian</name>
- <email>adrian@lisas.de</email></person> has
- compiled the already available RPMs for V3.60. </para>
- </newstext>
- </newsitem> -->
- </news>
+ </news>
</main>
</section>
-
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE section SYSTEM "./tX.dtd"[
-]>
-<section name="scratches">
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section SYSTEM "./tX.dtd"[ ]>
+<section name='scratches'>
<scratches>
- <para><bold>Yeah, Boy!</bold> (talking <link ref="http://www.publicenemy.com/soldiers/flavor.php">flavor</link>, here)</para>
- <para>Here are the current "users scratches". So you think
- these are not enough? Right, Ok, so do something about it! Read the text
- below if you want to send me what you created with terminatorX.
- </para>
-
+ <para>
+ <bold>Yeah, Boy!</bold>(talking
+ <link ref='http://www.publicenemy.com/soldiers/flavor.php'>flavor</link>,
+ here)</para>
+ <para>Here are the current "users scratches". So you think these are not
+ enough? Right, Ok, so do something about it! Read the text below if you
+ want to send me what you created with terminatorX.</para>
<scratchtable>
- <scratch>
- <mp3file>
- <file>asapien_scratch.mp3</file>
- <filesize>544kB</filesize>
- </mp3file>
- <author>
- <person>
- <name>Brian Redfern</name>
- <email>bredfern@calarts.edu</email>
- </person>
- </author>
- <comment>
- <nopara>This scratch is just a sample of a full 45min
- terminatorX set, which is available it at the
- <link ref="http://asapien.org">author's website</link>.
- </nopara>
- <tinycomment>The whole set is terminatorX plus an external
- reverb box.
- </tinycomment>
- </comment>
- </scratch>
-
<scratch>
- <mp3file>
- <file>aint.mp3</file>
- <filesize>848kB</filesize>
- </mp3file>
- <author>
- <person>
- <name>Fernando S. Fabreti</name>
- <email>ffabreti@yahoo.com.br</email>
- </person>
- </author>
- <comment>
- <nopara>Aint no DJ but love to scratch!</nopara>
- <tinycomment>
- <nopara>created with his <link ref="turntable.html">
- own turntable</link>.
- </nopara>
- </tinycomment>
- </comment>
+ <mp3file>
+ <file>asapien_scratch.mp3</file>
+ <filesize>544kB</filesize>
+ </mp3file>
+ <author>
+ <person>
+ <name>Brian Redfern</name>
+ <email>bredfern@calarts.edu</email>
+ </person>
+ </author>
+ <comment>
+ <nopara>This scratch is just a sample of a full 45min terminatorX
+ set, which is available it at the
+ <link ref='http://asapien.org'>author's website</link>.</nopara>
+ <tinycomment><nopara>The whole set is terminatorX plus an external reverb
+ box.</nopara></tinycomment>
+ </comment>
</scratch>
-
<scratch>
- <mp3file>
- <file>jazzyscratch.mp3</file>
- <filesize>550kB</filesize>
- </mp3file>
- <author>
- <person>
- <name>Gregory A. Aluise</name>
- <email>aluise@udel.edu</email>
- </person>
- <tinycomment>
- <nopara>alias <italic>DJ Giant 'G'</italic> of the
- <link ref="http://farnkyboyz.virtualave.net">FarnkyBoyz</link>
- </nopara>
- </tinycomment>
- </author>
- <comment>
- <nopara>From the <link ref="http://farnkyboyz.virtualave.net">
- Farnky Boyz'</link> upcoming Album
- </nopara>
- </comment>
+ <mp3file>
+ <file>aint.mp3</file>
+ <filesize>848kB</filesize>
+ </mp3file>
+ <author>
+ <person>
+ <name>Fernando S. Fabreti</name>
+ <email>ffabreti@yahoo.com.br</email>
+ </person>
+ </author>
+ <comment>
+ <nopara>Aint no DJ but love to scratch!</nopara>
+ <tinycomment>
+ <nopara>created with his
+ <link ref='turntable.html'>own turntable</link>.</nopara>
+ </tinycomment>
+ </comment>
</scratch>
-
<scratch>
-
- <mp3file>
- <file>this.mp3</file>
- <filesize>1.4MB</filesize>
- </mp3file>
- <author>
- <person>
- <name>me</name>
- <email>alex@lisas.de</email>
- </person>
- <tinycomment>
- <nopara><italic>again ;)</italic>
- </nopara>
- </tinycomment>
- </author>
- <comment>
- <nopara>my 3.5 demo</nopara>
- </comment>
+ <mp3file>
+ <file>jazzyscratch.mp3</file>
+ <filesize>550kB</filesize>
+ </mp3file>
+ <author>
+ <person>
+ <name>Gregory A. Aluise</name>
+ <email>aluise@udel.edu</email>
+ </person>
+ <tinycomment>
+ <nopara>alias
+ <italic>DJ Giant 'G'</italic>of the
+ <link ref='http://farnkyboyz.virtualave.net'>
+ FarnkyBoyz</link></nopara>
+ </tinycomment>
+ </author>
+ <comment>
+ <nopara>From the
+ <link ref='http://farnkyboyz.virtualave.net'>Farnky
+ Boyz'</link> upcoming Album</nopara>
+ </comment>
</scratch>
-
<scratch>
- <mp3file><file>cutitup.mp3</file>
- <filesize>780kB</filesize>
- </mp3file>
- <author>
- <person>
- <name>Gregory A. Aluise</name>
- <email>aluise@udel.edu</email>
- </person>
- <tinycomment>
- <nopara>alias <italic>DJ Giant 'G'</italic> of the
- <link ref="http://farnkyboyz.virtualave.net">FarnkyBoyz</link>
- </nopara>
- </tinycomment>
- </author>
- <comment>
- <nopara>Cut it up!</nopara>
- <tinycomment>
- <nopara><italic>"Mixed in 15 min"</italic> - Wow!
- </nopara>
- </tinycomment>
- </comment>
+ <mp3file>
+ <file>this.mp3</file>
+ <filesize>1.4MB</filesize>
+ </mp3file>
+ <author>
+ <person>
+ <name>me</name>
+ <email>alex@lisas.de</email>
+ </person>
+ <tinycomment>
+ <nopara>
+ <italic>again ;)</italic>
+ </nopara>
+ </tinycomment>
+ </author>
+ <comment>
+ <nopara>my 3.5 demo</nopara>
+ </comment>
</scratch>
-
<scratch>
- <mp3file>
- <file>stores.mp3</file>
- <filesize>1.3MB</filesize>
- </mp3file>
- <author>
- <person>
- <name>Tony Lambiris</name>
- <email>tonyl@telebot.com</email>
- </person>
- </author>
- <comment>
- <nopara>Stores Scratch</nopara>
- </comment>
+ <mp3file>
+ <file>cutitup.mp3</file>
+ <filesize>780kB</filesize>
+ </mp3file>
+ <author>
+ <person>
+ <name>Gregory A. Aluise</name>
+ <email>aluise@udel.edu</email>
+ </person>
+ <tinycomment>
+ <nopara>alias
+ <italic>DJ Giant 'G'</italic>of the
+ <link ref='http://farnkyboyz.virtualave.net'>
+ FarnkyBoyz</link></nopara>
+ </tinycomment>
+ </author>
+ <comment>
+ <nopara>Cut it up!</nopara>
+ <tinycomment>
+ <nopara>
+ <italic>"Mixed in 15 min"</italic>- Wow!</nopara>
+ </tinycomment>
+ </comment>
</scratch>
-
<scratch>
- <mp3file>
- <file>hamsterscratch.mp3</file>
- <filesize>80kB</filesize>
- </mp3file>
- <author>
- <person>
- <name>Will Weiser</name>
- <email>kased811@ix.netcom.com</email>
- </person>
- </author>
- <comment>
- <nopara>Quick Hamster Scratch</nopara>
- <tinycomment>
- <nopara>www.hamsterdance.com</nopara>
- </tinycomment>
- </comment>
+ <mp3file>
+ <file>stores.mp3</file>
+ <filesize>1.3MB</filesize>
+ </mp3file>
+ <author>
+ <person>
+ <name>Tony Lambiris</name>
+ <email>tonyl@telebot.com</email>
+ </person>
+ </author>
+ <comment>
+ <nopara>Stores Scratch</nopara>
+ </comment>
</scratch>
-
<scratch>
- <mp3file>
- <file>terminatorX.mp3</file>
- <filesize>470kB</filesize>
- </mp3file>
- <author>
- <person>
- <name>me</name>
- <email>alex@lisas.de</email>
- </person>
- <tinycomment>
- <nopara>again</nopara>
- </tinycomment></author>
- <comment>
- <nopara>Messing Public Enemy </nopara>
- <tinycomment>
- <nopara>or: the tX title-scratch ;)</nopara>
- </tinycomment>
- </comment>
+ <mp3file>
+ <file>hamsterscratch.mp3</file>
+ <filesize>80kB</filesize>
+ </mp3file>
+ <author>
+ <person>
+ <name>Will Weiser</name>
+ <email>kased811@ix.netcom.com</email>
+ </person>
+ </author>
+ <comment>
+ <nopara>Quick Hamster Scratch</nopara>
+ <tinycomment>
+ <nopara>www.hamsterdance.com</nopara>
+ </tinycomment>
+ </comment>
</scratch>
-
<scratch>
- <mp3file>
- <file>interrupt.mp3</file>
- <filesize>120kB</filesize>
- </mp3file>
- <author>
- <person>
- <name>John B. Fink</name>
- <email>jbfink@ogre.lib.muohio.edu</email>
- </person>
- </author>
- <comment>
- <nopara>Meat Beat Manifesto Meets Orson Wells</nopara>
- </comment>
+ <mp3file>
+ <file>terminatorX.mp3</file>
+ <filesize>470kB</filesize>
+ </mp3file>
+ <author>
+ <person>
+ <name>me</name>
+ <email>alex@lisas.de</email>
+ </person>
+ <tinycomment>
+ <nopara>again</nopara>
+ </tinycomment>
+ </author>
+ <comment>
+ <nopara>Messing Public Enemy</nopara>
+ <tinycomment>
+ <nopara>or: the tX title-scratch ;)</nopara>
+ </tinycomment>
+ </comment>
</scratch>
-
<scratch>
- <mp3file>
- <file>linus.mp3</file>
- <filesize>200kB</filesize>
- </mp3file>
- <author>
- <person>
- <name>myself</name>
- <email>alex@lisas.de</email>
- </person>
- </author>
- <comment>
- <nopara>Linus pronounces Linux</nopara>
- <tinycomment>
- <nopara>from the silly sounds (see kernel archives)</nopara>
- </tinycomment>
- </comment>
+ <mp3file>
+ <file>interrupt.mp3</file>
+ <filesize>120kB</filesize>
+ </mp3file>
+ <author>
+ <person>
+ <name>John B. Fink</name>
+ <email>jbfink@ogre.lib.muohio.edu</email>
+ </person>
+ </author>
+ <comment>
+ <nopara>Meat Beat Manifesto Meets Orson Wells</nopara>
+ </comment>
+ </scratch>
+ <scratch>
+ <mp3file>
+ <file>linus.mp3</file>
+ <filesize>200kB</filesize>
+ </mp3file>
+ <author>
+ <person>
+ <name>myself</name>
+ <email>alex@lisas.de</email>
+ </person>
+ </author>
+ <comment>
+ <nopara>Linus pronounces Linux</nopara>
+ <tinycomment>
+ <nopara>from the silly sounds (see kernel archives)</nopara>
+ </tinycomment>
+ </comment>
</scratch>
-
</scratchtable>
-
- <para>In case <bold>you</bold> want to get on the list above download terminatorX,
- practice and record your scratching. If you believe your skills are good
- enough <link ref="mailto:alex@lisas.de">mail</link> me your
- best scratch. Before you do so, please:
- <itemizedlist>
- <listitem>
- <nopara>Ensure that it's not <italic>too</italic> big.</nopara>
- </listitem>
- <listitem>
- <nopara><italic>mp3</italic> or <italic>ogg</italic> it. If you don't have an encoder
- go and get, <link ref="http://www.mp3dev.org/mp3//">LAME</link>,
- <link ref="http://bladeenc.mp3.no/">BladeEnc</link> or <link ref="http://www.xiph.org/ogg/vorbis/">OggVorbis</link> .
- </nopara>
- </listitem>
- </itemizedlist>
- </para>
+ <para>In case
+ <bold>you</bold> want to get on the list above download terminatorX,
+ practice and record your scratching. If you believe your skills are good
+ enough
+ <link ref='mailto:alex@lisas.de'>mail</link> me your best scratch. Before
+ you do so, please:
+ <itemizedlist>
+ <listitem>
+ <nopara>Ensure that it's not
+ <italic>too</italic> big.</nopara>
+ </listitem>
+ <listitem>
+ <nopara>
+ <italic>mp3</italic> or
+ <italic>ogg</italic> it. If you don't have an encoder go and get,
+ <link ref='http://www.mp3dev.org/mp3//'>LAME</link>,
+ <link ref='http://bladeenc.mp3.no/'>BladeEnc</link> or
+ <link ref='http://www.xiph.org/ogg/vorbis/'>OggVorbis</link>.</nopara>
+ </listitem>
+ </itemizedlist></para>
</scratches>
</section>
-
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE section SYSTEM "./tX.dtd"[
-]>
-<section name="screenshots">
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section SYSTEM "./tX.dtd"[ ]>
+<section name='screenshots'>
<screenshots>
<subsection>
<title>What it looks like...</title>
-
<para>Here are some screenshots I took of terminatorX 3.80 in
- action.</para>
-
+ action.</para>
<para>
-
- <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.80-2.png">
- <nopara>Selecting a <link ref="http://www.ladspa.org">LADSPA</link>
- plugin from a <link ref="liblrdf">liblrdf</link> structured menu.
- </nopara>
- </screenshot>
-
- <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.80-4.png">
- <nopara>Configuring terminatorX.</nopara>
- </screenshot>
-
- <screenshot filename="shot-3.80-5"><nopara>Mapping MIDI events
- to turntable parameters.</nopara></screenshot>
-
+ <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.80-2.png'>
+ <nopara>Selecting a
+ <link ref='http://www.ladspa.org'>LADSPA</link> plugin from a
+ <link ref='liblrdf'>liblrdf</link> structured menu.</nopara>
+ </screenshot>
+ <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.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>
</screenshots>
</section>
-
<!ELEMENT tt (author, text, ttimages)>
<!ATTLIST tt
title CDATA #REQUIRED>
-<!ELEMENT ttimages (images+)>
+<!ELEMENT ttimages (image+)>
<!ELEMENT tinycomment (nopara)>
<!ATTLIST rpm
version CDATA #REQUIRED
rpmsubversion CDATA #REQUIRED
- type (src|i386|i586|sparc) #REQUIRED>
+ type (src|i386|i586|sparc) #REQUIRED
+ distribution CDATA #IMPLIED
+ note CDATA #IMPLIED
+ ext CDATA #IMPLIED>
<!ELEMENT general (heading, subtitle, text)>
<!ELEMENT heading (#PCDATA)>
-<?xml version="1.0"?>
-
-<xsl:stylesheet
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- version="1.0">
-
- <xsl:template match="section">
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
+ <xsl:template match='section'>
<html>
<head>
- <meta name="Author" content="Alexander Koenig"/>
- <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
- <link rel="icon" href="favicon.ico" type="image/x-icon"/>
- <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"/>
- <title>terminatorX: <xsl:value-of select="@name"/></title>
- <script language="Javascript" src="script.js" type="text/javascript"></script>
- <style type="text/css">
- A:hover {text-decoration: none; color: #ff4444}
- A:active {text-decoration: none; color: #ff4444}
- body { font-family: Verdana, sans-serif; }
- p.plain { text-align: left }
- p.fancy { text-align: justify }
- </style>
+ <meta name='Author' content='Alexander Koenig' />
+ <meta http-equiv='content-type'
+ content='text/html; charset=iso-8859-1' />
+ <link rel='icon' href='favicon.ico' type='image/x-icon' />
+ <link rel='shortcut icon' href='favicon.ico' type='image/x-icon' />
+ <title>terminatorX:
+ <xsl:value-of select='@name' /></title>
+ <script language='Javascript' src='script.js' type='text/javascript'></script>
+ <style type='text/css'>
+ A:hover {text-decoration: none; color: #ff4444}
+ A:active {text-decoration: none; color: #ff4444}
+ body { font-family: Verdana, sans-serif; }
+ p.plain { text-align: left }
+ p.fancy { text-align: justify }
+ </style>
</head>
- <body text="#FFFFFF" face="sans" bgcolor="#555555" link="#FFFF99" vlink="#FFCC33" alink="#FF0000"
- onload="rolloverLoad('main','pix/vinyl-hover.gif','pix/vinyl.png');
- 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');
- "
- >
- <table width="100%" cellspacing="5px">
- <tr>
- <td>
- <center>
- <img ALT="terminatorX" src="pix/tX_logo.jpg" />
- </center>
- </td>
- </tr>
- </table>
-<!--new-->
- <table border="0" cellspacing="0" cellpadding="0" width="100%">
- <tr>
- <td bgcolor="#ffffff" align="left"><font face="Arial,Helvetica" color="#ffffff" size="+2">menu</font></td>
- <td bgcolor="#ffffff" width="100%">
- <table width="100%" cellspacing="0" border="0" cellpadding="4px">
- <tr><td bgcolor="#ffffff" align="right" width="100%">
- <font face="Arial,Helvetica" color="#000000" size="+2">
- <b><xsl:value-of select="@name"/></b>
- </font>
- </td></tr>
- </table>
- </td>
- </tr>
-
- <tr>
-<!--menu-->
- <td valign="top">
- <table cellspacing="0" border="0" cellpadding="2px">
- <tr>
- <xsl:if test="@name='main'">
- <td bgcolor="#777777"><img alt="-" border="0" src="pix/vinyl-highlight.png" vspace="0"/></td><td bgcolor="#777777">main</td><td bgcolor="#777777"><img alt="-" border="0" src="pix/vinyl-spacer.png" vspace="0"/></td>
- </xsl:if>
- <xsl:if test="@name!='main'">
- <td><img name="main" alt="-" border="0" src="pix/vinyl.png" vspace="0"/></td><td><a onMouseOut="rolloverOff('main');" onMouseOver="rolloverOn('main');" href="./">main</a></td><td/>
- </xsl:if>
- </tr>
-
- <tr>
- <xsl:if test="@name='download'">
- <td bgcolor="#777777"><img alt="-" border="0" src="pix/vinyl-highlight.png" vspace="0"/></td><td bgcolor="#777777">download</td><td bgcolor="#777777"><img alt="-" border="0" src="pix/vinyl-spacer.png" vspace="0"/></td>
- </xsl:if>
- <xsl:if test="@name!='download'">
- <td><img name="download" alt="-" border="0" src="pix/vinyl.png" vspace="0"/></td><td><a onMouseOut="rolloverOff('download');" onMouseOver="rolloverOn('download');" href="download.html">download</a></td><td/>
- </xsl:if>
- </tr>
+ <body link='#FFFF99' vlink='#FFCC33' alink='#FF0000' bgcolor='#555555'
+ text='#FFFFFF'
+ onload="rolloverLoad('main','pix/vinyl-hover.gif','pix/vinyl.png'); 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');">
-
- <tr>
- <xsl:if test="@name='screenshots'">
- <td bgcolor="#777777"><img alt="-" border="0" src="pix/vinyl-highlight.png" vspace="0"/></td><td bgcolor="#777777">screenshots</td><td bgcolor="#777777"><img alt="-" border="0" src="pix/vinyl-spacer.png" vspace="0"/></td>
- </xsl:if>
- <xsl:if test="@name!='screenshots'">
- <td><img name="screenshots" alt="-" border="0" src="pix/vinyl.png" vspace="0"/></td><td><a onMouseOut="rolloverOff('screenshots');" onMouseOver="rolloverOn('screenshots');" href="screenshots.html">screenshots</a></td><td/>
- </xsl:if>
- </tr>
-
- <tr>
- <xsl:if test="@name='faq'">
- <td bgcolor="#777777"><img alt="-" border="0" src="pix/vinyl-highlight.png" vspace="0"/></td><td bgcolor="#777777">faq</td><td bgcolor="#777777"><img alt="-" border="0" src="pix/vinyl-spacer.png" vspace="0"/></td>
- </xsl:if>
- <xsl:if test="@name!='faq'">
- <td><img name="faq" alt="-" border="0" src="pix/vinyl.png" vspace="0"/></td><td><a onMouseOut="rolloverOff('faq');" onMouseOver="rolloverOn('faq');" href="faq.html">faq</a></td><td/>
- </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>
- </xsl:if>
- <xsl:if test="@name!='scratches'">
- <td><img name="scratches" alt="-" border="0" src="pix/vinyl.png" vspace="0"/></td><td><a onMouseOut="rolloverOff('scratches');" onMouseOver="rolloverOn('scratches');" href="scratches.html">scratches</a></td><td/>
- </xsl:if>
- </tr>
-
- <tr>
- <xsl:if test="@name='turntable gallery'">
- <td bgcolor="#777777"><img alt="-" border="0" src="pix/vinyl-highlight.png" vspace="0"/></td><td bgcolor="#777777">turntables</td><td bgcolor="#777777"><img alt="-" border="0" src="pix/vinyl-spacer.png" vspace="0"/></td>
- </xsl:if>
- <xsl:if test="@name!='turntable gallery'">
- <td><img name="turntable" alt="-" border="0" src="pix/vinyl.png" vspace="0"/></td><td><a onMouseOut="rolloverOff('turntable');" onMouseOver="rolloverOn('turntable');" href="turntable.html">turntables</a></td><td/>
- </xsl:if>
- </tr>
-
- <tr>
- <xsl:if test="@name='aseqjoy'">
- <td bgcolor="#777777"><img alt="-" border="0" src="pix/vinyl-highlight.png" vspace="0"/></td><td bgcolor="#777777">aseqjoy</td><td bgcolor="#777777"><img alt="-" border="0" src="pix/vinyl-spacer.png" vspace="0"/></td>
- </xsl:if>
- <xsl:if test="@name!='aseqjoy'">
- <td><img name="aseqjoy" alt="-" border="0" src="pix/vinyl.png" vspace="0"/></td><td><a onMouseOut="rolloverOff('aseqjoy');" onMouseOver="rolloverOn('aseqjoy');" href="aseqjoy.html">aseqjoy</a></td><td/>
- </xsl:if>
- </tr>
-
-
- </table>
- </td>
-
-<!--contents-->
- <td valign="top">
- <table width="100%" border="0" cellspacing="0" cellpadding="10px">
- <tr>
- <td bgcolor="#777777" width="100%">
- <xsl:apply-templates/>
- </td>
- </tr>
- </table>
-
- </td>
- </tr>
- </table>
-
-<!--old -->
-
-
- <HR width="100%" />
- <table width="100%">
- <tr>
- <td align="left" width="100%" valign="top">
- <font size="-1">
- Copyright (C) 1999-2003 by <A HREF="mailto:alex@lisas.de">Alexander KMAKE_THIS_MYOUMLnig</A>
- </font>
- </td>
- <td><a href="http://validator.w3.org/check/referer"><img border="0"
- src="http://validator.w3.org/images/vh401"
- alt="Valid HTML 4.01!" height="31" width="88"/></a></td>
- </tr>
- </table>
- </body>
+ <table width='100%' cellspacing='5px'>
+ <tr>
+ <td>
+ <center>
+ <img src='pix/tX_logo.jpg' ALT='terminatorX' />
+ </center>
+ </td>
+ </tr>
+ </table>
+<!--new-->
+ <table width='100%' cellspacing='0' cellpadding='0' border='0'>
+ <tr>
+ <td bgcolor='#ffffff' align='left'>
+ <font face='Arial,Helvetica' color='#ffffff' size='+2'>
+ menu</font>
+ </td>
+ <td width='100%' bgcolor='#ffffff'>
+ <table width='100%' cellspacing='0' cellpadding='4px' border='0'>
+ <tr>
+ <td width='100%' bgcolor='#ffffff' align='right'>
+ <font face='Arial,Helvetica' color='#000000' size='+2'>
+ <b>
+ <xsl:value-of select='@name' />
+ </b>
+ </font>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+<!--menu-->
+ <td valign='top'>
+ <table cellspacing='0' cellpadding='2px' border='0'>
+ <tr>
+ <xsl:if test="@name='main'">
+ <td bgcolor='#777777'>
+ <img vspace='0' alt='-' src='pix/vinyl-highlight.png'
+ border='0' />
+ </td>
+ <td bgcolor='#777777'>main</td>
+ <td bgcolor='#777777'>
+ <img vspace='0' alt='-' src='pix/vinyl-spacer.png'
+ border='0' />
+ </td>
+ </xsl:if>
+ <xsl:if test="@name!='main'">
+ <td>
+ <img vspace='0' alt='-' src='pix/vinyl.png' name='main'
+ border='0' />
+ </td>
+ <td>
+ <a onMouseOver="rolloverOn('main');"
+ onMouseOut="rolloverOff('main');" href='./'>main</a>
+ </td>
+ <td />
+ </xsl:if>
+ </tr>
+ <tr>
+ <xsl:if test="@name='download'">
+ <td bgcolor='#777777'>
+ <img vspace='0' alt='-' src='pix/vinyl-highlight.png'
+ border='0' />
+ </td>
+ <td bgcolor='#777777'>download</td>
+ <td bgcolor='#777777'>
+ <img vspace='0' alt='-' src='pix/vinyl-spacer.png'
+ border='0' />
+ </td>
+ </xsl:if>
+ <xsl:if test="@name!='download'">
+ <td>
+ <img vspace='0' alt='-' src='pix/vinyl.png'
+ name='download' border='0' />
+ </td>
+ <td>
+ <a onMouseOver="rolloverOn('download');"
+ onMouseOut="rolloverOff('download');"
+ href='download.html'>download</a>
+ </td>
+ <td />
+ </xsl:if>
+ </tr>
+ <tr>
+ <xsl:if test="@name='screenshots'">
+ <td bgcolor='#777777'>
+ <img vspace='0' alt='-' src='pix/vinyl-highlight.png'
+ border='0' />
+ </td>
+ <td bgcolor='#777777'>screenshots</td>
+ <td bgcolor='#777777'>
+ <img vspace='0' alt='-' src='pix/vinyl-spacer.png'
+ border='0' />
+ </td>
+ </xsl:if>
+ <xsl:if test="@name!='screenshots'">
+ <td>
+ <img vspace='0' alt='-' src='pix/vinyl.png'
+ name='screenshots' border='0' />
+ </td>
+ <td>
+ <a onMouseOver="rolloverOn('screenshots');"
+ onMouseOut="rolloverOff('screenshots');"
+ href='screenshots.html'>screenshots</a>
+ </td>
+ <td />
+ </xsl:if>
+ </tr>
+ <tr>
+ <xsl:if test="@name='faq'">
+ <td bgcolor='#777777'>
+ <img vspace='0' alt='-' src='pix/vinyl-highlight.png'
+ border='0' />
+ </td>
+ <td bgcolor='#777777'>faq</td>
+ <td bgcolor='#777777'>
+ <img vspace='0' alt='-' src='pix/vinyl-spacer.png'
+ border='0' />
+ </td>
+ </xsl:if>
+ <xsl:if test="@name!='faq'">
+ <td>
+ <img vspace='0' alt='-' src='pix/vinyl.png' name='faq'
+ border='0' />
+ </td>
+ <td>
+ <a onMouseOver="rolloverOn('faq');"
+ onMouseOut="rolloverOff('faq');" href='faq.html'>faq</a>
+ </td>
+ <td />
+ </xsl:if>
+ </tr>
+ <tr>
+ <xsl:if test="@name='docs'">
+ <td bgcolor='#777777'>
+ <img vspace='0' alt='-' src='pix/vinyl-highlight.png'
+ border='0' />
+ </td>
+ <td bgcolor='#777777'>docs</td>
+ <td bgcolor='#777777'>
+ <img vspace='0' alt='-' src='pix/vinyl-spacer.png'
+ border='0' />
+ </td>
+ </xsl:if>
+ <xsl:if test="@name!='docs'">
+ <td>
+ <img vspace='0' alt='-' src='pix/vinyl.png' name='docs'
+ border='0' />
+ </td>
+ <td>
+ <a onMouseOver="rolloverOn('docs');"
+ onMouseOut="rolloverOff('docs');" href='docs.html'>
+ docs</a>
+ </td>
+ <td />
+ </xsl:if>
+ </tr>
+ <tr>
+ <xsl:if test="@name='scratches'">
+ <td bgcolor='#777777'>
+ <img vspace='0' alt='-' src='pix/vinyl-highlight.png'
+ border='0' />
+ </td>
+ <td bgcolor='#777777'>scratches</td>
+ <td bgcolor='#777777'>
+ <img vspace='0' alt='-' src='pix/vinyl-spacer.png'
+ border='0' />
+ </td>
+ </xsl:if>
+ <xsl:if test="@name!='scratches'">
+ <td>
+ <img vspace='0' alt='-' src='pix/vinyl.png'
+ name='scratches' border='0' />
+ </td>
+ <td>
+ <a onMouseOver="rolloverOn('scratches');"
+ onMouseOut="rolloverOff('scratches');"
+ href='scratches.html'>scratches</a>
+ </td>
+ <td />
+ </xsl:if>
+ </tr>
+ <tr>
+ <xsl:if test="@name='turntable gallery'">
+ <td bgcolor='#777777'>
+ <img vspace='0' alt='-' src='pix/vinyl-highlight.png'
+ border='0' />
+ </td>
+ <td bgcolor='#777777'>turntables</td>
+ <td bgcolor='#777777'>
+ <img vspace='0' alt='-' src='pix/vinyl-spacer.png'
+ border='0' />
+ </td>
+ </xsl:if>
+ <xsl:if test="@name!='turntable gallery'">
+ <td>
+ <img vspace='0' alt='-' src='pix/vinyl.png'
+ name='turntable' border='0' />
+ </td>
+ <td>
+ <a onMouseOver="rolloverOn('turntable');"
+ onMouseOut="rolloverOff('turntable');"
+ href='turntable.html'>turntables</a>
+ </td>
+ <td />
+ </xsl:if>
+ </tr>
+ <tr>
+ <xsl:if test="@name='aseqjoy'">
+ <td bgcolor='#777777'>
+ <img vspace='0' alt='-' src='pix/vinyl-highlight.png'
+ border='0' />
+ </td>
+ <td bgcolor='#777777'>aseqjoy</td>
+ <td bgcolor='#777777'>
+ <img vspace='0' alt='-' src='pix/vinyl-spacer.png'
+ border='0' />
+ </td>
+ </xsl:if>
+ <xsl:if test="@name!='aseqjoy'">
+ <td>
+ <img vspace='0' alt='-' src='pix/vinyl.png'
+ name='aseqjoy' border='0' />
+ </td>
+ <td>
+ <a onMouseOver="rolloverOn('aseqjoy');"
+ onMouseOut="rolloverOff('aseqjoy');" href='aseqjoy.html'>
+ aseqjoy</a>
+ </td>
+ <td />
+ </xsl:if>
+ </tr>
+ </table>
+ </td>
+<!--contents-->
+ <td valign='top'>
+ <table width='100%' cellspacing='0' cellpadding='10px'
+ border='0'>
+ <tr>
+ <td width='100%' bgcolor='#777777'>
+ <xsl:apply-templates />
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+<!-- bottom -->
+<HR width='100%' />
+ <table width='100%'>
+ <tr>
+ <td width='100%' align='left' valign='top'>
+ <font size='-1'>Copyright (C) 1999-2003 by
+ <A HREF='mailto:alex@lisas.de'>Alexander
+ KMAKE_THIS_MYOUMLnig</A></font>
+ </td>
+ <td>
+ <a href='http://validator.w3.org/check/referer'>
+ <img width='88' alt='Valid HTML 4.01!'
+ src='http://validator.w3.org/images/vh401' height='31'
+ border='0' />
+ </a>
+ </td>
+ </tr>
+ </table>
+ </body>
</html>
</xsl:template>
-
- <xsl:template match="heading">
- <font size="+2"><xsl:apply-templates/></font><br/>
- </xsl:template>
-
- <xsl:template match="subtitle">
- <font size="-2"><xsl:apply-templates/></font>
+ <xsl:template match='heading'>
+ <font size='+2'>
+ <xsl:apply-templates />
+ </font>
+ <br />
</xsl:template>
-
- <xsl:template match="para">
- <xsl:if test="@class='fancy'">
- <p class="fancy"><xsl:apply-templates/></p>
- </xsl:if>
- <xsl:if test="@class='plain'">
- <p class="plain"><xsl:apply-templates/></p>
- </xsl:if>
+ <xsl:template match='subtitle'>
+ <font size='-2'>
+ <xsl:apply-templates />
+ </font>
</xsl:template>
-
- <xsl:template match="italic">
- <i><xsl:apply-templates/></i>
+ <xsl:template match='para'>
+ <xsl:if test="@class='fancy'">
+ <p class='fancy'>
+ <xsl:apply-templates />
+ </p>
+ </xsl:if>
+ <xsl:if test="@class='plain'">
+ <p class='plain'>
+ <xsl:apply-templates />
+ </p>
+ </xsl:if>
</xsl:template>
-
- <xsl:template match="red">
- <font color="#FF4444"><xsl:apply-templates/></font>
+ <xsl:template match='italic'>
+ <i>
+ <xsl:apply-templates />
+ </i>
</xsl:template>
-
- <xsl:template match="bold">
- <b><xsl:apply-templates/></b>
- </xsl:template>
-
- <xsl:template match="newsheader"/>
-
- <xsl:template match="newsitem">
- <table border="0" cellspacing="0" cellpadding="0">
-<!-- header -->
- <tr>
- <td bgcolor="#999999">
-
- <xsl:for-each select="newsheader">
- <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>
- </tr>
- </table>
- </xsl:for-each>
-
- </td>
- </tr>
-<!-- contents -->
- <tr>
- <td>
- <xsl:apply-templates/>
- </td>
- </tr>
- </table>
+ <xsl:template match='red'>
+ <font color='#FF4444'>
+ <xsl:apply-templates />
+ </font>
</xsl:template>
-
- <xsl:template match="link">
- <A><xsl:attribute name="HREF"><xsl:value-of select="@ref"/></xsl:attribute><xsl:apply-templates/></A>
+ <xsl:template match='bold'>
+ <b>
+ <xsl:apply-templates />
+ </b>
+ </xsl:template>
+ <xsl:template match='newsheader' />
+ <xsl:template match='newsitem'>
+ <table cellspacing='0' cellpadding='0' border='0'>
+ <!-- header -->
+<tr>
+ <td bgcolor='#999999'>
+ <xsl:for-each select='newsheader'>
+ <table cellspacing='0' cellpadding='2px' border='0'>
+ <tr>
+ <td>
+ <img alt='new:' src='pix/new.png' />
+ </td>
+ <td width='100%' align='left' valign='middle'>
+ <font size='+1'>
+ <xsl:apply-templates />
+ </font> <font color='#DDDDDD' size='+1'>
+ [<xsl:value-of select='@date' />]</font>
+ </td>
+ </tr>
+ </table>
+ </xsl:for-each>
+ </td>
+ </tr>
+ <!-- contents -->
+<tr>
+ <td>
+ <xsl:apply-templates />
+ </td>
+ </tr>
+ </table>
</xsl:template>
-
- <xsl:template match="newline">
- <br/>
+ <xsl:template match='link'>
+ <A>
+ <xsl:attribute name='HREF'>
+ <xsl:value-of select='@ref' />
+ </xsl:attribute>
+ <xsl:apply-templates />
+ </A>
</xsl:template>
-
- <xsl:template match="itemizedlist">
- CLOSE_DA_P<ul><xsl:apply-templates/></ul>OPEN_DA_P
+ <xsl:template match='newline'>
+ <br />
</xsl:template>
-
- <xsl:template match="listitem">
- <li><xsl:apply-templates/></li>
+ <xsl:template match='itemizedlist'>CLOSE_DA_P
+ <ul>
+ <xsl:apply-templates />
+ </ul>OPEN_DA_P</xsl:template>
+ <xsl:template match='listitem'>
+ <li>
+ <xsl:apply-templates />
+ </li>
</xsl:template>
-
- <xsl:template match="person">
- <a><xsl:attribute name="href">mailto:<xsl:if test="email='alex@lisas.de'">alex@lisas.de</xsl:if><xsl:if test="email!='alex@lisas.de'">NOSPAM_<xsl:value-of select="substring-before(email, '@')"/>_AT_<xsl:value-of select="substring-after(email, '@')"/>_NOSPAM</xsl:if></xsl:attribute><xsl:value-of select="name"/></a>
+ <xsl:template match='person'>
+ <a>
+ <xsl:attribute name='href'>mailto:
+ <xsl:if test="email='alex@lisas.de'">alex@lisas.de</xsl:if>
+ <xsl:if test="email!='alex@lisas.de'">NOSPAM_
+ <xsl:value-of select="substring-before(email, '@')" />_AT_
+ <xsl:value-of select="substring-after(email, '@')" />_NOSPAM</xsl:if></xsl:attribute>
+ <xsl:value-of select='name' />
+ </a>
</xsl:template>
-
- <xsl:template match="index">
+ <xsl:template match='index'>
<p>
- <font size="+1">
- <xsl:value-of select="title"/>
- </font>
+ <font size='+1'>
+ <xsl:value-of select='title' />
+ </font>
</p>
<ul>
- <xsl:for-each select="//subsection">
- <li>
- <a><xsl:attribute name="href">#<xsl:value-of select="title"/></xsl:attribute><xsl:value-of select="title"/></a>
- </li>
- </xsl:for-each>
+ <xsl:for-each select='//subsection'>
+ <li>
+ <a>
+ <xsl:attribute name='href'>#
+ <xsl:value-of select='title' /></xsl:attribute>
+ <xsl:value-of select='title' />
+ </a>
+ </li>
+ </xsl:for-each>
</ul>
- <p>
- </p>
+ <p></p>
</xsl:template>
-
- <xsl:template match="subsection">
+ <xsl:template match='subsection'>
<p>
- <font size="+1">
- <a><xsl:attribute name="name"><xsl:value-of select="title"/></xsl:attribute><xsl:value-of select="title"/></a>
- </font>
+ <font size='+1'>
+ <a>
+ <xsl:attribute name='name'>
+ <xsl:value-of select='title' />
+ </xsl:attribute>
+ <xsl:value-of select='title' />
+ </a>
+ </font>
</p>
- <xsl:apply-templates/>
+ <xsl:apply-templates />
</xsl:template>
-
- <xsl:template match="title">
- </xsl:template>
-
- <xsl:template match="tarfiles">
+ <xsl:template match='title'></xsl:template>
+ <xsl:template match='tarfiles'>
<ul>
- <xsl:for-each select="tar">
- <xsl:if test="@version!=//current/@version">
- <li>Version <xsl:value-of select="@version"/>: <a><xsl:attribute name="href">terminatorX-<xsl:value-of select="@version"/>.tar.gz</xsl:attribute>terminatorX-<xsl:value-of select="@version"/>.tar.gz</a>
- <xsl:if test="@havebz2='yes'">
- (<a><xsl:attribute name="href">terminatorX-<xsl:value-of select="@version"/>.tar.bz2</xsl:attribute>bz2</a>)
- </xsl:if>
- </li>
- </xsl:if>
- </xsl:for-each>
+ <xsl:for-each select='tar'>
+ <xsl:if test='@version!=//current/@version'>
+ <li>Version
+ <xsl:value-of select='@version' />:
+ <a>
+ <xsl:attribute name='href'>terminatorX-<xsl:value-of select='@version' />.tar.gz</xsl:attribute>terminatorX-<xsl:value-of select='@version' />.tar.gz</a>
+ <xsl:if test="@havebz2='yes'"> (<a>
+ <xsl:attribute name='href'>terminatorX-<xsl:value-of select='@version' />.tar.bz2</xsl:attribute>bz2</a>)</xsl:if>
+ </li>
+ </xsl:if>
+ </xsl:for-each>
</ul>
</xsl:template>
-
- <xsl:template match="rpmfiles">
+ <xsl:template name='rpm' match='rpm'>
+ <li>
+ <xsl:if test="@type='src'">Source RPM: </xsl:if>
+ <xsl:if test="@type!='src'">
+ <xsl:value-of select='@type' />-binary RPM: </xsl:if>
+ <a>
+ <xsl:attribute name='href'>terminatorX-<xsl:value-of select='@version' />-<xsl:value-of select='@rpmsubversion' />.<xsl:value-of select='@type' />.<xsl:if test='@ext'><xsl:value-of select='@ext' />.</xsl:if>rpm</xsl:attribute>
+ terminatorX-<xsl:value-of select='@version' />-<xsl:value-of select='@rpmsubversion' />.<xsl:value-of select='@type' />.<xsl:if test='@ext'><xsl:value-of select='@ext' />.</xsl:if>rpm</a>
+ <xsl:if test='@distribution'> built for: <i>
+ <xsl:value-of select='@distribution' />
+ </i></xsl:if>
+ <xsl:if test='@note'> <b>note:</b>
+ <xsl:value-of select='@note' /></xsl:if>
+ </li>
+ </xsl:template>
+ <xsl:template match='rpmfiles'>
<ul>
- <xsl:for-each select="rpm">
- <xsl:if test="@version!=//current/@version">
- <xsl:if test="string(@type)='i586'">
- <li>i586-binary rpm: <a><xsl:attribute name="href">terminatorX-<xsl:value-of
-select="@version"/>-<xsl:value-of
-select="@rpmsubversion"/>.i586.rpm</xsl:attribute>terminatorX-<xsl:value-of
-select="@version"/>-<xsl:value-of
-select="@rpmsubversion"/>.i586.rpm</a></li>
- </xsl:if>
-
- <xsl:if test="string(@type)='i386'">
- <li>i386-binary rpm: <a><xsl:attribute name="href">terminatorX-<xsl:value-of
-select="@version"/>-<xsl:value-of
-select="@rpmsubversion"/>.i386.rpm</xsl:attribute>terminatorX-<xsl:value-of
-select="@version"/>-<xsl:value-of
-select="@rpmsubversion"/>.i386.rpm</a></li>
- </xsl:if>
-
- <xsl:if test="string(@type)='sparc'">
- <li>Sparc-binary rpm: <a><xsl:attribute
-name="href">terminatorX-<xsl:value-of
-select="@version"/>-<xsl:value-of
-select="@rpmsubversion"/>.sparc.rpm</xsl:attribute>terminatorX-<xsl:value-of
-select="@version"/>-<xsl:value-of
-select="@rpmsubversion"/>.sparc.rpm</a></li>
- </xsl:if>
-
- <xsl:if test="string(@type)='src'">
- <li>source rpm: <a><xsl:attribute name="href">terminatorX-<xsl:value-of
-select="@version"/>-<xsl:value-of
-select="@rpmsubversion"/>.src.rpm</xsl:attribute>terminatorX-<xsl:value-of
-select="@version"/>-<xsl:value-of
-select="@rpmsubversion"/>.src.rpm</a></li>
- </xsl:if>
- </xsl:if>
- </xsl:for-each>
+ <xsl:for-each select='rpm[@version!=//current/@version]'>
+ <xsl:call-template name='rpm' />
+ </xsl:for-each>
</ul>
</xsl:template>
-
- <xsl:template match="currentversion">
- <p>
- The current terminatorX release is Version <xsl:value-of select="//current/@version"/>.<br/>
- Download as:
- </p>
- <ul>
- <li>tar file: <a><xsl:attribute name="href">terminatorX-<xsl:value-of select="//current/@version"/>.tar.gz</xsl:attribute>terminatorX-<xsl:value-of select="//current/@version"/>.tar.gz</a>
- <xsl:if test="//current/@havebz2='yes'">
- (<a><xsl:attribute name="href">terminatorX-<xsl:value-of select="//current/@version"/>.tar.bz2</xsl:attribute>bz2</a>)
- </xsl:if>
- </li>
- <xsl:for-each select="//rpm">
- <xsl:if test="@version=//current/@version">
- <xsl:if test="string(@type)='i586'">
- <li>i586-binary rpm: <a><xsl:attribute name="href">terminatorX-<xsl:value-of
- select="@version"/>-<xsl:value-of select="@rpmsubversion"
- />.i586.rpm</xsl:attribute>terminatorX-<xsl:value-of
- select="@version"/>-<xsl:value-of select="@rpmsubversion"
- />.i586.rpm</a></li>
- </xsl:if>
-
- <xsl:if test="string(@type)='i386'">
- <li>i386-binary rpm: <a><xsl:attribute name="href">terminatorX-<xsl:value-of
- select="@version"/>-<xsl:value-of select="@rpmsubversion"
- />.i386.rpm</xsl:attribute>terminatorX-<xsl:value-of
- select="@version"/>-<xsl:value-of select="@rpmsubversion"
- />.i386.rpm</a></li>
- </xsl:if>
-
- <xsl:if test="string(@type)='sparc'">
- <li>Sparc-binary rpm: <a><xsl:attribute name="href">terminatorX-<xsl:value-of
- select="@version"/>-<xsl:value-of select="@rpmsubversion"
- />.sparc.rpm</xsl:attribute>terminatorX-<xsl:value-of
- select="@version"/>-<xsl:value-of select="@rpmsubversion"
- />.sparc.rpm</a></li>
- </xsl:if>
-
-
- <xsl:if test="string(@type)='src'">
- <li>source rpm: <a><xsl:attribute name="href">terminatorX-<xsl:value-of select="@version"/>-<xsl:value-of select="@rpmsubversion"/>.src.rpm</xsl:attribute>terminatorX-<xsl:value-of select="@version"/>-<xsl:value-of select="@rpmsubversion"/>.src.rpm</a></li>
- </xsl:if>
- </xsl:if>
- </xsl:for-each>
- </ul>
-
- <xsl:if test="sum(//rpm[@version=//current/@version])=0">
- Sorry, no rpms available for the current release, yet. Stay tuned.
- </xsl:if>
- <p>Debian users may prefer to install the <a href="http://packages.debian.org/unstable/sound/terminatorx.html">terminatorX Debian package</a> with <i>apt-get</i>.</p>
- </xsl:template>
-
- <xsl:template match="filelist">
- <ul>
- <xsl:for-each select="file">
- <li><a><xsl:attribute name="href"><xsl:apply-templates/></xsl:attribute><xsl:apply-templates/></a></li>
- </xsl:for-each>
- </ul>
+ <xsl:template match='currentversion'>
+ <p>The current terminatorX release is Version
+ <xsl:value-of select='//current/@version' />.
+ <br />Download as:</p>
+ <ul>
+ <li>tar file:
+ <a>
+ <xsl:attribute name='href'>terminatorX-<xsl:value-of select='//current/@version' />.tar.gz</xsl:attribute>terminatorX-<xsl:value-of select='//current/@version' />.tar.gz</a>
+ <xsl:if test="//current/@havebz2='yes'"> (<a><xsl:attribute name='href'>terminatorX-<xsl:value-of select='//current/@version' />.tar.bz2</xsl:attribute>bz2</a>)</xsl:if>
+ </li>
+ <xsl:for-each select='//rpm[@version=//current/@version]'>
+ <xsl:call-template name='rpm' />
+ </xsl:for-each>
+ </ul>
+ <xsl:if test='sum(//rpm[@version=//current/@version])=0'>Sorry, no RPMs
+ available for the current release, yet. Stay tuned.</xsl:if>
</xsl:template>
-
- <xsl:template match="file">
- <a><xsl:attribute name="href"><xsl:apply-templates/></xsl:attribute><xsl:apply-templates/></a>
+ <xsl:template match='filelist'>
+ <ul>
+ <xsl:for-each select='file'>
+ <li>
+ <a>
+ <xsl:attribute name='href'>
+ <xsl:apply-templates />
+ </xsl:attribute>
+ <xsl:apply-templates />
+ </a>
+ </li>
+ </xsl:for-each>
+ </ul>
</xsl:template>
-
- <xsl:template match="faq">
- <a name="index"><font size="+1">Question-Index:</font></a>
- <ul>
- <xsl:for-each select="qa">
- <li>
- <a><xsl:attribute name="href">#<xsl:value-of select="position()"/></xsl:attribute><xsl:value-of select="question"/></a>
- </li>
- </xsl:for-each>
- </ul>
- <p>
- <font size="+1">Answers:</font>
- </p>
- <xsl:apply-templates/>
+ <xsl:template match='file'>
+ <a>
+ <xsl:attribute name='href'>
+ <xsl:apply-templates />
+ </xsl:attribute>
+ <xsl:apply-templates />
+ </a>
</xsl:template>
-
- <xsl:template match="qa">
- <table cellspacing="0" cellpadding="0" border="0" width="100%">
- <tr>
- <td bgcolor="#999999">
- <table cellspacing="0" cellpadding="3px" border="0" width="100%">
- <tr><td>
- <a><xsl:attribute name="name"><xsl:value-of select="position() div 2"/></xsl:attribute><font size="+1" color="#FFCC33"><xsl:value-of select="question"/></font></a>
- </td></tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>
- <xsl:apply-templates/>
- </td>
- </tr>
- </table>
- <p><font size="-1"> <a href="#index">(back to index)</a></font></p>
+ <xsl:template match='faq'>
+ <a name='index'>
+ <font size='+1'>Question-Index:</font>
+ </a>
+ <ul>
+ <xsl:for-each select='qa'>
+ <li>
+ <a>
+ <xsl:attribute name='href'>#
+ <xsl:value-of select='position()' /></xsl:attribute>
+ <xsl:value-of select='question' />
+ </a>
+ </li>
+ </xsl:for-each>
+ </ul>
+ <p>
+ <font size='+1'>Answers:</font>
+ </p>
+ <xsl:apply-templates />
</xsl:template>
-
- <xsl:template match="question">
+ <xsl:template match='qa'>
+ <table width='100%' cellspacing='0' cellpadding='0' border='0'>
+ <tr>
+ <td bgcolor='#999999'>
+ <table width='100%' cellspacing='0' cellpadding='3px' border='0'>
+ <tr>
+ <td>
+ <a>
+ <xsl:attribute name='name'>
+ <xsl:value-of select='position() div 2' />
+ </xsl:attribute>
+ <font color='#FFCC33' size='+1'>
+ <xsl:value-of select='question' />
+ </font>
+ </a>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <xsl:apply-templates />
+ </td>
+ </tr>
+ </table>
+ <p>
+ <font size='-1'>
+ <a href='#index'>(back to index)</a>
+ </font>
+ </p>
</xsl:template>
-
- <xsl:template match="answer">
- <xsl:apply-templates/>
+ <xsl:template match='question'></xsl:template>
+ <xsl:template match='answer'>
+ <xsl:apply-templates />
</xsl:template>
+ <xsl:template match='turntabletable'>
+ <table width='100%' cellpadding='2px' border='2'>
+ <!--
- <xsl:template match="turntabletable">
- <table width="100%" border="2" cellpadding="2px">
-<!--
- <tr bgcolor="#FFFF99">
-
-
- <td width="100%" colspan="2"><font face="Arial,Helvetica" color="#000000" size="+2"><b>Users' Turntables</b></font></td>
- </tr>
-
---> <xsl:apply-templates/>
+<tr bgcolor="#FFFF99">
+<td width="100%" colspan="2">
+<font face="Arial,Helvetica" color="#000000" size="+2">
+<b>Users' Turntables
+</b>
+</font>
+</td>
+</tr>
+ -->
+<xsl:apply-templates />
</table>
</xsl:template>
-
- <xsl:template match="tt">
- <tr bgcolor="#FFFF99">
- <td width="100%" colspan="2" align="left"><font face="Arial,Helvetica" color="#000000" size="+1"><b><xsl:value-of select="@title"/></b></font></td>
- </tr>
- <tr>
- <td width="50%" valign="top">
- <xsl:for-each select="author">
- <b>Creator: </b><xsl:apply-templates/><br/>
- </xsl:for-each>
-
- <xsl:for-each select="text">
- <xsl:apply-templates/>
- </xsl:for-each>
- </td>
- <td width="50%">
- <table width="100%">
- <tr>
- <xsl:for-each select="ttimages">
- <xsl:apply-templates/>
- </xsl:for-each>
- </tr>
- </table>
- </td>
- </tr>
- </xsl:template>
-
- <xsl:template match="scratchtable">
- <table width="100%" border="2">
- <tr bgcolor="#FFFF99">
-
- <td><font size="+1" face="Arial,Helvetica" color="#000000"><b>Scratch</b></font></td>
- <td><font size="+1" face="Arial,Helvetica" color="#000000"><b>Author</b></font></td>
- <td><font size="+1" face="Arial,Helvetica" color="#000000"><b>Description</b></font></td>
+ <xsl:template match='tt'>
+ <tr bgcolor='#FFFF99'>
+ <td width='100%' colspan='2' align='left'>
+ <font face='Arial,Helvetica' color='#000000' size='+1'>
+ <b>
+ <xsl:value-of select='@title' />
+ </b>
+ </font>
+ </td>
</tr>
- <xsl:apply-templates/>
+ <tr>
+ <td width='50%' valign='top'>
+ <xsl:for-each select='author'>
+ <b>Creator:</b>
+ <xsl:apply-templates />
+ <br />
+ </xsl:for-each>
+ <xsl:for-each select='text'>
+ <xsl:apply-templates />
+ </xsl:for-each>
+ </td>
+ <td width='50%'>
+ <table width='100%'>
+ <tr>
+ <xsl:for-each select='ttimages'>
+ <xsl:apply-templates />
+ </xsl:for-each>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </xsl:template>
+ <xsl:template match='scratchtable'>
+ <table width='100%' border='2'>
+ <tr bgcolor='#FFFF99'>
+ <td>
+ <font face='Arial,Helvetica' color='#000000' size='+1'>
+ <b>Scratch</b>
+ </font>
+ </td>
+ <td>
+ <font face='Arial,Helvetica' color='#000000' size='+1'>
+ <b>Author</b>
+ </font>
+ </td>
+ <td>
+ <font face='Arial,Helvetica' color='#000000' size='+1'>
+ <b>Description</b>
+ </font>
+ </td>
+ </tr>
+ <xsl:apply-templates />
</table>
</xsl:template>
-
- <xsl:template match="scratch">
- <tr>
- <xsl:apply-templates/>
- </tr>
+ <xsl:template match='scratch'>
+ <tr>
+ <xsl:apply-templates />
+ </tr>
</xsl:template>
-
- <xsl:template match="mp3file|author|comment">
- <td valign="top">
- <xsl:apply-templates/>
- </td>
+ <xsl:template match='mp3file|author|comment'>
+ <td valign='top'>
+ <xsl:apply-templates />
+ </td>
</xsl:template>
-
- <xsl:template match="tinycomment|filesize">
- <br/><font size="-1"><xsl:apply-templates/></font>
+ <xsl:template match='tinycomment|filesize'>
+ <br />
+ <font size='-1'>
+ <xsl:apply-templates />
+ </font>
</xsl:template>
-
- <xsl:template match="screen">
- <span style="font-family: monospace; color: #DDFFDD"><xsl:apply-templates/></span>
+ <xsl:template match='screen'>
+ <span style='font-family: monospace; color: #DDFFDD'>
+ <xsl:apply-templates />
+ </span>
</xsl:template>
-
- <xsl:template match="screenshot">
- <xsl:if test="name(.)='screenshot'">CLOSE_DA_P</xsl:if>
- <center>
- <table border="0" width="100%">
- <tr>
- <td>
+ <xsl:template match='screenshot'>
+ <xsl:if test="name(.)='screenshot'">CLOSE_DA_P</xsl:if>
<center>
- <a><xsl:attribute name="href">pix/<xsl:value-of select="@filename"/></xsl:attribute>
- <img border="0"><xsl:attribute name="alt"><xsl:value-of select="name(.)"/></xsl:attribute><xsl:attribute name="src">pix/pre_<xsl:value-of select="@filename"/></xsl:attribute></img>
- </a>
- </center>
- </td>
- </tr>
- <tr>
- <td>
- <center>
- <xsl:apply-templates/>
+ <table width='100%' border='0'>
+ <tr>
+ <td>
+ <center>
+ <a>
+ <xsl:attribute name='href'>pix/
+ <xsl:value-of select='@filename' /></xsl:attribute>
+ <img border='0'>
+ <xsl:attribute name='alt'>
+ <xsl:value-of select='name(.)' />
+ </xsl:attribute>
+ <xsl:attribute name='src'>pix/pre_
+ <xsl:value-of select='@filename' /></xsl:attribute>
+ </img>
+ </a>
+ </center>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <center>
+ <xsl:apply-templates />
+ </center>
+ </td>
+ </tr>
+ </table>
</center>
- </td>
- </tr>
- </table>
- </center>
- <xsl:if test="name(.)='screenshot'">OPEN_DA_P</xsl:if>
+ <xsl:if test="name(.)='screenshot'">OPEN_DA_P</xsl:if>
</xsl:template>
-
- <xsl:template match="image">
- <xsl:if test="position()>3">
- <xsl:if test="(position() div 2) mod 3=1">
- NEW_TT_ROW
- </xsl:if>
+ <xsl:template match='image'>
+ <xsl:if test='position()>3'>
+ <xsl:if test='(position() div 2) mod 3=1'>NEW_TT_ROW</xsl:if>
</xsl:if>
- <td width="33%" align="center" valign="top">
- <table border="0">
- <tr>
- <td>
- <center>
- <a><xsl:attribute name="href">pix/<xsl:value-of select="@filename"/></xsl:attribute>
- <img border="0"><xsl:attribute name="alt"><xsl:value-of select="name(.)"/></xsl:attribute><xsl:attribute name="src">pix/pre_<xsl:value-of select="@filename"/></xsl:attribute></img>
- </a>
- </center>
- </td>
- </tr>
- <tr>
- <td>
- <center>
- <xsl:apply-templates/>
- </center>
- </td>
- </tr>
- </table>
+ <td width='33%' align='center' valign='top'>
+ <table border='0'>
+ <tr>
+ <td>
+ <center>
+ <a>
+ <xsl:attribute name='href'>pix/
+ <xsl:value-of select='@filename' /></xsl:attribute>
+ <img border='0'>
+ <xsl:attribute name='alt'>
+ <xsl:value-of select='name(.)' />
+ </xsl:attribute>
+ <xsl:attribute name='src'>pix/pre_
+ <xsl:value-of select='@filename' /></xsl:attribute>
+ </img>
+ </a>
+ </center>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <center>
+ <xsl:apply-templates />
+ </center>
+ </td>
+ </tr>
+ </table>
</td>
</xsl:template>
-
</xsl:stylesheet>
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE section SYSTEM "./tX.dtd"[
-]>
-<section name="turntable gallery">
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section SYSTEM "./tX.dtd"[ ]>
+<section name='turntable gallery'>
<turntable>
- <para>While scratching with the mouse usually <italic>sounds</italic>
- the way terminatorX users want it to (at least if the feedback I get is
- representative) it doesn't really <italic>feel</italic> like scratching.
- The only way to get that traditional haptic feedback is to turn your turntable
- into a mouse device.
- </para>
- <para>If you want to do this without harming your mouse nor turntable, the method
- suggested by the terminatorX logo should be feasible. Optical input devices are
- known to produce best results in such a scenario. For those interested here's a
- <link ref="oldtable.html">document</link> on how I turned my old turntable into
- a terminatorX device.
- </para>
- <para>
- Luckily a lot of terminatorX users have built their own turntables and I'm really
- happy to present some of these creations below. Please, if <italic>your</italic> turntable
- is missing <link ref="mailto:alex@lisas.de">send</link> me some pictures of it
- so I can add them here. <bold>Thanks</bold> to all contributors!
- </para>
- <turntabletable>
- <tt title="Fernando's turntable">
- <author>
- <person>
- <name>Fernando S. Fabreti</name>
- <email>ffabreti@yahoo.com.br</email>
- </person>
- </author>
- <text>
- <para>Fernando's turntable differs from
- the others in this section as he attached the mouse
- to the tone arm of the turntable. Take a look at the "in detail"
- picture to find out how Fernando's table works.
- </para>
- <para><italic>Note</italic>: Fernando also contributed a scratch - see
- <link ref="scratches.html">users' scratches-section</link>.
- </para>
- </text>
- <ttimages>
- <image filename="fernando1.jpg"><nopara>The whole thing</nopara></image>
- <image filename="fernando2.jpg"><nopara>A little closer</nopara></image>
- <image filename="fernando3.jpg"><nopara>Even closer</nopara></image>
- <image filename="fernando4.jpg"><nopara>In detail</nopara></image>
- <image filename="fernando5.jpg"><nopara>Fernado in action</nopara></image>
- </ttimages>
- </tt>
- <tt title="Toqer's turntable">
- <author><person><name>Toqer</name><email>toqer@pacbell.net</email></person></author>
- <text>
- <para>Toqer is using an optical device for his turntable.
- The image is somewhat low-res but you get the idea.
- </para>
- </text>
- <ttimages>
- <image filename="toqer1.jpg"><nopara>Toqer's optical turntable</nopara></image>
- </ttimages>
- </tt>
- <tt title="Matt's turntable">
- <author><person><name>Matt Thomas</name><email>loopdloop@jaggedsoft.com</email></person></author>
- <text>
- <para>Proudly presenting DJ Loopdloop's terminatorX turntable.
- A very interesting aproach that hides the mouse completely inside
- the turntable.
- </para>
- <para>Have a look...
- </para>
- </text>
- <ttimages>
- <image filename="matt1.jpg"><nopara>Could be a "usual" turntable</nopara></image>
- <image filename="matt2.jpg"><nopara>But it's not</nopara></image>
- <image filename="matt3.jpg"><nopara>Tricky details</nopara></image>
- </ttimages>
- </tt>
- <tt title="My turntable">
- <author><person><name>Me</name><email>alex@lisas.de</email></person></author>
- <text>
- <para>These are the pictures of my very own terminatorX turntable.
- The turntable is described in more detail <link ref="oldtable.html">here</link>.
- </para>
- </text>
- <ttimages>
- <image filename="tt_normal.jpg"><nopara>The turntable and its connector</nopara></image>
- <image filename="tt_top1.jpg"><nopara>Again</nopara></image>
- <image filename="tt_top_zoom.jpg"><nopara>The motor</nopara></image>
- <image filename="tt_open_total.jpg"><nopara>Turntable's inside</nopara></image>
- <image filename="tt_mouse_axis.jpg"><nopara>The axis to connect</nopara></image>
- <image filename="tt_mouse_connect.jpg"><nopara>Axis attached to motor</nopara></image>
- <image filename="tt_the_mouse.jpg"><nopara>Maximum compatibility ;)</nopara></image>
- </ttimages>
- </tt>
- </turntabletable>
- <para>
- Your turntable is missing? Please,
- <link ref="mailto:alex@lisas.de">send</link> me some pictures of it
- so I can add them.
- </para>
-
+ <para>While scratching with the mouse usually
+ <italic>sounds</italic> the way terminatorX users want it to (at least if
+ the feedback I get is representative) it doesn't really
+ <italic>feel</italic> like scratching. The only way to get that traditional
+ haptic feedback is to turn your turntable into a mouse device.</para>
+ <para>If you want to do this without harming your mouse nor turntable, the
+ method suggested by the terminatorX logo should be feasible. Optical input
+ devices are known to produce best results in such a scenario. For those
+ interested here's a
+ <link ref='oldtable.html'>document</link> on how I turned my old turntable
+ into a terminatorX device.</para>
+ <para>Luckily a lot of terminatorX users have built their own turntables
+ and I'm really happy to present some of these creations below. Please, if
+ <italic>your</italic>turntable is missing
+ <link ref='mailto:alex@lisas.de'>send</link> me some pictures of it so I can
+ add them here.
+ <bold>Thanks</bold>to all contributors!</para>
+ <turntabletable>
+ <tt title="Fernando's turntable">
+ <author>
+ <person>
+ <name>Fernando S. Fabreti</name>
+ <email>ffabreti@yahoo.com.br</email>
+ </person>
+ </author>
+ <text>
+ <para>Fernando's turntable differs from the others in this section as
+ he attached the mouse to the tone arm of the turntable. Take a look
+ at the "in detail" picture to find out how Fernando's table
+ works.</para>
+ <para>
+ <italic>Note</italic>: Fernando also contributed a scratch - see
+ <link ref='scratches.html'>users' scratches-section</link>.</para>
+ </text>
+ <ttimages>
+ <image filename='fernando1.jpg'>
+ <nopara>The whole thing</nopara>
+ </image>
+ <image filename='fernando2.jpg'>
+ <nopara>A little closer</nopara>
+ </image>
+ <image filename='fernando3.jpg'>
+ <nopara>Even closer</nopara>
+ </image>
+ <image filename='fernando4.jpg'>
+ <nopara>In detail</nopara>
+ </image>
+ <image filename='fernando5.jpg'>
+ <nopara>Fernado in action</nopara>
+ </image>
+ </ttimages>
+ </tt>
+ <tt title="Toqer's turntable">
+ <author>
+ <person>
+ <name>Toqer</name>
+ <email>toqer@pacbell.net</email>
+ </person>
+ </author>
+ <text>
+ <para>Toqer is using an optical device for his turntable. The image
+ is somewhat low-res but you get the idea.</para>
+ </text>
+ <ttimages>
+ <image filename='toqer1.jpg'>
+ <nopara>Toqer's optical turntable</nopara>
+ </image>
+ </ttimages>
+ </tt>
+ <tt title="Matt's turntable">
+ <author>
+ <person>
+ <name>Matt Thomas</name>
+ <email>loopdloop@jaggedsoft.com</email>
+ </person>
+ </author>
+ <text>
+ <para>Proudly presenting DJ Loopdloop's terminatorX turntable. A very
+ interesting aproach that hides the mouse completely inside the
+ turntable.</para>
+ <para>Have a look...</para>
+ </text>
+ <ttimages>
+ <image filename='matt1.jpg'>
+ <nopara>Could be a "usual" turntable</nopara>
+ </image>
+ <image filename='matt2.jpg'>
+ <nopara>But it's not</nopara>
+ </image>
+ <image filename='matt3.jpg'>
+ <nopara>Tricky details</nopara>
+ </image>
+ </ttimages>
+ </tt>
+ <tt title='My turntable'>
+ <author>
+ <person>
+ <name>Me</name>
+ <email>alex@lisas.de</email>
+ </person>
+ </author>
+ <text>
+ <para>These are the pictures of my very own terminatorX turntable.
+ The turntable is described in more detail
+ <link ref='oldtable.html'>here</link>.</para>
+ </text>
+ <ttimages>
+ <image filename='tt_normal.jpg'>
+ <nopara>The turntable and its connector</nopara>
+ </image>
+ <image filename='tt_top1.jpg'>
+ <nopara>Again</nopara>
+ </image>
+ <image filename='tt_top_zoom.jpg'>
+ <nopara>The motor</nopara>
+ </image>
+ <image filename='tt_open_total.jpg'>
+ <nopara>Turntable's inside</nopara>
+ </image>
+ <image filename='tt_mouse_axis.jpg'>
+ <nopara>The axis to connect</nopara>
+ </image>
+ <image filename='tt_mouse_connect.jpg'>
+ <nopara>Axis attached to motor</nopara>
+ </image>
+ <image filename='tt_the_mouse.jpg'>
+ <nopara>Maximum compatibility ;)</nopara>
+ </image>
+ </ttimages>
+ </tt>
+ </turntabletable>
+ <para>Your turntable is missing? Please,
+ <link ref='mailto:alex@lisas.de'>send</link> me some pictures of it so I can
+ add them.</para>
</turntable>
</section>
-