Adrian's patches and experimental Stereo stuff - Alex
authorterminatorX <>
Sat, 10 Mar 2001 23:00:59 +0000 (23:00 +0000)
committerterminatorX <>
Sat, 10 Mar 2001 23:00:59 +0000 (23:00 +0000)
38 files changed:
ChangeLog
configure.in
doc/configuration.html
doc/contact.html
doc/dragndrop.html
doc/features.html
doc/grabmode.html
doc/guisetup.html
doc/index.html
doc/installation.html
doc/introduction.html
doc/ladspaplugins.html
doc/manual.ps
doc/mouseinputsetup.html
doc/operation.html
doc/preface.html
doc/quickstart.html
doc/requirements.html
doc/sequencer.html
doc/soundfileeditor.html
doc/synchronization.html
doc/turntablecontrols.html
src/main.cc
src/tX_audiodevice.cc
src/tX_dialog.cc
src/tX_engine.cc
src/tX_global.c
src/tX_global.h
src/tX_mastergui.cc
src/tX_panel.cc
src/tX_panel.h
src/tX_seqpar.cc
src/tX_seqpar.h
src/tX_tape.cc
src/tX_vtt.cc
src/tX_vtt.h
src/tX_vttgui.cc
src/tX_vttgui.h

index 347117d7559c5b7150ad9a33f7f849ffef7ee3d0..391feba5ac755116569fb7773859f6ab945a1ae4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,12 @@ All changes were done by me (Alexander K
 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
+
 [v3.70]
 - this list may be incomplete
 - This release brings support for LADSPA plugins. These plugins can be inserted
index 736e1df5dfacdfab9e98248e0d823040a0123ed1..eaa804cb8d90ac426ffa0a5f5c9e4dcf7392b66c 100644 (file)
@@ -1,6 +1,6 @@
 dnl Process this file with autoconf to produce a configure script.
 AC_INIT(src/tX_global.h)
-AM_INIT_AUTOMAKE(terminatorX,3.70)
+AM_INIT_AUTOMAKE(terminatorX,3.71)
 AM_CONFIG_HEADER(config.h)
 
 dnl AC_ARG_ENABLE(closedev, [  --enable-closedev       close audio device if not in use. [default=yes] ])
@@ -28,7 +28,7 @@ AC_PROG_RANLIB
 dnl Checks for libraries.
 AC_CHECK_LIB(m, floor,, AC_MSG_ERROR([** math-lib not installed or broken **]))
 AC_CHECK_LIB(pthread, pthread_mutex_lock,, AC_MSG_ERROR([** POSIX threads not installed or broken **]))
-AM_PATH_GTK(1.2.5, , AC_MSG_ERROR([** GTK 1.2.0 not installed or broken **]))
+AM_PATH_GTK(1.2.5, , AC_MSG_ERROR([** GTK 1.2.5 not installed or broken **]))
 dnl AM_PATH_GLIB(1.2.0, , AC_MSG_ERROR([** GLIB 1.2.0 not installed or broken **]))
 
 dnl Checks for header files.
@@ -73,6 +73,7 @@ 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)
 fi 
 
index a5df3f7ad0cf2eaf07e1ac8937412b708c3aaab1..de5dcf12b9c17001b4f8fac2575e518d2d67f727 100644 (file)
@@ -4,7 +4,8 @@
 >Configuration</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.59"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.61
+"><LINK
 REL="HOME"
 TITLE="terminatorX - Manual"
 HREF="index.html"><LINK
index 14ac413d499b1c282ae4c4ddce672272297f35f4..12bc8151d295fcb5f56f6f001c504866d70e50eb 100644 (file)
@@ -4,7 +4,8 @@
 >Contact / Download</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.59"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.61
+"><LINK
 REL="HOME"
 TITLE="terminatorX - Manual"
 HREF="index.html"><LINK
index e55957c16607fc24ac075865f065c2b089b53413..4f306250ab4d36a831bc9b8081d7a64b4d8e0b50 100644 (file)
@@ -4,7 +4,8 @@
 >Drag And Drop</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.59"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.61
+"><LINK
 REL="HOME"
 TITLE="terminatorX - Manual"
 HREF="index.html"><LINK
index 4db6db7c02b37943a108603145e0901d6738a8c8..c3d02b52ff5b99b5c126f5bbaad9f2930bc9825a 100644 (file)
@@ -4,7 +4,8 @@
 >Features</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.59"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.61
+"><LINK
 REL="HOME"
 TITLE="terminatorX - Manual"
 HREF="index.html"><LINK
index 03e40cfafbee3ee281e54b278468c760d9edea8a..9399550046b2e2823117853a8f4bc2051ffba30d 100644 (file)
@@ -4,7 +4,8 @@
 >Grab Mode Operation</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.59"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.61
+"><LINK
 REL="HOME"
 TITLE="terminatorX - Manual"
 HREF="index.html"><LINK
index 41ebecda64fc376aaba9994895bb0741ce285bf5..893a01e9a1907c8a573dd03b5bf96259c5b5ee2f 100644 (file)
@@ -4,7 +4,8 @@
 >GUI Setup</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.59"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.61
+"><LINK
 REL="HOME"
 TITLE="terminatorX - Manual"
 HREF="index.html"><LINK
index 892460b814faa89aea2c639a087b40fa7eea291e..b8ca4598a5390684c5c6bb4c498ce9e9cd787b97 100644 (file)
@@ -4,7 +4,8 @@
 >terminatorX - Manual</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.59"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.61
+"><LINK
 REL="NEXT"
 TITLE="Preface"
 HREF="preface.html"></HEAD
@@ -67,43 +68,16 @@ HREF="introduction.html#WHATITIS"
 HREF="quickstart.html"
 >Quickstart</A
 ></DT
-><DD
-><DL
-><DT
->11. <A
-HREF="quickstart.html#AEN31"
-></A
-></DT
-></DL
-></DD
 ><DT
 >1.3. <A
 HREF="features.html"
 >Features</A
 ></DT
-><DD
-><DL
-><DT
->11<A
-HREF="features.html#AEN59"
-></A
-></DT
-></DL
-></DD
 ><DT
 >1.4. <A
 HREF="requirements.html"
 >Requirements</A
 ></DT
-><DD
-><DL
-><DT
->12<A
-HREF="requirements.html#AEN84"
-></A
-></DT
-></DL
-></DD
 ><DT
 >1.5. <A
 HREF="installation.html"
@@ -123,15 +97,6 @@ HREF="operation.html"
 HREF="operation.html#MAINCONTROLS"
 >Main Controls</A
 ></DT
-><DD
-><DL
-><DT
->21<A
-HREF="operation.html#AEN135"
-></A
-></DT
-></DL
-></DD
 ><DT
 >2.2. <A
 HREF="turntablecontrols.html"
@@ -186,15 +151,6 @@ HREF="dragndrop.html"
 HREF="sequencer.html"
 >The Sequencer</A
 ></DT
-><DD
-><DL
-><DT
->28<A
-HREF="sequencer.html#AEN402"
-></A
-></DT
-></DL
-></DD
 ><DT
 >2.7. <A
 HREF="ladspaplugins.html"
index b47c7807458a571597f742b3c8c5b829112d40d5..ca15eb2b4f060dce22e45d0a336eaffc563b8c4e 100644 (file)
@@ -4,7 +4,8 @@
 >Installation</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.59"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.61
+"><LINK
 REL="HOME"
 TITLE="terminatorX - Manual"
 HREF="index.html"><LINK
index d211560282b228d3f96c6009cb266e4645abe25f..2c0ba59787a66322a03df74213c01704cb7615ff 100644 (file)
@@ -4,7 +4,8 @@
 >Introduction</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.59"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.61
+"><LINK
 REL="HOME"
 TITLE="terminatorX - Manual"
 HREF="index.html"><LINK
index dd8c326ac68a1b507ec698ed63545e0728badb52..8a1a92ca04999387516521fbe972b872f51c1ff1 100644 (file)
@@ -4,7 +4,8 @@
 >Plugins (LADSPA)</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.59"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.61
+"><LINK
 REL="HOME"
 TITLE="terminatorX - Manual"
 HREF="index.html"><LINK
index 369c9735b02b230a44e7db595477d157c2fd69a4..4d61e22afbedb8db65207a644bbe1344cc58931d 100644 (file)
@@ -1,6 +1,6 @@
 %!PS-Adobe-2.0
 %%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
-%%Pages: 24
+%%Pages: 23
 %%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 2000.11.20:1646
