more echo params, doc updates and more - alex
authorterminatorX <>
Sun, 18 Mar 2001 23:37:08 +0000 (23:37 +0000)
committerterminatorX <>
Sun, 18 Mar 2001 23:37:08 +0000 (23:37 +0000)
27 files changed:
terminatorX/AUTHORS
terminatorX/ChangeLog
terminatorX/INSTALL
terminatorX/README
terminatorX/README.PERFORMANCE
terminatorX/THANKS
terminatorX/configure.in
terminatorX/doc/Makefile.am
terminatorX/doc/features.html
terminatorX/doc/grabmode.html
terminatorX/doc/html.dsl
terminatorX/doc/index.html
terminatorX/doc/introduction.html
terminatorX/doc/manual.ps
terminatorX/doc/manual.sgml
terminatorX/doc/quickstart.html
terminatorX/doc/turntablecontrols.html
terminatorX/src/main.cc
terminatorX/src/tX_audiodevice.cc
terminatorX/src/tX_global.c
terminatorX/src/tX_seqpar.cc
terminatorX/src/tX_seqpar.h
terminatorX/src/tX_vtt.cc
terminatorX/src/tX_vtt.h
terminatorX/src/tX_vttfx.cc
terminatorX/src/tX_vttgui.cc
terminatorX/src/tX_vttgui.h

index 99f2e5100f8cdc1bb09c1596feb26761a138d6aa..2ba48f599252cc40552d4359375fa858f8e19187 100644 (file)
@@ -7,7 +7,9 @@ licmak.awk:             Christian <eleet@altern.org>
 tX_wavfunc.c-patch:    "Andrew C. Bul+hac?k" <acb@zikzak.net>
 MK II icon:            Michael Kahl <m.kahl@student.hu-berlin.de>
 new startup switches:  Josh Steiner <joschi@eds.org>
-
+misc fixes and enhancements:
+                       Adrian Reber <adrian@42.fht-esslingen.de
+                       
 Authors of files not written for tX but included in this distribution:
 mmx.h README.MMX:      Hank Dietz <hankd@ecn.purdue.ed> and
                        Randy Fisher <rfisher@ecn.purdue.edu>
index 391feba5ac755116569fb7773859f6ab945a1ae4..1cb6e7a34625efa60b0b2995335900e4e7f05a4d 100644 (file)
@@ -4,10 +4,42 @@ This is not a GNU-style ChangeLog but you sort of get the idea what was
 changed.
 
 [v3.71]
-- applied a huge patch from Adrian Reber (adrian@lisas.de). This patch includes:
-  - mostly compile fixes (tX should compile in FreeBSD now, too)
-  - fixed
-- yes now it actually is: STEREO
+- applied a big patch from Adrian Reber (adrian@lisas.de). This patch includes:
+  o compile fixes for the newer gcc releases
+  o enhancements to the commandline switches (try --help for more details)
+  o bug fixes for tX_global.c
+- the bigNewThang (TM) is STEREO output. The Pan-Buttons now actually do what
+  you'd expect them to. Therefore your soundcard must have stereo support of
+  course but I guess in 2001 this really shouldn't be a problem, right? 
+  The recorded wavfiles will now be stereo wavfiles of course.
+  Note that stereo output means double audio-bandwith, so if you tuned your
+  old terminatorX setup to smallest latency you might get clicks now. You can
+  easily fix this by increasing the buffer size in the options dialog by one - 
+  this will result in the same latency as before btw.
+- The echo effect has undergone some enhancements to profit from the new stereo
+  output. It's signal will now be mixed seperately so you can choose a different
+  stereo panorama position for the echo signal. So the new echo effect now 
+  features it's own PAN-knob. This does have some sideeffects though, for more
+  details on this check the manual.
+  Additionally the echo effect now has it's own volume setting to influence
+  the dry/wet ratio of this effect.
+- Some LADSPA effects tend to create NAN (Not A Number) float values under
+  certain conditions. This is bad as all following operations will result in 
+  NANs, so there will be no audio output no more. Now I will not introduce code
+  to check for NANs as this is a waste of CPU-power, producing NANs is IMHO
+  a faulty behaviour for LADSPA plugins and it should be fixed in there.
+  Now a problem with the previous release was that the echo and lowpass effects
+  "ate" those NANs resulting in NANs in those effects' buffers. So once a NAN
+  got in there these effects caused the whole audio output to mute (forever). 
+  Which is why I now introduced some code to clear the buffers in echo and
+  lowpass whenever you dis- and reenable them.
+- The GUI does have two master vu-meters now. The turntable's still have one
+  vu-meter only. Note that the echo-signal is *not* included in the turntable's
+  vu-meter now, as it's mixed seperately.
+- The 3DNow!-Optimizations are gone. And they'll proabably never come back as
+  I don't have time to maintain the same algorithm twice.
+- The documentation has been updated to meet the new features. A lot of typos
+  have been fixed as well.
 
 [v3.70]
 - this list may be incomplete
index ff0cb0a0e52f5bb1b4b2c70408178c38b1a750ce..befc348e6daae26ef497a856dcbd3c0311d7614b 100644 (file)
@@ -55,21 +55,7 @@ Step 1: Configure terminatorX.
                
                I WARNED YOU! Anybody who can run this binary can completely
                erase your hardisk. BE CAREFUL.
-               
-               --enable-3dnow
-               
-               This enables EXPERIMENTAL 3DNow! support. It seems as if the
-               current libmmx (which is included) doesn't work with the new
-               gcc 2.95. So if you use that compiler do not enable this option.
-               
-               The built binary will run on CPUs with 3DNow! support only.
-               AFAIK these are the K6II, K6III and the Athlon (K7). INTEL CPUs
-               don't have 3DNow! support!
-               
-               For now this the only thing that might run a little faster is
-               the echo effect. I planned to hack more 3DNow! code but at the
-               moment I simply don't have the time.
-                               
+                                               
                File support options:
                ---------------------
                
index f4ed2ecb39042651e288d34e0dcd56f58ef8b4e8..43d95b5bdde59b481c1af7631ce563c066794d0e 100644 (file)
@@ -1,4 +1,4 @@
-terminatorX V3.70 README
+terminatorX V3.71 README
 ------------------------
 
 Copyright (C) 1999, 2000 Alexander K├Ânig
index f37c37dec1f0e8dfe712d90a66b84f3e467bf79f..a49daa21e4e5c5d7d53a9c418bf29e81362c2dd0 100644 (file)
@@ -1,14 +1,14 @@
 There are several things you can do to improve terminatorX performance:
 
-1. Don't use gtk+-pixmap-themes
+1. Don't use fancy gtk+ themes
 2. Compile an optimized binary
 3. Optimize your terminatorX setup
 4. Optimize your kernel
 
 In Detail:
 
-1. Don't use gtk+-pixmap-themes
--------------------------------
+1. Don't use pixmapped nor other "fat" gtk+-themes.
+---------------------------------------------------
 
 The sequencer brings a lot of additional GUI activity. Now the "selfmade"
 widgets perform pretty good (no matter what theme you use) but for example
@@ -16,13 +16,18 @@ scale widgets are extremly slow with pixmap-themes. The problem is that the
 gtk-pixmap engine has to stretch the images and stretching images is a very
 CPU-intensive task. So it's best to not use those themes at all.
 
+Now just recently I installed terminatorX on PIII 500 and wondered why it
+performed like running on a 486 machine. Now I found that those new fancy
+gtk+-themes that bring their own code to draw the widgets eat performance
+like mad, too. This even hurts the performance of tX' very own widgets and
+therefore hurts playback performance quite a lot. So you shouldn't use these 
+kind of themes, neither.
+
 2. Compile an optimized binary
 ------------------------------
 
-This issue is covered in the INSTALL file mostly. If your machine can handle
-3DNow! instruction be sure to use 3DNow! (--enable-3dnow) - since V3.6 this 
-brings ~20% more performance increase. And setting good optimization flags is
-a good idea, too (see INSTALL).
+This issue is covered in the INSTALL file mostly. Setting good optimization
+flags is a good idea although this step will proabably have the least effect.
 
 3. Optimize your terminatorX setup
 ----------------------------------
@@ -40,3 +45,7 @@ near-realtime apps and therefore most linux-audio-apps. Ingo Molnar is
 maintaining a patch against the 2.2.x kernels that reduces latency. They are
 called "low-latency-patches" and are available from:
 http://people.redhat.com/mingo/lowlatency-patches/
+
+Now although latency has improved with the 2.4 releases there is still some
+tuning possible with those kernels. There exist patches for those kernels as
+well and they may go into the main kernel tree as soon as they're finished.
index d5848078292f6f1969d37d5dff25ff16b98c412a..55b9d324f7d86c935da6001d2f5e07c20eadee1b 100644 (file)
@@ -14,9 +14,9 @@ I'd like to thank:
   and a really cool program: alsaplayer
   (checkout: http://www.alsa-project.org/~andy/)
 
-- Adrian Reber <adreit00@fht-esslingen.de> for being the *BEST* Linux 
-  sysadmin ;) and for another cool program: erwin
-  (checkout: http://www-stud.fht-esslingen.de/luges/doc/gpl.html)
+- Adrian Reber <adrian@fht-esslingen.de> for being the *BEST* Linux 
+  sysadmin ;), for numerous code contributions and the fabrication of
+  terminatorX-rpms.
 
 - Paul Kellett <paul.kellett@maxim.abel.co.uk> for his lowpass filter published
   in reso_lop.txt