+%DVIPSSource:  TeX output 2001.03.10:1917
 %%BeginProcSet: texc.pro
 %!
 /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -342,8 +342,8 @@ F0EA7FC048CCFC12FC12703B3878B44C>62 D E
 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 2[50 50 1[50 50 50 50 50 28 25 33 3[33 33 37[55
-2[{TeXBase1Encoding ReEncodeFont}52 99.6264 /Times-Bold
+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[{
@@ -418,7 +418,7 @@ 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 11 w(6)396 1029 y(1.)25 b(Intr)n(oduction)p Black
+Black 11 w(5)396 1029 y(1.)25 b(Intr)n(oduction)p Black
 7 w(.)p Black Black 2 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
@@ -450,7 +450,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 Black(.)p Black Black(.)p Black 11 w(7)596 1178
+Black Black(.)p Black Black(.)p Black 11 w(6)596 1178
 y Fj(1.1.)f(What)h(it)f(is)p Black 11 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
@@ -481,7 +481,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 Black(.)p Black Black(.)p Black 11 w(7)596
+Black(.)p Black Black(.)p Black Black(.)p Black 11 w(6)596
 1308 y(1.2.)g(Quickstart)p Black 8 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
@@ -512,26 +512,8 @@ 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 11 w(7)795 1437 y(11.)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(.)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 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 11 w(6)596 1437 y(1.3.)g(Features)p
+Black 11 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(.)p Black Black -1 w(.)p Black
@@ -540,14 +522,8 @@ 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 Black(.)p Black Black(.)p Black
-11 w(7)596 1567 y(1.3.)g(Features)p Black 11 w(.)p Black
-Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+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
@@ -567,52 +543,18 @@ 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 Black(.)p
-Black Black(.)p Black 11 w(7)795 1696 y(11)p 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
--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(.)p Black Black(.)p Black Black(.)p Black 11 w(6)596
+1567 y(1.4.)g(Requirements)p Black 19 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 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 -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 Black(.)p
-Black Black(.)p Black 11 w(8)596 1826 y(1.4.)g(Requirements)p
-Black 19 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 Black(.)p Black Black(.)p Black Black(.)p Black
@@ -630,37 +572,8 @@ 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 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 Black(.)p Black
-Black(.)p Black 11 w(8)795 1955 y(12)p 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 -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 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 11 w(7)596 1696
+y(1.5.)g(Installation)p Black(.)p Black Black -2 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
@@ -669,13 +582,8 @@ 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 -1 w(.)p Black Black(.)p Black Black(.)p
 Black Black(.)p Black Black(.)p Black Black(.)p Black
-Black(.)p Black 11 w(8)596 2085 y(1.5.)g(Installation)p
-Black(.)p Black Black -2 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
@@ -695,17 +603,17 @@ 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 11 w(8)396 1846 y Fh(2.)h(Operation)p Black 11
+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 -1 w(.)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(.)p Black Black
--1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+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 11 w(9)396 2234
-y Fh(2.)h(Operation)p Black 11 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 Black Black(.)p Black Black(.)p
@@ -728,17 +636,8 @@ 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(10)596
-2384 y Fj(2.1.)f(Main)g(Controls)p Black 19 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black 11 w(9)596
+1995 y Fj(2.1.)f(Main)g(Controls)p Black 19 w(.)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
@@ -766,40 +665,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(10)795 2513 y(21)p 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 -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 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 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(10)596 2643 y(2.2.)g(T)l(urntable)g
+Black(.)p Black Black(.)p Black 11 w(9)596 2125 y(2.2.)g(T)l(urntable)g
 (Controls)p Black 20 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
@@ -825,7 +691,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(11)795 2772 y(2.2.1.)g(T)l(urntable)g
+Black Black(.)p Black 11 w(10)795 2254 y(2.2.1.)g(T)l(urntable)g
 (Audio-Display)p Black 19 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
@@ -845,38 +711,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(12)994 2902 y(22)p 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 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 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(12)795 3031 y(2.2.2.)g(T)l(urntable)g(Controls)p
+Black(.)p Black 11 w(11)795 2384 y(2.2.2.)g(T)l(urntable)g(Controls)p
 Black 20 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
@@ -899,7 +734,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(12)994 3161 y(2.2.2.1.)g(Main)g(P)o(anel)p Black
+11 w(11)994 2513 y(2.2.2.1.)g(Main)g(P)o(anel)p Black
 18 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 Black
@@ -922,24 +757,8 @@ 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(13)1193 3290 y(23)p 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 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
+Black 11 w(12)994 2643 y(2.2.2.2.)g(T)m(rigger)g(P)o(anel)p
+Black 8 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
 Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
@@ -950,36 +769,18 @@ 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(13)994 3420
-y(2.2.2.2.)g(T)m(rigger)g(P)o(anel)p Black 8 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 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 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(13)1193 3549 y(24)p 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 -1 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 -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black 11 w(12)795 2772 y(2.2.3.)g(The)h(Ef)n(fect)f(Queue)p
+Black 17 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
@@ -1001,47 +802,8 @@ 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(13)795 3679 y(2.2.3.)g(The)h(Ef)n
-(fect)f(Queue)p Black 17 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(.)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 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)994
-3808 y(25)p 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 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(.)p Black Black(.)p Black 11 w(13)795 2902 y(2.2.4.)g(Lo)n(wpass)
+f(P)o(anel)p Black 1 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 Black(.)p
 Black Black(.)p Black Black(.)p Black Black(.)p Black
@@ -1055,40 +817,23 @@ 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)795
-3938 y(2.2.4.)g(Lo)n(wpass)f(P)o(anel)p Black 1 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 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(.)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 -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 -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 -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)994
-4067 y(26)p 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 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 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
 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 -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
@@ -1097,8 +842,8 @@ 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 -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
@@ -1107,21 +852,9 @@ 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(15)795
-4197 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 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 -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black 11 w(14)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
 Black(.)p Black Black -1 w(.)p Black Black(.)p Black
@@ -1138,18 +871,18 @@ 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(15)994 4326 y(27)p 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 -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(.)p Black Black -1 w(.)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 Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black 11 w(15)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
 Black Black(.)p Black Black(.)p Black Black(.)p Black
 Black -1 w(.)p Black Black(.)p Black Black(.)p Black
@@ -1158,7 +891,7 @@ 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 -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
@@ -1167,37 +900,16 @@ 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(15)596 4456 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 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 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 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 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
-Black -1 w(.)p Black Black(.)p Black Black(.)p Black
-Black(.)p Black 11 w(16)596 4586 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 -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
@@ -1220,11 +932,15 @@ 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(16)596 4715
-y(2.5.)g(Drag)h(And)f(Drop)p Black 22 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black 11 w(17)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
 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 -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
@@ -1234,7 +950,7 @@ 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 -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
@@ -1243,17 +959,15 @@ 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(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black 11 w(17)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(.)p Black Black
--1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
-Black 11 w(18)596 4845 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 -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(.)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
@@ -1262,7 +976,7 @@ 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 -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
@@ -1271,13 +985,17 @@ 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(18)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
+Black Black(.)p Black Black -1 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 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 -1 w(.)p Black Black(.)p Black Black(.)p Black
-Black(.)p Black 11 w(18)795 4974 y(28)p 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 -1 w(.)p
 Black Black(.)p Black Black(.)p Black Black(.)p Black
@@ -1300,29 +1018,16 @@ 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 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(18)596 5104
-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 Black(.)p
-Black Black(.)p Black Black(.)p Black Black(.)p Black
-Black(.)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
+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
 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 -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
@@ -1331,74 +1036,18 @@ 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(19)396
-5253 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 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 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 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(21)p Black 3695 5692 a Fg(3)p Black eop
-%%Page: 4 4
-4 3 bop Black Black 596 579 a Fj(3.1.)24 b(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 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 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(21)596 708 y(3.2.)g(Mouse/Input)f(Setup)p
+Black 11 w(20)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
@@ -1424,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(21)596 838 y(3.3.)h(GUI)h(Setup)p
+Black(.)p Black 11 w(20)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
@@ -1454,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(22)596 967 y(3.4.)f(Sound\002le-Editor)g(inte)o(gration)p
+Black 11 w(21)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
@@ -1476,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(22)396 1117 y Fh(4.)h(Contact)g(/)g(Do)o(wnload)p
+Black 11 w(21)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
@@ -1504,10 +1153,10 @@ 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(23)p Black 3695
-5692 a Fg(4)p Black eop
-%%Page: 5 5
-5 4 bop Black Black -2 647 a Fi(List)57 b(of)h(T)-17
+Black(.)p Black Black(.)p Black 11 w(22)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
 b(ab)n(les)396 879 y Fj(2-1.)25 b(K)n(e)o(yboard)f(Controls)g(in)g
 (Grab)h(Mode)p Black 20 w(.)p Black Black(.)p Black Black(.)p
 Black Black(.)p Black Black(.)p Black Black(.)p Black
@@ -1529,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(17)396 1009 y(2-2.)g(Mouse)f
+Black(.)p Black Black(.)p Black 11 w(16)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
@@ -1549,9 +1198,9 @@ 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(17)p Black 3695 5692 a Fg(5)p Black eop
-%%Page: 6 6
-6 5 bop Black Black -2 647 a Fi(Preface)396 944 y Fj(This)22
+Black 11 w(16)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
 Fj(\002le)i(that)f(came)g(with)g(this)g(distrib)n(ution)e(for)i
 (details.)396 1123 y Fg(W)-9 b(arning:)30 b Fj(T)-7 b(erminatorX)30
@@ -1559,10 +1208,10 @@ b(comes)g(with)g Fg(ABSOLUTEL)n(Y)i(NO)f(W)-6 b(ARRANTY)8
 b Fj(.)31 b(This)f(softw)o(are)396 1253 y(is)c(kno)n(wn)g(to)g(lockup)f
 (X11)i(or)f(cause)h(other)f(problems)g(under)g(rare)i(conditions.)c
 (Don')n(t)j(use)f(it)396 1382 y(on)f(production)e(serv)o(ers.)i(Y)-11
-b(ou)24 b(ha)n(v)o(e)h(been)g(w)o(arned!)p Black 3692
-5692 a Fg(6)p Black eop
-%%Page: 7 7
-7 6 bop Black Black -2 647 a Fi(Chapter)58 b(1.)f(Intr)l(oduction)-2
+b(ou)24 b(ha)n(v)o(e)h(been)g(w)o(arned!)p Black 3695
+5692 a Fg(5)p Black eop
+%%Page: 6 6
+6 5 bop Black Black -2 647 a Fi(Chapter)58 b(1.)f(Intr)l(oduction)-2
 1167 y Fl(1.1.)47 b(What)g(it)h(is)396 1383 y Fj(terminatorX)26
 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
@@ -1599,10 +1248,10 @@ Black 476 4744 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 3691 5762 a Fg(7)p
+Fj(to)e(quit)g(grab)h(mode.)p Black 3692 5762 a Fg(6)p
 Black eop
-%%Page: 8 8
-8 7 bop Black 2800 67 a Fg(Chapter)24 b(1.)h(Intr)l(oduction)p
+%%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
@@ -1640,9 +1289,9 @@ 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 3695 5692 a Fg(8)p Black eop
-%%Page: 9 9
-9 8 bop Black 2800 67 a Fg(Chapter)24 b(1.)h(Intr)l(oduction)p
+b(.gtk.or)n(g\).)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
 b(s)24 b(Simple)h(Plugin)g(API.)h(Get)g(it)f(from)h(the)695
@@ -1671,9 +1320,9 @@ o(e)e(of)i(course\).)g(Increasing)g(the)g(number)f(of)h(turntables)e
 3837 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
-Black 3695 5692 a Fg(9)p Black eop
-%%Page: 10 10
-10 9 bop Black Black -2 647 a Fi(Chapter)58 b(2.)f(Operation)396
+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
 944 y Fj(W)l(ith)26 b(Release)h(V)-11 b(ersion)25 b(3.70)h(the)g
 (terminatorX)f(has)h(under)n(gone)g(some)g(redesign)g(again.)f(It')-5
 b(s)396 1073 y(split)27 b(up)i(in)f(the)g(main)g(controls)f(\(master)l
@@ -1716,10 +1365,10 @@ Black 396 4701 a Fe(\225)p Black 72 w Fg(Sequencer)h(Play)f(/)h(Recor)l
 (d)g(/)f(Stop)496 4880 y Fj(Please)h(read)h(the)e(Sequencer)n(-Section)
 i(to)f(\002nd)g(out)f(more)g(about)h(the)f(sequencer)-5
 b(.)p Black 396 5109 a Fe(\225)p Black 72 w Fg(Master)24
-b(V)-11 b(olume)24 b(/)h(Pitc)o(h)p Black 3645 5762 a(10)p
+b(V)-11 b(olume)24 b(/)h(Pitc)o(h)p Black 3695 5762 a(9)p
 Black eop
-%%Page: 11 11
-11 10 bop Black 2885 67 a Fg(Chapter)25 b(2.)f(Oper)o(ation)p
+%%Page: 10 10
+10 9 bop Black 2885 67 a Fg(Chapter)25 b(2.)f(Oper)o(ation)p
 Black 496 579 a Fj(The)37 b(v)n(olume)g(and)g(pitch)g(settings)f(of)i
 (the)f(indi)n(vidual)e(turntables)i(are)h(relati)n(v)o(e)e(to)i(these)
 496 708 y(master)24 b(settings.)g(This)g(information)f(will)h(be)h
@@ -1760,9 +1409,9 @@ n(w)f(mo)o(v)o(e)f(the)i(mouse)f(up)g(and)h(do)n(wn)f(or)h(left)f(and)h
 b(s)32 b(v)n(alue.)h(All)f(those)h(widget)g(are)h(coupled)e(with)h(a)g
 (te)o(xt)g(entry)396 5222 y(\002eld)25 b(since)g(3.70,)f(which)g(allo)n
 (ws)g(you)g(to)h(enter)g(v)n(alues)f(directly)-6 b(.)p
-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 3645 5692 a Fg(10)p Black eop
+%%Page: 11 11
+11 10 bop Black 2885 67 a Fg(Chapter)25 b(2.)f(Oper)o(ation)p
 Black 396 579 a Fj(A)f(turntable)e(is)h(visualized)g(by)g(tw)o(o)g
 (panels:)g(the)g(controls)f(and)i(the)f(audio-display)-6
 b(.)20 b(These)j(are)396 708 y(no)i(longer)f(combined)g(for)h(better)g
@@ -1803,9 +1452,9 @@ b(3.70)f(this)g(mappings)496 4741 y(are)33 b(no)e(longer)h(hardcoded)g
 (to)g(b)n(uilt-in)e(controls)h(b)n(ut)h(a)n(v)n(ailable)f(for)h(all)g
 (parameters)g(that)496 4870 y(qualify)24 b(as)h("mappable".)e(Note)i
 (that)f(this)g(includes)g(plugins')g(controls)g(as)g(well.)p
-Black 3645 5692 a Fg(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 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
@@ -1841,9 +1490,9 @@ f(back)h(audio)f(from)h(the)g(be)o(ginning)e(of)i(the)496
 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(13)p Black eop
-%%Page: 14 14
-14 13 bop Black 2885 67 a Fg(Chapter)25 b(2.)f(Oper)o(ation)p
+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
 (turntable)h(the)g Fg(sync-master)r Fj(.)h(Note)f(that)g(only)f
 Fg(one)496 708 y Fj(turntable)24 b(at)h(a)g(time)f(can)h(be)g(the)g
@@ -1893,9 +1542,9 @@ b(A)29 b(plugin)d(into)h(the)h(ef)n(fect)g(queue)g(of)g(the)g
 (\(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(14)p Black eop
-%%Page: 15 15
-15 14 bop Black 2885 67 a Fg(Chapter)25 b(2.)f(Oper)o(ation)p
+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
@@ -1928,9 +1577,9 @@ b(Ec)o(ho)f(P)l(anel)396 4867 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(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 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
@@ -1975,9 +1624,9 @@ 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 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 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
@@ -1996,179 +1645,179 @@ Fh(F1)g Fj(to)f Fh(F12)h Fj(to)f(select)h(turtntable)e(1)i(to)g(12.)396
 1764 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.)396 2173 y 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 2296 3359 4 v 396 2296
-V 396 2451 4 155 v 424 2387 a Fk(K)o(e)o(y)p 2074 2451
-V 1498 w(Function)p 3751 2451 V 396 2454 3359 4 v 396
-2454 V 396 2608 4 155 v 424 2545 a Fh(T)-9 b(AB)p 2074
-2608 V 1483 w Fj(select)25 b(ne)o(xt)f(turntable)p 3751
-2608 V 396 2612 3359 4 v 396 2612 V 396 2766 4 155 v
-424 2702 a Fh(F1)h(to)g(F12)p 2074 2766 V 1273 w Fj(select)g(turntable)
-f(1)g(to)h(12)p 3751 2766 V 396 2769 3359 4 v 396 2769
-V 396 2924 4 155 v 424 2860 a Fh(RETURN)p 2074 2924 V
-1258 w Fj(triggers)f(the)h(turntable)p 3751 2924 V 396
-2927 3359 4 v 396 2927 V 396 3081 4 155 v 424 3018 a
-Fh(B)m(A)-5 b(CKSP)e(A)i(CE)p 2074 3081 V 1084 w Fj(stops)24
-b(the)g(turntable)p 3751 3081 V 396 3085 3359 4 v 396
-3085 V 396 3239 4 155 v 424 3175 a Fh(S)p 2074 3239 V
-1623 w Fj(toggles)g("Sync)g(Client")p 3751 3239 V 396
-3243 3359 4 v 396 3243 V 396 3526 4 284 v 424 3333 a
-Fh(SP)-7 b(A)i(CE)p 2074 3526 V 1364 w Fj(while)24 b(pressed)h
-(turntable)f(speed)h(is)f(mapped)2077 3463 y(to)g(mouse)g(speed)h
-(\(scratching!\))p 3751 3526 V 396 3530 3359 4 v 396
-3530 V 396 3684 4 155 v 424 3620 a Fh(AL)-9 b(T)p 2074
-3684 V 1483 w Fj(mute)24 b(on/of)n(f)p 3751 3684 V 396
-3688 3359 4 v 396 3688 V 396 3842 4 155 v 424 3778 a
-Fh(CTRL)p 2074 3842 V 1402 w Fj(mute)g(on/of)n(f)g(\(in)l(v)o(erted\))p
-3751 3842 V 396 3845 3359 4 v 396 3845 V 396 4000 4 155
-v 424 3936 a Fh(F)p 2074 4000 V 1617 w Fj(\("f)o(ast"\))g(w)o(arp)h
-(mode)g(\(while)f(scratching\))p 3751 4000 V 396 4003
-3359 4 v 396 4003 V 396 4287 4 284 v 424 4094 a Fh(W)p
-2074 4287 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 4223 y(muted)g(while)g(w)o(arping)p 3751
-4287 V 396 4290 3359 4 v 396 4290 V 396 4558 a Fh(T)-9
-b(able)26 b(2-2.)e(Mouse)h(Button)i(Contr)n(ols)e(in)g(Grab)f(Mode)p
-396 4662 V 396 4662 V 396 4817 4 155 v 424 4753 a Fk(Mouse)29
-b(Button)p 2074 4817 V 1013 w(Function)p 3751 4817 V
-396 4820 3359 4 v 396 4820 V 396 5104 4 284 v 424 4911
-a Fg(Left)c(b)n(utton)p 2074 5104 V 1244 w Fj(same)f(as)h
-Fh(SP)-7 b(A)i(CE:)25 b(scratching)h(\(triggers)2077
-5040 y(the)g(tur)o(ntable)g(when)f(stopped\))p 3751 5104
-V 396 5107 3359 4 v 396 5107 V 396 5262 4 155 v 424 5198
-a Fg(Right)f(b)n(utton)p 2074 5262 V 1183 w Fj(select)h(ne)o(xt)f
-(turntable)p 3751 5262 V 396 5265 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
+(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
+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
 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 980 a(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
-1109 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
-1239 y(def)o(ault)g(speed)g(again.)-2 1741 y Fl(2.5.)47
-b(Dra)n(g)h(And)h(Dr)m(op)396 1957 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 2086 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 2216 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 2345 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 2475 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 2604 y(that)d(displays)e(the)i
-(audiodata\).)396 2784 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 2913 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 3043
-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 3545 y Fl(2.6.)47 b(The)h(Sequencer)396
-3760 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 3890 y(follo)n(wing)23 b(parameters:)p Black
-396 4169 a Fe(\225)p Black 72 w Fj(master)h(v)n(olume)g(&)h(pitch)p
-Black 396 4348 a Fe(\225)p Black 72 w Fj(scratching)p
-Black 396 4528 a Fe(\225)p Black 72 w Fj(\(turntable\))f(v)n(olume)g(&)
-h(pitch)p Black 396 4707 a Fe(\225)p Black 72 w Fj(triggers)p
-Black 396 4886 a Fe(\225)p Black 72 w Fj(loop)f(\(on/of)n(f\))p
-Black 396 5066 a Fe(\225)p Black 72 w Fj(sync)g(client)h(settings)p
-Black 396 5245 a Fe(\225)p Black 72 w Fj(muting)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 Black 396 579 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 708 y(well)e(as)h(LADSP)-9
-b(A)25 b(plugins.)396 888 y(T)-8 b(o)37 b(record)g(e)n(v)o(ents)f
+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
+(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
+(\(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
+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
+(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
+(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)
+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
+(\(*.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
 (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 1017
+b(of)i(the)g(sequencer)l(,)g(then)g(press)g(the)396 1197
 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 1147 y(be)33 b(recorded)g(into)e(the)h(song)g(list.)f(Press)i
+396 1326 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 1276 y(torX)j(plays)g(back)h(the)f(e)n(v)o(ents)f
+(termina-)396 1456 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 1406 y(e.g.)d(another)f(turntable)g(or)h
+(ents)e(again)h(for)396 1585 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 1535 y(you)23 b(w)o(ant)g(to)g(do.)g(Recording)g(e)
+(whate)n(v)o(er)396 1715 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 1665 y(before)29 b(will)f(result)g(in)g(dubbing:)
+i(been)h(recorded)396 1844 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 1794 y(viously)e(recorded)h(will)f(be)h(erased)h(from)e(the)
+e(pre-)396 1974 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
-1924 y(stop)f(recording.)396 2103 y(When)19 b(recording)g(long)f
+2103 y(stop)f(recording.)396 2283 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 2233 y(ing/playback)27 b(from)h(an)o(y)f
+(start)h(record-)396 2412 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 2362 y(at)e(a)h(certain)f(position)e(simply)
+(paramteter)h(v)n(alue)396 2542 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 2492 y Fj(set)g(the)g(parameter)g(and)f
-(press)h Fg(Stop)f Fj(again.)396 2671 y(There)29 b(is)g(no)f(other)h
+(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
 (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 2801 y(may)c(feature)g(an)g
-(e)n(v)o(ent-list)e(editor)-5 b(.)-2 3303 y Fl(2.7.)47
-b(Plugins)g(\(LADSP)-17 b(A\))396 3519 y Fj(Since)31
+-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
-3648 y(Audio)j(De)n(v)o(eloper')-5 b(s)32 b(Simple)i(Plugin)g(API")g
+3827 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
-3778 y(Linux-Audio-De)n(v)o(eloper)n(-Mailinglist)29
+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 3907 y(more)c(information)f(on)h(LADSP)-9
+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 4037 y(out)c(the)h(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
-4216 y(Not)34 b(e)n(v)o(ery)g(plugin)g(is)g(supported)f(by)i
+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
-4345 y(into)29 b(the)h(per)n(-turntable)f(ef)n(fect-queue,)h(the)o(y)f
+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
-4475 y(for)i(no)n(w)-6 b(.)28 b(This)h(is)h(why)f(terminatorX)g(will)g
+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 4604 y Fj(audio-out)24 b(port)g(only)-6 b(.)396
-4784 y(The)39 b(decision)f(on)g(wether)h(a)g(plugin)e(is)h
+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
-4913 y(startup,)33 b(so)g(only)f(plugins)g(that)h(\002t)g(into)f(the)h
+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
-5043 y(menu)26 b(that)g(pops)g(up)g(when)h(the)f Fg(FX)31
+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)396 5172 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.)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(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 708 y(loading)24 b(a)h(plugin.)396 888
-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
-1017 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 1147 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
-1276 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 1406
-y(you)25 b(w)o(ould)f(ha)n(v)o(e)g(to)h(set:)396 1585
-y(LADSP)-9 b(A_P)g(A)e(TH=)p Ff(/usr/lib/ladspa:/home/yourlogin/plu)o
-(gins)396 1764 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
-1894 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
-2023 y(is)31 b(just)g(a)h(con)l(v)o(enience-function,)e(in)i(order)f
+(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
+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
+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
+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
 (for)h(other)g(LADSP)-9 b(A-hosts)31 b(to)g(w)o(ork)g(properly)-6
-b(,)396 2153 y(be)24 b(sure)f(to)g(set)h(your)f(LADSP)-9
+b(,)396 2283 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 2283 y(where)31 b(in)f(your)g
+(to)f(do)g(that)g(from)g(some-)396 2412 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 2412 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
+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
 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
@@ -2213,9 +1862,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(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 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 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
@@ -2237,19 +1886,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(22)p
+3180 y(ple_in_vtt.w)o(a)n(v".)p Black 3645 5692 a Fg(21)p
 Black eop
-%%Page: 23 23
-23 22 bop Black Black -2 647 a Fi(Chapter)58 b(4.)f(Contact)h(/)g(Do)m
+%%Page: 22 22
+22 21 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(23)p Black eop
-%%Page: 24 24
-24 23 bop Black Black Black Black eop
+Fg(22)p Black eop
+%%Page: 23 23
+23 22 bop Black Black Black Black eop
 %%Trailer
 end
 userdict /end-hook known{end-hook}if
index 7f85bac616f93adcdc2dcb2cd08ab50db494bf69..b1410ee6325f1fcd56508cbe1e071d12d93b725d 100644 (file)
@@ -4,7 +4,8 @@
 >Mouse/Input Setup</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.59"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.61
+"><LINK
 REL="HOME"
 TITLE="terminatorX - Manual"
 HREF="index.html"><LINK
index 79130a23120fe33c99b0e4de0190efe9e89b66d3..fc174ba9ca357b8e0fef91a4d5f9f1c61fb71058 100644 (file)
@@ -4,7 +4,8 @@
 >Operation</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.59"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.61
+"><LINK
 REL="HOME"
 TITLE="terminatorX - Manual"
 HREF="index.html"><LINK
index 10940c9b564e008cac8b95f82b61b52372f85f28..2ea0559be27fa995c93fab1e93ed54b422e7c93f 100644 (file)
@@ -4,7 +4,8 @@
 >Preface</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.59"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.61
+"><LINK
 REL="HOME"
 TITLE="terminatorX - Manual"
 HREF="index.html"><LINK
index 7848049b93c64c61fd09b3ec92122965ce3c7868..8a3734bc910df5e099bcb101251b4ed72dc82ac4 100644 (file)
@@ -4,7 +4,8 @@
 >Quickstart</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.59"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.61
+"><LINK
 REL="HOME"
 TITLE="terminatorX - Manual"
 HREF="index.html"><LINK
index 44e792fdd3946dcb6810cd1a86806d6b447f3b1f..f494d4f5d95e1c495192d6274dcd10fafbd6e8f9 100644 (file)
@@ -4,7 +4,8 @@
 >Requirements</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.59"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.61
+"><LINK
 REL="HOME"
 TITLE="terminatorX - Manual"
 HREF="index.html"><LINK
index 8bcf693715ce4532a1971d2081102a2baf2c25c8..1f6355aac68fa07fcb50e792e69923c68961355f 100644 (file)
@@ -4,7 +4,8 @@
 >The Sequencer</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.59"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.61
+"><LINK
 REL="HOME"
 TITLE="terminatorX - Manual"
 HREF="index.html"><LINK
index cbc808b513371df7dea8a12c57947da7e7252618..d0ba0e5ab20cafa013c7d1c4bf7692455dd559f8 100644 (file)
@@ -4,7 +4,8 @@
 >Soundfile-Editor integration</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.59"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.61
+"><LINK
 REL="HOME"
 TITLE="terminatorX - Manual"
 HREF="index.html"><LINK
index 210ca60037bc6bf91fa080f8ca7fa550d0374987..837caed8064e69802b967609e3d889505d1ab972 100644 (file)
@@ -4,7 +4,8 @@
 >Synchronization</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.59"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.61
+"><LINK
 REL="HOME"
 TITLE="terminatorX - Manual"
 HREF="index.html"><LINK
index b6563d3fef80f86af72a9fbd5b2b74be5e2709f1..d1209238c880e54eea2eefd62569b0a38e9f5c0c 100644 (file)
@@ -4,7 +4,8 @@
 >Turntable Controls</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.59"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.61
+"><LINK
 REL="HOME"
 TITLE="terminatorX - Manual"
 HREF="index.html"><LINK
index 8853119d727b20dc3c998a000397875620b2d61c..cdd7c6bf6085eefb427cf7cd581e3d81a53a4caa 100644 (file)
@@ -102,6 +102,8 @@ usage: terminatorX [options] [save file]\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\
 \n");
 /*
   -n, --no-gui                 Run terminatorX with no GUI\n\
@@ -163,6 +165,21 @@ int parse_args(int *argc, char **argv)
                        globals.store_globals = 0;
 
                }
+               else if ((strcmp(argv[i], "-s") == 0) || (strcmp(argv[i], "--std-out") == 0))
+               {
+                       globals.use_stdout_cmdline = 1;
+                       globals.use_stdout = 1;
+               }
+               else if ((strncmp(argv[i], "--device",8) == 0))
+               {
+                       if (strlen(argv[i]+9)<=PATH_MAX)
+                               strcpy(globals.audio_device,argv[i]+9);
+                       else
+                       {
+                               show_help();
+                                exit(1);
+                       }
+               }
 /*             
                else if ((strcmp(argv[i], "-m") == 0) || (strcmp(argv[i], "--midi-in") == 0))
                {
index 028bb8ed35e67b5ff25ecb7caa0ee0759a9cc5f8..e1064240430523e1c7f1967c0794554b111c198d 100644 (file)
@@ -123,9 +123,9 @@ int audiodevice :: dev_open(int dont_use_rt_buffsize)
 
         i +=  ioctl(fd, SOUND_PCM_WRITE_BITS, &p);
 
-       /* MONO */
+       /* STEREO :) */
        
-        p =  1;
+        p =  2;
         i += ioctl(fd, SOUND_PCM_WRITE_CHANNELS, &p);
        
        /* 44.1 khz */
@@ -134,8 +134,10 @@ int audiodevice :: dev_open(int dont_use_rt_buffsize)
         i += ioctl(fd, SOUND_PCM_WRITE_RATE, &p);
                
         i += ioctl(fd, SNDCTL_DSP_GETBLKSIZE, &blocksize);
-       globals.true_block_size=samples=blocksize/sizeof(int16_t);      
+       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);
         ioctl(fd, SNDCTL_DSP_SYNC, 0);
 
 #ifdef USE_WRITER_THREAD
index 0a528381a0b9773d3e97a11591b801a3c0c29259..e589f514cd03c3fb370208b692f5dc206efc3d87 100644 (file)
@@ -95,7 +95,6 @@ void apply_options()
        int i;
        
        strcpy(globals.audio_device, gtk_entry_get_text(GTK_ENTRY(audio_device)));
-       globals.use_stdout=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(use_stdout));
        globals.buff_no=(int)buff_no->value;    
        globals.buff_size=(int)buff_size->value;
        
@@ -200,6 +199,11 @@ void ok_options(GtkWidget *widget)
        options_destroy(widget);
 }
 
+void  use_stdout_changed(GtkWidget *widget)
+{
+       globals.use_stdout=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
+       globals.use_stdout_cmdline = 0;
+}
 void select_input(GtkWidget *w, char *dev)
 {
        gtk_label_set(GTK_LABEL(GTK_BUTTON(xinput_device)->child), dev);
@@ -256,6 +260,7 @@ void create_options()
        begin_box();
        use_stdout=gtk_check_button_new_with_label("Use standard output instead of the above device");
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(use_stdout), globals.use_stdout);        
+       gtk_signal_connect(GTK_OBJECT(use_stdout), "clicked", (GtkSignalFunc) use_stdout_changed, NULL);
        add_widget_fix(use_stdout);     
        end_box();      
                
index 0cce113590ac61190ee8bc99f668615927d16372..4d5bf48114f3100c97f03fe934e92e032ab8e00a 100644 (file)
@@ -201,7 +201,7 @@ int run_engine()
                }
        }
 
-       vtt_class::set_mix_buffer_size(device->getblocksize()/sizeof(int16_t));
+       vtt_class::set_mix_buffer_size(device->getblocksize()/sizeof(int16_t)/2);
        
        engine_quit=0;
 #ifdef USE_SCHEDULER   
index 1075f9e50a72f537960bc271d4ace1d5c587a6b5..fad7644add1f0990ec799db63c6ce3c3e331af67 100644 (file)
@@ -97,6 +97,7 @@ void load_globals()
                globals.tooltips=1;
        
                globals.use_stdout=0;
+               globals.use_stdout_from_conf_file=0;
        
                globals.show_nag=1;
                globals.prelis=1;
@@ -122,6 +123,8 @@ void load_globals()
           everywhere but I think it doesn't make sense resetting
          to old values on startup....
        */
+       globals.use_stdout_cmdline=0;
+       globals.current_path = NULL;
        globals.pitch=1.0;
        globals.volume=1.0;     
        if (!globals.true_block_size) globals.true_block_size=1<globals.buff_size;
@@ -140,6 +143,13 @@ void store_globals()
                rc=fopen(rc_name, "w");
                if (rc)
                {
+                       // doesn't really make sense to save pointers...
+                       globals.startup_set = NULL;
+                       globals.alternate_rc = NULL;
+                       globals.current_path = NULL; 
+                       
+                       if (globals.use_stdout_cmdline)
+                               globals.use_stdout = globals.use_stdout_from_conf_file;
                        fwrite(&globals, sizeof(tx_global), 1, rc);
                        fclose(rc);
                }
index f2351aed166d6bcdbb5f0af27ba146eacd39eef1..b11f0faf2b248f913205f8368fd11604b731d9f1 100644 (file)
@@ -74,6 +74,8 @@ typedef struct {
        char last_fn[PATH_MAX];
 
        int use_stdout;
+       int use_stdout_cmdline;
+       int use_stdout_from_conf_file;
        int show_nag;
        
        int prelis;
@@ -94,6 +96,8 @@ typedef struct {
        char file_editor[PATH_MAX];
        int true_block_size;
        int update_delay; 
+       
+       char *current_path;
 } tx_global;
 
 extern tx_global globals;
index 741bab750d39b5aba48b4a0390c9f6acad18eb01..d3b0b1a7ac2411ea54ced3a46aafdc50afee49b7 100644 (file)
@@ -54,6 +54,7 @@
 #define TX_SET_ID_10 "terminatorX turntable set file - version 1.0 - data:"
 #define TX_SET_ID_11 "terminatorX turntable set file - version 1.1 - data:"
 #define TX_SET_ID_12 "terminatorX turntable set file - version 1.2 - data:"
+#define TX_SET_ID_13 "terminatorX turntable set file - version 1.3 - data:"
 
 int audioon=0;
 int sequencer_ready=1;
@@ -64,7 +65,8 @@ GtkWidget *audio_parent;
 GtkWidget *main_window;
 GtkWidget *wav_progress;
 GtkWidget *grab_button;
-GtkWidget *main_flash;
+GtkWidget *main_flash_l;
+GtkWidget *main_flash_r;
 GtkWidget *rec_btn;
 
 GtkWidget *seq_rec_btn;
@@ -153,7 +155,8 @@ gint pos_update(gpointer data)
                tX_seqpar :: update_all_graphics();
                if (old_focus) gui_show_frame(old_focus, 0);
                old_focus=NULL;
-               gtk_tx_flash_clear(main_flash);
+               gtk_tx_flash_clear(main_flash_l);
+               gtk_tx_flash_clear(main_flash_r);
                gdk_flush();    
                update_tag=0;
                return(FALSE);
@@ -161,9 +164,17 @@ gint pos_update(gpointer data)
        else
        {
                update_all_vtts();
-               temp=vtt_class::mix_max;
-               vtt_class::mix_max=0;
-               gtk_tx_flash_set_level(main_flash, temp);
+               
+               /*left vu meter */
+               temp=vtt_class::mix_max_l;
+               vtt_class::mix_max_l=0;
+               gtk_tx_flash_set_level(main_flash_l, temp);
+
+               /*right vu meter */
+               temp=vtt_class::mix_max_r;
+               vtt_class::mix_max_r=0;
+               gtk_tx_flash_set_level(main_flash_r, temp);
+               
                if (vtt_class::focused_vtt!=old_focus)
                {
                        if (old_focus) gui_show_frame(old_focus, 0);
@@ -303,6 +314,10 @@ void load_tt_part(char * buffer)
                {
                        if (vtt_class::load_all_12(in, buffer)) tx_note("Error while reading set.");                    
                }
+               else if (strncmp(idbuff, TX_SET_ID_13, strlen(TX_SET_ID_13))==0)
+               {
+                       if (vtt_class::load_all_13(in, buffer)) tx_note("Error while reading set.");                    
+               }
                else
                {
                        tx_note("Sorry, this file is not a terminatorX set-file.");
@@ -435,7 +450,7 @@ void do_save_tables(GtkWidget *wid)
        
        if (out)
        {
-               strcpy(idbuffer, TX_SET_ID_12);
+               strcpy(idbuffer, TX_SET_ID_13);
                fwrite(idbuffer, strlen(idbuffer), 1, out);
                if (vtt_class::save_all(out)) tx_note("Error while saving set.");
                fclose(out);
@@ -653,7 +668,7 @@ GtkSignalFunc tape_on(GtkWidget *w, void *d)
        }
 }
 
-GtkSignalFunc grab_on(GtkWidget *w, void *d)
+void grab_on(GtkWidget *w, void *d)
 {
        grab_mouse(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)));
        grab_status=1;
@@ -664,7 +679,7 @@ void grab_off()
        grab_status=0;
 }
 
-GtkSignalFunc hide_clicked(GtkWidget *w, void *d)
+void hide_clicked(GtkWidget *w, void *d)
 {
        if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)))
        {
@@ -766,7 +781,7 @@ void seq_update()
        gtk_adjustment_set_value(seq_adj, sequencer.get_timestamp_as_float());
        
 }
-GtkSignalFunc seq_slider_released(GtkWidget *wid, void *d)
+void seq_slider_released(GtkWidget *wid, void *d)
 {
        seq_adj_care=0;
        gtk_widget_set_sensitive(seq_slider, 0);        
@@ -774,7 +789,7 @@ GtkSignalFunc seq_slider_released(GtkWidget *wid, void *d)
        gtk_widget_set_sensitive(seq_slider, 1);        
        seq_adj_care=1;
 }
-GtkSignalFunc sequencer_move(GtkWidget *wid, void *d)
+void sequencer_move(GtkWidget *wid, void *d)
 {
        u_int32_t pos;
        
@@ -1123,9 +1138,13 @@ void create_mastergui(int x, int y)
        gui_set_tooltip(dummy, "Adjust the master volume. This parameter will effect *all* turntables in the set.");
        
 #ifdef USE_FLASH       
-       main_flash=gtk_tx_flash_new();
-       gtk_box_pack_end(GTK_BOX(small_box), main_flash, WID_DYN);
-       gtk_widget_show(main_flash);
+       main_flash_r=gtk_tx_flash_new();
+       gtk_box_pack_end(GTK_BOX(small_box), main_flash_r, WID_DYN);
+       gtk_widget_show(main_flash_r);
+
+       main_flash_l=gtk_tx_flash_new();
+       gtk_box_pack_end(GTK_BOX(small_box), main_flash_l, WID_DYN);
+       gtk_widget_show(main_flash_l);
 #endif 
        gtk_window_set_default_size(GTK_WINDOW(main_window), x, y);     
        gtk_widget_set_sensitive(grab_button, 0);
index cf2445270143e822cb1d5ce16397e57d2841d354..f584c36577da9bb40584b2ed8deb59b3658490a5 100644 (file)
@@ -6,7 +6,7 @@
 #define WID_DYN TRUE, TRUE, 0
 #define WID_FIX FALSE, FALSE, 0
 
-GtkSignalFunc tX_panel :: minimize(GtkWidget *w, tX_panel *p)
+void tX_panel :: minimize(GtkWidget *w, tX_panel *p)
 {
        p->client_hidden=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(p->minbutton));
        
index c2d92991fe9186cb388795f58ec05cd1e06cd8b9..2484686fb96fb1eaa8908ff567b495cfda65cad3 100644 (file)
@@ -25,7 +25,7 @@ class tX_panel
        int is_hidden() { return client_hidden; }
        void hide(int i) { gtk_toggle_button_set_active((GTK_TOGGLE_BUTTON(minbutton)), i); } 
        
-       static GtkSignalFunc minimize(GtkWidget *w, tX_panel *p);
+       static void minimize(GtkWidget *w, tX_panel *p);
 };
 
 #endif
index d8efcd33b7203fb250c6452d3ffe25d2fd801aa0..2191ea9fe4136e061ff167f2bdcd5d0e71343a4e 100644 (file)
@@ -433,6 +433,30 @@ const char * tX_seqpar_vtt_volume :: get_name()
         return "Volume";
 }
 
+/**** Sequencable Parameter : Pan ****/
+
+tX_seqpar_vtt_pan :: tX_seqpar_vtt_pan()
+{
+       set_mapping_parameters(1.0, -1.0, TX_SEQPAR_DEFAULT_SCALE, 1);
+}
+
+float tX_seqpar_vtt_pan :: get_value(){ return tt->pan; }
+
+void tX_seqpar_vtt_pan :: do_exec(const float value)
+{
+       tt->set_pan(value);
+}
+
+void tX_seqpar_vtt_pan :: do_update_graphics ()
+{
+       gtk_adjustment_set_value(tt->gui.pan, tt->pan);
+}
+
+const char * tX_seqpar_vtt_pan :: get_name()
+{
+        return "Pan";
+}
+
 /**** Sequencable Parameter: TURNTABLE PITCH ****/
 
 tX_seqpar_vtt_pitch :: tX_seqpar_vtt_pitch()
@@ -705,6 +729,30 @@ const char * tX_seqpar_vtt_ec_feedback :: get_name()
         return "Echo: Feedback";
 }
 
+/**** Sequencable Parameter: TURNTABLE ECHO PAN ****/
+
+tX_seqpar_vtt_ec_pan :: tX_seqpar_vtt_ec_pan()
+{
+       set_mapping_parameters(1.0, -1.0, TX_SEQPAR_DEFAULT_SCALE, 1);
+}
+
+float tX_seqpar_vtt_ec_pan :: get_value() { return tt->ec_pan; }
+
+void tX_seqpar_vtt_ec_pan :: do_exec(const float value)
+{
+       tt->ec_set_pan(value);
+}
+
+void tX_seqpar_vtt_ec_pan :: do_update_graphics ()
+{
+       gtk_adjustment_set_value(tt->gui.ec_pan, tt->ec_pan);
+}
+
+const char * tX_seqpar_vtt_ec_pan :: get_name()
+{
+        return "Echo: Pan";
+}
+
 /**** Sequencable Parameter: TURNTABLE MUTE ****/
 
 tX_seqpar_vtt_mute :: tX_seqpar_vtt_mute()
index 0cf1d7ad9efb0ec31334f59c7413ca9221f95038..c52adf7fb06db16e1ed3f7baf83d3901d0dd6901 100644 (file)
@@ -192,6 +192,17 @@ class tX_seqpar_vtt_volume : public tX_seqpar_update
         virtual const char *get_name(); 
 };
 
+class tX_seqpar_vtt_pan : public tX_seqpar_update
+{
+       public:
+       tX_seqpar_vtt_pan();
+       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_pitch : public tX_seqpar_update_active_forward
 {
        public:
@@ -317,6 +328,17 @@ class tX_seqpar_vtt_ec_feedback : public tX_seqpar_update
         virtual const char *get_name(); 
 };
 
+class tX_seqpar_vtt_ec_pan : public tX_seqpar_update
+{
+       public:
+       tX_seqpar_vtt_ec_pan();
+       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 a99231e07ad584bae54cad7b73b3121f2a872e73..82999540cbf72ad5a557746ba17a2d2dc73d990f 100644 (file)
@@ -37,7 +37,7 @@ int tx_tapedeck :: start_record (char *name, int bs)
                
        strcpy(file.name, name);
        file.srate=44100;
-       file.chans=1;
+       file.chans=2;
        file.depth=16;
        file.bps=88200;
        file.blkalign=2;
index 6476031ab4c5f7cf3f3f16e31e1585a0ad48289d..5437c68ada4c89dbee4d7fff80e9d733d54d1f9b 100644 (file)
 #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);
+#define tX_malloc(ptr, varname, comment, size, type); fprintf(stderr, "**[1/2] malloc() [%s]. Size: %i. %s.\n", varname, size, comment); ptr=type malloc(size); fprintf(stderr, "**[2/2] malloc() [%s]. ptr: %08x.\n", varname, ptr);
+#else
+#define tX_freemem(ptr, varname, comment); free(ptr);
+#define tX_malloc(ptr, varname, comment, size, type); ptr=type malloc(size);
+#endif
+
 #include "tX_loaddlg.h"
 
 #define USE_PREFETCH 1
@@ -82,7 +92,8 @@ vtt_class * vtt_class::sync_master=NULL;
 int vtt_class::master_triggered=0;
 int vtt_class::master_triggered_at=0;
 vtt_class * vtt_class::focused_vtt=NULL;
-f_prec vtt_class::mix_max=0;
+f_prec vtt_class::mix_max_l=0;
+f_prec vtt_class::mix_max_r=0;
 f_prec vtt_class::vol_channel_adjust=1.0;
 
 #define GAIN_AUTO_ADJUST 0.8
@@ -121,6 +132,7 @@ vtt_class :: vtt_class (int do_create_gui)
        ec_feedback=0.3;
        ec_clear_buffer();
        ec_set_length(0.5);
+       ec_set_pan(0);
        
 //     pthread_mutex_lock(&main_lock);
        main_list.push_back(this);
@@ -132,6 +144,7 @@ vtt_class :: vtt_class (int do_create_gui)
        sp_speed.set_vtt((void *) this);
        sp_volume.set_vtt((void *) this);       
        sp_pitch.set_vtt((void *) this);        
+       sp_pan.set_vtt((void *) this);
        sp_trigger.set_vtt((void *) this);      
        sp_loop.set_vtt((void *) this); 
        sp_sync_client.set_vtt((void *) this);  
@@ -141,7 +154,8 @@ vtt_class :: vtt_class (int do_create_gui)
        sp_lp_reso.set_vtt((void *) this);      
        sp_lp_freq.set_vtt((void *) this);      
        sp_ec_enable.set_vtt((void *) this);    
-       sp_ec_length.set_vtt((void *) this);    
+       sp_ec_length.set_vtt((void *) this);
+       sp_ec_pan.set_vtt((void *) this);
        sp_ec_feedback.set_vtt((void *) this);          
        sp_mute.set_vtt((void *) this);
        sp_spin.set_vtt((void *) this);
@@ -165,8 +179,9 @@ vtt_class :: vtt_class (int do_create_gui)
        }
        else have_gui=0;
                
+       set_pan(0);     
        set_master_volume(globals.volume);
-       set_output_buffer_size(samples_in_mix_buffer);
+       set_output_buffer_size(samples_in_mix_buffer/2);
        
        audiofile = NULL;       
 }
@@ -180,7 +195,7 @@ vtt_class :: ~vtt_class()
 //     pthread_mutex_unlock(&main_lock);
        if (audiofile) delete audiofile;
        //if (buffer) free(buffer);
-       if (output_buffer) free(output_buffer);
+       if (output_buffer) tX_freemem(output_buffer, "output_buffer", "vtt Destructor");
        vtt_amount--;
        
        while (fx_list.size())
@@ -239,8 +254,12 @@ int vtt_class :: set_output_buffer_size(int newsize)
 {
        list <vtt_fx *> :: iterator effect;
 
-       if (output_buffer) free(output_buffer);
-       output_buffer = (float *) malloc (sizeof(float)*newsize);
+       if (ec_output_buffer) tX_freemem(ec_output_buffer, "ec_output_buffer", "vtt set_output_buffer_size()");
+       tX_malloc(ec_output_buffer, "ec_output_buffer", "vtt set_output_buffer_size()", sizeof(float)*newsize, (float *));
+
+       if (output_buffer) tX_freemem(output_buffer, "output_buffer", "vtt set_output_buffer_size()");
+       //output_buffer = (float *) malloc (sizeof(float)*newsize);
+       tX_malloc(output_buffer, "output_buffer", "vtt set_output_buffer_size()", sizeof(float)*newsize, (float *));
        end_of_outputbuffer = output_buffer + newsize; //size_t(sizeof(float)*(newsize));
        
        samples_in_outputbuffer=newsize;
@@ -264,11 +283,49 @@ void vtt_class :: set_volume(f_prec newvol)
 void vtt_class :: recalc_volume()
 {
        res_volume=rel_volume*res_master_volume;
+       
+       if (pan>0.0)
+       {
+               res_volume_left=(1.0-pan)*res_volume;
+               res_volume_right=res_volume;
+       }
+       else if (pan<0.0)
+       {
+               res_volume_left=res_volume;
+               res_volume_right=(1.0+pan)*res_volume;
+       }
+       else
+       {
+               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;
+       }
+       else if (ec_pan<0.0)
+       {
+               ec_volume_left=res_volume;
+               ec_volume_right=(1.0+ec_pan)*res_volume;
+       }
+       else
+       {
+               ec_volume_left=ec_volume_right=res_volume;
+       }       
+//     printf("vtt_volume: %f, %f, l: %f, r: %f\n", rel_volume, res_volume, res_volume_left, res_volume_right);
+       
 #ifdef USE_3DNOW
        mm_res_volume.s[0]=mm_res_volume.s[1]=res_volume;
 #endif 
 }
 
+void vtt_class :: set_pan(f_prec newpan)
+{
+       pan=newpan;
+       recalc_volume();
+}
+
 void vtt_class :: set_pitch(f_prec newpitch)
 {
        rel_pitch=newpitch;
@@ -354,6 +411,14 @@ void vtt_class :: ec_set_enable(int newstate)
        ec_enable=newstate;
 }
 
+
+void vtt_class :: ec_set_pan(f_prec pan)
+{
+       ec_pan=pan;
+
+       recalc_volume();
+}
+
 /* Max length is 1.0 */
 
 void vtt_class :: ec_set_length(f_prec length)
@@ -719,51 +784,16 @@ void vtt_class :: render_lp()
 
 void vtt_class :: render_ec()
 {
-#ifdef USE_3DNOW
-       mmx_t *sample;
-       mmx_t feed;
-       
-/*     my_prefetchw(ec_ptr, 0);
-       my_prefetchw(ec_ptr, 8);
-       my_prefetchw(ec_ptr, 16);
-       my_prefetchw(ec_ptr, 32);*/
-
-       feed.s[0]=ec_feedback;
-       feed.s[1]=ec_feedback;
-       
-       movq_m2r(feed, mm0);
-       
-       for (sample = (mmx_t*) output_buffer; sample<(mmx_t*) end_of_outputbuffer; sample++, ec_ptr+=2)
-       {
-       
-               if (ec_ptr>ec_delay) ec_ptr=ec_buffer;
-               
-               movq_m2r(*sample, mm1);
-               movq_m2r(*ec_ptr, mm2);
-               
-               pfmul_r2r(mm0, mm2);
-               pfadd_r2r(mm1, mm2);
-               
-               movq_r2m(mm2, *sample);
-               movq_r2m(mm2, *ec_ptr); 
-       }       
-       
-       femms();
-#else
        f_prec *sample;
-       f_prec temp;
+       f_prec *ec_sample;
        int i;
 
-
-       for (i=0, sample = output_buffer; i<samples_in_outputbuffer; i++, sample++, ec_ptr++)
+       for (i=0, sample = output_buffer, ec_sample=ec_output_buffer; i<samples_in_outputbuffer; i++, ec_sample++,sample++, ec_ptr++)
        {
                if (ec_ptr>ec_delay) ec_ptr=ec_buffer;
-               
-               temp= *sample + (*ec_ptr) *ec_feedback;
-               *sample=temp;
-               *ec_ptr=temp;
+               *ec_sample=(*ec_ptr) *ec_feedback;
+               *ec_ptr=*sample+*ec_sample;
        }       
-#endif
 }
 
 int vtt_class :: set_mix_buffer_size(int no_samples)
@@ -771,13 +801,21 @@ int vtt_class :: set_mix_buffer_size(int no_samples)
        list <vtt_class *> :: iterator vtt;
        int res=0;
        
-       if (mix_buffer) free(mix_buffer);
-       mix_buffer=(float *) malloc (sizeof(float)*no_samples);
-       mix_buffer_end=mix_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);
        
-       if (mix_out_buffer) free(mix_out_buffer);
-       mix_out_buffer=(int16_t *) malloc (sizeof(int16_t)*no_samples + 4); /* extra 4 for 3DNow! */
-       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);
        
        for (vtt=main_list.begin(); vtt!=main_list.end(); vtt++)
        {
@@ -792,6 +830,7 @@ int16_t * vtt_class :: render_all_turntables()
 {
        list <vtt_class *> :: iterator vtt, next;
        int sample;
+       int mix_sample;
        f_prec temp;
 
 #ifdef USE_3DNOW
@@ -812,94 +851,48 @@ int16_t * vtt_class :: render_all_turntables()
        
        pthread_mutex_lock(&render_lock);
        
-       switch (render_list.size())
+       if (render_list.size()==0)
+       {
+               for (sample=0; sample<samples_in_mix_buffer; sample++)
+               {
+                       mix_out_buffer[sample]=0;
+               }
+       }
+       else
        {
-               case 0: for (sample=0; sample<samples_in_mix_buffer; sample++)
-                       {
-                               mix_out_buffer[sample]=0;
-                       }
-                       break;
-/*             case 1: vtt=render_list.begin();
-                       (*vtt)->render();
-                       
-                       if (do_saturate)
-                       for (sample=0; sample<samples_in_mix_buffer; sample++)
-                       {
-                               temp=((*vtt)->output_buffer[sample]*(*vtt)->res_volume);
-                               if (temp>SAMPLE_BORDER)
-                               {
-                                       temp*=saturate_fac;
-                                       temp+=SAMPLE_BORDER;
-                               }
-                               else
-                               {
-                                       if (temp<-SAMPLE_BORDER)
-                                       {
-                                               temp*=saturate_fac;
-                                               temp-=SAMPLE_BORDER;
-                                       }
-                               }
-                               mix_out_buffer[sample]=(int16_t) temp;
-                       }
-                       else
-                       for (sample=0; sample<samples_in_mix_buffer; sample++)
-                       {
-                               mix_out_buffer[sample]=(int16_t) ((*vtt)->output_buffer[sample]*(*vtt)->res_volume);
-                       }
-                       break;*/
-               default:
                        vtt=render_list.begin();
                        (*vtt)->render();                       
-#ifdef USE_FLASH
                        max=(*vtt)->max_value;
                        min=max;
 
-#ifndef USE_3DNOW                      
-                       for (sample=0; sample<samples_in_mix_buffer; sample++)
+                       for (sample=0, mix_sample=0; sample<(*vtt)->samples_in_outputbuffer; sample++)
                        {                               
                                temp=(*vtt)->output_buffer[sample];
-                               mix_buffer[sample]=temp*(*vtt)->res_volume;
+                               mix_buffer[mix_sample]=temp*(*vtt)->res_volume_left;
+                               mix_sample++;
+                               mix_buffer[mix_sample]=temp*(*vtt)->res_volume_right;
+                               mix_sample++;
                                
                                if (temp>max) max=temp;
                                else if (temp<min) min=temp;
-                       }
-#else
-                       mm_max.s[1]=mm_max.s[0]=max;
-                       mm_min.s[1]=mm_min.s[0]=min;
-                       
-                       movq_m2r(mm_max, mm1);
-                       movq_m2r(mm_min, mm2);
-                       movq_m2r((*vtt)->mm_res_volume, mm0);
-                                               
-                       for(mix=(mmx_t *)mix_buffer, vtt_buffer=(mmx_t*)(*vtt)->output_buffer; mix < (mmx_t*) mix_buffer_end; mix++, vtt_buffer++)
-                       {
-                               movq_m2r(*vtt_buffer, mm3);
-                               pfmul_r2r(mm0, mm3);
-                               
-                               pfmax_r2r(mm3, mm1);                            
-                               pfmin_r2r(mm3, mm2);
-                               
-                               movq_r2m(mm3, *mix);
-                       }
-                       
-                       movq_r2m(mm1, mm_max);
-                       movq_r2m(mm2, mm_min);
-                       
-                       femms();
-                       
-                       if (mm_max.s[0]>mm_max.s[1]) max=mm_max.s[0]; else max=mm_max.s[1];
-                       if (mm_min.s[0]<mm_min.s[0]) min=mm_min.s[0]; else min=mm_min.s[1];
-#endif                 
+                       }               
                        
                        min*=-1.0;
                        if (min>max) (*vtt)->max_value=min; else (*vtt)->max_value=max;
 
-#else          
-                       for (sample=0; sample<samples_in_mix_buffer; sample++)
-                       {                               
-                               mix_buffer[sample]=(*vtt)->output_buffer[sample]*(*vtt)->res_volume;
+                       if ((*vtt)->ec_enable)
+                       {
+                               for (sample=0, mix_sample=0; sample<(*vtt)->samples_in_outputbuffer; sample++)
+                               {                               
+                                       temp=(*vtt)->ec_output_buffer[sample];
+                                       
+                                       mix_buffer[mix_sample]+=temp*(*vtt)->ec_volume_left;
+                                       mix_sample++;
+                                       mix_buffer[mix_sample]+=temp*(*vtt)->ec_volume_right;
+                                       mix_sample++;
+                               }               
                        }
-#endif                 
+                       
                        if (master_triggered)
                        {
                                pthread_mutex_unlock(&render_lock);
@@ -922,69 +915,49 @@ int16_t * vtt_class :: render_all_turntables()
 //                             pthread_mutex_unlock(&main_lock);
                                pthread_mutex_lock(&render_lock);
                        }
+                       
                        vtt=render_list.begin();
                        for (vtt++; vtt!=render_list.end(); vtt++)
                        {
                                (*vtt)->render();                                       
-#ifdef USE_FLASH
                                max=(*vtt)->max_value;
                                min=max;
 
-#ifndef USE_3DNOW                              
-                               for (sample=0; sample<samples_in_mix_buffer; sample++)
+                               for (sample=0, mix_sample=0; sample<(*vtt)->samples_in_outputbuffer; sample++)
                                {                               
                                        temp=(*vtt)->output_buffer[sample];
-                                       mix_buffer[sample]+=temp*(*vtt)->res_volume;
+                                       mix_buffer[mix_sample]+=temp*(*vtt)->res_volume_left;
+                                       mix_sample++;                                   
+                                       mix_buffer[mix_sample]+=temp*(*vtt)->res_volume_right;
+                                       mix_sample++;
                                
                                        if (temp>max) max=temp;
                                        else if (temp<min) min=temp;
                                }
-#else
-                       mm_max.s[1]=mm_max.s[0]=max;
-                       mm_min.s[1]=mm_min.s[0]=min;
-                       
-                       movq_m2r(mm_max, mm1);
-                       movq_m2r(mm_min, mm2);
-                       movq_m2r((*vtt)->mm_res_volume, mm0);
-                                               
-                       for(mix=(mmx_t *)mix_buffer, vtt_buffer=(mmx_t*)(*vtt)->output_buffer; mix < (mmx_t*) mix_buffer_end; mix++, vtt_buffer++)
-                       {
-                               movq_m2r(*vtt_buffer, mm3);
-                               pfmul_r2r(mm0, mm3);
-                               
-                               pfmax_r2r(mm3, mm1);                            
-                               pfmin_r2r(mm3, mm2);
-                       
-                               movq_m2r(*mix, mm4);
-                               pfadd_r2r(mm4, mm3);
-                               movq_r2m(mm3, *mix);
-                       }
-                       
-                       movq_r2m(mm1, mm_max);
-                       movq_r2m(mm2, mm_min);
-                       
-                       femms();
-                       
-                       if (mm_max.s[0]>mm_max.s[1]) max=mm_max.s[0]; else max=mm_max.s[1];
-                       if (mm_min.s[0]<mm_min.s[0]) min=mm_min.s[0]; else min=mm_min.s[1];
-#endif                         
                                
                                min*=-1.0;
                                if (min>max) (*vtt)->max_value=min; else (*vtt)->max_value=max;
-#else                          
-                               for (sample=0; sample<samples_in_mix_buffer; sample++)
+                               
+                               if ((*vtt)->ec_enable)
                                {
-                                       mix_buffer[sample]+=(*vtt)->output_buffer[sample]*(*vtt)->res_volume;
+                                       for (sample=0, mix_sample=0; sample<(*vtt)->samples_in_outputbuffer; sample++)
+                                       {                               
+                                               temp=(*vtt)->ec_output_buffer[sample];
+                                               
+                                               mix_buffer[mix_sample]+=temp*(*vtt)->ec_volume_left;
+                                               mix_sample++;
+                                               mix_buffer[mix_sample]+=temp*(*vtt)->ec_volume_right;
+                                               mix_sample++;
+                                       }               
                                }
-#endif                         
                        }
                        
-#ifdef         USE_FLASH               
-                       max=mix_max;
+                       /* left */
+                       
+                       max=mix_max_l;
                        min=max;
 
-#ifndef USE_3DNOW                      
-                       for (sample=0; sample<samples_in_mix_buffer; sample++)
+                       for (sample=0; sample<samples_in_mix_buffer; sample+=2)
                        {                               
                                temp=mix_buffer[sample];
                                mix_out_buffer[sample]=(int16_t) temp;
@@ -992,52 +965,27 @@ int16_t * vtt_class :: render_all_turntables()
                                if (temp>max) max=temp;
                                else if (temp<min) min=temp;
                        }
-#else
-                       mm_max.s[1]=mm_max.s[0]=max;
-                       mm_min.s[1]=mm_min.s[0]=min;
-                       
-                       movq_m2r(mm_max, mm1);
-                       movq_m2r(mm_min, mm2);
-                                               
-                       for(mix_int=(int32_t*) mix_out_buffer, mix=(mmx_t *)mix_buffer; mix < (mmx_t*) mix_buffer_end; mix++, mix_int++)
-                       {
-                               movq_m2r(*mix, mm3);
-                               
-                               pfmax_r2r(mm3, mm1);                            
-                               pfmin_r2r(mm3, mm2);
-                               
-                               pf2id_r2r(mm3, mm4);
-                               
-                               packssdw_r2r(mm4, mm0);
-
-                               movq_r2m(mm0, mm_max);
-                               
-                               *mix_int=*temp_int;
-                       }
                        
-                       movq_r2m(mm1, mm_max);
-                       movq_r2m(mm2, mm_min);
+                       min*=-1.0;
+                       if (min>max) mix_max_l=min; else mix_max_l=max;         
                        
-                       femms();
+                       /* right */
                        
-                       if (mm_max.s[0]>mm_max.s[1]) max=mm_max.s[0]; else max=mm_max.s[1];
-                       if (mm_min.s[0]<mm_min.s[0]) min=mm_min.s[0]; else min=mm_min.s[1];
+                       max=mix_max_r;
+                       min=max;
 
-/*                     for (sample=0, mix_int=(int32_t*) mix_buffer; sample<samples_in_mix_buffer; sample++, mix_int++)
-                       {
-                               mix_out_buffer[sample]=(int16_t) *mix_int;
-                       }*/                     
-#endif                 
+                       for (sample=1; sample<samples_in_mix_buffer; sample+=2)
+                       {                               
+                               temp=mix_buffer[sample];
+                               mix_out_buffer[sample]=(int16_t) temp;
                        
-                       min*=-1.0;
-                       if (min>max) mix_max=min; else mix_max=max;
-#else
-                       for (sample=0; sample<samples_in_mix_buffer; sample++)
-                       {
-                               mix_out_buffer[sample]=(int16_t)mix_buffer[sample];
+                               if (temp>max) max=temp;
+                               else if (temp<min) min=temp;
                        }
-#endif                         
-               
+                       
+                       min*=-1.0;
+                       if (min>max) mix_max_r=min; else mix_max_r=max;         
+                       
        }
        master_triggered=0;
                
@@ -1415,6 +1363,7 @@ int  vtt_class :: save(FILE * output)
        store(loop);
        
        store(mute);
+       store(pan);
        
        store(lp_enable);
        store(lp_gain);
@@ -1424,6 +1373,7 @@ int  vtt_class :: save(FILE * output)
        store(ec_enable);
        store(ec_length);
        store(ec_feedback);
+       store(ec_pan);
 
        pid=sp_speed.get_persistence_id();
        store(pid);
@@ -1453,10 +1403,14 @@ int  vtt_class :: save(FILE * output)
        store(pid);
        pid=sp_ec_feedback.get_persistence_id();
        store(pid);
+       pid=sp_ec_pan.get_persistence_id();
+       store(pid);
        pid=sp_mute.get_persistence_id();
        store(pid);
        pid=sp_spin.get_persistence_id();
        store(pid);
+       pid=sp_pan.get_persistence_id();
+       store(pid);
                
        counter=fx_list.size();
        store(counter);
@@ -1764,6 +1718,158 @@ int vtt_class :: load_12(FILE * input)
        return(res);
 }
 
+int vtt_class :: load_13(FILE * input)
+{
+       int res=0;
+       u_int32_t pid;
+       int32_t counter;
+       int32_t type;
+       long id;
+       int i,t;
+       LADSPA_Plugin *plugin;
+       char buffer[256];
+       vtt_fx_ladspa *ladspa_effect;
+       u_int8_t hidden;
+       
+       atload(buffer);
+       this->set_name(buffer);
+       atload(filename);
+       atload(is_sync_master);
+       atload(is_sync_client);
+       atload(sync_cycles);
+       atload(rel_volume);
+       atload(rel_pitch);
+       recalc_pitch();
+       
+       atload(autotrigger);
+       atload(loop);
+       
+       atload(mute);
+       atload(pan);
+       recalc_volume();
+       
+       atload(lp_enable);
+       atload(lp_gain);
+       atload(lp_reso);
+       atload(lp_freq);
+       lp_setup(lp_gain, lp_reso, lp_freq);
+       
+       atload(ec_enable);
+       atload(ec_length);
+       ec_set_length(ec_length);
+       atload(ec_feedback);
+       ec_set_feedback(ec_feedback);
+       atload(ec_pan);
+       ec_set_pan(ec_pan);
+
+       atload(pid);
+       sp_speed.set_persistence_id(pid);
+       atload(pid);
+       sp_volume.set_persistence_id(pid);
+       atload(pid);
+       sp_pitch.set_persistence_id(pid);
+       atload(pid);
+       sp_trigger.set_persistence_id(pid);
+       atload(pid);
+       sp_loop.set_persistence_id(pid);
+       atload(pid);
+       sp_sync_client.set_persistence_id(pid);
+       atload(pid);
+       sp_sync_cycles.set_persistence_id(pid);
+       atload(pid);
+       sp_lp_enable.set_persistence_id(pid);
+       atload(pid);
+       sp_lp_gain.set_persistence_id(pid);
+       atload(pid);
+       sp_lp_reso.set_persistence_id(pid);
+       atload(pid);
+       sp_lp_freq.set_persistence_id(pid);
+       atload(pid);
+       sp_ec_enable.set_persistence_id(pid);
+       atload(pid);
+       sp_ec_length.set_persistence_id(pid);
+       atload(pid);
+       sp_ec_feedback.set_persistence_id(pid);
+       atload(pid);
+       sp_ec_pan.set_persistence_id(pid);
+       atload(pid);
+       sp_mute.set_persistence_id(pid);
+       atload(pid);
+       sp_spin.set_persistence_id(pid);
+       atload(pid);
+       sp_pan.set_persistence_id(pid);
+               
+       atload(counter);
+       
+       for (i=0; i<counter; i++)
+       {
+               atload(type);
+               switch(type)
+               {
+                       case TX_FX_BUILTINCUTOFF:
+                               for (t=0; t<fx_list.size(); t++) effect_down(lp_fx);
+                       break;
+                       
+                       case TX_FX_BUILTINECHO:
+                               for (t=0; t<fx_list.size(); t++) effect_down(ec_fx);
+                       break;
+                       
+                       case TX_FX_LADSPA:
+                               atload(id);
+                               plugin=LADSPA_Plugin::getPluginByUniqueID(id);
+                               if (plugin)
+                               {
+                                       ladspa_effect=add_effect(plugin);
+                                       ladspa_effect->load(input);
+                               }
+                               else
+                               {
+                                       sprintf(buffer,"Fatal Error: Couldn't find required plugin with ID [%i].", id);
+                                       tx_note(buffer);
+                                       res++;
+                               }
+                       break;
+                       
+                       default:
+                               tx_note("Fatal Error loading set: unknown effect type!");
+                               res++;
+               }               
+       }
+
+       atload(pid);
+       
+       if (pid)
+       {
+               atload(pid);
+               set_x_input_parameter(tX_seqpar :: get_sp_by_persistence_id(pid));
+       }
+       else set_x_input_parameter(NULL);
+       
+       atload(pid);
+       
+       if (pid)
+       {
+               atload(pid);
+               set_y_input_parameter(tX_seqpar :: get_sp_by_persistence_id(pid));
+       }
+       else set_y_input_parameter(NULL);
+
+       atload(hidden);
+       gui.main_panel->hide(hidden);
+
+       atload(hidden);
+       gui.trigger_panel->hide(hidden);
+
+       atload(hidden);
+       gui.lp_panel->hide(hidden);
+
+       atload(hidden);
+       gui.ec_panel->hide(hidden);
+       
+       return(res);
+}
+
+
 int  vtt_class :: save_all(FILE* output)
 {
        int res=0;
@@ -1955,6 +2061,62 @@ int  vtt_class :: load_all_12(FILE* input, char *fname)
        return(res);
 }
 
+int  vtt_class :: load_all_13(FILE* input, char *fname)
+{
+       int res=0, restmp=0;
+       list <vtt_class *> :: iterator vtt;
+       unsigned int i, max, size;
+       int16_t *newbuffer;
+       vtt_class *newvtt;
+       char ftmp[PATH_MAX];
+       u_int32_t pid;
+       
+       while (main_list.size())
+       {
+               delete((*main_list.begin()));
+       }
+               
+       atload(max);
+       atload(master_volume);
+       set_master_volume(master_volume);
+       globals.volume=master_volume;
+       atload(globals.pitch);  
+       set_master_pitch(globals.pitch);
+       atload(pid);
+       sp_master_volume.set_persistence_id(pid);
+       atload(pid);
+       sp_master_pitch.set_persistence_id(pid);
+
+       ld_create_loaddlg(TX_LOADDLG_MODE_MULTI, max);
+       ld_set_setname(fname);
+
+       for (i=0; i<max; i++)
+       {
+               newvtt=new vtt_class(1);
+               res+=newvtt->load_13(input);
+               
+               if (strlen(newvtt->filename))
+               {
+                       /* ftmp IS NECESSARY !!! */
+                       strcpy(ftmp, newvtt->filename);
+                       ld_set_filename(ftmp);
+                       
+                       //restmp=load_wav(newvtt->filename, &newbuffer, &size);
+                       restmp=newvtt->load_file(ftmp);
+                       res+=restmp;
+               }
+               gtk_box_pack_start(GTK_BOX(control_parent), newvtt->gui.control_box, TRUE, TRUE, 0);
+               gtk_box_pack_start(GTK_BOX(audio_parent), newvtt->gui.audio_box, TRUE, TRUE, 0);
+               
+       }
+       
+       sequencer.load(input);
+       
+       ld_destroy();
+       
+       return(res);
+}
+
 void add_vtt(GtkWidget *ctrl, GtkWidget *audio, char *fn)
 {
        vtt_class *hmmpg;
index cd5ae45d184943aa918448f7075dc2f1024dbebc..9981a899af2a06208e4ea0d4bc2e65aa925e0033 100644 (file)
@@ -76,7 +76,8 @@ class vtt_class
        static f_prec *mix_buffer_end;
        
        static int16_t *mix_out_buffer;
-       static f_prec mix_max;
+       static f_prec mix_max_l;
+       static f_prec mix_max_r;
        static int samples_in_mix_buffer;
        static pthread_mutex_t render_lock;
        static pthread_mutex_t main_lock;
@@ -135,6 +136,11 @@ class vtt_class
        f_prec rel_pitch; // The (user-selected) relative pitch
        f_prec res_pitch;
        
+       
+       f_prec pan; // The logical pan value -1 left, 0 center, 1 right
+       f_prec res_volume_left;
+       f_prec res_volume_right;
+       
        int autotrigger;
        int loop;
        
@@ -179,17 +185,22 @@ class vtt_class
        
        /* echo vars */
        f_prec ec_buffer[EC_MAX_BUFFER];
+       f_prec *ec_output_buffer;
        f_prec *ec_delay;
        f_prec *ec_ptr;
        int ec_enable;
        f_prec ec_length;
        f_prec ec_res_length;
        f_prec ec_feedback;
+       f_prec ec_pan;
+       f_prec ec_volume_left;
+       f_prec ec_volume_right;
        
        /* sequenceable parameters */
        tX_seqpar_vtt_speed sp_speed;
        tX_seqpar_vtt_volume sp_volume;
        tX_seqpar_vtt_pitch sp_pitch;
+       tX_seqpar_vtt_pan sp_pan;
        tX_seqpar_vtt_trigger sp_trigger;
        tX_seqpar_vtt_loop sp_loop;
        tX_seqpar_vtt_sync_client sp_sync_client;
@@ -201,6 +212,7 @@ class vtt_class
        tX_seqpar_vtt_ec_enable sp_ec_enable;
        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_mute sp_mute;
        tX_seqpar_spin sp_spin;
 
@@ -223,6 +235,8 @@ class vtt_class
        void set_volume(f_prec);
        void recalc_volume();
        
+       void set_pan(f_prec);
+       
        void set_pitch(f_prec);
        void recalc_pitch();
        
@@ -244,6 +258,7 @@ class vtt_class
        void ec_set_enable(int);
        void ec_set_length(f_prec);     
        void ec_set_feedback(f_prec);
+       void ec_set_pan(f_prec);
        void ec_clear_buffer();
        
        void set_sync_master(int);              
@@ -279,10 +294,12 @@ class vtt_class
        int load_10(FILE *);
        int load_11(FILE *);
        int load_12(FILE *);
+       int load_13(FILE *);
        
        static int load_all_10(FILE *, char *fname); /* fname is for display only*/
        static int load_all_11(FILE *, char *fname); /* fname is for display only*/
        static int load_all_12(FILE *, char *fname); /* fname is for display only*/
+       static int load_all_13(FILE *, char *fname); /* fname is for display only*/
        static int save_all(FILE *);
        int load_file(char *name);      
 
index 048453fc2e6e1b9a1251c2aaca1b57c559a7f5d0..4b0193dad979cd372c8fa7ad899383b34c494a30 100644 (file)
@@ -77,17 +77,22 @@ void nicer_filename(char *dest, char *source)
                strcpy (dest, temp);
 }
 
-GtkSignalFunc name_changed(GtkWidget *wid, vtt_class *vtt)
+void name_changed(GtkWidget *wid, vtt_class *vtt)
 {
        vtt->set_name(gtk_entry_get_text(GTK_ENTRY(wid)));
 }
 
-GtkSignalFunc volume_changed(GtkWidget *wid, vtt_class *vtt)
+void volume_changed(GtkWidget *wid, vtt_class *vtt)
 {
        vtt->sp_volume.receive_gui_value(2.0-GTK_ADJUSTMENT(wid)->value);
 }
 
-GtkSignalFunc pitch_changed(GtkWidget *wid, vtt_class *vtt)
+void pan_changed(GtkWidget *wid, vtt_class *vtt)
+{
+      vtt->sp_pan.receive_gui_value(GTK_ADJUSTMENT(wid)->value);
+}
+
+void pitch_changed(GtkWidget *wid, vtt_class *vtt)
 {
        vtt->sp_pitch.receive_gui_value(GTK_ADJUSTMENT(wid)->value);
 }
@@ -174,7 +179,7 @@ void load_part(char *newfile, vtt_class *vtt)
        }       
 }
 
-GtkSignalFunc do_load_file(GtkWidget *wid, vtt_class *vtt)
+void do_load_file(GtkWidget *wid, vtt_class *vtt)
 {
        int ret;
        char newfile[PATH_MAX];
@@ -190,11 +195,19 @@ GtkSignalFunc do_load_file(GtkWidget *wid, vtt_class *vtt)
        gtk_widget_destroy(GTK_WIDGET(vtt->gui.fs));
        
        load_part(newfile, vtt);
+       
+       if (!globals.current_path)
+       {
+               free(globals.current_path);
+               globals.current_path = NULL;
+       }
+
+       globals.current_path = strdup(newfile);
 
        vtt->gui.file_dialog=NULL;
 }
 
-GtkSignalFunc drop_file(GtkWidget *widget, GdkDragContext *context,
+void drop_file(GtkWidget *widget, GdkDragContext *context,
                gint x, gint y, GtkSelectionData *selection_data,
                guint info, guint time, vtt_class *vtt)
 {
@@ -239,6 +252,10 @@ GtkSignalFunc load_file(GtkWidget *wid, vtt_class *vtt)
        
        vtt->gui.file_dialog=vtt->gui.fs->window;
        
+       if (globals.current_path)
+               {
+                       gtk_file_selection_set_filename(GTK_FILE_SELECTION(vtt->gui.fs),globals.current_path);
+               }
        gtk_signal_connect (GTK_OBJECT(GTK_FILE_SELECTION(vtt->gui.fs)->ok_button), "clicked", GTK_SIGNAL_FUNC(do_load_file), vtt);
        gtk_signal_connect (GTK_OBJECT(GTK_FILE_SELECTION(vtt->gui.fs)->cancel_button), "clicked", GTK_SIGNAL_FUNC (cancel_load_file), vtt);    
        gtk_signal_connect (GTK_OBJECT(vtt->gui.fs), "delete-event", GTK_SIGNAL_FUNC(quit_load_file), vtt);     
@@ -246,14 +263,14 @@ GtkSignalFunc load_file(GtkWidget *wid, vtt_class *vtt)
 }
 
 
-GtkSignalFunc delete_vtt(GtkWidget *wid, vtt_class *vtt)
+void delete_vtt(GtkWidget *wid, vtt_class *vtt)
 {
        if (audioon) tx_note("Sorry, you'll have to stop playback first.");
        else
        delete(vtt);
 }
 
-GtkSignalFunc edit_vtt_buffer(GtkWidget *wid, vtt_class *vtt)
+void edit_vtt_buffer(GtkWidget *wid, vtt_class *vtt)
 {
        char command[2*PATH_MAX];
 
@@ -273,7 +290,7 @@ GtkSignalFunc edit_vtt_buffer(GtkWidget *wid, vtt_class *vtt)
        }
 }
 
-GtkSignalFunc reload_vtt_buffer(GtkWidget *wid, vtt_class *vtt)
+void reload_vtt_buffer(GtkWidget *wid, vtt_class *vtt)
 {
        char reload_buffer[PATH_MAX];
        
@@ -288,72 +305,77 @@ GtkSignalFunc reload_vtt_buffer(GtkWidget *wid, vtt_class *vtt)
        else tx_note("Nothing to reload.");
 }
 
-GtkSignalFunc clone_vtt(GtkWidget *wid, vtt_class *vtt)
+void clone_vtt(GtkWidget *wid, vtt_class *vtt)
 {
        vtt->stop();
 }
 
-GtkSignalFunc trigger_vtt(GtkWidget *wid, vtt_class *vtt)
+void trigger_vtt(GtkWidget *wid, vtt_class *vtt)
 {
        vtt->sp_trigger.receive_gui_value((float) 1.0);
 }
 
-GtkSignalFunc stop_vtt(GtkWidget *wid, vtt_class *vtt)
+void stop_vtt(GtkWidget *wid, vtt_class *vtt)
 {
        vtt->sp_trigger.receive_gui_value((float) 0.0);
 }
 
-GtkSignalFunc autotrigger_toggled(GtkWidget *wid, vtt_class *vtt)
+void autotrigger_toggled(GtkWidget *wid, vtt_class *vtt)
 {
        vtt->set_autotrigger(GTK_TOGGLE_BUTTON(wid)->active);
 }
 
-GtkSignalFunc loop_toggled(GtkWidget *wid, vtt_class *vtt)
+void loop_toggled(GtkWidget *wid, vtt_class *vtt)
 {
        vtt->sp_loop.receive_gui_value(GTK_TOGGLE_BUTTON(wid)->active);
 }
 
-GtkSignalFunc lp_enabled(GtkWidget *wid, vtt_class *vtt)
+void lp_enabled(GtkWidget *wid, vtt_class *vtt)
 {
        vtt->sp_lp_enable.receive_gui_value(GTK_TOGGLE_BUTTON(wid)->active);
 }
 
-GtkSignalFunc lp_gain_changed(GtkWidget *wid, vtt_class *vtt)
+void lp_gain_changed(GtkWidget *wid, vtt_class *vtt)
 {
        vtt->sp_lp_gain.receive_gui_value(GTK_ADJUSTMENT(wid)->value);
 }
 
-GtkSignalFunc lp_reso_changed(GtkWidget *wid, vtt_class *vtt)
+void lp_reso_changed(GtkWidget *wid, vtt_class *vtt)
 {
        vtt->sp_lp_reso.receive_gui_value(GTK_ADJUSTMENT(wid)->value);
 }
 
-GtkSignalFunc lp_freq_changed(GtkWidget *wid, vtt_class *vtt)
+void lp_freq_changed(GtkWidget *wid, vtt_class *vtt)
 {
        vtt->sp_lp_freq.receive_gui_value(GTK_ADJUSTMENT(wid)->value);
 }
 
-GtkSignalFunc ec_enabled(GtkWidget *wid, vtt_class *vtt)
+void ec_enabled(GtkWidget *wid, vtt_class *vtt)
 {
        vtt->sp_ec_enable.receive_gui_value(GTK_TOGGLE_BUTTON(wid)->active);
 }
 
-GtkSignalFunc ec_length_changed(GtkWidget *wid, vtt_class *vtt)
+void ec_length_changed(GtkWidget *wid, vtt_class *vtt)
 {
        vtt->sp_ec_length.receive_gui_value(GTK_ADJUSTMENT(wid)->value);
 }
 
-GtkSignalFunc ec_feedback_changed(GtkWidget *wid, vtt_class *vtt)
+void ec_feedback_changed(GtkWidget *wid, vtt_class *vtt)
 {
        vtt->sp_ec_feedback.receive_gui_value(GTK_ADJUSTMENT(wid)->value);
 }
 
-GtkSignalFunc master_setup(GtkWidget *wid, vtt_class *vtt)
+void ec_pan_changed(GtkWidget *wid, vtt_class *vtt)
+{
+       vtt->sp_ec_pan.receive_gui_value(GTK_ADJUSTMENT(wid)->value);
+}
+
+void master_setup(GtkWidget *wid, vtt_class *vtt)
 {
        vtt->set_sync_master(GTK_TOGGLE_BUTTON(wid)->active);
 }
 
-GtkSignalFunc client_setup(GtkWidget *wid, vtt_class *vtt)
+void client_setup(GtkWidget *wid, vtt_class *vtt)
 {
        int client;
        
@@ -361,7 +383,7 @@ GtkSignalFunc client_setup(GtkWidget *wid, vtt_class *vtt)
        vtt->sp_sync_client.receive_gui_value(client);
 }
 
-GtkSignalFunc client_setup_number(GtkWidget *wid, vtt_class *vtt)
+void client_setup_number(GtkWidget *wid, vtt_class *vtt)
 {
        int cycles;
        
@@ -371,7 +393,7 @@ GtkSignalFunc client_setup_number(GtkWidget *wid, vtt_class *vtt)
 }
 
 /*
-GtkSignalFunc control_changed(GtkWidget *wid, vtt_class *vtt)
+void control_changed(GtkWidget *wid, vtt_class *vtt)
 {
        int x,y;
        vtt_gui *g=&vtt->gui;
@@ -436,23 +458,23 @@ void vg_display_ycontrol(vtt_class *vtt)
        }
 }
 
-GtkSignalFunc vg_xcontrol_dis(GtkWidget *wid, vtt_class *vtt)
+void vg_xcontrol_dis(GtkWidget *wid, vtt_class *vtt)
 {
        vtt->set_x_input_parameter(NULL);
 }
 
-GtkSignalFunc vg_ycontrol_dis(GtkWidget *wid, vtt_class *vtt)
+void vg_ycontrol_dis(GtkWidget *wid, vtt_class *vtt)
 {
        vtt->set_y_input_parameter(NULL);
 }
 
-GtkSignalFunc vg_xcontrol_set(GtkWidget *wid, tX_seqpar *sp)
+void vg_xcontrol_set(GtkWidget *wid, tX_seqpar *sp)
 {
        vtt_class *vtt=(vtt_class *) sp->vtt;
        vtt->set_x_input_parameter(sp);
 }
 
-GtkSignalFunc vg_ycontrol_set(GtkWidget *wid, tX_seqpar *sp)
+void vg_ycontrol_set(GtkWidget *wid, tX_seqpar *sp)
 {
        vtt_class *vtt=(vtt_class *) sp->vtt;
        vtt->set_y_input_parameter(sp);
@@ -488,24 +510,24 @@ void vg_control_menu_popup(vtt_class *vtt, int axis)
        gtk_menu_popup (GTK_MENU(g->par_menu), NULL, NULL, NULL, NULL, 0, 0);
 }
 
-GtkSignalFunc vg_xcontrol_popup(GtkWidget *wid, vtt_class *vtt) 
+void vg_xcontrol_popup(GtkWidget *wid, vtt_class *vtt) 
 {
        vg_control_menu_popup(vtt, 1);
 }
 
-GtkSignalFunc vg_ycontrol_popup(GtkWidget *wid, vtt_class *vtt)
+void vg_ycontrol_popup(GtkWidget *wid, vtt_class *vtt)
 {
        vg_control_menu_popup(vtt, 0);
 }
 
 static vtt_class * fx_vtt;
 
-GtkSignalFunc new_effect(GtkWidget *wid, LADSPA_Plugin *plugin)
+void new_effect(GtkWidget *wid, LADSPA_Plugin *plugin)
 {
        fx_vtt->add_effect(plugin);
 }
 
-GtkSignalFunc fx_button_pressed(GtkWidget *wid, vtt_class *vtt)
+void fx_button_pressed(GtkWidget *wid, vtt_class *vtt)
 {
        vtt_gui *g=&vtt->gui;
        GtkWidget *item;
@@ -559,6 +581,7 @@ void gui_connect_signals(vtt_class *vtt)
        connect_button(edit, edit_vtt_buffer);
        connect_button(reload, reload_vtt_buffer);
        connect_adj(pitch, pitch_changed);
+       connect_adj(pan, pan_changed);
        connect_button(file, load_file);
        
        connect_button(del, delete_vtt);
@@ -593,6 +616,7 @@ void gui_connect_signals(vtt_class *vtt)
        connect_button(ec_enable, ec_enabled);
        connect_adj(ec_length, ec_length_changed);
        connect_adj(ec_feedback, ec_feedback_changed);
+       connect_adj(ec_pan, ec_pan_changed);
        connect_button(x_control, vg_xcontrol_popup);
        connect_button(y_control, vg_ycontrol_popup);
 
@@ -820,16 +844,20 @@ 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_lengthd=new tX_extdial("Duration", g->ec_length);
        p->add_client_widget(g->ec_lengthd->get_widget());
        gui_set_tooltip(g->ec_lengthd->get_entry(), "Adjust the length of the echo buffer.");
 
-
        g->ec_feedbackd=new tX_extdial("Feedback", g->ec_feedback);
        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_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.");
+
        gtk_box_pack_start(GTK_BOX(g->control_subbox), p->get_widget(), WID_FIX);
        
        /* Output */
@@ -852,7 +880,7 @@ void build_vtt_gui(vtt_class *vtt)
 
        g->pand=new tX_extdial("Pan", g->pan);
        gtk_box_pack_start(GTK_BOX(tempbox2), g->pand->get_widget(), WID_FIX);
-       gui_set_tooltip(g->pand->get_entry(), "SORRY. terminatorX does not yet support stereo yet. This parameter is plain fake.");
+       gui_set_tooltip(g->pand->get_entry(), "Specifies the position of this turntable within the stereo spectrum: -1 -> left, 0-> center, 1->right.");
 
        tempbox2=gtk_hbox_new(FALSE,0);
        gtk_widget_show(tempbox2);
@@ -877,7 +905,7 @@ void build_vtt_gui(vtt_class *vtt)
        gui_connect_signals(vtt);
 }
 
-GtkSignalFunc fx_up(GtkWidget *wid, vtt_fx *effect)
+void fx_up(GtkWidget *wid, vtt_fx *effect)
 {
        vtt_class *vtt;
        
@@ -885,7 +913,7 @@ GtkSignalFunc fx_up(GtkWidget *wid, vtt_fx *effect)
        vtt->effect_up(effect);
 }
 
-GtkSignalFunc fx_down(GtkWidget *wid, vtt_fx *effect)
+void fx_down(GtkWidget *wid, vtt_fx *effect)
 {
        vtt_class *vtt;
        
@@ -894,7 +922,7 @@ GtkSignalFunc fx_down(GtkWidget *wid, vtt_fx *effect)
 }
 
 
-GtkSignalFunc fx_kill(GtkWidget *wid, vtt_fx_ladspa *effect)
+void fx_kill(GtkWidget *wid, vtt_fx_ladspa *effect)
 {
        vtt_class *vtt;
        
@@ -972,7 +1000,7 @@ void vg_move_fx_panel_down(GtkWidget *wid, vtt_class *vtt)
        gtk_box_reorder_child(GTK_BOX(vtt->gui.control_subbox), wid, pos+1);
 }
 
-GtkSignalFunc vg_show_fx_info(GtkWidget *wid, vtt_fx *effect)
+void vg_show_fx_info(GtkWidget *wid, vtt_fx *effect)
 {
        tx_l_note(effect->get_info_string());
 }
@@ -1046,6 +1074,7 @@ void delete_gui(vtt_class *vtt)
        
        delete vtt->gui.ec_lengthd;
        delete vtt->gui.ec_feedbackd;
+       delete vtt->gui.ec_pand;
        delete vtt->gui.ec_panel;
        
        gtk_widget_destroy(vtt->gui.control_box);
index dc1709a61874bd8029420c8d2b8c0bd82735fd83..b3d5d028b8856db7af60cb74caa1233a794b847c 100644 (file)
@@ -91,8 +91,10 @@ typedef struct vtt_gui
        GtkWidget *ec_enable;
        tX_extdial *ec_lengthd;
        tX_extdial *ec_feedbackd;
+       tX_extdial *ec_pand;
        GtkAdjustment *ec_length;
        GtkAdjustment *ec_feedback;
+       GtkAdjustment *ec_pan;
 
        GdkWindow *file_dialog;
        GtkWidget *fs;