index eaa804cb8d90ac426ffa0a5f5c9e4dcf7392b66c..55edc8258fff54ef2099903e946902cbe091f53f 100644 (file)
@@ -10,7 +10,7 @@ dnl AC_ARG_ENABLE(wavonly,  [  --enable-wavonly        enable the builtin wav ro
 AC_ARG_ENABLE(scheduler,[  --enable-scheduler      enable rt-scheduling (req. root-priv). [default=yes] ])
 AC_ARG_ENABLE(debug,    [  --enable-debug          enable debug output. [default=no] ])
 dnl AC_ARG_ENABLE(flash,    [  --enable-flash          enable flashes. [default=yes] ])
-AC_ARG_ENABLE(3dnow,    [  --enable-3dnow          enables 3DNow! support. [default=no] ])
+dnl AC_ARG_ENABLE(3dnow,    [  --enable-3dnow          enables 3DNow! support. [default=no] ])
 dnl AC_ARG_ENABLE(benchmark,[  --enable-benchmark      creates a non-functional test version [default=no] ])
 AC_ARG_ENABLE(wav,          [  --enable-wav            enables the builtin wav-loader [default=yes] ])
 dnl AC_ARG_ENABLE(dial,         [  --enable-dial           use dials instead of scales for effects [default=yes] ])
@@ -73,8 +73,8 @@ if test "$enable_flash" = "no"; then
 fi 
 
 if test "$enable_3dnow" = "yes"; then
-dnl    AC_MSG_ERROR([** 3DNOW Support is currently not available. **])
-       AC_DEFINE(USE_3DNOW)
+       AC_MSG_ERROR([** 3DNOW Support is gone. **])
+dnl    AC_DEFINE(USE_3DNOW)
 fi 
 
 if test "$enable_scheduler" != "no"; then
@@ -122,4 +122,4 @@ AC_CHECK_LIB(Xxf86dga, XF86DGAQueryExtension,, AC_MSG_ERROR([** DGA not installe
 if test "$enable_dga2" = yes; then
        AC_CHECK_LIB(Xxf86dga, XDGASelectInput,, AC_MSG_ERROR([** DGA2 not installed. Try using dga1 instead. **]), $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS)
 fi
-AC_OUTPUT(Makefile src/Makefile gnome-support/Makefile src/gui_icons/Makefile src/smallknob/Makefile doc/Makefile)
+AC_OUTPUT(Makefile src/Makefile gnome-support/Makefile src/gui_icons/Makefile src/smallknob/Makefile doc/Makefile doc/img/Makefile)
index 1edbee9ddba3c8c9b73156e7b095b56f9c50cb4f..179520e6498e17dd6341ea3830e1a43a3bb2921e 100644 (file)
@@ -1,3 +1,5 @@
+SUBDIRS=img
+
 SOURCES=configuration.html \
 contact.html \
 dragndrop.html \
index c3d02b52ff5b99b5c126f5bbaad9f2930bc9825a..f341e1e5a125e955a4dd4c415cfa8034e44f6744 100644 (file)
@@ -106,7 +106,7 @@ NAME="FEATURES"
 ></LI
 ><LI
 ><P
->Recording (straight to disk now)Recording (straight to disk now)</P
+>Recording (straight to disk now)</P
 ></LI
 ><LI
 ><P
index 9399550046b2e2823117853a8f4bc2051ffba30d..a99045ec37235a3b2467767f20186d6787e7ddba 100644 (file)
@@ -99,7 +99,7 @@ CLASS="KEYCAP"
 ><DIV
 CLASS="TABLE"
 ><A
-NAME="AEN322"
+NAME="AEN336"
 ></A
 ><P
 ><B
@@ -260,7 +260,7 @@ VALIGN="TOP"
 ><DIV
 CLASS="TABLE"
 ><A
-NAME="AEN371"
+NAME="AEN385"
 ></A
 ><P
 ><B
index 794125a4ea98e44eb63dd87d3ebcd19e2a79769b..6eea793a2ecc0645d528d0f89f696fe0f1d0f255 100644 (file)
@@ -14,6 +14,7 @@
 (define %root-filename% "index")
 (define %use-id-as-filename% #t)
 (define %html40% #t)
+(define %graphic-default-extension% "jpg")
 (define %html-ext% ".html")
 </style-specification-body>
 </style-specification>
index b8ca4598a5390684c5c6bb4c498ce9e9cd787b97..688ac6f209d8efc2918acfee61f28829b2f6b109 100644 (file)
@@ -106,27 +106,27 @@ HREF="turntablecontrols.html"
 ><DL
 ><DT
 >2.2.1. <A
-HREF="turntablecontrols.html#AEN184"
+HREF="turntablecontrols.html#AEN185"
 >Turntable Audio-Display</A
 ></DT
 ><DT
 >2.2.2. <A
-HREF="turntablecontrols.html#AEN209"
+HREF="turntablecontrols.html#AEN210"
 >Turntable Controls</A
 ></DT
 ><DT
 >2.2.3. <A
-HREF="turntablecontrols.html#AEN253"
+HREF="turntablecontrols.html#AEN254"
 >The Effect Queue</A
 ></DT
 ><DT
 >2.2.4. <A
-HREF="turntablecontrols.html#AEN270"
+HREF="turntablecontrols.html#AEN276"
 >Lowpass Panel</A
 ></DT
 ><DT
 >2.2.5. <A
-HREF="turntablecontrols.html#AEN290"
+HREF="turntablecontrols.html#AEN296"
 >Echo Panel</A
 ></DT
 ></DL
@@ -204,16 +204,31 @@ CLASS="LOT"
 ></DT
 ><DT
 >2-1. <A
-HREF="grabmode.html#AEN322"
+HREF="grabmode.html#AEN336"
 >Keyboard Controls in Grab Mode</A
 ></DT
 ><DT
 >2-2. <A
-HREF="grabmode.html#AEN371"
+HREF="grabmode.html#AEN385"
 >Mouse Button Controls in Grab Mode</A
 ></DT
 ></DL
 ></DIV
+><DIV
+CLASS="LOT"
+><DL
+CLASS="LOT"
+><DT
+><B
+>List of Figures</B
+></DT
+><DT
+>2-1. <A
+HREF="turntablecontrols.html#AEN265"
+>An example for a terminatorX effect queue</A
+></DT
+></DL
+></DIV
 ></DIV
 ><DIV
 CLASS="NAVFOOTER"
index 2c0ba59787a66322a03df74213c01704cb7615ff..8815d2142acba3f8ec5756c036c6e361bfeb281e 100644 (file)
@@ -115,7 +115,7 @@ NAME="WHATITIS"
 ><SPAN
 CLASS="APPLICATION"
 >terminatorX</SPAN
-> is a realtime audio synthesizer that allows you to "scratch" on digitally sampled audio data (*.wav, *.au, *.mp3, etc.) the way hiphop-DJs scratch on vinyl records. It features multiple turntables, realtime effects (buit-in as well as LADSPA plugin effects), a sequencer and an easy-to-use gtk+ GUI.</P
+> is a realtime audio synthesizer that allows you to "scratch" on digitally sampled audio data (*.wav, *.au, *.mp3, etc.) the way hiphop-DJs scratch on vinyl records. It features multiple turntables, realtime effects (built-in as well as LADSPA plugin effects), a sequencer and an easy-to-use gtk+ GUI.</P
 ><P
 >This is <I
 CLASS="EMPHASIS"
index 4d61e22afbedb8db65207a644bbe1344cc58931d..a741729e538226d650cd1b6e9ae037b2466b4d75 100644 (file)
@@ -1,6 +1,6 @@
 %!PS-Adobe-2.0
 %%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
-%%Pages: 23
+%%Pages: 24
 %%PageOrder: Ascend
 %%BoundingBox: 0 0 596 842
 %%DocumentFonts: Helvetica-Bold Times-Roman Times-Bold Times-Italic
@@ -9,7 +9,7 @@
 %DVIPSWebPage: (www.radicaleye.com)
 %DVIPSCommandLine: dvips -f
 %DVIPSParameters: dpi=600, compressed
-%DVIPSSource:  TeX output 2001.03.10:1917
+%DVIPSSource:  TeX output 2001.03.17:1251
 %%BeginProcSet: texc.pro
 %!
 /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -339,21 +339,21 @@ F0EA7FC048CCFC12FC12703B3878B44C>62 D E
 61 83 61 72 55 50 61 72 61 72 66 83 55 2[33 1[72 61 61
 72 66 61 61 6[33 50 50 50 50 50 50 50 50 50 50 28 25
 33 25 2[33 33 6[33 30[50 2[{TeXBase1Encoding ReEncodeFont}65
-99.6264 /Times-Italic rf /Fh 134[50 1[72 1[55 33 39 44
-1[55 50 55 1[28 2[28 55 50 33 44 55 44 55 50 9[100 1[72
-66 55 72 1[61 78 72 94 66 78 1[39 1[78 61 66 72 72 66
-72 6[33 50 2[50 50 50 50 50 50 50 28 25 33 3[33 33 37[55
-2[{TeXBase1Encoding ReEncodeFont}53 99.6264 /Times-Bold
-rf /Fi 136[161 1[126 69 115 80 1[126 126 126 1[57 2[57
-126 126 69 115 126 115 126 115 12[126 3[138 161 2[126
-2[57 4[149 149 14[115 115 115 115 1[57 57 43[126 2[{
-TeXBase1Encoding ReEncodeFont}32 206.584 /Helvetica-Bold
-rf /Fj 9[50 65[33 10[76 42[54 3[44 50 50 72 50 50 28
-39 33 50 50 50 50 78 28 50 28 28 50 50 33 44 50 44 50
-44 1[50 47 4[72 72 94 72 72 61 55 66 72 55 72 72 89 61
-72 39 33 72 72 55 61 72 66 66 72 2[56 56 56 28 28 50
-50 50 50 50 50 50 50 50 50 28 25 33 25 56 50 33 33 33
-78 3[41 33 29[55 55 2[{TeXBase1Encoding ReEncodeFont}86
+99.6264 /Times-Italic rf /Fh 134[50 50 72 1[55 33 39
+44 55 55 50 55 83 28 2[28 55 50 33 44 55 44 55 50 8[72
+100 1[72 66 55 72 1[61 78 72 94 66 78 1[39 1[78 61 66
+72 72 66 72 6[33 50 2[50 50 50 50 50 50 1[28 25 33 3[33
+33 37[55 2[{TeXBase1Encoding ReEncodeFont}56 99.6264
+/Times-Bold rf /Fi 136[161 1[126 69 115 80 1[126 126
+126 1[57 2[57 126 126 69 115 126 115 126 115 12[126 3[138
+161 2[126 2[57 2[126 1[149 149 14[115 115 115 115 1[57
+57 43[126 2[{TeXBase1Encoding ReEncodeFont}33 206.584
+/Helvetica-Bold rf /Fj 9[50 65[33 10[76 42[54 3[44 50
+50 72 50 50 28 39 33 50 50 50 50 78 28 50 28 28 50 50
+33 44 50 44 50 44 1[50 47 4[72 72 94 72 72 61 55 66 72
+55 72 72 89 61 72 39 33 72 72 55 61 72 66 66 72 2[56
+56 56 28 28 50 50 50 50 50 50 50 50 50 50 28 25 33 25
+56 50 33 33 33 78 3[41 33 29[55 55 2[{TeXBase1Encoding ReEncodeFont}86
 99.6264 /Times-Roman rf /Fk 134[55 3[61 33 55 39 2[61
 61 89 28 2[28 3[55 1[55 1[55 8[66 10[83 1[72 4[61 3[72
 20[33 45[{TeXBase1Encoding ReEncodeFont}19 99.6264 /Helvetica-Bold
@@ -827,7 +827,7 @@ Black Black -1 w(.)p Black Black(.)p Black Black(.)p
 Black Black(.)p Black Black(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
 Black Black -1 w(.)p Black Black(.)p Black Black(.)p
-Black Black(.)p Black 11 w(14)795 3031 y(2.2.5.)h(Echo)g(P)o(anel)p
+Black Black(.)p Black 11 w(15)795 3031 y(2.2.5.)h(Echo)g(P)o(anel)p
 Black 24 w(.)p Black Black(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
 Black Black -1 w(.)p Black Black(.)p Black Black(.)p
@@ -853,7 +853,7 @@ Black(.)p Black Black -1 w(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
 Black Black(.)p Black Black(.)p Black Black(.)p Black
 Black(.)p Black Black -1 w(.)p Black Black(.)p Black
-Black(.)p Black Black(.)p Black 11 w(14)596 3161 y(2.3.)g
+Black(.)p Black Black(.)p Black 11 w(15)596 3161 y(2.3.)g
 (Synchronization)p Black 18 w(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
 Black Black(.)p Black Black(.)p Black Black(.)p Black
@@ -880,7 +880,7 @@ Black Black(.)p Black Black -1 w(.)p Black Black(.)p
 Black Black(.)p Black Black(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
 Black Black(.)p Black Black -1 w(.)p Black Black(.)p
-Black Black(.)p Black Black(.)p Black 11 w(15)596 3290
+Black Black(.)p Black Black(.)p Black 11 w(16)596 3290
 y(2.4.)g(Grab)h(Mode)f(Operation)p Black 17 w(.)p Black
 Black -1 w(.)p Black Black(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
@@ -905,7 +905,7 @@ Black Black -1 w(.)p Black Black(.)p Black Black(.)p
 Black Black(.)p Black Black(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
 Black Black -1 w(.)p Black Black(.)p Black Black(.)p
-Black Black(.)p Black 11 w(15)596 3420 y(2.5.)g(Drag)h(And)f(Drop)p
+Black Black(.)p Black 11 w(17)596 3420 y(2.5.)g(Drag)h(And)f(Drop)p
 Black 22 w(.)p Black Black(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
 Black Black(.)p Black Black(.)p Black Black(.)p Black
@@ -932,7 +932,7 @@ Black Black(.)p Black Black -1 w(.)p Black Black(.)p
 Black Black(.)p Black Black(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
 Black Black(.)p Black Black -1 w(.)p Black Black(.)p
-Black Black(.)p Black Black(.)p Black 11 w(17)596 3549
+Black Black(.)p Black Black(.)p Black 11 w(18)596 3549
 y(2.6.)g(The)h(Sequencer)p Black 3 w(.)p Black Black
 1 w(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p
 Black Black(.)p Black Black(.)p Black Black(.)p Black
@@ -960,7 +960,7 @@ Black(.)p Black Black(.)p Black Black -1 w(.)p Black
 Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
 Black Black(.)p Black Black(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black -1 w(.)p Black
-Black(.)p Black Black(.)p Black Black(.)p Black 11 w(17)596
+Black(.)p Black Black(.)p Black Black(.)p Black 11 w(18)596
 3679 y(2.7.)f(Plugins)g(\(LADSP)-9 b(A\))p Black 4 w(.)p
 Black Black(.)p Black Black(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black -1 w(.)p Black
@@ -987,7 +987,7 @@ Black Black(.)p Black Black(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
 Black Black(.)p Black Black(.)p Black Black -1 w(.)p
 Black Black(.)p Black Black(.)p Black Black(.)p Black
-11 w(18)396 3828 y Fh(3.)25 b(Con\002guration)p Black
+11 w(19)396 3828 y Fh(3.)25 b(Con\002guration)p Black
 26 w(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p
 Black Black(.)p Black Black(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
@@ -1018,7 +1018,7 @@ Black(.)p Black Black(.)p Black Black(.)p Black Black
 Black Black(.)p Black Black(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black(.)p Black Black
 -1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
-Black 11 w(20)596 3978 y Fj(3.1.)f(Audio)g(Setup)p Black
+Black 11 w(21)596 3978 y Fj(3.1.)f(Audio)g(Setup)p Black
 22 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
 Black Black(.)p Black Black -1 w(.)p Black Black(.)p
 Black Black(.)p Black Black(.)p Black Black(.)p Black
@@ -1047,7 +1047,7 @@ Black(.)p Black Black(.)p Black Black(.)p Black Black
 Black Black(.)p Black Black(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black(.)p Black Black
 -1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
-Black 11 w(20)596 4107 y(3.2.)g(Mouse/Input)f(Setup)p
+Black 11 w(21)596 4107 y(3.2.)g(Mouse/Input)f(Setup)p
 Black 11 w(.)p Black Black(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black(.)p Black Black
 -1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
@@ -1073,7 +1073,7 @@ Black -1 w(.)p Black Black(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
 Black Black(.)p Black Black(.)p Black Black(.)p Black
 Black -1 w(.)p Black Black(.)p Black Black(.)p Black
-Black(.)p Black 11 w(20)596 4237 y(3.3.)h(GUI)h(Setup)p
+Black(.)p Black 11 w(21)596 4237 y(3.3.)h(GUI)h(Setup)p
 Black 19 w(.)p Black Black(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
 Black Black(.)p Black Black -1 w(.)p Black Black(.)p
@@ -1103,7 +1103,7 @@ Black(.)p Black Black(.)p Black Black(.)p Black Black
 Black Black(.)p Black Black(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black(.)p Black Black
 -1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
-Black 11 w(21)596 4366 y(3.4.)f(Sound\002le-Editor)g(inte)o(gration)p
+Black 11 w(22)596 4366 y(3.4.)f(Sound\002le-Editor)g(inte)o(gration)p
 Black 2 w(.)p Black Black -2 w(.)p Black Black -1 w(.)p
 Black Black(.)p Black Black(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
@@ -1125,7 +1125,7 @@ Black(.)p Black Black(.)p Black Black(.)p Black Black
 Black Black(.)p Black Black(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black(.)p Black Black
 -1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
-Black 11 w(21)396 4516 y Fh(4.)h(Contact)g(/)g(Do)o(wnload)p
+Black 11 w(22)396 4516 y Fh(4.)h(Contact)g(/)g(Do)o(wnload)p
 Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black
 -1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
 Black Black(.)p Black Black(.)p Black Black(.)p Black
@@ -1153,7 +1153,7 @@ Black(.)p Black Black -1 w(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
 Black Black(.)p Black Black(.)p Black Black(.)p Black
 Black(.)p Black Black -1 w(.)p Black Black(.)p Black
-Black(.)p Black Black(.)p Black 11 w(22)p Black 3695
+Black(.)p Black Black(.)p Black 11 w(23)p Black 3695
 5692 a Fg(3)p Black eop
 %%Page: 4 4
 4 3 bop Black Black -2 647 a Fi(List)57 b(of)h(T)-17
@@ -1178,7 +1178,7 @@ Black(.)p Black Black -1 w(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
 Black Black(.)p Black Black(.)p Black Black(.)p Black
 Black(.)p Black Black -1 w(.)p Black Black(.)p Black
-Black(.)p Black Black(.)p Black 11 w(16)396 1009 y(2-2.)g(Mouse)f
+Black(.)p Black Black(.)p Black 11 w(17)396 1009 y(2-2.)g(Mouse)f
 (Button)g(Controls)g(in)h(Grab)g(Mode)p Black 16 w(.)p
 Black Black(.)p Black Black(.)p Black Black(.)p Black
 Black -1 w(.)p Black Black(.)p Black Black(.)p Black
@@ -1198,7 +1198,26 @@ Black(.)p Black Black(.)p Black Black(.)p Black Black
 Black Black(.)p Black Black(.)p Black Black(.)p Black
 Black(.)p Black Black(.)p Black Black(.)p Black Black
 -1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
-Black 11 w(16)p Black 3695 5692 a Fg(4)p Black eop
+Black 11 w(18)-2 1432 y Fi(List)57 b(of)h(Figures)396
+1665 y Fj(2-1.)25 b(An)g(e)o(xample)e(for)j(a)f(terminatorX)f(ef)n
+(fect)h(queue)p Black 18 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black 11 w(14)p Black 3695 5692 a Fg(4)p Black
+eop
 %%Page: 5 5
 5 4 bop Black Black -2 647 a Fi(Preface)396 944 y Fj(This)22
 b(is)g(free)h(softw)o(are)g(see)g(the)f Ff(COPYING)f
@@ -1216,9 +1235,9 @@ b(ou)24 b(ha)n(v)o(e)h(been)g(w)o(arned!)p Black 3695
 b(is)h(a)g(realtime)g(audio)f(synthesizer)h(that)f(allo)n(ws)g(you)g
 (to)h("scratch")f(on)h(digitally)396 1512 y(sampled)j(audio)f(data)i
 (\(*.w)o(a)n(v)-6 b(,)29 b(*.au,)h(*.mp3,)f(etc.\))i(the)f(w)o(ay)g
-(hiphop-DJs)f(scratch)h(on)g(vin)o(yl)396 1642 y(records.)e(It)f
-(features)h(multiple)d(turntables,)i(realtime)g(ef)n(fects)g(\(b)n
-(uit-in)f(as)i(well)f(as)g(LADSP)-9 b(A)396 1771 y(plugin)24
+(hiphop-DJs)f(scratch)h(on)g(vin)o(yl)396 1642 y(records.)25
+b(It)g(features)g(multiple)e(turntables,)h(realtime)g(ef)n(fects)h(\(b)
+n(uilt-in)f(as)h(well)f(as)h(LADSP)-9 b(A)396 1771 y(plugin)24
 b(ef)n(fects\),)h(a)g(sequencer)g(and)g(an)g(easy-to-use)f(gtk+)h(GUI.)
 396 1951 y(This)30 b(is)g Fg(beta)g Fj(Softw)o(are)h(please)f(help)g
 (me)g(\002x)h(b)n(ugs.)f(See)h(Chapter)g(4)f(\(Contact/Do)n(wnload\).)
@@ -1236,90 +1255,92 @@ Ff(INSTALL)p Fj(\))p Black 476 3588 a(3.)p Black 25 w(Run)f
 (terminatorX)p Black 476 3767 a(4.)p Black 25 w(Load)34
 b(an)g(audio\002le)g(into)f(the)h(a)n(v)n(ailable)g(turntable)f(\(you)h
 (can)h(add)f(more)g(turntables)f(if)576 3897 y(you)24
-b(w)o(ant\))h(\(Hint:)f(Click)g(on)h(the)g(b)n(utton)e(that)h(holds)g
-("NONE")g(\))p Black 476 4076 a(5.)p Black 25 w(Click)g(on)h(the)g
-("Audio)e(Engine"-b)n(utton)g(to)h(start)h(playback.)p
-Black 476 4256 a(6.)p Black 25 w(Click)32 b(on)f(the)h("Mouse-Grab"-b)n
-(utton)e(to)h(enter)i(grab)f(mode.)f(The)h(turntable)f(with)h(the)576
-4385 y(red)25 b(border)g(has)f(the)h(input)f(focus.)p
-Black 476 4564 a(7.)p Black 25 w(Press)h Fh(SP)-7 b(A)i(CE)24
-b Fj(or)h(left)g(mouse)f(b)n(utton)g(to)g(scratch.)p
-Black 476 4744 a(8.)p Black 25 w(Release)i Fh(SP)-7 b(A)i(CE)25
+b(w)o(ant\))g(\(Hint:)f(Click)i(on)f(the)g(b)n(utton)f(that)h(holds)f
+("NONE")h(to)g(load)g(an)g(audio\002le,)g(or)576 4026
+y(drop)f(one)g(o)o(v)o(er)g(the)g(audio\002le)g(display)g(from)g(your)g
+(\002lemanager)h(if)g(your)f(\002lemanager)h(is)576 4156
+y(efm,)g(gmc,)h(Nautilus)e(or)i(compatible)f(\(kfm)g(does)h
+Fg(not)h Fj(w)o(ork\)\))p Black 476 4335 a(5.)p Black
+25 w(Click)e(on)h(the)g("Audio)e(Engine"-b)n(utton)g(to)h(start)h
+(playback.)p Black 476 4515 a(6.)p Black 25 w(Click)32
+b(on)f(the)h("Mouse-Grab"-b)n(utton)e(to)h(enter)i(grab)f(mode.)f(The)h
+(turntable)f(with)h(the)576 4644 y(red)25 b(border)g(has)f(the)h(input)
+f(focus.)p Black 476 4823 a(7.)p Black 25 w(Press)h Fh(SP)-7
+b(A)i(CE)24 b Fj(or)h(left)g(mouse)f(b)n(utton)g(to)g(scratch.)p
+Black 476 5003 a(8.)p Black 25 w(Release)i Fh(SP)-7 b(A)i(CE)25
 b Fj(or)g(left)g(mouse)f(b)n(utton)g(to)h(let)g(the)g(scratch-\002le)h
-(run)f(at)g(the)g(turntable')-5 b(s)576 4873 y(def)o(ault)24
-b(speed.)p Black 476 5053 a(9.)p Black 25 w(Press)h Fh(ESCAPE)h
-Fj(to)e(quit)g(grab)h(mode.)p Black 3692 5762 a Fg(6)p
-Black eop
+(run)f(at)g(the)g(turntable')-5 b(s)576 5132 y(def)o(ault)24
+b(speed.)p Black 3692 5762 a Fg(6)p Black eop
 %%Page: 7 7
 7 6 bop Black 2800 67 a Fg(Chapter)24 b(1.)h(Intr)l(oduction)p
-Black -2 618 a Fl(1.3.)47 b(Features)p Black 396 1006
-a Fe(\225)p Black 72 w Fj(Scratching)25 b(;\))p Black
-396 1185 a Fe(\225)p Black 72 w Fj(Multiple)e(turntables)p
-Black 396 1364 a Fe(\225)p Black 72 w Fj(Built-in)h(Sequencer)p
-Black 396 1544 a Fe(\225)p Black 72 w Fj(Pitch)h(/)f(V)-13
+Black Black 476 579 a Fj(9.)p Black 25 w(Press)g Fh(ESCAPE)h
+Fj(to)e(quit)g(grab)h(mode.)-2 1081 y Fl(1.3.)47 b(Features)p
+Black 396 1469 a Fe(\225)p Black 72 w Fj(Scratching)25
+b(;\))p Black 396 1648 a Fe(\225)p Black 72 w Fj(Multiple)e(turntables)
+p Black 396 1828 a Fe(\225)p Black 72 w Fj(Built-in)h(Sequencer)p
+Black 396 2007 a Fe(\225)p Black 72 w Fj(Pitch)h(/)f(V)-13
 b(olume)24 b(settings)g(for)h(each)g(turntable)p Black
-396 1723 a Fe(\225)p Black 72 w Fj(Ef)n(fects)f(\(Lo)n(wpass/Echo\))g
+396 2186 a Fe(\225)p Black 72 w Fj(Ef)n(fects)f(\(Lo)n(wpass/Echo\))g
 (con\002gurable)h(for)g(each)g(turntable)p Black 396
-1902 a Fe(\225)p Black 72 w Fj(Syncing)f(tables)h(to)f(one)h(master)f
-(turntable)p Black 396 2081 a Fe(\225)p Black 72 w Fj(Broad)h
+2366 a Fe(\225)p Black 72 w Fj(Syncing)f(tables)h(to)f(one)h(master)f
+(turntable)p Black 396 2545 a Fe(\225)p Black 72 w Fj(Broad)h
 (audio\002le-type)g(support)e(through)h(the)h(use)g(of)f(sox)h(and)g
-(mpg123)p Black 396 2261 a Fe(\225)p Black 72 w Fj(Recording)g
-(\(straight)f(to)g(disk)g(no)n(w\)Recording)g(\(straight)g(to)h(disk)f
-(no)n(w\))p Black 396 2440 a Fe(\225)p Black 72 w Fj(Sa)n(v)o(e)h
-(turntable)f(sets)g(\(.tX)h(-)g(\002les\))p Black 396
-2619 a Fe(\225)p Black 72 w Fj(Since)g(V)-11 b(ersion)24
-b(3.70)h(terminatorX)f(supports)f(the)i(LADSP)-9 b(A-plugin-standard.)p
-Black 396 2799 a Fe(\225)p Black 72 w Fj(and)25 b(more)-2
-3301 y Fl(1.4.)47 b(Requirements)p Black 396 3689 a Fe(\225)p
-Black 72 w Fj(Softw)o(are)p Black 496 3868 a Fd(\225)p
-Black 75 w Fj(required)p Black 596 4048 a Fd(\225)p Black
-74 w Fj(The)25 b(Linux)f(Operating)g(System)g(\(V)-11
-b(ersion)25 b Fc(>)p Fj(=)g(2.0\))p Black 596 4227 a
-Fd(\225)p Black 74 w Fj(glibc2)18 b(\(pthreads\).)h(Note)f(that)h
-(there)g(are)h(reports)e(of)h(terminatorX)f(functioning)f(nicely)695
-4356 y(with)24 b(libc5/pthread)g(setups.)p Black 596
-4536 a Fd(\225)p Black 74 w Fj(XFree86)31 b(\(with)e(DGA)h(DirectMouse)
+(mpg123)p Black 396 2724 a Fe(\225)p Black 72 w Fj(Recording)g
+(\(straight)f(to)g(disk)g(no)n(w\))p Black 396 2904 a
+Fe(\225)p Black 72 w Fj(Sa)n(v)o(e)h(turntable)f(sets)g(\(.tX)h(-)g
+(\002les\))p Black 396 3083 a Fe(\225)p Black 72 w Fj(Since)g(V)-11
+b(ersion)24 b(3.70)h(terminatorX)f(supports)f(the)i(LADSP)-9
+b(A-plugin-standard.)p Black 396 3262 a Fe(\225)p Black
+72 w Fj(and)25 b(more)-2 3765 y Fl(1.4.)47 b(Requirements)p
+Black 396 4152 a Fe(\225)p Black 72 w Fj(Softw)o(are)p
+Black 496 4332 a Fd(\225)p Black 75 w Fj(required)p Black
+596 4511 a Fd(\225)p Black 74 w Fj(The)25 b(Linux)f(Operating)g(System)
+g(\(V)-11 b(ersion)25 b Fc(>)p Fj(=)g(2.0\))p Black 596
+4690 a Fd(\225)p Black 74 w Fj(glibc2)18 b(\(pthreads\).)h(Note)f(that)
+h(there)g(are)h(reports)e(of)h(terminatorX)f(functioning)f(nicely)695
+4820 y(with)24 b(libc5/pthread)g(setups.)p Black 596
+4999 a Fd(\225)p Black 74 w Fj(XFree86)31 b(\(with)e(DGA)h(DirectMouse)
 g(support\).)f(Note)h(that)f(XFree86)i(Release)g(4.0)695
-4665 y(has)h(a)g(b)n(ug)f(resulting)g(in)h(brok)o(en)f(DirectMouse)g
-(support.)g(This)g(has)h(been)g(\002x)o(ed)g(by)695 4795
-y(the)24 b(XFree86-T)-7 b(eam)26 b(with)d(Release)j(4.0.1)e(a)n(v)n
-(ailable)f(from)i(your)f(distrib)n(ution)e(or)j(the)695
-4924 y(XFree86)h(homepage)e(\(http://www)-6 b(.xfree86.or)n(g\).)p
-Black 596 5104 a Fd(\225)p Black 74 w Fj(The)38 b(Gimp)g(T)-8
-b(oolkit:)36 b(gtk+)i(\(>=)h(1.2.5\).)f(If)h(your)f(distrib)n(ution)e
-(doesn')n(t)i(pro)o(vide)f(a)695 5233 y(current)25 b(v)o(ersion)f(of)h
-(gtk+)f(get)h(it)f(from)h(the)f(gtk+)h(homepage)f(\(http://www)-6
-b(.gtk.or)n(g\).)p Black 3691 5692 a Fg(7)p Black eop
+5129 y(has)h(a)g(b)n(ug)f(resulting)g(in)h(brok)o(en)f(DirectMouse)g
+(support.)g(This)g(has)h(been)g(\002x)o(ed)g(by)p Black
+3691 5692 a Fg(7)p Black eop
 %%Page: 8 8
 8 7 bop Black 2800 67 a Fg(Chapter)24 b(1.)h(Intr)l(oduction)p
-Black Black 596 579 a Fd(\225)p Black 74 w Fj(LADSP)-9
-b(A)26 b(-)g(the)g(Linux)e(Audio)h(De)n(v)o(eloper')-5
+Black 695 579 a Fj(the)f(XFree86-T)-7 b(eam)26 b(with)d(Release)j
+(4.0.1)e(a)n(v)n(ailable)f(from)i(your)f(distrib)n(ution)e(or)j(the)695
+708 y(XFree86)h(homepage)e(\(http://www)-6 b(.xfree86.or)n(g\).)p
+Black 596 888 a Fd(\225)p Black 74 w Fj(The)38 b(Gimp)g(T)-8
+b(oolkit:)36 b(gtk+)i(\(>=)h(1.2.5\).)f(If)h(your)f(distrib)n(ution)e
+(doesn')n(t)i(pro)o(vide)f(a)695 1017 y(current)25 b(v)o(ersion)f(of)h
+(gtk+)f(get)h(it)f(from)h(the)f(gtk+)h(homepage)f(\(http://www)-6
+b(.gtk.or)n(g\).)p Black 596 1197 a Fd(\225)p Black 74
+w Fj(LADSP)d(A)26 b(-)g(the)g(Linux)e(Audio)h(De)n(v)o(eloper')-5
 b(s)24 b(Simple)h(Plugin)g(API.)h(Get)g(it)f(from)h(the)695
-708 y(LADSP)-9 b(A)25 b(homepage)g(\(http://www)-6 b(.ladpsa.or)n(g\))p
-Black 596 888 a Fd(\225)p Black 74 w Fj(a)25 b(compiler)f(\(gcc\))p
-Black 496 1117 a Fd(\225)p Black 75 w Fj(optional)p Black
-596 1296 a Fd(\225)p Black 74 w Fj(sox)42 b
+1326 y(LADSP)-9 b(A)25 b(homepage)g(\(http://www)-6 b(.ladpsa.or)n(g\))
+p Black 596 1505 a Fd(\225)p Black 74 w Fj(a)25 b(compiler)f(\(gcc\))p
+Black 496 1735 a Fd(\225)p Black 75 w Fj(optional)p Black
+596 1914 a Fd(\225)p Black 74 w Fj(sox)42 b
 (\(http://home.sprynet.com/~cbagwell/sox.html\))37 b(for)43
-b(enhanced)g(audio)f(\002le)695 1426 y(support)p Black
-596 1605 a Fd(\225)p Black 74 w Fj(mpg123)18 b
+b(enhanced)g(audio)f(\002le)695 2043 y(support)p Black
+596 2223 a Fd(\225)p Black 74 w Fj(mpg123)18 b
 (\(http://www-ti.informatik.uni-tuebingen.de/~h)o(ippm)o(/mp)o(g123.)o
-(html)o(\))13 b(for)695 1735 y(mp3)24 b(support)p Black
-396 2014 a Fe(\225)p Black 72 w Fj(Hardw)o(are)p Black
-496 2193 a Fd(\225)p Black 75 w Fj(A)c(OSS)h(compatible)f(soundcard.)g
+(html)o(\))13 b(for)695 2352 y(mp3)24 b(support)p Black
+396 2631 a Fe(\225)p Black 72 w Fj(Hardw)o(are)p Black
+496 2811 a Fd(\225)p Black 75 w Fj(A)c(OSS)h(compatible)f(soundcard.)g
 (This)g(includes)f Fg(all)h Fj(ALSA-dri)n(v)o(en)g(\(http://www)-6
-b(.alsa-)596 2322 y(project.or)n(g\))19 b(soundcards)f(as)i(this)e
+b(.alsa-)596 2940 y(project.or)n(g\))19 b(soundcards)f(as)i(this)e
 (enhanced)i(audio)e(de)n(vice)h(interf)o(ace)h(includes)e(support)596
-2452 y(for)25 b(the)f(OSS)i(API.)p Black 496 2631 a Fd(\225)p
+3070 y(for)25 b(the)f(OSS)i(API.)p Black 496 3249 a Fd(\225)p
 Black 75 w Fj(A)e(good)h(clean)g(mouse)f(and)g(pad,)h(a)g(good)f
-(X-Pointer)h(setup.)396 2860 y(A)30 b(note)f(on)g(performance:)g
+(X-Pointer)h(setup.)396 3478 y(A)30 b(note)f(on)g(performance:)g
 (terminatorX)f(is)h(kno)n(wn)f(to)h(run)h(satisfyingly)d(on)i
-(pentium-class)396 2990 y(\(~100)34 b(MHz\))f(systems)g(\(or)h(abo)o(v)
+(pentium-class)396 3608 y(\(~100)34 b(MHz\))f(systems)g(\(or)h(abo)o(v)
 o(e)e(of)i(course\).)g(Increasing)g(the)g(number)f(of)h(turntables)e
-(or)396 3119 y(plugins)24 b(will)f(of)i(course)g(require)g(more)g
-(performant)g(systems.)-2 3622 y Fl(1.5.)47 b(Installation)396
-3837 y Fj(F)o(or)32 b(GNU-standards')g(sak)o(e)g(this)f(information)g
+(or)396 3737 y(plugins)24 b(will)f(of)i(course)g(require)g(more)g
+(performant)g(systems.)-2 4239 y Fl(1.5.)47 b(Installation)396
+4455 y Fj(F)o(or)32 b(GNU-standards')g(sak)o(e)g(this)f(information)g
 (is)h(no)n(w)f(located)h(in)g(the)g Ff(INSTALL)e Fj(\002le)j(that)396
-3967 y(came)25 b(with)f(this)g(distrib)n(ution)f(of)i(terminatorX.)p
+4585 y(came)25 b(with)f(this)g(distrib)n(ution)f(of)i(terminatorX.)p
 Black 3695 5692 a Fg(8)p Black eop
 %%Page: 9 9
 9 8 bop Black Black -2 647 a Fi(Chapter)58 b(2.)f(Operation)396
@@ -1456,41 +1477,41 @@ Black 3645 5692 a Fg(11)p Black eop
 %%Page: 12 12
 12 11 bop Black 2885 67 a Fg(Chapter)25 b(2.)f(Oper)o(ation)p
 Black -2 601 a Fb(2.2.2.)39 b(T)-13 b(urntab)o(le)37
-b(Contr)m(ols)396 802 y Fj(These)29 b(controls)f(are)i(no)n(w)e
-(grouped)h(within)e(functional)h(panels.)h(The)g(number)f(of)h(panel)g
-(de-)396 931 y(pends)g(on)g(the)g(number)g(of)h(plugins)e(loaded.)h
-(terminatorX)f(allo)n(ws)g(hiding)g(the)i(controls)e(not)396
-1061 y(required)c(via)f(the)g(yello)n(w)f(arro)n(w)h(b)n(utton.)f(T)-8
-b(o)23 b(un-hide)g(just)f(click)h(the)g(b)n(utton)f(again.)h(The)g
-(\002rst)396 1190 y(panels)g(are)h(the)e(standard)h(controls)f(for)h(a)
-g(turntable,)g(then)f(follo)n(ws)g(the)g(dynamic)h(FX-section)396
-1320 y(and)i(belo)n(w)f(that)g(follo)n(w)g(the)g(pitch)h(and)f(v)n
-(olume)g(controls.)396 1665 y Fa(2.2.2.1.)36 b(Main)e(P)l(anel)p
-Black 396 1973 a Fe(\225)p Black 72 w Fg(Name)25 b(F)l(ield)496
-2153 y Fj(The)e(main)f(panel)h(features)h(a)f(te)o(xt)f(entry)h
-(\002eld)g(that)g(allo)n(ws)f(setting)g(a)h(name)g(for)g(the)g(related)
-496 2282 y(turntable.)32 b(The)h(Labels)f(for)i(the)e(controls)g(and)h
-(the)g(audio-display)e(will)h(update)h(accord-)496 2412
-y(ingly)-6 b(.)p Black 396 2641 a Fe(\225)p Black 72
-w Fg(Delete)25 b(Button)496 2820 y Fj(Pressing)38 b(this)g(b)n(utton)g
-(remo)o(v)o(e)g(the)g(tunrtable)g(from)h(the)g(current)g(setup.)f(Note)
-g(that)h(all)496 2950 y(sequencer)25 b(e)n(v)o(ents)f(recorded)h(for)g
-(this)f(turntable)g(will)g(be)h(erased,)g(too.)396 3404
-y Fa(2.2.2.2.)36 b(T)-10 b(rig)o(g)q(er)34 b(P)l(anel)396
-3593 y Fj(The)28 b(trigger)g(panel)g(holds)e(all)i(controls)f(related)h
-(to)g(triggering)f(the)g(turntable.)g(F)o(or)h(more)g(de-)396
-3723 y(tails)c(on)h(synchronization)e(see)i(Section)g(2.3)f
-(\(synchronization\).)p Black 396 4002 a Fe(\225)p Black
-72 w Fg(T)-5 b(rig)o(g)o(er!)24 b(Button)496 4181 y Fj(Pressing)39
-b(this)f(b)n(utton)g(triggers)h(the)g(turntable)f(no)n(w)-6
-b(.)38 b(W)l(ith)h(the)g(audio)g(engine)f(enabled)496
-4311 y(this)26 b(will)g(cause)h(the)g(turntable)f(to)g(start)h(playing)
-f(back)h(audio)f(from)h(the)g(be)o(ginning)e(of)i(the)496
-4440 y(sample.)p Black 396 4669 a Fe(\225)p Black 72
-w Fg(Stop)d(Button)496 4849 y Fj(Guess)g(what,)h(this)f(stops)f(this)h
-(turntable')-5 b(s)24 b(audio-playback.)p Black 396 5078
-a Fe(\225)p Black 72 w Fg(Master)g(Button)p Black 3645
-5692 a(12)p Black eop
+b(Contr)m(ols)396 802 y Fj(These)j(controls)f(are)h(no)n(w)f(grouped)g
+(within)f(functional)h(panels.)g(The)h(number)f(of)h(panels)396
+931 y(depends)35 b(on)g(the)g(number)f(of)h(plugins)f(loaded.)h
+(terminatorX)f(allo)n(ws)g(hiding)f(the)i(controls)396
+1061 y(not)e(required)h(via)f(the)g(yello)n(w)f(triangle)h(b)n(utton.)f
+(T)-8 b(o)33 b(un-hide)g(just)g(click)g(the)g(b)n(utton)f(again.)396
+1190 y(The)g(\002rst)f(panels)g(are)h(the)g(standard)f(controls)f(for)i
+(a)f(turntable,)g(then)g(follo)n(ws)f(the)h(dynamic)396
+1320 y(FX-section)25 b(and)g(belo)n(w)f(that)g(follo)n(w)f(the)i(pitch)
+f(and)h(v)n(olume)f(controls.)396 1665 y Fa(2.2.2.1.)36
+b(Main)e(P)l(anel)p Black 396 1973 a Fe(\225)p Black
+72 w Fg(Name)25 b(F)l(ield)496 2153 y Fj(The)e(main)f(panel)h(features)
+h(a)f(te)o(xt)f(entry)h(\002eld)g(that)g(allo)n(ws)f(setting)g(a)h
+(name)g(for)g(the)g(related)496 2282 y(turntable.)32
+b(The)h(Labels)f(for)i(the)e(controls)g(and)h(the)g(audio-display)e
+(will)h(update)h(accord-)496 2412 y(ingly)-6 b(.)p Black
+396 2641 a Fe(\225)p Black 72 w Fg(Delete)25 b(Button)496
+2820 y Fj(Pressing)38 b(this)g(b)n(utton)g(remo)o(v)o(e)g(the)g
+(tunrtable)g(from)h(the)g(current)g(setup.)f(Note)g(that)h(all)496
+2950 y(sequencer)25 b(e)n(v)o(ents)f(recorded)h(for)g(this)f(turntable)
+g(will)g(be)h(erased,)g(too.)396 3404 y Fa(2.2.2.2.)36
+b(T)-10 b(rig)o(g)q(er)34 b(P)l(anel)396 3593 y Fj(The)28
+b(trigger)g(panel)g(holds)e(all)i(controls)f(related)h(to)g(triggering)
+f(the)g(turntable.)g(F)o(or)h(more)g(de-)396 3723 y(tails)c(on)h
+(synchronization)e(see)i(Section)g(2.3)f(\(synchronization\).)p
+Black 396 4002 a Fe(\225)p Black 72 w Fg(T)-5 b(rig)o(g)o(er!)24
+b(Button)496 4181 y Fj(Pressing)39 b(this)f(b)n(utton)g(triggers)h(the)
+g(turntable)f(no)n(w)-6 b(.)38 b(W)l(ith)h(the)g(audio)g(engine)f
+(enabled)496 4311 y(this)26 b(will)g(cause)h(the)g(turntable)f(to)g
+(start)h(playing)f(back)h(audio)f(from)h(the)g(be)o(ginning)e(of)i(the)
+496 4440 y(sample.)p Black 396 4669 a Fe(\225)p Black
+72 w Fg(Stop)d(Button)496 4849 y Fj(Guess)g(what,)h(this)f(stops)f
+(this)h(turntable')-5 b(s)24 b(audio-playback.)p Black
+396 5078 a Fe(\225)p Black 72 w Fg(Master)g(Button)p
+Black 3645 5692 a(12)p Black eop
 %%Page: 13 13
 13 12 bop Black 2885 67 a Fg(Chapter)25 b(2.)f(Oper)o(ation)p
 Black 496 579 a Fj(Enabling)39 b(this)h(b)n(utton)f(mak)o(es)h(this)f
@@ -1528,296 +1549,1214 @@ y(There)c(are)g(tw)o(o)f(types)g(of)g(ef)n(fects:)g(the)g(traditional)f
 (are)h(al)o(w)o(ays)f(a)n(v)n(ailable)f(and)h(cannot)g(be)g(remo)o(v)o
 (ed)396 3924 y(\(b)n(ut)37 b(disabled\).)g(There)g(can)h(be)g(only)e
 (one)h(instance)g(of)h(a)f(b)n(uilt-in)f(ef)n(fect.)i(The)f(LADSP)-9
-b(A)396 4053 y(plugins)34 b(on)h(the)h(other)f(hand)g(may)g(be)h
-(intanciated)f(multiple)e(times)i(and)g(can)h(be)g(remo)o(v)o(ed)396
+b(A)396 4053 y(plugins)31 b(on)h(the)h(other)f(hand)g(may)g(be)h
+(instanciated)f(multiple)e(times)i(and)g(can)h(be)g(remo)o(v)o(ed)396
 4183 y(from)25 b(the)f(ef)n(fect)i(queue.)e(Press)i(the)e
 Fg(blue)h(cr)l(oss)e(b)n(utton)h Fj(to)g(achie)n(v)o(e)h(this.)396
-4362 y(F)o(or)h(more)g(information)f(on)h(a)g(LADSP)-9
+4362 y(No)n(w)31 b(since)g(release)i(3.71)e(the)g(b)n(uilt-in)f(echo)i
+(ef)n(fect)g(is)f(treated)g(dif)n(ferently)g(from)g(other)h(ef-)396
+4491 y(fects.)i(Where)g(all)g(other)f(ef)n(fects)h(feed)g(their)g
+(signal)f(back)h(into)e(the)i(ef)n(fect)g(queue)g(the)f(echo)396
+4621 y(ef)n(fect)h(doesn')n(t)f(touch)g(the)g(input)f(signal.)h(It')-5
+b(s)32 b(echo-signal)h(is)g(mix)o(ed)f(seperately)h(from)h(the)396
+4750 y(turntable')-5 b(s)30 b(main)h(signal)f(to)h(allo)n(w)f(a)i(dif)n
+(ferent)e(panning)h(v)n(alue)f(for)i(the)f(echo-signal.)f(This)396
+4880 y(mode)24 b(of)g(operation)f(does)h(ha)n(v)o(e)g(some)f(side-ef)n
+(fects:)g(imagine)g(a)i(lo)n(wpass)d(\002lter)j(with)e(a)h(posi-)396
+5009 y(tion)j(after)h(the)g(echo)g(ef)n(fect)g(in)f(the)h(ef)n(fect)g
+(queue.)g(This)f(will)g(result)g(in)g(the)h(turntable')-5
+b(s)26 b(main)396 5139 y(signal)e(being)g(lo)n(wpassed)g(b)n(ut)g(it)g
+(will)g(lea)n(v)o(e)h(the)g(echo-signal)f(un-lo)n(wpassed.)p
+Black 3645 5692 a Fg(13)p Black eop
+%%Page: 14 14
+14 13 bop Black 2885 67 a Fg(Chapter)25 b(2.)f(Oper)o(ation)p
+Black 396 579 a Fj(Some)j(may)g(call)f(this)g(beha)n(viour)g(a)i(b)n
+(ug)e(-)h(whereas)g(I)g(w)o(ould)f(consider)h(it)f(a)h(feature)g(;\).)g
+(An)o(y-)396 708 y(w)o(ay)f(if)g(the)g(abo)o(v)o(e)f(description)f
+(didn')n(t)i(clear)g(things)f(up)g(maybe)h(the)f(follo)n(wing)f
+(\002gure)j(does.)396 838 y(It)g(sho)n(ws)e(a)i(schematic)g(ef)n(fect)g
+(queue)g(with)f(the)g(b)n(uilt-in)f(ef)n(fects)i(and)g(tw)o(o)f(LADSP)
+-9 b(A)27 b(ef)n(fects)396 967 y(enabled.)h(No)n(w)g(with)g(this)f
+(setup)h(you)g(will)f(not)h(hear)h(an)o(ything)e(from)h(the)g(second)g
+(LADSP)-9 b(A)396 1097 y(ef)n(fect)25 b(in)g(the)f(echo-signal.)396
+3202 y
+ currentpoint currentpoint translate 0.27 0.27 scale neg exch neg exch
+translate
+ 396 3202 a @beginspecial 0 @llx 0 @lly 1498 @urx
+793 @ury 14980 @rwi @setspecial
+%%BeginDocument: img/signalflow.eps
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /home/al/devel/terminatorX/terminatorX/doc/img/signalflow.dia
+%%Creator: Dia v0.86
+%%CreationDate: Tue Mar 13 20:49:38 2001
+%%For: al
+%%Magnification: 1.0000
+%%Orientation: Portrait
+%%BoundingBox: 0 0 1498 793
+%%Pages: 1
+%%BeginSetup
+%%EndSetup
+%%EndComments
+[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
+/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
+/two /three /four /five /six /seven /eight /nine /colon /semicolon
+/less /equal /greater /question /at /A /B /C /D /E
+/F /G /H /I /J /K /L /M /N /O
+/P /Q /R /S /T /U /V /W /X /Y
+/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c
+/d /e /f /g /h /i /j /k /l /m
+/n /o /p /q /r /s /t /u /v /w
+/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright
+/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior
+/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf
+/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde
+/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex
+/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring
+/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
+/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def
+/Times-Roman-latin1
+    /Times-Roman findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Times-Italic-latin1
+    /Times-Italic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Times-Bold-latin1
+    /Times-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Times-BoldItalic-latin1
+    /Times-BoldItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/AvantGarde-Book-latin1
+    /AvantGarde-Book findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/AvantGarde-BookOblique-latin1
+    /AvantGarde-BookOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/AvantGarde-Demi-latin1
+    /AvantGarde-Demi findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/AvantGarde-DemiOblique-latin1
+    /AvantGarde-DemiOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Bookman-Light-latin1
+    /Bookman-Light findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Bookman-LightItalic-latin1
+    /Bookman-LightItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Bookman-Demi-latin1
+    /Bookman-Demi findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Bookman-DemiItalic-latin1
+    /Bookman-DemiItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Courier-latin1
+    /Courier findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Courier-Oblique-latin1
+    /Courier-Oblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Courier-Bold-latin1
+    /Courier-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Courier-BoldOblique-latin1
+    /Courier-BoldOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-latin1
+    /Helvetica findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Oblique-latin1
+    /Helvetica-Oblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Bold-latin1
+    /Helvetica-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-BoldOblique-latin1
+    /Helvetica-BoldOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Narrow-latin1
+    /Helvetica-Narrow findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Narrow-Oblique-latin1
+    /Helvetica-Narrow-Oblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Narrow-Bold-latin1
+    /Helvetica-Narrow-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Narrow-BoldOblique-latin1
+    /Helvetica-Narrow-BoldOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/NewCenturySchoolbook-Roman-latin1
+    /NewCenturySchoolbook-Roman findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/NewCenturySchoolbook-Italic-latin1
+    /NewCenturySchoolbook-Italic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/NewCenturySchoolbook-Bold-latin1
+    /NewCenturySchoolbook-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/NewCenturySchoolbook-BoldItalic-latin1
+    /NewCenturySchoolbook-BoldItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Palatino-Roman-latin1
+    /Palatino-Roman findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Palatino-Italic-latin1
+    /Palatino-Italic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Palatino-Bold-latin1
+    /Palatino-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Palatino-BoldItalic-latin1
+    /Palatino-BoldItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Symbol-latin1
+    /Symbol findfont
+definefont pop
+/ZapfChancery-MediumItalic-latin1
+    /ZapfChancery-MediumItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/ZapfDingbats-latin1
+    /ZapfDingbats findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+   /endangle exch def
+   /startangle exch def
+   /yrad exch def
+   /xrad exch def
+   /y exch def
+   /x exch def   /savematrix mtrx currentmatrix def
+   x y tr xrad yrad sc
+   0 0 1 startangle endangle arc
+   savematrix setmatrix
+   end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+28.346000 -28.346000 scale
+-3.405613 -34.900000 translate
+%%EndProlog
+
+
+0.791900 0.970959 1.000000 srgb
+n 4.100000 15.425000 m 4.100000 20.125000 l 10.900000 20.125000 l 10.900000 15.425000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 4.100000 15.425000 m 4.100000 20.125000 l 10.900000 20.125000 l 10.900000 15.425000 l cp s
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(turntable) dup sw 2 div 7.500000 ex sub 17.969690 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0 slj
+0 slc
+0 slj
+[] 0 sd
+0.988775 1.000000 0.744083 srgb
+n 4.400000 8.125025 m 11.050000 8.125025 l 11.050000 12.175004 l 9.720000 11.500007 9.055000 11.500007 7.725000 12.175004 c 6.395000 12.850000 5.730000 12.850000 4.400000 12.175004 c 4.400000 8.125025 l f
+0.000000 0.000000 0.000000 srgb
+n 4.400000 8.125025 m 11.050000 8.125025 l 11.050000 12.175004 l 9.720000 11.500007 9.055000 11.500007 7.725000 12.175004 c 6.395000 12.850000 5.730000 12.850000 4.400000 12.175004 c 4.400000 8.125025 l s
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(audiofile) dup sw 2 div 7.725000 ex sub 10.007207 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 7.550000 12.300000 m 7.500000 15.425000 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 7.112850 14.618703 m 7.500000 15.425000 l 7.912747 14.631502 l f
+0.770571 1.000000 0.773818 srgb
+n 13.038204 15.500000 m 13.038204 20.050000 l 18.338204 20.050000 l 18.338204 15.500000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 13.038204 15.500000 m 13.038204 20.050000 l 18.338204 20.050000 l 18.338204 15.500000 l cp s
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(LADSPA) dup sw 2 div 15.688204 ex sub 17.569690 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(plugin) dup sw 2 div 15.688204 ex sub 18.369690 m gs 1 -1 sc sh gr
+0.770571 1.000000 0.773818 srgb
+n 20.476407 15.500000 m 20.476407 20.050000 l 26.601407 20.050000 l 26.601407 15.500000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 20.476407 15.500000 m 20.476407 20.050000 l 26.601407 20.050000 l 26.601407 15.500000 l cp s
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(builtin) dup sw 2 div 23.538907 ex sub 17.169690 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(lowpass) dup sw 2 div 23.538907 ex sub 17.969690 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(filter) dup sw 2 div 23.538907 ex sub 18.769690 m gs 1 -1 sc sh gr
+0.770571 1.000000 0.773818 srgb
+n 36.177815 15.500000 m 36.177815 20.050000 l 41.477815 20.050000 l 41.477815 15.500000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 36.177815 15.500000 m 36.177815 20.050000 l 41.477815 20.050000 l 41.477815 15.500000 l cp s
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(LADSPA) dup sw 2 div 38.827815 ex sub 17.569690 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(plugin) dup sw 2 div 38.827815 ex sub 18.369690 m gs 1 -1 sc sh gr
+0.770571 1.000000 0.773818 srgb
+n 28.739611 15.500000 m 28.739611 20.050000 l 34.039611 20.050000 l 34.039611 15.500000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 28.739611 15.500000 m 28.739611 20.050000 l 34.039611 20.050000 l 34.039611 15.500000 l cp s
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(builtin) dup sw 2 div 31.389611 ex sub 17.169690 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(echo) dup sw 2 div 31.389611 ex sub 17.969690 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(effect) dup sw 2 div 31.389611 ex sub 18.769690 m gs 1 -1 sc sh gr
+1.000000 1.000000 1.000000 srgb
+n 50.997019 7.000000 m 50.997019 34.850000 l 56.197019 34.850000 l 56.197019 7.000000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 50.997019 7.000000 m 50.997019 34.850000 l 56.197019 34.850000 l 56.197019 7.000000 l cp s
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(main) dup sw 2 div 53.597019 ex sub 20.719690 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(mixer) dup sw 2 div 53.597019 ex sub 21.519690 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0 slj
+0 slc
+0 slj
+[] 0 sd
+1.000000 1.000000 1.000000 srgb
+n 53.647019 12.350000 1.500000 1.500000 0 360 ellipse f
+0.000000 0.000000 0.000000 srgb
+n 53.647019 12.350000 1.500000 1.500000 0 360 ellipse cp s
+0 slc
+0 slj
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 52.586369 11.289350 m 54.707669 13.410650 l s
+0 slc
+0 slj
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 52.586369 13.410650 m 54.707669 11.289350 l s
+1.000000 0.764706 0.764706 srgb
+n 45.391019 11.020000 1.896089 1.869383 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 45.391019 11.020000 1.896089 1.869383 0 360 ellipse cp s
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(echo) dup sw 2 div 45.391019 ex sub 10.814690 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(PAN) dup sw 2 div 45.391019 ex sub 11.614690 m gs 1 -1 sc sh gr
+1.000000 0.764706 0.764706 srgb
+n 45.512108 17.775000 1.896089 1.869383 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 45.512108 17.775000 1.896089 1.869383 0 360 ellipse cp s
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(PAN) dup sw 2 div 45.512108 ex sub 17.969690 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 10.900000 17.775000 m 13.038204 17.775000 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 12.238204 18.175000 m 13.038204 17.775000 l 12.238204 17.375000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 18.338204 17.775000 m 20.476407 17.775000 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 19.676407 18.175000 m 20.476407 17.775000 l 19.676407 17.375000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 26.601407 17.775000 m 28.739611 17.775000 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 27.939611 18.175000 m 28.739611 17.775000 l 27.939611 17.375000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 34.039611 17.775000 m 36.177815 17.775000 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 35.377815 18.175000 m 36.177815 17.775000 l 35.377815 17.375000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 41.477815 17.775000 m 43.616019 17.775000 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 42.816019 18.175000 m 43.616019 17.775000 l 42.816019 17.375000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 47.263865 17.059618 m 50.991019 17.050000 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 50.192054 17.452063 m 50.991019 17.050000 l 50.189989 16.652066 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 47.263865 18.490382 m 50.941019 18.550000 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 50.134639 18.936979 m 50.941019 18.550000 l 50.147608 18.137084 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 31.389611 15.500000 m 31.391019 10.950000 l 43.494930 11.020000 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 42.692630 11.415367 m 43.494930 11.020000 l 42.697256 10.615380 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 47.142776 10.304618 m 50.841019 10.300000 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 50.041519 10.700999 m 50.841019 10.300000 l 50.040520 9.900999 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 47.142776 11.735382 m 50.841019 11.700000 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 50.044882 12.107635 m 50.841019 11.700000 l 50.037229 11.307672 l f
+1.000000 1.000000 1.000000 srgb
+n 4.255613 22.620000 m 4.255613 25.120000 l 10.742813 25.120000 l 10.742813 22.620000 l f
+1.000000 1.000000 1.000000 srgb
+n 4.255613 23.420000 m 4.255613 23.420000 0.800000 0.800000 180.000000 270.000000 ellipse f
+1.000000 1.000000 1.000000 srgb
+n 10.742813 23.420000 m 10.742813 23.420000 0.800000 0.800000 270.000000 360.000000 ellipse f
+1.000000 1.000000 1.000000 srgb
+n 3.455613 23.420000 m 3.455613 24.320000 l 11.542813 24.320000 l 11.542813 23.420000 l f
+1.000000 1.000000 1.000000 srgb
+n 4.255613 24.320000 m 4.255613 24.320000 0.800000 0.800000 90.000000 180.000000 ellipse f
+1.000000 1.000000 1.000000 srgb
+n 10.742813 24.320000 m 10.742813 24.320000 0.800000 0.800000 0.000000 90.000000 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 4.255613 22.620000 m 10.742813 22.620000 l s
+0.000000 0.000000 0.000000 srgb
+n 4.255613 25.120000 m 10.742813 25.120000 l s
+0.000000 0.000000 0.000000 srgb
+n 4.255613 23.420000 0.800000 0.800000 180.000000 270.000000 ellipse s
+0.000000 0.000000 0.000000 srgb
+n 10.742813 23.420000 0.800000 0.800000 270.000000 360.000000 ellipse s
+0.000000 0.000000 0.000000 srgb
+n 3.455613 23.420000 m 3.455613 24.320000 l s
+0.000000 0.000000 0.000000 srgb
+n 11.542813 23.420000 m 11.542813 24.320000 l s
+0.000000 0.000000 0.000000 srgb
+n 4.255613 24.320000 0.800000 0.800000 90.000000 180.000000 ellipse s
+0.000000 0.000000 0.000000 srgb
+n 10.742813 24.320000 0.800000 0.800000 0.000000 90.000000 ellipse s
+/Courier-latin1 ff 0.700000 scf sf
+0.000000 0.000000 0.000000 srgb
+(pitch, triggers,) dup sw 2 div 7.499213 ex sub 23.690354 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(scratching, etc.) dup sw 2 div 7.499213 ex sub 24.390354 m gs 1 -1 sc sh gr
+1.000000 1.000000 1.000000 srgb
+n 13.518513 22.620000 m 13.518513 25.120000 l 17.855613 25.120000 l 17.855613 22.620000 l f
+1.000000 1.000000 1.000000 srgb
+n 13.518513 23.420000 m 13.518513 23.420000 0.800000 0.800000 180.000000 270.000000 ellipse f
+1.000000 1.000000 1.000000 srgb
+n 17.855613 23.420000 m 17.855613 23.420000 0.800000 0.800000 270.000000 360.000000 ellipse f
+1.000000 1.000000 1.000000 srgb
+n 12.718513 23.420000 m 12.718513 24.320000 l 18.655613 24.320000 l 18.655613 23.420000 l f
+1.000000 1.000000 1.000000 srgb
+n 13.518513 24.320000 m 13.518513 24.320000 0.800000 0.800000 90.000000 180.000000 ellipse f
+1.000000 1.000000 1.000000 srgb
+n 17.855613 24.320000 m 17.855613 24.320000 0.800000 0.800000 0.000000 90.000000 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 13.518513 22.620000 m 17.855613 22.620000 l s
+0.000000 0.000000 0.000000 srgb
+n 13.518513 25.120000 m 17.855613 25.120000 l s
+0.000000 0.000000 0.000000 srgb
+n 13.518513 23.420000 0.800000 0.800000 180.000000 270.000000 ellipse s
+0.000000 0.000000 0.000000 srgb
+n 17.855613 23.420000 0.800000 0.800000 270.000000 360.000000 ellipse s
+0.000000 0.000000 0.000000 srgb
+n 12.718513 23.420000 m 12.718513 24.320000 l s
+0.000000 0.000000 0.000000 srgb
+n 18.655613 23.420000 m 18.655613 24.320000 l s
+0.000000 0.000000 0.000000 srgb
+n 13.518513 24.320000 0.800000 0.800000 90.000000 180.000000 ellipse s
+0.000000 0.000000 0.000000 srgb
+n 17.855613 24.320000 0.800000 0.800000 0.000000 90.000000 ellipse s
+/Courier-latin1 ff 0.700000 scf sf
+0.000000 0.000000 0.000000 srgb
+(plugin ) dup sw 2 div 15.687063 ex sub 23.690354 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(parameters) dup sw 2 div 15.687063 ex sub 24.390354 m gs 1 -1 sc sh gr
+1.000000 1.000000 1.000000 srgb
+n 36.680613 22.620000 m 36.680613 25.120000 l 41.017713 25.120000 l 41.017713 22.620000 l f
+1.000000 1.000000 1.000000 srgb
+n 36.680613 23.420000 m 36.680613 23.420000 0.800000 0.800000 180.000000 270.000000 ellipse f
+1.000000 1.000000 1.000000 srgb
+n 41.017713 23.420000 m 41.017713 23.420000 0.800000 0.800000 270.000000 360.000000 ellipse f
+1.000000 1.000000 1.000000 srgb
+n 35.880613 23.420000 m 35.880613 24.320000 l 41.817713 24.320000 l 41.817713 23.420000 l f
+1.000000 1.000000 1.000000 srgb
+n 36.680613 24.320000 m 36.680613 24.320000 0.800000 0.800000 90.000000 180.000000 ellipse f
+1.000000 1.000000 1.000000 srgb
+n 41.017713 24.320000 m 41.017713 24.320000 0.800000 0.800000 0.000000 90.000000 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 36.680613 22.620000 m 41.017713 22.620000 l s
+0.000000 0.000000 0.000000 srgb
+n 36.680613 25.120000 m 41.017713 25.120000 l s
+0.000000 0.000000 0.000000 srgb
+n 36.680613 23.420000 0.800000 0.800000 180.000000 270.000000 ellipse s
+0.000000 0.000000 0.000000 srgb
+n 41.017713 23.420000 0.800000 0.800000 270.000000 360.000000 ellipse s
+0.000000 0.000000 0.000000 srgb
+n 35.880613 23.420000 m 35.880613 24.320000 l s
+0.000000 0.000000 0.000000 srgb
+n 41.817713 23.420000 m 41.817713 24.320000 l s
+0.000000 0.000000 0.000000 srgb
+n 36.680613 24.320000 0.800000 0.800000 90.000000 180.000000 ellipse s
+0.000000 0.000000 0.000000 srgb
+n 41.017713 24.320000 0.800000 0.800000 0.000000 90.000000 ellipse s
+/Courier-latin1 ff 0.700000 scf sf
+0.000000 0.000000 0.000000 srgb
+(plugin ) dup sw 2 div 38.849163 ex sub 23.690354 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(parameters) dup sw 2 div 38.849163 ex sub 24.390354 m gs 1 -1 sc sh gr
+1.000000 1.000000 1.000000 srgb
+n 21.103963 22.270000 m 21.103963 25.470000 l 25.894363 25.470000 l 25.894363 22.270000 l f
+1.000000 1.000000 1.000000 srgb
+n 21.103963 23.070000 m 21.103963 23.070000 0.800000 0.800000 180.000000 270.000000 ellipse f
+1.000000 1.000000 1.000000 srgb
+n 25.894363 23.070000 m 25.894363 23.070000 0.800000 0.800000 270.000000 360.000000 ellipse f
+1.000000 1.000000 1.000000 srgb
+n 20.303963 23.070000 m 20.303963 24.670000 l 26.694363 24.670000 l 26.694363 23.070000 l f
+1.000000 1.000000 1.000000 srgb
+n 21.103963 24.670000 m 21.103963 24.670000 0.800000 0.800000 90.000000 180.000000 ellipse f
+1.000000 1.000000 1.000000 srgb
+n 25.894363 24.670000 m 25.894363 24.670000 0.800000 0.800000 0.000000 90.000000 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 21.103963 22.270000 m 25.894363 22.270000 l s
+0.000000 0.000000 0.000000 srgb
+n 21.103963 25.470000 m 25.894363 25.470000 l s
+0.000000 0.000000 0.000000 srgb
+n 21.103963 23.070000 0.800000 0.800000 180.000000 270.000000 ellipse s
+0.000000 0.000000 0.000000 srgb
+n 25.894363 23.070000 0.800000 0.800000 270.000000 360.000000 ellipse s
+0.000000 0.000000 0.000000 srgb
+n 20.303963 23.070000 m 20.303963 24.670000 l s
+0.000000 0.000000 0.000000 srgb
+n 26.694363 23.070000 m 26.694363 24.670000 l s
+0.000000 0.000000 0.000000 srgb
+n 21.103963 24.670000 0.800000 0.800000 90.000000 180.000000 ellipse s
+0.000000 0.000000 0.000000 srgb
+n 25.894363 24.670000 0.800000 0.800000 0.000000 90.000000 ellipse s
+/Courier-latin1 ff 0.700000 scf sf
+0.000000 0.000000 0.000000 srgb
+(input amp,) dup sw 2 div 23.499163 ex sub 23.340354 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(cutoff freq,) dup sw 2 div 23.499163 ex sub 24.040354 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(resonance,) dup sw 2 div 23.499163 ex sub 24.740354 m gs 1 -1 sc sh gr
+1.000000 1.000000 1.000000 srgb
+n 29.582213 22.620000 m 29.582213 25.120000 l 33.100013 25.120000 l 33.100013 22.620000 l f
+1.000000 1.000000 1.000000 srgb
+n 29.582213 23.420000 m 29.582213 23.420000 0.800000 0.800000 180.000000 270.000000 ellipse f
+1.000000 1.000000 1.000000 srgb
+n 33.100013 23.420000 m 33.100013 23.420000 0.800000 0.800000 270.000000 360.000000 ellipse f
+1.000000 1.000000 1.000000 srgb
+n 28.782213 23.420000 m 28.782213 24.320000 l 33.900013 24.320000 l 33.900013 23.420000 l f
+1.000000 1.000000 1.000000 srgb
+n 29.582213 24.320000 m 29.582213 24.320000 0.800000 0.800000 90.000000 180.000000 ellipse f
+1.000000 1.000000 1.000000 srgb
+n 33.100013 24.320000 m 33.100013 24.320000 0.800000 0.800000 0.000000 90.000000 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 29.582213 22.620000 m 33.100013 22.620000 l s
+0.000000 0.000000 0.000000 srgb
+n 29.582213 25.120000 m 33.100013 25.120000 l s
+0.000000 0.000000 0.000000 srgb
+n 29.582213 23.420000 0.800000 0.800000 180.000000 270.000000 ellipse s
+0.000000 0.000000 0.000000 srgb
+n 33.100013 23.420000 0.800000 0.800000 270.000000 360.000000 ellipse s
+0.000000 0.000000 0.000000 srgb
+n 28.782213 23.420000 m 28.782213 24.320000 l s
+0.000000 0.000000 0.000000 srgb
+n 33.900013 23.420000 m 33.900013 24.320000 l s
+0.000000 0.000000 0.000000 srgb
+n 29.582213 24.320000 0.800000 0.800000 90.000000 180.000000 ellipse s
+0.000000 0.000000 0.000000 srgb
+n 33.100013 24.320000 0.800000 0.800000 0.000000 90.000000 ellipse s
+/Courier-latin1 ff 0.700000 scf sf
+0.000000 0.000000 0.000000 srgb
+(feedback,) dup sw 2 div 31.341113 ex sub 23.690354 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(duration) dup sw 2 div 31.341113 ex sub 24.390354 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 7.500000 20.125000 m 7.499213 22.620000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 15.688204 20.050000 m 15.687063 22.620000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 23.538907 20.050000 m 23.499163 22.270000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 31.389611 20.050000 m 31.341113 22.620000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 38.827815 20.050000 m 38.849163 22.620000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 47.178677 30.129618 m 50.905830 30.120000 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 50.106865 30.522063 m 50.905830 30.120000 l 50.104801 29.722066 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 47.178677 31.560382 m 50.855830 31.620000 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 50.049451 32.006979 m 50.855830 31.620000 l 50.062420 31.207084 l f
+0.791900 0.970959 1.000000 srgb
+n 41.078677 28.370000 m 41.078677 33.070000 l 46.278677 33.070000 l 46.278677 28.370000 l f
+0.791900 0.970959 1.000000 srgb
+n 41.078677 29.170000 m 41.078677 29.170000 0.800000 0.800000 180.000000 270.000000 ellipse f
+0.791900 0.970959 1.000000 srgb
+n 46.278677 29.170000 m 46.278677 29.170000 0.800000 0.800000 270.000000 360.000000 ellipse f
+0.791900 0.970959 1.000000 srgb
+n 40.278677 29.170000 m 40.278677 32.270000 l 47.078677 32.270000 l 47.078677 29.170000 l f
+0.791900 0.970959 1.000000 srgb
+n 41.078677 32.270000 m 41.078677 32.270000 0.800000 0.800000 90.000000 180.000000 ellipse f
+0.791900 0.970959 1.000000 srgb
+n 46.278677 32.270000 m 46.278677 32.270000 0.800000 0.800000 0.000000 90.000000 ellipse f
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 41.078677 28.370000 m 46.278677 28.370000 l s
+0.000000 0.000000 0.000000 srgb
+n 41.078677 33.070000 m 46.278677 33.070000 l s
+0.000000 0.000000 0.000000 srgb
+n 41.078677 29.170000 0.800000 0.800000 180.000000 270.000000 ellipse s
+0.000000 0.000000 0.000000 srgb
+n 46.278677 29.170000 0.800000 0.800000 270.000000 360.000000 ellipse s
+0.000000 0.000000 0.000000 srgb
+n 40.278677 29.170000 m 40.278677 32.270000 l s
+0.000000 0.000000 0.000000 srgb
+n 47.078677 29.170000 m 47.078677 32.270000 l s
+0.000000 0.000000 0.000000 srgb
+n 41.078677 32.270000 0.800000 0.800000 90.000000 180.000000 ellipse s
+0.000000 0.000000 0.000000 srgb
+n 46.278677 32.270000 0.800000 0.800000 0.000000 90.000000 ellipse s
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(other) dup sw 2 div 43.678677 ex sub 30.514690 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(turntables) dup sw 2 div 43.678677 ex sub 31.314690 m gs 1 -1 sc sh gr
+showpage
+
+%%EndDocument
+ @endspecial 396 3202 a
+ currentpoint currentpoint translate 1 0.27 div 1 0.27 div scale neg
+exch neg exch translate
+ 396 3202 a 378 x Fh(Figur)n(e)i(2-1.)e(An)h
+(example)h(f)n(or)e(a)h(terminatorX)g(effect)i(queue)396
+3809 y Fj(F)o(or)f(more)g(information)f(on)h(a)g(LADSP)-9
 b(A)27 b(plugin,)e(press)h(it')-5 b(s)25 b(panel')-5
-b(s)25 b(label)h(and)g(a)h(small)e(info)396 4491 y(box)g(will)f(pop)g
-(up.)p Black 396 4770 a Fe(\225)p Black 72 w Fg(FX)h(Button)496
-4950 y Fj(Press)j(this)f(b)n(utton)g(to)g(load)h(a)g(LADSP)-9
+b(s)25 b(label)h(and)g(a)h(small)e(info)396 3939 y(box)g(will)f(pop)g
+(up.)p Black 396 4218 a Fe(\225)p Black 72 w Fg(FX)h(Button)496
+4397 y Fj(Press)j(this)f(b)n(utton)g(to)g(load)h(a)g(LADSP)-9
 b(A)29 b(plugin)d(into)h(the)h(ef)n(fect)g(queue)g(of)g(the)g
-(turntable.)496 5079 y(A)h(menu)f(holding)g(the)h(a)n(v)n(ailable)f
+(turntable.)496 4527 y(A)h(menu)f(holding)g(the)h(a)n(v)n(ailable)f
 (\(terminatorX-"compatible"\))e(LADSP)-9 b(A-plugins)28
-b(will)496 5209 y(pop)i(up.)h(The)g(plugins)f(are)h(grouped)g(within)f
-(submenus)f(according)i(to)g(the)g(modules)f(the)p Black
-3645 5692 a Fg(13)p Black eop
-%%Page: 14 14
-14 13 bop Black 2885 67 a Fg(Chapter)25 b(2.)f(Oper)o(ation)p
-Black 496 579 a Fj(plugins)c(are)i(contained)f(in.)g(Simply)g(select)g
-(the)g(plugin)g(you)g(w)o(ant)g(to)g(load)g(from)g(this)g(menu)496
-708 y(and)k(a)g(panel)f(for)i(it)e(will)g(pop)g(up)h(at)f(the)h(end)g
-(of)g(the)f(ef)n(fect)i(queue.)496 888 y(Note)39 b(that)g(due)g(to)g
+b(will)496 4656 y(pop)i(up.)h(The)g(plugins)f(are)h(grouped)g(within)f
+(submenus)f(according)i(to)g(the)g(modules)f(the)496
+4786 y(plugins)20 b(are)i(contained)f(in.)g(Simply)g(select)g(the)g
+(plugin)g(you)g(w)o(ant)g(to)g(load)g(from)g(this)g(menu)496
+4915 y(and)k(a)g(panel)f(for)i(it)e(will)g(pop)g(up)h(at)f(the)h(end)g
+(of)g(the)f(ef)n(fect)i(queue.)496 5095 y(Note)39 b(that)g(due)g(to)g
 (the)g(wide)h(parameter)f(ranges)h(some)f(LADSP)-9 b(A)39
-b(plugins)f(ha)n(v)o(e)h(the)o(y)496 1017 y(sometimes)f(might)g(be)i
+b(plugins)f(ha)n(v)o(e)h(the)o(y)496 5224 y(sometimes)f(might)g(be)i
 (hard)g(to)f(control)g(with)g(the)h(knob)f(widget.)g(In)g(these)h
-(cases)g(you)496 1147 y(might)31 b(w)o(ant)h(to)g(use)g(the)g(te)o(xt)f
+(cases)g(you)p Black 3645 5692 a Fg(14)p Black eop
+%%Page: 15 15
+15 14 bop Black 2885 67 a Fg(Chapter)25 b(2.)f(Oper)o(ation)p
+Black 496 579 a Fj(might)31 b(w)o(ant)h(to)g(use)g(the)g(te)o(xt)f
 (\002eld)i(to)e(enter)i(v)n(alues.)e(F)o(or)h(more)g(details)g(on)g
-(Plugins)f(see)496 1276 y(Section)25 b(2.7)f(\(LASDP)-9
-b(A\).)-2 1770 y Fb(2.2.4.)39 b(Lo)n(wpass)e(P)l(anel)396
-1971 y Fj(terminatorX)30 b(features)h(a)g(b)n(uitlin)d(resonating)i(lo)
+(Plugins)f(see)496 708 y(Section)25 b(2.7)f(\(LASDP)-9
+b(A\).)-2 1202 y Fb(2.2.4.)39 b(Lo)n(wpass)e(P)l(anel)396
+1403 y Fj(terminatorX)30 b(features)h(a)g(b)n(uiltin)d(resonating)i(lo)
 n(wpass)f(\002lter)i(that)f(can)h(be)f(con\002gured)h(with)396
-2100 y(this)24 b(panel.)p Black 396 2379 a Fe(\225)p
-Black 72 w Fg(Enable)g(Button)496 2559 y Fj(Acti)n(v)n(ating)e(this)i
+1533 y(this)24 b(panel.)p Black 396 1811 a Fe(\225)p
+Black 72 w Fg(Enable)g(Button)496 1991 y Fj(Acti)n(v)n(ating)e(this)i
 (b)n(utton)g(will)g(enable)h(the)f(lo)n(wpass)g(\002lter)h(for)g(this)f
-(turntable.)p Black 396 2788 a Fe(\225)p Black 72 w Fg(Input)g(Gain)g
-(Contr)l(ol)496 2967 y Fj(W)l(ith)i(this)g(parameter)h(you)g(can)g
+(turntable.)p Black 396 2220 a Fe(\225)p Black 72 w Fg(Input)g(Gain)g
+(Contr)l(ol)496 2399 y Fj(W)l(ith)i(this)g(parameter)h(you)g(can)g
 (amplify)f(the)g(signal)g(that)h(goes)f(into)g(the)h(lo)n(wpass)e
-(\002lter)i(if)496 3097 y(required.)p Black 396 3326
+(\002lter)i(if)496 2529 y(required.)p Black 396 2758
 a Fe(\225)p Black 72 w Fg(F)-5 b(r)l(equency)25 b(Contr)l(ol)496
-3505 y Fj(Use)35 b(this)f(parameter)h(to)f(set)h(the)f(cutof)n(f)h
+2937 y Fj(Use)35 b(this)f(parameter)h(to)f(set)h(the)f(cutof)n(f)h
 (frequenc)o(y)f(for)h(the)g(lo)n(wpass)e(\002lter)-5
-b(.)35 b(Minimum:)496 3635 y(0=0Hz,)25 b(Maximum:)d(1=22KHz.)p
-Black 396 3864 a Fe(\225)p Black 72 w Fg(Resonance)496
-4043 y Fj(Use)27 b(this)f(parameter)i(to)f(set)g(the)g(resonance-v)n
-(alue.)g(Minimum:)d(0=no)j(resonance,)h(Maxi-)496 4173
-y(mum:)23 b(1=max)i(resonance.)-2 4666 y Fb(2.2.5.)39
-b(Ec)o(ho)f(P)l(anel)396 4867 y Fj(Additionaly)20 b(terminatorX)g
+b(.)35 b(Minimum:)496 3067 y(0=0Hz,)25 b(Maximum:)d(1=22KHz.)p
+Black 396 3296 a Fe(\225)p Black 72 w Fg(Resonance)496
+3475 y Fj(Use)27 b(this)f(parameter)i(to)f(set)g(the)g(resonance-v)n
+(alue.)g(Minimum:)d(0=no)j(resonance,)h(Maxi-)496 3605
+y(mum:)23 b(1=max)i(resonance.)-2 4098 y Fb(2.2.5.)39
+b(Ec)o(ho)f(P)l(anel)396 4299 y Fj(Additionaly)20 b(terminatorX)g
 (features)i(a)f(b)n(uilt-in)f(echo)i(ef)n(fect.)f(It)g(can)h(be)f
-(con\002gured)h(with)e(this)396 4997 y(panel.)p Black
-396 5276 a Fe(\225)p Black 72 w Fg(Enable)k(Button)p
-Black 3645 5692 a(14)p Black eop
-%%Page: 15 15
-15 14 bop Black 2885 67 a Fg(Chapter)25 b(2.)f(Oper)o(ation)p
-Black 496 579 a Fj(Acti)n(v)n(ating)e(this)i(b)n(utton)g(will)g(enable)
-h(the)f(echo)h(ef)n(fect)h(for)f(this)e(turntable.)p
-Black 396 808 a Fe(\225)p Black 72 w Fg(Dur)o(ation)g(Contr)l(ol)496
-987 y Fj(Use)k(this)e(parameter)i(to)f(set)h(the)f(length)g(of)h(the)f
-(echo.)h(The)f(duration)g(parameter)h(scales)g(to)496
-1117 y(the)c(actual)f(sample)g(length:)g(so)h(if)f(you)h(set)f(it)h(to)
-f(0.5)g(you)h(will)f(hear)h(the)g(echo)g(when)f(the)h(red)496
-1246 y(playback)29 b(cursor)g(is)f(half)h(w)o(ay)h(through)e(the)g
+(con\002gured)h(with)e(this)396 4429 y(panel.)p Black
+396 4708 a Fe(\225)p Black 72 w Fg(Enable)k(Button)496
+4887 y Fj(Acti)n(v)n(ating)e(this)i(b)n(utton)g(will)g(enable)h(the)f
+(echo)h(ef)n(fect)h(for)f(this)e(turntable.)p Black 396
+5116 a Fe(\225)p Black 72 w Fg(Dur)o(ation)g(Contr)l(ol)p
+Black 3645 5692 a(15)p Black eop
+%%Page: 16 16
+16 15 bop Black 2885 67 a Fg(Chapter)25 b(2.)f(Oper)o(ation)p
+Black 496 579 a Fj(Use)j(this)e(parameter)i(to)f(set)h(the)f(length)g
+(of)h(the)f(echo.)h(The)f(duration)g(parameter)h(scales)g(to)496
+708 y(the)c(actual)f(sample)g(length:)g(so)h(if)f(you)h(set)f(it)h(to)f
+(0.5)g(you)h(will)f(hear)h(the)g(echo)g(when)f(the)h(red)496
+838 y(playback)29 b(cursor)g(is)f(half)h(w)o(ay)h(through)e(the)g
 (sample.)h(This)f(is)h(true)g(for)g(samples)f(that)h(are)496
-1376 y(shorter)24 b(than)h(terminatorX')f(maximum)f(echo)i(b)n(uf)n
-(fer)g(size)g(only)-6 b(.)p Black 396 1605 a Fe(\225)p
-Black 72 w Fg(F)f(eedbac)n(k)25 b(Contr)l(ol)496 1784
-y Fj(Set)g(the)g(echo')-5 b(s)24 b(feedback)i(amount)d(with)h(this)g
-(parameter)-5 b(.)-2 2436 y Fl(2.3.)47 b(Sync)n(hr)m(onization)396
-2652 y Fj(Let')-5 b(s)21 b(start)f(of)n(f)h(with)g(an)g(e)o(xample:)f
-(Say)h(you)g(ha)n(v)o(e)g(tw)o(o)f(drumloops)g(and)h(one)g(bassline)f
-(loaded)396 2781 y(in)35 b(three)g(turntables.)f(Of)h(course)g(you)g(w)
-o(ant)g(these)f(samples)g(to)h(be)g(triggered)g(at)g(the)g(same)396
-2911 y(time)g(b)n(ut)g(you)g(don')n(t)g(w)o(ant)h(to)f(in)l(v)o(est)f
+967 y(shorter)24 b(than)h(terminatorX')f(maximum)f(echo)i(b)n(uf)n(fer)
+g(size)g(only)-6 b(.)p Black 396 1197 a Fe(\225)p Black
+72 w Fg(F)f(eedbac)n(k)25 b(Contr)l(ol)496 1376 y Fj(Set)g(the)g(echo')
+-5 b(s)24 b(feedback)i(amount)d(with)h(this)g(parameter)-5
+b(.)p Black 396 1605 a Fe(\225)p Black 72 w Fg(V)-11
+b(olume)24 b(Contr)l(ol)496 1784 y Fj(This)i(parameter)h(can)h
+(additionally)d(amplify)h(the)g(echo)i(signal.)e(Unlik)o(e)g(the)h
+(feedback)g(pa-)496 1914 y(rameter)40 b(abo)o(v)o(e)f(this)g(parameter)
+h(has)f(no)h(in\003uence)g(on)f(the)h(signal)f(fed)h(back)g(into)f(the)
+496 2043 y(echo-b)n(uf)n(fer)l(,)25 b(it)f(ef)n(fects)h(merely)g(the)f
+(playback)h(v)n(olume)f(of)h(the)f(echo)h(signal.)p Black
+396 2273 a Fe(\225)p Black 72 w Fg(P)-8 b(an)24 b(Contr)l(ol)496
+2452 y Fj(The)f(echo)h(ef)n(fect)f(dif)n(fers)g(from)g(other)g(ef)n
+(fects)g(as)h(it')-5 b(s)22 b(output)g(signal)g(will)h(be)g(mix)o(ed)f
+(seper)n(-)496 2581 y(ately)-6 b(.)30 b(The)h(main)f(goal)h(here)g(is)g
+(to)f(allo)n(w)g(positioning)f(the)h(echo)h(signal)g(at)f(a)i(position)
+d(in)496 2711 y(the)c(stereo)f(panorama)h(that)f(dif)n(fers)h(from)f
+(the)h(main)f(panning)g(positon)f(of)i(the)g(turntable)f(to)496
+2840 y(achie)n(v)o(e)k(a)h(some)n(what)e(spacial)h(ef)n(fect.)h(The)g
+(easy)f(e)o(xample)g(is:)g(turntable')-5 b(s)27 b(panning)h(left,)496
+2970 y(echo')-5 b(s)24 b(panning)f(right.)g(As)h(both)g(pan)g
+(parameters)g(are)h(sequencable)f(you)g(can)g(create)h(nice)496
+3099 y(motion)e(ef)n(fects)i(from)g(this)e(starting)h(point.)-2
+3751 y Fl(2.3.)47 b(Sync)n(hr)m(onization)396 3967 y
+Fj(Let')-5 b(s)21 b(start)f(of)n(f)h(with)g(an)g(e)o(xample:)f(Say)h
+(you)g(ha)n(v)o(e)g(tw)o(o)f(drumloops)g(and)h(one)g(bassline)f(loaded)
+396 4096 y(in)35 b(three)g(turntables.)f(Of)h(course)g(you)g(w)o(ant)g
+(these)f(samples)g(to)h(be)g(triggered)g(at)g(the)g(same)396
+4226 y(time)g(b)n(ut)g(you)g(don')n(t)g(w)o(ant)h(to)f(in)l(v)o(est)f
 (time)h(to)g(cut)g(them)g(to)g(the)h(e)o(xact)f(length.)g(Therefore)396
-3040 y(you)28 b(decide)h(which)f(of)g(the)h(drumloops)e(to)h(mak)o(e)g
+4355 y(you)28 b(decide)h(which)f(of)g(the)h(drumloops)e(to)h(mak)o(e)g
 (the)g(sync)h(master)-5 b(.)27 b(Y)-11 b(ou')o(ll)28
-b(ha)n(v)o(e)g(to)g(do)g(this)396 3170 y(before)34 b(you)f(enable)g
+b(ha)n(v)o(e)g(to)g(do)g(this)396 4485 y(before)34 b(you)f(enable)g
 (the)g(audio)f(engine)h(\(for)h(no)n(w\).)e(Only)h(one)g(turntable)f
-(can)i(be)f(the)g(sync)396 3299 y(master)-5 b(.)30 b(No)n(w)g(you)g
+(can)i(be)f(the)g(sync)396 4614 y(master)-5 b(.)30 b(No)n(w)g(you)g
 (can)h(mak)o(e)g(the)f(other)h(tw)o(o)f(sync)g(clients)g(which)g(will)g
-(cause)h(them)f(to)g(be)396 3429 y(\(re-\)triggered)k(whene)n(v)o(er)e
+(cause)h(them)f(to)g(be)396 4744 y(\(re-\)triggered)k(whene)n(v)o(er)e
 (the)g(master)h(is)f(\(re-\)triggered.)i(The)e(number)h(you)f(can)h
-(select)g(to)396 3558 y(the)24 b(right)e(of)i(the)f Fg(client)g(b)n
+(select)g(to)396 4873 y(the)24 b(right)e(of)i(the)f Fg(client)g(b)n
 (utton)f Fj(sets)h(the)h(trigger)f(delay)g(for)h(the)f(b)n(utton:)f(if)
-i(it')-5 b(s)22 b(set)h(to)h(zero)g(the)396 3688 y(turntable)k(will)f
+i(it')-5 b(s)22 b(set)h(to)h(zero)g(the)396 5003 y(turntable)k(will)f
 (be)h(triggered)f(with)h(e)n(v)o(ery)f(master)h(trigger)l(,)f(if)h(it')
 -5 b(s)27 b(set)h(to)g(1)g(it')o(ll)f(be)h(triggered)396
-3817 y(e)n(v)o(ery)c(2nd)h(master)f(trigger)h(and)g(so)f(on.)396
-3997 y(A)35 b(nice)g(side)f(ef)n(fect)h(of)f(this)g(feature)h(is:)f
-(you)g(can)h(no)n(w)f(scratch)h(the)f(second)g(\(sync)h(client\))396
-4126 y(drum)c(loop)f(and)g(no)h(matter)g(whether)f(you')-5
+5132 y(e)n(v)o(ery)c(2nd)h(master)f(trigger)h(and)g(so)f(on.)p
+Black 3643 5692 a Fg(16)p Black eop
+%%Page: 17 17
+17 16 bop Black 2885 88 a Fg(Chapter)25 b(2.)f(Oper)o(ation)p
+Black 396 579 a Fj(A)35 b(nice)g(side)f(ef)n(fect)h(of)f(this)g
+(feature)h(is:)f(you)g(can)h(no)n(w)f(scratch)h(the)f(second)g(\(sync)h
+(client\))396 708 y(drum)c(loop)f(and)g(no)h(matter)g(whether)f(you')-5
 b(re)31 b(scratching)g(is)f(good)g(or)h(not)g(the)f(beat)h(will)f(be)
-396 4256 y(triggered)25 b(correctly)g(again)f(;\))-2
-4758 y Fl(2.4.)47 b(Grab)g(Mode)i(Operation)396 4974
-y Fj(After)30 b(pressing)f(the)h Fg(Mouse)g(Gr)o(ab)e(b)n(utton)h
-Fj(terminatorX)g(enters)g("grab)h(mode".)f(This)g(mode)396
-5103 y(actually)20 b(locks)f(the)h(mouse)f(\(as)h(this)f(input)f(is)i
-(no)n(w)f(used)g(to)h(control)f(the)h(realtime)f(parameters\))p
-Black 3645 5692 a Fg(15)p Black eop
-%%Page: 16 16
-16 15 bop Black 2885 88 a Fg(Chapter)25 b(2.)f(Oper)o(ation)p
-Black 396 579 a Fj(and)38 b(therefore)h(you')o(ll)e(ha)n(v)o(e)h(to)f
-(kno)n(w)g(some)h(mouse/k)o(e)o(yboard)e(shortcuts)h(to)g(control)h
-(the)396 708 y(softw)o(are)25 b(without)f(the)g(GUI.)396
-888 y(Press)h Fh(ESCAPE)h Fj(to)f(quit)f(grab)h(mode.)396
-1067 y(Select)j(the)g(turntable)f(with)f(input)h(focus:)g(The)h
-(\002rst)f(turntable)g(to)g(hold)g(the)g(input)g(focus)g(will)396
-1197 y(be)j(the)g(\002rst)g(turntable.)f(Y)-11 b(ou)30
-b(can)g(no)n(w)f(use)h Fh(T)-9 b(AB)31 b Fj(or)f(right)f(mouse)h(b)n
-(utton)e(to)i(switch)f(to)h(the)396 1326 y(ne)o(xt)24
-b(turntable.)g(Alternati)n(vle)o(y)f(you)h(can)h(use)g
-Fh(F1)g Fj(to)f Fh(F12)h Fj(to)f(select)h(turtntable)e(1)i(to)g(12.)396
-1505 y(No)n(w)f(the)f(turntable)h(that)f(has)h(the)g(focus)g(is)g(the)g
-(one)g(you)f(will)g(manipulate)g(with)g(your)h(mouse)396
-1635 y(and)d(k)o(e)o(yboard)g(inputs:)e(Note)i(that)g(you)g(can)g
+396 838 y(triggered)25 b(correctly)g(again)f(;\))-2 1340
+y Fl(2.4.)47 b(Grab)g(Mode)i(Operation)396 1556 y Fj(After)30
+b(pressing)f(the)h Fg(Mouse)g(Gr)o(ab)e(b)n(utton)h Fj(terminatorX)g
+(enters)g("grab)h(mode".)f(This)g(mode)396 1685 y(actually)20
+b(locks)f(the)h(mouse)f(\(as)h(this)f(input)f(is)i(no)n(w)f(used)g(to)h
+(control)f(the)h(realtime)f(parameters\))396 1815 y(and)38
+b(therefore)h(you')o(ll)e(ha)n(v)o(e)h(to)f(kno)n(w)g(some)h(mouse/k)o
+(e)o(yboard)e(shortcuts)h(to)g(control)h(the)396 1944
+y(softw)o(are)25 b(without)f(the)g(GUI.)396 2124 y(Press)h
+Fh(ESCAPE)h Fj(to)f(quit)f(grab)h(mode.)396 2303 y(Select)j(the)g
+(turntable)f(with)f(input)h(focus:)g(The)h(\002rst)f(turntable)g(to)g
+(hold)g(the)g(input)g(focus)g(will)396 2433 y(be)j(the)g(\002rst)g
+(turntable.)f(Y)-11 b(ou)30 b(can)g(no)n(w)f(use)h Fh(T)-9
+b(AB)31 b Fj(or)f(right)f(mouse)h(b)n(utton)e(to)i(switch)f(to)h(the)
+396 2562 y(ne)o(xt)24 b(turntable.)g(Alternati)n(vle)o(y)f(you)h(can)h
+(use)g Fh(F1)g Fj(to)f Fh(F12)h Fj(to)f(select)h(turtntable)e(1)i(to)g
+(12.)396 2741 y(No)n(w)f(the)f(turntable)h(that)f(has)h(the)g(focus)g
+(is)g(the)g(one)g(you)f(will)g(manipulate)g(with)g(your)h(mouse)396
+2871 y(and)d(k)o(e)o(yboard)g(inputs:)e(Note)i(that)g(you)g(can)g
 (actually)g(map)g(dif)n(ferent)f(functions)g(to)h(the)g(mouse)396
-1764 y(x/y)f(axis)g(-)h(so)f(what)g(actually)g(happens)g(when)g(you)g
+3000 y(x/y)f(axis)g(-)h(so)f(what)g(actually)g(happens)g(when)g(you)g
 (mo)o(v)o(e)f(your)h(mouse)g(depends)g(on)g(what)g(you)396
-1894 y(select)25 b(on)g(the)f(x/y)g(control)h(panels)f(for)h(each)h
-(turntable.)p 396 2118 3359 4 v 396 2118 V 396 2273 4
-155 v 424 2209 a Fk(K)o(e)o(y)p 2074 2273 V 1498 w(Function)p
-3751 2273 V 396 2276 3359 4 v 396 2276 V 396 2430 4 155
-v 424 2367 a Fh(T)-9 b(AB)p 2074 2430 V 1483 w Fj(select)25
-b(ne)o(xt)f(turntable)p 3751 2430 V 396 2434 3359 4 v
-396 2434 V 396 2588 4 155 v 424 2524 a Fh(F1)h(to)g(F12)p
-2074 2588 V 1273 w Fj(select)g(turntable)f(1)g(to)h(12)p
-3751 2588 V 396 2591 3359 4 v 396 2591 V 396 2746 4 155
-v 424 2682 a Fh(RETURN)p 2074 2746 V 1258 w Fj(triggers)f(the)h
-(turntable)p 3751 2746 V 396 2749 3359 4 v 396 2749 V
-396 2904 4 155 v 424 2840 a Fh(B)m(A)-5 b(CKSP)e(A)i(CE)p
-2074 2904 V 1084 w Fj(stops)24 b(the)g(turntable)p 3751
-2904 V 396 2907 3359 4 v 396 2907 V 396 3061 4 155 v
-424 2997 a Fh(S)p 2074 3061 V 1623 w Fj(toggles)g("Sync)g(Client")p
-3751 3061 V 396 3065 3359 4 v 396 3065 V 396 3349 4 284
-v 424 3155 a Fh(SP)-7 b(A)i(CE)p 2074 3349 V 1364 w Fj(while)24
-b(pressed)h(turntable)f(speed)h(is)f(mapped)2077 3285
-y(to)g(mouse)g(speed)h(\(scratching!\))p 3751 3349 V
-396 3352 3359 4 v 396 3352 V 396 3506 4 155 v 424 3442
-a Fh(AL)-9 b(T)p 2074 3506 V 1483 w Fj(mute)24 b(on/of)n(f)p
-3751 3506 V 396 3510 3359 4 v 396 3510 V 396 3664 4 155
-v 424 3600 a Fh(CTRL)p 2074 3664 V 1402 w Fj(mute)g(on/of)n(f)g(\(in)l
-(v)o(erted\))p 3751 3664 V 396 3667 3359 4 v 396 3667
-V 396 3822 4 155 v 424 3758 a Fh(F)p 2074 3822 V 1617
+3130 y(select)25 b(on)g(the)f(x/y)g(control)h(panels)f(for)h(each)h
+(turntable.)p 396 3354 3359 4 v 396 3354 V 396 3509 4
+155 v 424 3445 a Fk(K)o(e)o(y)p 2074 3509 V 1498 w(Function)p
+3751 3509 V 396 3512 3359 4 v 396 3512 V 396 3666 4 155
+v 424 3603 a Fh(T)-9 b(AB)p 2074 3666 V 1483 w Fj(select)25
+b(ne)o(xt)f(turntable)p 3751 3666 V 396 3670 3359 4 v
+396 3670 V 396 3824 4 155 v 424 3760 a Fh(F1)h(to)g(F12)p
+2074 3824 V 1273 w Fj(select)g(turntable)f(1)g(to)h(12)p
+3751 3824 V 396 3827 3359 4 v 396 3827 V 396 3982 4 155
+v 424 3918 a Fh(RETURN)p 2074 3982 V 1258 w Fj(triggers)f(the)h
+(turntable)p 3751 3982 V 396 3985 3359 4 v 396 3985 V
+396 4140 4 155 v 424 4076 a Fh(B)m(A)-5 b(CKSP)e(A)i(CE)p
+2074 4140 V 1084 w Fj(stops)24 b(the)g(turntable)p 3751
+4140 V 396 4143 3359 4 v 396 4143 V 396 4297 4 155 v
+424 4233 a Fh(S)p 2074 4297 V 1623 w Fj(toggles)g("Sync)g(Client")p
+3751 4297 V 396 4301 3359 4 v 396 4301 V 396 4585 4 284
+v 424 4391 a Fh(SP)-7 b(A)i(CE)p 2074 4585 V 1364 w Fj(while)24
+b(pressed)h(turntable)f(speed)h(is)f(mapped)2077 4521
+y(to)g(mouse)g(speed)h(\(scratching!\))p 3751 4585 V
+396 4588 3359 4 v 396 4588 V 396 4742 4 155 v 424 4678
+a Fh(AL)-9 b(T)p 2074 4742 V 1483 w Fj(mute)24 b(on/of)n(f)p
+3751 4742 V 396 4746 3359 4 v 396 4746 V 396 4900 4 155
+v 424 4836 a Fh(CTRL)p 2074 4900 V 1402 w Fj(mute)g(on/of)n(f)g(\(in)l
+(v)o(erted\))p 3751 4900 V 396 4903 3359 4 v 396 4903
+V 396 5058 4 155 v 424 4994 a Fh(F)p 2074 5058 V 1617
 w Fj(\("f)o(ast"\))g(w)o(arp)h(mode)g(\(while)f(scratching\))p
-3751 3822 V 396 3825 3359 4 v 396 3825 V 396 4109 4 284
-v 424 3916 a Fh(W)p 2074 4109 V 1578 w Fj(same)g(as)h(abo)o(v)o(e)f(b)n
-(ut)g(the)h(audio)f(will)g(be)2077 4045 y(muted)g(while)g(w)o(arping)p
-3751 4109 V 396 4112 3359 4 v 396 4112 V 396 4231 a Fh(T)-9
-b(able)26 b(2-1.)e(K)n(eyboard)h(Contr)n(ols)g(in)g(Grab)g(Mode)p
-396 4553 V 396 4553 V 396 4708 4 155 v 424 4644 a Fk(Mouse)k(Button)p
-2074 4708 V 1013 w(Function)p 3751 4708 V 396 4711 3359
-4 v 396 4711 V 396 4995 4 284 v 424 4802 a Fg(Left)c(b)n(utton)p
-2074 4995 V 1244 w Fj(same)f(as)h Fh(SP)-7 b(A)i(CE:)25
-b(scratching)h(\(triggers)2077 4931 y(the)g(tur)o(ntable)g(when)f
-(stopped\))p 3751 4995 V 396 4998 3359 4 v 396 4998 V
-396 5153 4 155 v 424 5089 a Fg(Right)f(b)n(utton)p 2074
-5153 V 1183 w Fj(select)h(ne)o(xt)f(turntable)p 3751
-5153 V 396 5156 3359 4 v Black 3643 5692 a Fg(16)p Black
-eop
-%%Page: 17 17
-17 16 bop Black 2885 67 a Fg(Chapter)25 b(2.)f(Oper)o(ation)p
+3751 5058 V 396 5061 3359 4 v Black 3641 5692 a Fg(17)p
+Black eop
+%%Page: 18 18
+18 17 bop Black 2885 67 a Fg(Chapter)25 b(2.)f(Oper)o(ation)p
 Black 396 499 3359 4 v 396 499 V 396 654 4 155 v 424
-590 a Fk(Mouse)29 b(Button)p 2074 654 V 1013 w(Function)p
-3751 654 V 396 654 3359 4 v 396 808 4 155 v 424 744 a
-Fg(Middle)c(b)n(utton)p 2074 808 V 1116 w Fj(mute)f(on/of)n(f)p
-3751 808 V 396 811 3359 4 v 396 811 V 396 930 a Fh(T)-9
-b(able)26 b(2-2.)e(Mouse)h(Button)i(Contr)n(ols)e(in)g(Grab)f(Mode)396
-1159 y Fj(Scratching)31 b(w)o(orks)f(as)g(before:)h(press)f
-Fh(SP)-7 b(A)i(CE)30 b Fj(or)g(left)g(mouse)g(b)n(utton)f(to)h
-(actually)g(scratch:)396 1288 y(no)n(w)25 b(your)h(mouse)f(controls)g
-(the)h(turntables)f(speed.)h(Release)h(it)e(to)h(let)g(that)f
-(turntable)g(spin)g(at)396 1418 y(def)o(ault)g(speed)g(again.)-2
-1920 y Fl(2.5.)47 b(Dra)n(g)h(And)h(Dr)m(op)396 2136
-y Fj(Since)20 b(V3.55)e(terminatorX)g(pro)o(vides)f(multiple)g
+590 a Fk(K)o(e)o(y)p 2074 654 V 1498 w(Function)p 3751
+654 V 396 654 3359 4 v 396 938 4 284 v 424 744 a Fh(W)p
+2074 938 V 1578 w Fj(same)g(as)h(abo)o(v)o(e)f(b)n(ut)g(the)h(audio)f
+(will)g(be)2077 874 y(muted)g(while)g(w)o(arping)p 3751
+938 V 396 941 3359 4 v 396 941 V 396 1059 a Fh(T)-9 b(able)26
+b(2-1.)e(K)n(eyboard)h(Contr)n(ols)g(in)g(Grab)g(Mode)p
+396 1382 V 396 1382 V 396 1536 4 155 v 424 1472 a Fk(Mouse)k(Button)p
+2074 1536 V 1013 w(Function)p 3751 1536 V 396 1540 3359
+4 v 396 1540 V 396 1823 4 284 v 424 1630 a Fg(Left)c(b)n(utton)p
+2074 1823 V 1244 w Fj(same)f(as)h Fh(SP)-7 b(A)i(CE:)25
+b(scratching)h(\(triggers)2077 1760 y(the)g(tur)o(ntable)g(when)f
+(stopped\))p 3751 1823 V 396 1827 3359 4 v 396 1827 V
+396 1981 4 155 v 424 1917 a Fg(Right)f(b)n(utton)p 2074
+1981 V 1183 w Fj(select)h(ne)o(xt)f(turntable)p 3751
+1981 V 396 1985 3359 4 v 396 1985 V 396 2139 4 155 v
+424 2075 a Fg(Middle)h(b)n(utton)p 2074 2139 V 1116 w
+Fj(mute)f(on/of)n(f)p 3751 2139 V 396 2142 3359 4 v 396
+2142 V 396 2261 a Fh(T)-9 b(able)26 b(2-2.)e(Mouse)h(Button)i(Contr)n
+(ols)e(in)g(Grab)f(Mode)396 2490 y Fj(Scratching)31 b(w)o(orks)f(as)g
+(before:)h(press)f Fh(SP)-7 b(A)i(CE)30 b Fj(or)g(left)g(mouse)g(b)n
+(utton)f(to)h(actually)g(scratch:)396 2619 y(no)n(w)25
+b(your)h(mouse)f(controls)g(the)h(turntables)f(speed.)h(Release)h(it)e
+(to)h(let)g(that)f(turntable)g(spin)g(at)396 2749 y(def)o(ault)g(speed)
+g(again.)-2 3251 y Fl(2.5.)47 b(Dra)n(g)h(And)h(Dr)m(op)396
+3467 y Fj(Since)20 b(V3.55)e(terminatorX)g(pro)o(vides)f(multiple)g
 (DND-Drop-T)-8 b(ar)n(gets)19 b(for)g(use)g(with)f(GNOME)396
-2265 y(/)32 b(gmc)g(\(gmc)f(is)h(the)g(GNU)f(Midnight)f(Commander\),)i
-(Nautilus)f(or)h(the)f(Elightenment)f(File)396 2395 y(Manager)i
+3596 y(/)32 b(gmc)g(\(gmc)f(is)h(the)g(GNU)f(Midnight)f(Commander\),)i
+(Nautilus)f(or)h(the)f(Elightenment)f(File)396 3726 y(Manager)i
 (\(efm\).)f(Y)-11 b(ou)31 b(can)h(load)f(an)g(audio\002le)h(into)e(an)h
-(e)o(xisting)f(turntable)g(by)h(dragging)g(it)396 2524
+(e)o(xisting)f(turntable)g(by)h(dragging)g(it)396 3855
 y(from)e(a)f(gmc)h(\(or)f(efm)h(or)g(whate)n(v)o(er\)-windo)n(w)d(and)j
 (drop)f(it)g(o)o(v)o(er)g(a.)h(the)f Fg(\002le)g(b)n(utton)g
-Fj(\(audio-)396 2654 y(display\))g(or)g(b)l(.)h(\(the)f(easier)h(tar)n
+Fj(\(audio-)396 3985 y(display\))g(or)g(b)l(.)h(\(the)f(easier)h(tar)n
 (get)f(;\))h(o)o(v)o(er)e(the)i(audio-display)d(\(the)j(green)g(on)f
-(black)g(widget)396 2784 y(that)d(displays)e(the)i(audiodata\).)396
-2963 y(T)-8 b(o)40 b(add)f(a)h(\002le)g(to)f(the)g(set)g(\(==)h(to)g
+(black)g(widget)396 4114 y(that)d(displays)e(the)i(audiodata\).)396
+4294 y(T)-8 b(o)40 b(add)f(a)h(\002le)g(to)f(the)g(set)g(\(==)h(to)g
 (load)f(the)g(\002le)h(into)e(a)i(*ne)n(w*)f(turntable\))g(simply)f
-(drop)396 3092 y(the)29 b(audio\002le)g(o)o(v)o(er)f(the)h("Ne)n(w)g(T)
+(drop)396 4423 y(the)29 b(audio\002le)g(o)o(v)o(er)f(the)h("Ne)n(w)g(T)
 l(urntable")f(Button.)g(T)-8 b(o)29 b(load)g(a)g(complete)g
-(terminatorX-set)396 3222 y(simply)23 b(drop)i(the)g(set\002le)g
+(terminatorX-set)396 4553 y(simply)23 b(drop)i(the)g(set\002le)g
 (\(*.tX\))f(o)o(v)o(er)g(the)h("Load)f(Set")h(b)n(utton.)-2
-3724 y Fl(2.6.)47 b(The)h(Sequencer)396 3940 y Fj(Release)37
-b(3.60)e(introduces)g(the)g(sequencer)-5 b(.)35 b(It)h(can)g(record)g
-(and)g(play)f(back)h(e)n(v)o(ents)e(for)i(the)396 4069
-y(follo)n(wing)23 b(parameters:)p Black 396 4348 a Fe(\225)p
-Black 72 w Fj(master)h(v)n(olume)g(&)h(pitch)p Black
-396 4528 a Fe(\225)p Black 72 w Fj(scratching)p Black
-396 4707 a Fe(\225)p Black 72 w Fj(\(turntable\))f(v)n(olume)g(&)h
-(pitch)p Black 396 4886 a Fe(\225)p Black 72 w Fj(triggers)p
-Black 396 5066 a Fe(\225)p Black 72 w Fj(loop)f(\(on/of)n(f\))p
-Black 396 5245 a Fe(\225)p Black 72 w Fj(sync)g(client)h(settings)p
-Black 3641 5692 a Fg(17)p Black eop
-%%Page: 18 18
-18 17 bop Black 2885 67 a Fg(Chapter)25 b(2.)f(Oper)o(ation)p
-Black Black 396 579 a Fe(\225)p Black 72 w Fj(muting)p
-Black 396 758 a Fe(\225)p Black 72 w Fg(all)i Fj(parameters)g(for)h
-(the)f(ef)n(fects.)g(This)g(includes)f(b)n(uilt-in)g(ef)n(fects)h(\(lo)
-n(wpass)f(and)i(echo\))f(as)496 888 y(well)e(as)h(LADSP)-9
-b(A)25 b(plugins.)396 1067 y(T)-8 b(o)37 b(record)g(e)n(v)o(ents)f
+5055 y Fl(2.6.)47 b(The)h(Sequencer)p Black 3645 5692
+a Fg(18)p Black eop
+%%Page: 19 19
+19 18 bop Black 2885 67 a Fg(Chapter)25 b(2.)f(Oper)o(ation)p
+Black 396 579 a Fj(Release)37 b(3.60)e(introduces)g(the)g(sequencer)-5
+b(.)35 b(It)h(can)g(record)g(and)g(play)f(back)h(e)n(v)o(ents)e(for)i
+(the)396 708 y(follo)n(wing)23 b(parameters:)p Black
+396 987 a Fe(\225)p Black 72 w Fj(master)h(v)n(olume)g(&)h(pitch)p
+Black 396 1167 a Fe(\225)p Black 72 w Fj(scratching)p
+Black 396 1346 a Fe(\225)p Black 72 w Fj(\(turntable\))f(v)n(olume)g(&)
+h(pitch)p Black 396 1525 a Fe(\225)p Black 72 w Fj(triggers)p
+Black 396 1705 a Fe(\225)p Black 72 w Fj(loop)f(\(on/of)n(f\))p
+Black 396 1884 a Fe(\225)p Black 72 w Fj(sync)g(client)h(settings)p
+Black 396 2063 a Fe(\225)p Black 72 w Fj(muting)p Black
+396 2243 a Fe(\225)p Black 72 w Fg(all)h Fj(parameters)g(for)h(the)f
+(ef)n(fects.)g(This)g(includes)f(b)n(uilt-in)g(ef)n(fects)h(\(lo)n
+(wpass)f(and)i(echo\))f(as)496 2372 y(well)e(as)h(LADSP)-9
+b(A)25 b(plugins.)396 2552 y(T)-8 b(o)37 b(record)g(e)n(v)o(ents)f
 (simply)f(press)i(the)g Fg(Recor)l(d)j Fj(b)n(utton)35
-b(of)i(the)g(sequencer)l(,)g(then)g(press)g(the)396 1197
+b(of)i(the)g(sequencer)l(,)g(then)g(press)g(the)396 2681
 y Fg(Play)26 b Fj(b)n(utton.)e(All)i(actions)f(\(for)h(sequencable)g
 (parameters)g(-)g(see)h(abo)o(v)o(e\))e(you)g(no)n(w)g(tak)o(e)h(will)
-396 1326 y(be)33 b(recorded)g(into)e(the)h(song)g(list.)f(Press)i
+396 2811 y(be)33 b(recorded)g(into)e(the)h(song)g(list.)f(Press)i
 Fg(Stop)e Fj(and)i Fg(Play)f Fj(again)g(to)f(see/hear)i(ho)n(w)f
-(termina-)396 1456 y(torX)j(plays)g(back)h(the)f(e)n(v)o(ents)f
+(termina-)396 2940 y(torX)j(plays)g(back)h(the)f(e)n(v)o(ents)f
 (recorded)j(before.)e(Y)-11 b(ou)36 b(can)g(no)n(w)e(record)i(e)n(v)o
-(ents)e(again)h(for)396 1585 y(e.g.)d(another)f(turntable)g(or)h
+(ents)e(again)h(for)396 3070 y(e.g.)d(another)f(turntable)g(or)h
 (record)g(other)g(parameters)g(for)f(the)h(same)f(turntable)g(-)h
-(whate)n(v)o(er)396 1715 y(you)23 b(w)o(ant)g(to)g(do.)g(Recording)g(e)
+(whate)n(v)o(er)396 3199 y(you)23 b(w)o(ant)g(to)g(do.)g(Recording)g(e)
 n(v)o(ents)f(for)i(parameters)f(for)h(wich)f(e)n(v)o(ents)e(ha)n(v)o(e)
-i(been)h(recorded)396 1844 y(before)29 b(will)f(result)g(in)g(dubbing:)
+i(been)h(recorded)396 3329 y(before)29 b(will)f(result)g(in)g(dubbing:)
 f(if)i(you)f(touch)g(a)g(parameter)h(while)f(recording,)h(e)n(v)o(ents)
-e(pre-)396 1974 y(viously)e(recorded)h(will)f(be)h(erased)h(from)e(the)
+e(pre-)396 3458 y(viously)e(recorded)h(will)f(be)h(erased)h(from)e(the)
 h(moment)e(you)i(touch)f(the)h(paramater)g(until)f(you)396
-2103 y(stop)f(recording.)396 2283 y(When)19 b(recording)g(long)f
+3588 y(stop)f(recording.)396 3767 y(When)19 b(recording)g(long)f
 (sequences/songs)f(you)i(can)g(use)g(the)f(sequencer)n(-scale)i(to)e
-(start)h(record-)396 2412 y(ing/playback)27 b(from)h(an)o(y)f
+(start)h(record-)396 3896 y(ing/playback)27 b(from)h(an)o(y)f
 (song-position)f(you)h(w)o(ant.)h(T)-8 b(o)28 b(record)g(a)h(single)e
-(paramteter)h(v)n(alue)396 2542 y(at)e(a)h(certain)f(position)e(simply)
+(paramteter)h(v)n(alue)396 4026 y(at)e(a)h(certain)f(position)e(simply)
 g(mo)o(v)o(e)h(the)h(sequencer)n(-scale)g(to)g(that)f(position,)g
-(press)g Fg(Recor)l(d,)396 2671 y Fj(set)g(the)g(parameter)g(and)f
-(press)h Fg(Stop)f Fj(again.)396 2850 y(There)29 b(is)g(no)f(other)h
+(press)g Fg(Recor)l(d,)396 4156 y Fj(set)g(the)g(parameter)g(and)f
+(press)h Fg(Stop)f Fj(again.)396 4335 y(There)29 b(is)g(no)f(other)h
 (the)f(w)o(ay)h(to)g(edit)f(the)h(sequencer)g(e)n(v)o(ents)e(currently)
--6 b(,)28 b(b)n(ut)g(future)h(releases)396 2980 y(may)c(feature)g(an)g
-(e)n(v)o(ent-list)e(editor)-5 b(.)-2 3482 y Fl(2.7.)47
-b(Plugins)g(\(LADSP)-17 b(A\))396 3698 y Fj(Since)31
-b(release)h(3.70)e(terminatorX)f(supports)h(LADSP)-9
-b(A-plugins.)29 b(LADSP)-9 b(A)31 b(is)f(the)h("Linux)396
-3827 y(Audio)j(De)n(v)o(eloper')-5 b(s)32 b(Simple)i(Plugin)g(API")g
+-6 b(,)28 b(b)n(ut)g(future)h(releases)396 4464 y(may)c(feature)g(an)g
+(e)n(v)o(ent-list)e(editor)-5 b(.)-2 4967 y Fl(2.7.)47
+b(Plugins)g(\(LADSP)-17 b(A\))p Black 3645 5692 a Fg(19)p
+Black eop
+%%Page: 20 20
+20 19 bop Black 2885 67 a Fg(Chapter)25 b(2.)f(Oper)o(ation)p
+Black 396 579 a Fj(Since)31 b(release)h(3.70)e(terminatorX)f(supports)h
+(LADSP)-9 b(A-plugins.)29 b(LADSP)-9 b(A)31 b(is)f(the)h("Linux)396
+708 y(Audio)j(De)n(v)o(eloper')-5 b(s)32 b(Simple)i(Plugin)g(API")g
 (which)g(w)o(as)g(designed)g(by)g(de)n(v)o(elopers)f(on)h(the)396
-3957 y(Linux-Audio-De)n(v)o(eloper)n(-Mailinglist)29
-b(and)k(is)g(maintained)f(by)i(Richard)f(W)-9 b(.E.)34
-b(Furse.)f(F)o(or)396 4086 y(more)c(information)f(on)h(LADSP)-9
-b(A,)30 b(other)f(LADSP)-9 b(A-hosts)28 b(and)i(LADSP)-9
-b(A-plugins)28 b(check-)396 4216 y(out)c(the)h(LADSP)-9
-b(A)25 b(homepage)g(\(http://www)-6 b(.ladspa.or)n(g\).)396
-4395 y(Not)34 b(e)n(v)o(ery)g(plugin)g(is)g(supported)f(by)i
-(terminatorX)e(though.)h(As)g(the)h(plugins)e(are)i(inserted)396
-4525 y(into)29 b(the)h(per)n(-turntable)f(ef)n(fect-queue,)h(the)o(y)f
-(ha)n(v)o(e)h(to)f(be)h(mono)f(plugins)f(\(as)j(is)e(that)g(queue\))396
-4654 y(for)i(no)n(w)-6 b(.)28 b(This)h(is)h(why)f(terminatorX)g(will)g
-(load)h(plugins)f(with)g Fg(one)h Fj(audio-in)f(port)h(and)f
-Fg(one)396 4784 y Fj(audio-out)24 b(port)g(only)-6 b(.)396
-4963 y(The)39 b(decision)f(on)g(wether)h(a)g(plugin)e(is)h
-(terminatorX-suitable)f(is)h(made)h(on)f(terminatorX)396
-5093 y(startup,)33 b(so)g(only)f(plugins)g(that)h(\002t)g(into)f(the)h
-(ef)n(fect)h(queue)f(will)g(be)g(of)n(fered)h(in)e(the)i(plugin-)396
-5222 y(menu)26 b(that)g(pops)g(up)g(when)h(the)f Fg(FX)31
-b Fj(b)n(utton)25 b(is)h(click)o(ed.)g(On)g(startup)g(terminatorX)g
-(will)f(print)p Black 3645 5692 a Fg(18)p Black eop
-%%Page: 19 19
-19 18 bop Black 2885 67 a Fg(Chapter)25 b(2.)f(Oper)o(ation)p
-Black 396 579 a Fj(some)30 b(information)f(on)h(the)g(LADSP)-9
-b(A-plugins)30 b(analysis)f(process)h(to)h(the)f(standard)g(output.)396
-708 y(W)-8 b(atch)38 b(the)f(terminal)g(you)g(run)g(terminatorX)f(from)
-h(for)h(that)f(info)g(if)g(you)g(ha)n(v)o(e)h(problems)396
-838 y(loading)24 b(a)h(plugin.)396 1017 y(As)30 b(speci\002ed)g(in)g
-(the)g(LADSP)-9 b(A-standard)30 b(LADSP)-9 b(A-plugins)28
-b(can)j(be)f(located)g(in)f(multiple)396 1147 y(directories)24
-b(across)g(the)f(\002lesystem.)g(T)-8 b(o)24 b(enable)g(LADSP)-9
-b(A-hosts)23 b(to)g(\002nd)h(those)g(plugins)e(you)396
-1276 y(ha)n(v)o(e)40 b(to)f(set)g(the)h(en)l(vironment)e(v)n(ariable)h
-(LADSP)-9 b(A_P)g(A)e(TH)40 b(accordingly)-6 b(.)38 b(Let')-5
-b(s)39 b(say)h(you)396 1406 y(store)34 b(your)g(plugins)f(in)h
+838 y(Linux-Audio-De)n(v)o(eloper)n(-Mailinglist)29 b(and)k(is)g
+(maintained)f(by)i(Richard)f(W)-9 b(.E.)34 b(Furse.)f(F)o(or)396
+967 y(more)c(information)f(on)h(LADSP)-9 b(A,)30 b(other)f(LADSP)-9
+b(A-hosts)28 b(and)i(LADSP)-9 b(A-plugins)28 b(check-)396
+1097 y(out)c(the)h(LADSP)-9 b(A)25 b(homepage)g(\(http://www)-6
+b(.ladspa.or)n(g\).)396 1276 y(Not)34 b(e)n(v)o(ery)g(plugin)g(is)g
+(supported)f(by)i(terminatorX)e(though.)h(As)g(the)h(plugins)e(are)i
+(inserted)396 1406 y(into)29 b(the)h(per)n(-turntable)f(ef)n
+(fect-queue,)h(the)o(y)f(ha)n(v)o(e)h(to)f(be)h(mono)f(plugins)f(\(as)j
+(is)e(that)g(queue\))396 1535 y(for)i(no)n(w)-6 b(.)28
+b(This)h(is)h(why)f(terminatorX)g(will)g(load)h(plugins)f(with)g
+Fg(one)h Fj(audio-in)f(port)h(and)f Fg(one)396 1665 y
+Fj(audio-out)24 b(port)g(only)-6 b(.)396 1844 y(The)39
+b(decision)f(on)g(wether)h(a)g(plugin)e(is)h(terminatorX-suitable)f(is)
+h(made)h(on)f(terminatorX)396 1974 y(startup,)33 b(so)g(only)f(plugins)
+g(that)h(\002t)g(into)f(the)h(ef)n(fect)h(queue)f(will)g(be)g(of)n
+(fered)h(in)e(the)i(plugin-)396 2103 y(menu)26 b(that)g(pops)g(up)g
+(when)h(the)f Fg(FX)31 b Fj(b)n(utton)25 b(is)h(click)o(ed.)g(On)g
+(startup)g(terminatorX)g(will)f(print)396 2233 y(some)30
+b(information)f(on)h(the)g(LADSP)-9 b(A-plugins)30 b(analysis)f
+(process)h(to)h(the)f(standard)g(output.)396 2362 y(W)-8
+b(atch)38 b(the)f(terminal)g(you)g(run)g(terminatorX)f(from)h(for)h
+(that)f(info)g(if)g(you)g(ha)n(v)o(e)h(problems)396 2492
+y(loading)24 b(a)h(plugin.)396 2671 y(As)30 b(speci\002ed)g(in)g(the)g
+(LADSP)-9 b(A-standard)30 b(LADSP)-9 b(A-plugins)28 b(can)j(be)f
+(located)g(in)f(multiple)396 2801 y(directories)24 b(across)g(the)f
+(\002lesystem.)g(T)-8 b(o)24 b(enable)g(LADSP)-9 b(A-hosts)23
+b(to)g(\002nd)h(those)g(plugins)e(you)396 2930 y(ha)n(v)o(e)40
+b(to)f(set)g(the)h(en)l(vironment)e(v)n(ariable)h(LADSP)-9
+b(A_P)g(A)e(TH)40 b(accordingly)-6 b(.)38 b(Let')-5 b(s)39
+b(say)h(you)396 3060 y(store)34 b(your)g(plugins)f(in)h
 Ff(/usr/lib/ladspa)e Fj(and)i Ff(/home/yourlogin/plugins)c
-Fj(then)396 1535 y(you)25 b(w)o(ould)f(ha)n(v)o(e)g(to)h(set:)396
-1715 y(LADSP)-9 b(A_P)g(A)e(TH=)p Ff
-(/usr/lib/ladspa:/home/yourlogin/plu)o(gins)396 1894
+Fj(then)396 3189 y(you)25 b(w)o(ould)f(ha)n(v)o(e)g(to)h(set:)396
+3368 y(LADSP)-9 b(A_P)g(A)e(TH=)p Ff
+(/usr/lib/ladspa:/home/yourlogin/plu)o(gins)396 3548
 y Fj(As)29 b(a)g(f)o(allback)g(terminatorX)f(will)g(look)g(in)h(the)f
-(standard)h(directories)f Ff(/usr/lib/ladspa)396 2023
+(standard)h(directories)f Ff(/usr/lib/ladspa)396 3677
 y Fj(and)c Ff(/usr/local/lib/ladspa)19 b Fj(if)k(the)g(en)l(vironment)f
 (v)n(ariable)h(is)g(not)f(set.)h(Note)h(that)e(this)396
-2153 y(is)31 b(just)g(a)h(con)l(v)o(enience-function,)e(in)i(order)f
+3807 y(is)31 b(just)g(a)h(con)l(v)o(enience-function,)e(in)i(order)f
 (for)h(other)g(LADSP)-9 b(A-hosts)31 b(to)g(w)o(ork)g(properly)-6
-b(,)396 2283 y(be)24 b(sure)f(to)g(set)h(your)f(LADSP)-9
+b(,)396 3936 y(be)24 b(sure)f(to)g(set)h(your)f(LADSP)-9
 b(A_P)g(A)e(TH)23 b(correctly)-6 b(.)23 b(It)h(is)f(a)g(good)g(idea)h
-(to)f(do)g(that)g(from)g(some-)396 2412 y(where)31 b(in)f(your)g
+(to)f(do)g(that)g(from)g(some-)396 4066 y(where)31 b(in)f(your)g
 (system)f(con\002guration)h(\(either)g(in)g(your)g(rc-scripts)g(or)g
-Ff(/etc/profile)e Fj(or)396 2542 y(wheree)n(v)o(er)d(you)f(perefer\).)p
-Black 3645 5692 a Fg(19)p Black eop
-%%Page: 20 20
-20 19 bop Black Black -2 647 a Fi(Chapter)58 b(3.)f(Con\002guration)396
+Ff(/etc/profile)e Fj(or)396 4195 y(wheree)n(v)o(er)d(you)f(perefer\).)p
+Black 3645 5692 a Fg(20)p Black eop
+%%Page: 21 21
+21 20 bop Black Black -2 647 a Fi(Chapter)58 b(3.)f(Con\002guration)396
 944 y Fj(All)26 b(con\002guration)h(b)n(usiness)e(no)n(w)h(happens)g
 (in)h(the)f(Options-dialog.)f(The)h(features)h(that)g(are)396
 1073 y(not)d(completely)g(self-e)o(xplaining)f(do)i(ha)n(v)o(e)f
@@ -1862,9 +2801,9 @@ h(you)f(shorten)f(the)i(c)o(ycle)396 4890 y(time)j(as)g(well,)g
 (the)h(audio)e(ouput)396 5020 y(while)c(scratching)f(after)i(you)e
 (decreased)i(the)f(b)n(uf)n(fersize)g(you)f(might)g(ha)n(v)o(e)h(to)f
 (increase)i(the)396 5149 y(stop-sense)24 b(v)n(alue)g(too.)p
-Black 3645 5692 a Fg(20)p Black eop
-%%Page: 21 21
-21 20 bop Black 2736 67 a Fg(Chapter)24 b(3.)h(Con\002gur)o(ation)p
+Black 3645 5692 a Fg(21)p Black eop
+%%Page: 22 22
+22 21 bop Black 2736 67 a Fg(Chapter)24 b(3.)h(Con\002gur)o(ation)p
 Black 396 579 a Fj(Xinput)k(De)n(vice:)h Fg(W)-6 b(ARNING:)31
 b Fj(Use)f(this)g(option)f(*only*)g(if)h(you)g(w)o(ant)g(to)g(use)g(an)
 g(input)f(de-)396 708 y(vice)22 b(other)f(than)g(your)g(def)o
@@ -1886,19 +2825,19 @@ Fg(Update)f(Delay)h Fj(v)n(alues)f(will)g(cause)h(the)g(parameter)g
 (clicking)g(the)g Fg(Edit)r Fj(-b)n(utton)d(in)j(the)g(main)f(panel)h
 (of)h(the)396 3051 y(vtt-gui.)e(If)g(you)g(enter)h(for)g(e)o(xample)f
 ("myeditor")e(terminatorX)i(will)f(run)i("myeditor)e(sam-)396
-3180 y(ple_in_vtt.w)o(a)n(v".)p Black 3645 5692 a Fg(21)p
+3180 y(ple_in_vtt.w)o(a)n(v".)p Black 3645 5692 a Fg(22)p
 Black eop
-%%Page: 22 22
-22 21 bop Black Black -2 647 a Fi(Chapter)58 b(4.)f(Contact)h(/)g(Do)m
+%%Page: 23 23
+23 22 bop Black Black -2 647 a Fi(Chapter)58 b(4.)f(Contact)h(/)g(Do)m
 (wnload)396 944 y Fj(Find)25 b(out)f(more)h(about)f(terminatorX)g(at)h
 (it')-5 b(s)23 b(homepage)i(\(http://www)-6 b(.terminatorX.cx\).)396
 1123 y(Send)31 b(me)f(comments,)f(b)n(ug-reports,)h(patches)g(or)g
 (scratches)h(\(see)f(scratches)h(section)f(on)g(the)396
 1253 y(terminatorX)24 b(homepage\))h(at:)f(<)p Ff
 (alkoit00@fht-esslingen.de)p Fj(>)p Black 3645 5692 a
-Fg(22)p Black eop
-%%Page: 23 23
-23 22 bop Black Black Black Black eop
+Fg(23)p Black eop
+%%Page: 24 24
+24 23 bop Black Black Black Black eop
 %%Trailer
 end
 userdict /end-hook known{end-hook}if
index 17cf12e730930c048d8b4b43ae6e307ed9a45475..2a1d9da3a6d8c2142bcfa3c8abd705c3c915e6da 100644 (file)
 to lockup X11 or cause other problems under rare conditions. Don't use it on production servers. You have been warned!</PARA></PREFACE>
 <CHAPTER ID="INTRODUCTION"><TITLE>Introduction</TITLE>
 <SECTION ID="WHATITIS"><TITLE>What it is</TITLE>
-<PARA><APPLICATION MOREINFO="NONE">terminatorX</APPLICATION> is a realtime audio synthesizer that allows you to "scratch" on digitally sampled audio data (*.wav, *.au, *.mp3, etc.) the way hiphop-DJs scratch on vinyl records. It features multiple turntables, realtime effects (buit-in as well as LADSPA plugin effects), a sequencer and an easy-to-use gtk+ GUI.</PARA>
+<PARA><APPLICATION MOREINFO="NONE">terminatorX</APPLICATION> is a realtime audio synthesizer that allows you to "scratch" on digitally sampled audio data (*.wav, *.au, *.mp3, etc.) the way hiphop-DJs scratch on vinyl records. It features multiple turntables, realtime effects (built-in as well as LADSPA plugin effects), a sequencer and an easy-to-use gtk+ GUI.</PARA>
 <PARA>This is <EMPHASIS>beta</EMPHASIS> Software please help me fix bugs. See <XREF LINKEND="CONTACT"> (Contact/Download). Please read this <FILENAME MOREINFO="NONE">README</FILENAME> and take a look at the <ULINK URL="http://www.terminatorX.cx">homepage</ULINK>.</PARA></SECTION>
 <SECTION ID="QUICKSTART"><TITLE>Quickstart</TITLE>
 <ORDEREDLIST CONTINUATION="RESTARTS" INHERITNUM="IGNORE"><LISTITEM><PARA>If you don't have <APPLICATION MOREINFO="NONE">LADSPA</APPLICATION> (Linux Audio Developer's Simple Plugin API) installed, go and get it from the <ULINK URL="http://www.ladspa.org">LADSPA-homepage</ULINK> and install the SDK. terminatorX requires <FILENAME MOREINFO="NONE">ladspa.h</FILENAME>.</PARA></LISTITEM>
 <LISTITEM><PARA>Install terminatorX (see <FILENAME MOREINFO="NONE">INSTALL</FILENAME>)</PARA></LISTITEM>
 <LISTITEM><PARA>Run terminatorX</PARA></LISTITEM>
-<LISTITEM><PARA>Load an audiofile into the available turntable (you can add more turntables if you want) (Hint: Click on the button that holds "NONE" )</PARA></LISTITEM>
+       <LISTITEM><PARA>Load an audiofile into the available turntable (you can add more turntables if you want) (Hint: Click on the button that holds "NONE" to load an audiofile, or drop one over the audiofile display from your filemanager if your filemanager is efm, gmc, Nautilus or compatible (kfm does <emphasis>not</emphasis> work))</PARA></LISTITEM>
 <LISTITEM><PARA>Click on the "Audio Engine"-button to start playback.</PARA></LISTITEM>
 <LISTITEM><PARA>Click on the "Mouse-Grab"-button to enter grab mode. The turntable with the red border has the input focus.</PARA></LISTITEM>
 <LISTITEM><PARA>Press <KEYCAP MOREINFO="NONE">SPACE</KEYCAP> or left mouse button to scratch.</PARA></LISTITEM>
@@ -32,9 +32,9 @@ to lockup X11 or cause other problems under rare conditions. Don't use it on pro
 <LISTITEM><PARA>Effects (Lowpass/Echo) configurable for each turntable</PARA></LISTITEM>
 <LISTITEM><PARA>Syncing tables to one master turntable</PARA></LISTITEM>
 <LISTITEM><PARA>Broad audiofile-type support through the use of sox and mpg123</PARA></LISTITEM>
-<LISTITEM><PARA>Recording (straight to disk now)Recording (straight to disk now)</PARA></LISTITEM>
+<LISTITEM><PARA>Recording (straight to disk now)</PARA></LISTITEM>
 <LISTITEM><PARA>Save turntable sets (.tX - files)</PARA></LISTITEM>
-<LISTITEM><PARA>Since Version 3.70 terminatorX supports the LADSPA-plugin-standard.</PARA></LISTITEM>
+<LISTITEM><PARA>Support for the LADSPA-plugin-standard.</PARA></LISTITEM>
 <LISTITEM><PARA>and more</PARA></LISTITEM></ITEMIZEDLIST></SECTION>
 <SECTION ID="REQUIREMENTS"><TITLE>Requirements</TITLE>
 <ITEMIZEDLIST><LISTITEM><PARA>Software</PARA>
@@ -49,7 +49,7 @@ to lockup X11 or cause other problems under rare conditions. Don't use it on pro
 <ITEMIZEDLIST><LISTITEM><PARA><ULINK URL="http://home.sprynet.com/~cbagwell/sox.html">sox</ULINK> for enhanced audio file support</PARA></LISTITEM>
 <LISTITEM><PARA><ULINK URL="http://www-ti.informatik.uni-tuebingen.de/~hippm/mpg123.html">mpg123</ULINK> for mp3 support</PARA></LISTITEM></ITEMIZEDLIST></LISTITEM></ITEMIZEDLIST></LISTITEM>
 <LISTITEM><PARA>Hardware</PARA>
-<ITEMIZEDLIST><LISTITEM><PARA>A OSS compatible soundcard. This includes <EMPHASIS>all</EMPHASIS> <ULINK URL="http://www.alsa-project.org">ALSA-driven</ULINK> soundcards as this enhanced audio device interface includes support for the OSS API.</PARA></LISTITEM>
+<ITEMIZEDLIST><LISTITEM><PARA>A OSS compatible soundcard capable of stereo output. This includes <EMPHASIS>all</EMPHASIS> <ULINK URL="http://www.alsa-project.org">ALSA-driven</ULINK> soundcards as this enhanced audio device interface includes support for the OSS API.</PARA></LISTITEM>
 <LISTITEM><PARA>A good clean mouse and pad, a good X-Pointer setup.</PARA></LISTITEM></ITEMIZEDLIST></LISTITEM></ITEMIZEDLIST>
 <PARA>A note on performance: terminatorX is known to run satisfyingly on pentium-class (~100 MHz) systems (or above of course). Increasing the number of turntables or plugins will of course require more performant systems.</PARA></SECTION>
 <SECTION ID="INSTALLATION"><TITLE>Installation</TITLE>
@@ -64,9 +64,7 @@ to lockup X11 or cause other problems under rare conditions. Don't use it on pro
 <LISTITEM><PARA><EMPHASIS>Record (Audio Engine)</EMPHASIS></PARA>
 <PARA>To enable recording you have to enable the "Record"-toggle button BEFORE you 
 start the audio engine. You will be prompted for a filename after enabling the
-button. Audio will then be recorded to that file in RIFF/WAV format from the
-moment you turn the audio engine on until you turn it off again. Please be aware
-of the fact that recording audio requires <EMPHASIS>a lot</EMPHASIS> of harddisk space!</PARA></LISTITEM>
+button. Audio will then be recorded to that file in stereo RIFF/WAV format from the moment you turn the audio engine on until you turn it off again. Please be aware of the fact that recording audio requires <EMPHASIS>a lot</EMPHASIS> of harddisk space!</PARA></LISTITEM>
 <LISTITEM><PARA><EMPHASIS>Sequencer Play / Record / Stop</EMPHASIS></PARA>
 <PARA>Please read the Sequencer-Section to find out more about the sequencer.</PARA></LISTITEM>
 <LISTITEM><PARA><EMPHASIS>Master Volume / Pitch</EMPHASIS></PARA>
@@ -104,7 +102,7 @@ putting that set together.</PARA></LISTITEM>
 <LISTITEM><PARA><EMPHASIS>X/Y Mapping Selection</EMPHASIS></PARA>
 <PARA>terminatorX allows mapping misc parameters to the mouse axis of your choice. These mappings will be activated in grab mode. Since Version 3.70 this mappings are no longer hardcoded to built-in controls but available for all parameters that qualify as &quot;mappable&quot;. Note that this includes plugins' controls as well.</PARA></LISTITEM></ITEMIZEDLIST></SECTION>
 <SECTION><TITLE>Turntable Controls</TITLE>
-<PARA>These controls are now grouped within functional panels. The number of panel depends on the number of plugins loaded. terminatorX allows hiding the controls not required via the yellow arrow button. To un-hide just click the button again. The first panels are the standard controls for a turntable, then follows the dynamic FX-section and below that follow the pitch and volume controls.</PARA>
+<PARA>These controls are now grouped within functional panels. The number of panels depends on the number of plugins loaded. terminatorX allows hiding the controls not required via the yellow triangle button. To un-hide just click the button again. The first panels are the standard controls for a turntable, then follows the dynamic FX-section and below that follow the pitch and volume controls.</PARA>
 <SECTION><TITLE>Main Panel</TITLE>
 <ITEMIZEDLIST><LISTITEM><PARA><EMPHASIS>Name Field</EMPHASIS></PARA>
 <PARA>The main panel features a text entry field that allows setting a name for the related turntable. The Labels for the controls and the audio-display will update accordingly.</PARA></LISTITEM>
@@ -121,16 +119,29 @@ putting that set together.</PARA></LISTITEM>
 <LISTITEM><PARA><EMPHASIS>Client Button</EMPHASIS></PARA>
 <PARA>This button marks the turntable as <EMPHASIS>sync-client</EMPHASIS>, so it will be triggerd with the master automatically.</PARA></LISTITEM>
 <LISTITEM><PARA><EMPHASIS>Sync-Cycles Selection</EMPHASIS></PARA>
-<PARA>The sync cycles determine how often a sync-client should be triggered. With a setting of zero the sync-client will be (re-)triggered with <EMPHASIS>every</EMPHASIS> trigger of the sync-master. A setting of 1 will (re-)trigger the client every <EMPHASIS>second</EMPHASIS> master-triger and so on.</PARA></LISTITEM></ITEMIZEDLIST></SECTION></SECTION>
+<PARA>The sync cycles determine how often a sync-client should be triggered. With a setting of zero the sync-client will be (re-)triggered with <EMPHASIS>every</EMPHASIS> trigger of the sync-master. A setting of 1 will (re-)trigger the client every <EMPHASIS>second</EMPHASIS> master-triger and so on.</PARA></LISTITEM></ITEMIZEDLIST>
+<para>Below the effect queue a turntable shows some more controls:
+
+</para>
+
+</SECTION></SECTION>
 <SECTION><TITLE>The Effect Queue</TITLE>
 <PARA>With release 3.70 the effects are no longer hardcoded into the turntable. The effects are now arranged within an per-turntable effect-queue. The effect sequence is configurable by the user. To move an effect to higher position within the queue, press the <EMPHASIS>blue upward arrow button</EMPHASIS>. This will cause the effect to be renderd <EMPHASIS>before</EMPHASIS> the following effects. The <EMPHASIS>blue downward arrow button</EMPHASIS> will move the effect down by one position. It will then be rendered <EMPHASIS>after</EMPHASIS> the preceding effects.</PARA>
-<PARA>There are two types of effects: the traditional built-in effects (Lowpass and Echo) and LADSPA plugins. The built-in effects are always available and cannot be removed (but disabled). There can be only one instance of a built-in effect. The LADSPA plugins on the other hand may be intanciated multiple times and can be removed from the effect queue. Press the <EMPHASIS>blue cross button</EMPHASIS> to achieve this.</PARA>
+
+<PARA>There are two types of effects: the traditional built-in effects (Lowpass and Echo) and LADSPA plugins. The built-in effects are always available and cannot be removed (but disabled). There can be only one instance of a built-in effect. The LADSPA plugins on the other hand may be instanciated multiple times and can be removed from the effect queue. Press the <EMPHASIS>blue cross button</EMPHASIS> to achieve this.</PARA>
+
+       <para>Now since release 3.71 the built-in echo effect is treated differently from other effects. Where all other effects feed their signal back into the effect queue the echo effect doesn't touch the input signal. It's echo-signal is mixed seperately from the turntable's main signal to allow a different panning value for the echo-signal. This mode of operation does have some side-effects: imagine a lowpass filter with a position after the echo effect in the effect queue. This will result in the turntable's main signal being lowpassed but it will leave the echo-signal un-lowpassed.</para>
+       <para>Some may call this behaviour a bug - whereas I would consider it a feature ;). Anyway if the above description didn't clear things up maybe the following figure does. It shows a schematic effect queue with the built-in effects and two LADSPA effects enabled. Now with this setup you will not hear anything from the second LADSPA effect in the echo-signal.</para>
+       <figure float="0">
+         <title>An example for a terminatorX effect queue</title>
+         <graphic fileref="img/signalflow" scale="27">
+       </figure>
 <PARA>For more information on a LADSPA plugin, press it's panel's label and a small info box will pop up.</PARA>
 <ITEMIZEDLIST><LISTITEM><PARA><EMPHASIS>FX Button</EMPHASIS></PARA>
 <PARA>Press this button to load a LADSPA plugin into the effect queue of the turntable. A menu holding the available (terminatorX-&quot;compatible&quot;) LADSPA-plugins will pop up. The plugins are grouped within submenus according to the modules the plugins are contained in. Simply select the plugin you want to load from this menu and a panel for it will pop up at the end of the effect queue.</PARA>
 <PARA>Note that due to the wide parameter ranges some LADSPA plugins have they sometimes might be hard to control with the knob widget. In these cases you might want to use the text field to enter values. For more details on Plugins see <XREF LINKEND="LADSPAPLUGINS"> (LASDPA).</PARA></LISTITEM></ITEMIZEDLIST></SECTION>
 <SECTION><TITLE>Lowpass Panel</TITLE>
-<PARA>terminatorX features a buitlin resonating lowpass filter that can be configured with this panel.</PARA>
+<PARA>terminatorX features a builtin resonating lowpass filter that can be configured with this panel.</PARA>
 <ITEMIZEDLIST><LISTITEM><PARA><EMPHASIS>Enable Button</EMPHASIS></PARA>
 <PARA>Activating this button will enable the lowpass filter for this turntable.</PARA></LISTITEM>
 <LISTITEM><PARA><EMPHASIS>Input Gain Control</EMPHASIS></PARA>
@@ -146,7 +157,13 @@ putting that set together.</PARA></LISTITEM>
 <LISTITEM><PARA><EMPHASIS>Duration Control</EMPHASIS></PARA>
 <PARA>Use this parameter to set the length of the echo. The duration parameter scales to the actual sample length: so if you set it to 0.5 you will hear the echo when the red playback cursor is half way  through the sample. This is true for samples that are shorter than terminatorX' maximum echo buffer size only.</PARA></LISTITEM>
 <LISTITEM><PARA><EMPHASIS>Feedback Control</EMPHASIS></PARA>
-<PARA>Set the echo's feedback amount with this parameter.</PARA></LISTITEM></ITEMIZEDLIST></SECTION></SECTION>
+<PARA>Set the echo's feedback amount with this parameter.</PARA></LISTITEM>
+<LISTITEM><PARA><EMPHASIS>Volume Control</EMPHASIS></PARA>
+<PARA>This parameter can additionally amplify the echo signal. Unlike the feedback parameter above this parameter has no influence on the signal fed back into the echo-buffer, it effects merely the playback volume of the echo signal.</PARA></LISTITEM>
+<LISTITEM><PARA><EMPHASIS>Pan Control</EMPHASIS></PARA>
+<PARA>The echo effect differs from other effects as it's output signal will be mixed seperately. The main goal here is to allow positioning the echo signal at a position in the stereo panorama that differs from the main panning positon of the turntable to achieve a somewhat spacial effect. The easy example is: turntable's panning left, echo's panning right. As both pan parameters are sequencable you can create nice motion effects from this starting point.</PARA></LISTITEM>
+
+</ITEMIZEDLIST></SECTION></SECTION>
 <SECTION ID="SYNCHRONIZATION"><TITLE>Synchronization</TITLE>
 <PARA>Let's start off with an example: Say you have two drumloops and one bassline loaded in three turntables. Of course you want these samples to be triggered at the same time but you don't want to invest time to cut them to the exact length. Therefore you decide which of the drumloops to make the sync master. You'll have to do this before you enable the audio engine (for now). Only one turntable can be the sync master. Now you can make the other two sync clients which will cause them to be (re-)triggered whenever the master is (re-)triggered. The number you can select to the right of the <EMPHASIS>client button</EMPHASIS> sets the trigger delay for the button: if it's set to zero the turntable will be triggered with every master trigger, if it's set to 1 it'll be triggered every 2nd master trigger and so on.</PARA>
 <PARA>A nice side effect of this feature is: you can now scratch the second (sync client) drum loop and no matter whether you're scratching is good or not the beat will be triggered correctly again ;)</PARA></SECTION>
index 8a3734bc910df5e099bcb101251b4ed72dc82ac4..161fe97fe6a75f1af144fde4655f4a3c44aa50ee 100644 (file)
@@ -104,7 +104,10 @@ CLASS="FILENAME"
 ></LI
 ><LI
 ><P
->Load an audiofile into the available turntable (you can add more turntables if you want) (Hint: Click on the button that holds "NONE" )</P
+>Load an audiofile into the available turntable (you can add more turntables if you want) (Hint: Click on the button that holds "NONE" to load an audiofile, or drop one over the audiofile display from your filemanager if your filemanager is efm, gmc, Nautilus or compatible (kfm does <I
+CLASS="EMPHASIS"
+>not</I
+> work))</P
 ></LI
 ><LI
 ><P
index d1209238c880e54eea2eefd62569b0a38e9f5c0c..a87f0f5bd0d291dfb0fc85fb176abba03848386c 100644 (file)
@@ -82,7 +82,7 @@ CLASS="SECTION"
 ><H2
 CLASS="SECTION"
 ><A
-NAME="AEN184"
+NAME="AEN185"
 >2.2.1. Turntable Audio-Display</A
 ></H2
 ><P
@@ -144,17 +144,17 @@ CLASS="SECTION"
 ><H2
 CLASS="SECTION"
 ><A
-NAME="AEN209"
+NAME="AEN210"
 >2.2.2. Turntable Controls</A
 ></H2
 ><P
->These controls are now grouped within functional panels. The number of panel depends on the number of plugins loaded. terminatorX allows hiding the controls not required via the yellow arrow button. To un-hide just click the button again. The first panels are the standard controls for a turntable, then follows the dynamic FX-section and below that follow the pitch and volume controls.</P
+>These controls are now grouped within functional panels. The number of panels depends on the number of plugins loaded. terminatorX allows hiding the controls not required via the yellow triangle button. To un-hide just click the button again. The first panels are the standard controls for a turntable, then follows the dynamic FX-section and below that follow the pitch and volume controls.</P
 ><DIV
 CLASS="SECTION"
 ><H3
 CLASS="SECTION"
 ><A
-NAME="AEN212"
+NAME="AEN213"
 >2.2.2.1. Main Panel</A
 ></H3
 ><P
@@ -185,7 +185,7 @@ CLASS="SECTION"
 ><H3
 CLASS="SECTION"
 ><A
-NAME="AEN223"
+NAME="AEN224"
 >2.2.2.2. Trigger Panel</A
 ></H3
 ><P
@@ -264,7 +264,7 @@ CLASS="SECTION"
 ><H2
 CLASS="SECTION"
 ><A
-NAME="AEN253"
+NAME="AEN254"
 >2.2.3. The Effect Queue</A
 ></H2
 ><P
@@ -282,11 +282,28 @@ CLASS="EMPHASIS"
 >after</I
 > the preceding effects.</P
 ><P
->There are two types of effects: the traditional built-in effects (Lowpass and Echo) and LADSPA plugins. The built-in effects are always available and cannot be removed (but disabled). There can be only one instance of a built-in effect. The LADSPA plugins on the other hand may be intanciated multiple times and can be removed from the effect queue. Press the <I
+>There are two types of effects: the traditional built-in effects (Lowpass and Echo) and LADSPA plugins. The built-in effects are always available and cannot be removed (but disabled). There can be only one instance of a built-in effect. The LADSPA plugins on the other hand may be instanciated multiple times and can be removed from the effect queue. Press the <I
 CLASS="EMPHASIS"
 >blue cross button</I
 > to achieve this.</P
 ><P
+>Now since release 3.71 the built-in echo effect is treated differently from other effects. Where all other effects feed their signal back into the effect queue the echo effect doesn't touch the input signal. It's echo-signal is mixed seperately from the turntable's main signal to allow a different panning value for the echo-signal. This mode of operation does have some side-effects: imagine a lowpass filter with a position after the echo effect in the effect queue. This will result in the turntable's main signal being lowpassed but it will leave the echo-signal un-lowpassed.</P
+><P
+>Some may call this behaviour a bug - whereas I would consider it a feature ;). Anyway if the above description didn't clear things up maybe the following figure does. It shows a schematic effect queue with the built-in effects and two LADSPA effects enabled. Now with this setup you will not hear anything from the second LADSPA effect in the echo-signal.</P
+><DIV
+CLASS="FIGURE"
+><A
+NAME="AEN265"
+></A
+><P
+><B
+>Figure 2-1. An example for a terminatorX effect queue</B
+></P
+><P
+><IMG
+SRC="img/signalflow.jpg"></P
+></DIV
+><P
 >For more information on a LADSPA plugin, press it's panel's label and a small info box will pop up.</P
 ><P
 ></P
@@ -312,11 +329,11 @@ CLASS="SECTION"
 ><H2
 CLASS="SECTION"
 ><A
-NAME="AEN270"
+NAME="AEN276"
 >2.2.4. Lowpass Panel</A
 ></H2
 ><P
->terminatorX features a buitlin resonating lowpass filter that can be configured with this panel.</P
+>terminatorX features a builtin resonating lowpass filter that can be configured with this panel.</P
 ><P
 ></P
 ><UL
@@ -363,7 +380,7 @@ CLASS="SECTION"
 ><H2
 CLASS="SECTION"
 ><A
-NAME="AEN290"
+NAME="AEN296"
 >2.2.5. Echo Panel</A
 ></H2
 ><P
@@ -398,6 +415,24 @@ CLASS="EMPHASIS"
 ><P
 >Set the echo's feedback amount with this parameter.</P
 ></LI
+><LI
+><P
+><I
+CLASS="EMPHASIS"
+>Volume Control</I
+></P
+><P
+>This parameter can additionally amplify the echo signal. Unlike the feedback parameter above this parameter has no influence on the signal fed back into the echo-buffer, it effects merely the playback volume of the echo signal.</P
+></LI
+><LI
+><P
+><I
+CLASS="EMPHASIS"
+>Pan Control</I
+></P
+><P
+>The echo effect differs from other effects as it's output signal will be mixed seperately. The main goal here is to allow positioning the echo signal at a position in the stereo panorama that differs from the main panning positon of the turntable to achieve a somewhat spacial effect. The easy example is: turntable's panning left, echo's panning right. As both pan parameters are sequencable you can create nice motion effects from this starting point.</P
+></LI
 ></UL
 ></DIV
 ></DIV
index cdd7c6bf6085eefb427cf7cd581e3d81a53a4caa..0e816068035362e0ed91dd2a708880ea6cd79b3d 100644 (file)
@@ -96,14 +96,14 @@ void show_help()
 {
                        
        fprintf(stderr, "\
-usage: terminatorX [options] [save file]\n\
+usage: terminatorX [options]n\
 \n\
   -h, --help                   Display help info\n\
   -f, --file                   Load saved terminatorX set file\n\
   -r, --rc-file [file]         Load alternate rc file\n\
   -d, --dont-save              Do not save settings at exit\n\
   -s, --std-out                 Use stdout for sound output\n\
-   --device=[output device]  Use alternate device for sound output\n\
+  --device=[output device]      Use alternate device for sound output\n\
 \n");
 /*
   -n, --no-gui                 Run terminatorX with no GUI\n\
index e1064240430523e1c7f1967c0794554b111c198d..19622ce0bb426644c459903926f682a3c165a029 100644 (file)
@@ -137,7 +137,7 @@ int audiodevice :: dev_open(int dont_use_rt_buffsize)
        samples=blocksize/sizeof(int16_t);      
        globals.true_block_size=samples/2;
        
-       printf("bs: %i, samples: %i, tbs: %i\n", blocksize,samples,globals.true_block_size);
+//     printf("bs: %i, samples: %i, tbs: %i\n", blocksize,samples,globals.true_block_size);
         ioctl(fd, SNDCTL_DSP_SYNC, 0);
 
 #ifdef USE_WRITER_THREAD
index fad7644add1f0990ec799db63c6ce3c3e331af67..45b0e56250a09aef9917e99f7769cae39154586b 100644 (file)
@@ -69,7 +69,7 @@ void load_globals()
        }
        else
        {
-               fprintf(stderr, "tX: Alternate rc file doesn't exist, reverting to defaults");
+               fprintf(stderr, "tX: .rc-file '%s' doesn't exist, reverting to defaults\n", rc_name);
 
                globals.startup_set = 0;
                globals.store_globals = 1;
@@ -85,7 +85,7 @@ void load_globals()
                globals.update_delay=1;
        
                globals.buff_no=2;
-               globals.buff_size=8;
+               globals.buff_size=9;
                
                globals.sense_cycles=12;
        
index 2191ea9fe4136e061ff167f2bdcd5d0e71343a4e..2222091a20c8ad7d1195558996d434634fe466fd 100644 (file)
@@ -753,6 +753,31 @@ const char * tX_seqpar_vtt_ec_pan :: get_name()
         return "Echo: Pan";
 }
 
+/**** Sequencable Parameter: TURNTABLE ECHO VOLUME ****/
+
+tX_seqpar_vtt_ec_volume :: tX_seqpar_vtt_ec_volume()
+{
+       set_mapping_parameters(0.0, 3.0, TX_SEQPAR_DEFAULT_SCALE, 1);
+}
+
+float tX_seqpar_vtt_ec_volume :: get_value() { return tt->ec_volume; }
+
+void tX_seqpar_vtt_ec_volume :: do_exec(const float value)
+{
+       tt->ec_set_volume(value);
+}
+
+void tX_seqpar_vtt_ec_volume :: do_update_graphics ()
+{
+       gtk_adjustment_set_value(tt->gui.ec_volume, tt->ec_volume);
+}
+
+const char * tX_seqpar_vtt_ec_volume :: get_name()
+{
+        return "Echo: Volume";
+}
+
+
 /**** Sequencable Parameter: TURNTABLE MUTE ****/
 
 tX_seqpar_vtt_mute :: tX_seqpar_vtt_mute()
index c52adf7fb06db16e1ed3f7baf83d3901d0dd6901..b66035d2a8e5414200f77685f0f96e5d5a5fd702 100644 (file)
@@ -339,6 +339,17 @@ class tX_seqpar_vtt_ec_pan : public tX_seqpar_update
         virtual const char *get_name(); 
 };
 
+class tX_seqpar_vtt_ec_volume : public tX_seqpar_update
+{
+       public:
+       tX_seqpar_vtt_ec_volume();
+       virtual float get_value();
+       private:        
+       virtual void do_exec(const float value);
+       virtual void do_update_graphics();      
+        virtual const char *get_name(); 
+};
+
 class tX_seqpar_vtt_mute : public tX_seqpar_no_update
 {
        public:
index 5437c68ada4c89dbee4d7fff80e9d733d54d1f9b..5d93cf1e605d8079685f12bab9dcc524ff589204 100644 (file)
@@ -41,7 +41,6 @@
 #include "3dnow.h"
 #endif
 
-#define DEBUG 1
 
 #ifdef DEBUG
 #define tX_freemem(ptr, varname, comment); fprintf(stderr, "** free() [%s] at %08x. %s.\n", varname, ptr, comment); free(ptr);
@@ -126,6 +125,7 @@ vtt_class :: vtt_class (int do_create_gui)
        lp_freq=0.3;
        lp_gain=1;
        lp_setup(lp_gain, lp_reso, lp_freq);
+       lp_reset();
        
        ec_enable=0;
        ec_length=0.5;
@@ -133,6 +133,7 @@ vtt_class :: vtt_class (int do_create_gui)
        ec_clear_buffer();
        ec_set_length(0.5);
        ec_set_pan(0);
+       ec_set_volume(1);
        
 //     pthread_mutex_lock(&main_lock);
        main_list.push_back(this);
@@ -156,6 +157,7 @@ vtt_class :: vtt_class (int do_create_gui)
        sp_ec_enable.set_vtt((void *) this);    
        sp_ec_length.set_vtt((void *) this);
        sp_ec_pan.set_vtt((void *) this);
+       sp_ec_volume.set_vtt((void *) this);
        sp_ec_feedback.set_vtt((void *) this);          
        sp_mute.set_vtt((void *) this);
        sp_spin.set_vtt((void *) this);
@@ -283,6 +285,7 @@ void vtt_class :: set_volume(f_prec newvol)
 void vtt_class :: recalc_volume()
 {
        res_volume=rel_volume*res_master_volume;
+       f_prec ec_res_volume=res_volume*ec_volume;
        
        if (pan>0.0)
        {
@@ -299,19 +302,20 @@ void vtt_class :: recalc_volume()
                res_volume_left=res_volume_right=res_volume;
        }
        
+       
        if (ec_pan>0.0)
        {
-               ec_volume_left=(1.0-ec_pan)*res_volume;
-               ec_volume_right=res_volume;
+               ec_volume_left=(1.0-ec_pan)*ec_res_volume;
+               ec_volume_right=ec_res_volume;
        }
        else if (ec_pan<0.0)
        {
-               ec_volume_left=res_volume;
-               ec_volume_right=(1.0+ec_pan)*res_volume;
+               ec_volume_left=ec_res_volume;
+               ec_volume_right=(1.0+ec_pan)*ec_res_volume;
        }
        else
        {
-               ec_volume_left=ec_volume_right=res_volume;
+               ec_volume_left=ec_volume_right=ec_res_volume;
        }       
 //     printf("vtt_volume: %f, %f, l: %f, r: %f\n", rel_volume, res_volume, res_volume_left, res_volume_right);
        
@@ -367,6 +371,12 @@ void vtt_class :: set_mute(int newstate)
 void vtt_class :: lp_set_enable (int newstate)
 {
        lp_enable=newstate;
+       lp_reset();
+}
+
+void vtt_class :: lp_reset()
+{
+       lp_buf0=lp_buf1=0;
 }
 
 void vtt_class :: lp_set_gain (f_prec gain)
@@ -409,6 +419,7 @@ void vtt_class :: lp_setup(f_prec gain, f_prec reso, f_prec freq)
 void vtt_class :: ec_set_enable(int newstate)
 {
        ec_enable=newstate;
+       ec_clear_buffer();
 }
 
 
@@ -453,13 +464,20 @@ void vtt_class :: ec_set_feedback(f_prec feedback)
        ec_feedback=feedback;
 }
 
+
+void vtt_class :: ec_set_volume(f_prec volume)
+{
+       ec_volume=volume;
+       recalc_volume();
+}
+
 void vtt_class :: ec_clear_buffer()
 {
-       int i;
+       f_prec *ptr;
        
-       for (i=0; i<EC_MAX_BUFFER; i++)
+       for (ptr=ec_buffer; ptr<=ec_delay; ptr++)
        {
-               ec_buffer[i]=0.0;
+               *ptr=0.0;
        }
        ec_ptr=ec_buffer;
 }
@@ -801,21 +819,21 @@ int vtt_class :: set_mix_buffer_size(int no_samples)
        list <vtt_class *> :: iterator vtt;
        int res=0;
        
-       printf("vtt_class::set_mix_buffer_size(), mix_buffer: %12x, mix_out: %12x, samples: %i\n", mix_buffer, mix_out_buffer, no_samples);
+//     printf("vtt_class::set_mix_buffer_size(), mix_buffer: %12x, mix_out: %12x, samples: %i\n", mix_buffer, mix_out_buffer, no_samples);
        
        if (mix_buffer) tX_freemem(mix_buffer, "mix_buffer", "vtt set_mix_buffer_size()");
        samples_in_mix_buffer=no_samples*2;
        //mix_buffer=(float *) malloc (sizeof(float)*samples_in_mix_buffer);
        tX_malloc(mix_buffer, "mix_buffer", "vtt set_mix_buffer_size()", sizeof(float)*samples_in_mix_buffer, (float *));
        mix_buffer_end=mix_buffer+samples_in_mix_buffer;
-       printf("mix_buffer: %12x\n", mix_buffer);
+//     printf("mix_buffer: %12x\n", mix_buffer);
        
-       printf("mix_samples: %i, out_samples: %i", samples_in_mix_buffer, no_samples);
+//     printf("mix_samples: %i, out_samples: %i", samples_in_mix_buffer, no_samples);
        
        if (mix_out_buffer) tX_freemem(mix_out_buffer, "mix_out_buffer", "vtt set_mix_buffer_size()");
        //mix_out_buffer=(int16_t *) malloc (sizeof(int16_t)*samples_in_mix_buffer + 4); /* extra 4 for 3DNow! */
        tX_malloc(mix_out_buffer, "mix_out_buffer", "vtt set_mix_buffer_size()", sizeof(int16_t)*samples_in_mix_buffer + 4, (int16_t *));
-       printf("mix_out_buffer: %12x\n", mix_out_buffer);
+//     printf("mix_out_buffer: %12x\n", mix_out_buffer);
        
        for (vtt=main_list.begin(); vtt!=main_list.end(); vtt++)
        {
@@ -1374,6 +1392,7 @@ int  vtt_class :: save(FILE * output)
        store(ec_length);
        store(ec_feedback);
        store(ec_pan);
+       store(ec_volume);
 
        pid=sp_speed.get_persistence_id();
        store(pid);
@@ -1403,6 +1422,8 @@ int  vtt_class :: save(FILE * output)
        store(pid);
        pid=sp_ec_feedback.get_persistence_id();
        store(pid);
+       pid=sp_ec_volume.get_persistence_id();
+       store(pid);
        pid=sp_ec_pan.get_persistence_id();
        store(pid);
        pid=sp_mute.get_persistence_id();
@@ -1746,7 +1767,6 @@ int vtt_class :: load_13(FILE * input)
        
        atload(mute);
        atload(pan);
-       recalc_volume();
        
        atload(lp_enable);
        atload(lp_gain);
@@ -1761,6 +1781,10 @@ int vtt_class :: load_13(FILE * input)
        ec_set_feedback(ec_feedback);
        atload(ec_pan);
        ec_set_pan(ec_pan);
+       atload(ec_volume);
+       ec_set_volume(ec_volume);
+
+       recalc_volume();
 
        atload(pid);
        sp_speed.set_persistence_id(pid);
@@ -1791,6 +1815,8 @@ int vtt_class :: load_13(FILE * input)
        atload(pid);
        sp_ec_feedback.set_persistence_id(pid);
        atload(pid);
+       sp_ec_volume.set_persistence_id(pid);
+       atload(pid);
        sp_ec_pan.set_persistence_id(pid);
        atload(pid);
        sp_mute.set_persistence_id(pid);
index 9981a899af2a06208e4ea0d4bc2e65aa925e0033..5733d32ac900d9dd2ddbd66f6ef3589e3f10b8db 100644 (file)
@@ -193,6 +193,7 @@ class vtt_class
        f_prec ec_res_length;
        f_prec ec_feedback;
        f_prec ec_pan;
+       f_prec ec_volume;
        f_prec ec_volume_left;
        f_prec ec_volume_right;
        
@@ -213,6 +214,7 @@ class vtt_class
        tX_seqpar_vtt_ec_length sp_ec_length;
        tX_seqpar_vtt_ec_feedback sp_ec_feedback;
        tX_seqpar_vtt_ec_pan sp_ec_pan;
+       tX_seqpar_vtt_ec_volume sp_ec_volume;
        tX_seqpar_vtt_mute sp_mute;
        tX_seqpar_spin sp_spin;
 
@@ -249,6 +251,7 @@ class vtt_class
        void set_y_input_parameter(tX_seqpar *);
        void set_x_input_parameter(tX_seqpar *);
        
+       void lp_reset();
        void lp_set_enable(int);
        void lp_set_gain(f_prec);
        void lp_set_reso(f_prec);
@@ -258,6 +261,7 @@ class vtt_class
        void ec_set_enable(int);
        void ec_set_length(f_prec);     
        void ec_set_feedback(f_prec);
+       void ec_set_volume(f_prec);
        void ec_set_pan(f_prec);
        void ec_clear_buffer();
        
index 8df45d4fdbc072348c01de5aa30e64e85abd89a5..38b4feb18dc45e59bbda469d0c8aba7891855a07 100644 (file)
@@ -69,7 +69,7 @@ vtt_fx :: ~vtt_fx() {}
 /******************* builtin fx ***/
 
 /* lowpass */ 
-void vtt_fx_lp :: activate() { /* NOP */ }
+void vtt_fx_lp :: activate() { myvtt->lp_reset(); }
 void vtt_fx_lp :: deactivate() { /* NOP */ }
 void vtt_fx_lp :: run() { myvtt->render_lp(); }
 int vtt_fx_lp :: isEnabled() { return myvtt->lp_enable; }
@@ -254,7 +254,7 @@ void vtt_fx_ladspa :: deactivate()
 
 void vtt_fx_ladspa :: run()
 {
-       plugin->getDescriptor()->run(instance, (vtt_class :: samples_in_mix_buffer)/2);
+       plugin->getDescriptor()->run(instance, (vtt_class :: samples_in_mix_buffer)>>1);
 }
 
 int vtt_fx_ladspa :: isEnabled()
index 4b0193dad979cd372c8fa7ad899383b34c494a30..a65bc2bded51f9a6d7bf614f1c569ea84715259b 100644 (file)
@@ -370,6 +370,11 @@ void ec_pan_changed(GtkWidget *wid, vtt_class *vtt)
        vtt->sp_ec_pan.receive_gui_value(GTK_ADJUSTMENT(wid)->value);
 }
 
+void ec_volume_changed(GtkWidget *wid, vtt_class *vtt)
+{
+       vtt->sp_ec_volume.receive_gui_value(GTK_ADJUSTMENT(wid)->value);
+}
+
 void master_setup(GtkWidget *wid, vtt_class *vtt)
 {
        vtt->set_sync_master(GTK_TOGGLE_BUTTON(wid)->active);
@@ -617,6 +622,7 @@ void gui_connect_signals(vtt_class *vtt)
        connect_adj(ec_length, ec_length_changed);
        connect_adj(ec_feedback, ec_feedback_changed);
        connect_adj(ec_pan, ec_pan_changed);
+       connect_adj(ec_volume, ec_volume_changed);      
        connect_button(x_control, vg_xcontrol_popup);
        connect_button(y_control, vg_ycontrol_popup);
 
@@ -845,6 +851,7 @@ void build_vtt_gui(vtt_class *vtt)
        g->ec_length=GTK_ADJUSTMENT(gtk_adjustment_new(vtt->ec_length, 0, 1, 0.1, 0.01, 0.001));
        g->ec_feedback=GTK_ADJUSTMENT(gtk_adjustment_new(vtt->ec_feedback, 0, 1, 0.1, 0.01, 0.001));
        g->ec_pan=GTK_ADJUSTMENT(gtk_adjustment_new(vtt->ec_pan, -1.0, 1, 0.1, 0.01, 0.001));
+       g->ec_volume=GTK_ADJUSTMENT(gtk_adjustment_new(vtt->ec_volume, 0.0, 3.0, 0.1, 0.01, 0.001));
 
        g->ec_lengthd=new tX_extdial("Duration", g->ec_length);
        p->add_client_widget(g->ec_lengthd->get_widget());
@@ -854,6 +861,10 @@ void build_vtt_gui(vtt_class *vtt)
        p->add_client_widget(g->ec_feedbackd->get_widget());
        gui_set_tooltip(g->ec_feedbackd->get_entry(), "Adjust the feedback of the echo effect. Note that a value of 1 will result in a constant signal.");
 
+       g->ec_volumed=new tX_extdial("Volume", g->ec_volume);
+       p->add_client_widget(g->ec_volumed->get_widget());
+       gui_set_tooltip(g->ec_volumed->get_entry(), "Adjust the volume of the echo effect.");
+
        g->ec_pand=new tX_extdial("Pan", g->ec_pan);
        p->add_client_widget(g->ec_pand->get_widget());
        gui_set_tooltip(g->ec_pand->get_entry(), "Adjust the panning of the echo effect.");
@@ -1074,6 +1085,7 @@ void delete_gui(vtt_class *vtt)
        
        delete vtt->gui.ec_lengthd;
        delete vtt->gui.ec_feedbackd;
+       delete vtt->gui.ec_volumed;
        delete vtt->gui.ec_pand;
        delete vtt->gui.ec_panel;
        
index b3d5d028b8856db7af60cb74caa1233a794b847c..535f54b9fb3295f035c5849dd4b27d35206743cf 100644 (file)
@@ -92,9 +92,11 @@ typedef struct vtt_gui
        tX_extdial *ec_lengthd;
        tX_extdial *ec_feedbackd;
        tX_extdial *ec_pand;
+       tX_extdial *ec_volumed;
        GtkAdjustment *ec_length;
        GtkAdjustment *ec_feedback;
        GtkAdjustment *ec_pan;
+       GtkAdjustment *ec_volume;
 
        GdkWindow *file_dialog;
        GtkWidget *fs;