New command reset; documentation updates. v0.0.1
authorStefan Westerfeld <stefan@space.twc.de>
Mon, 17 May 2010 07:32:14 +0000 (09:32 +0200)
committerStefan Westerfeld <stefan@space.twc.de>
Mon, 17 May 2010 07:32:14 +0000 (09:32 +0200)
TODO
docs/jacksampler.1
docs/jacksampler.1.doxi
src/jacksampler.cc
src/jacksampler.hh
src/main.cc

diff --git a/TODO b/TODO
index 21c71d8..d1af1a7 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1 +1,3 @@
 - make release time and release delay time instrument specific
+- use a better resampling algorithm
+- make master_volume configurable
index 8f546aa..9b73c0b 100644 (file)
@@ -1,5 +1,5 @@
 .\" generator: doxer.py 0.6
-.\" generation: 2010-05-16T19:52:30
+.\" generation: 2010-05-16T21:35:54
 .TH "JackSampler" "1" "Wed Apr 19 00:50:37 2006" "jacksampler-" "JackSampler Manual Page"
 
 .SH
@@ -82,11 +82,35 @@ KEYBOARD
 
 
 .PP
-Typing s, status or q, quit displays status information, or quits
-jacksampler. Typing a number switches to the corresponding
-instrument. The first command line argument is used as configuration
-for instrument 1, the second command line argument is used as
-configuration for instrument 2, and so on.
+
+
+
+
+.TP
+\fB1\fP, \fB2\fP, \fB3\fP, \fB...\fP 
+.br
+Switches to the corresponding instrument. The first command line argument
+is used as configuration for instrument 1, the second command line
+argument is used as configuration for instrument 2, and so on.
+
+.TP
+\fBs\fP, \fBstatus\fP 
+.br
+Show status information.
+
+.TP
+\fBr\fP, \fBreset\fP 
+.br
+Reset all voices (release all notes) - this command may click.
+
+.TP
+\fBq\fP, \fBquit\fP 
+.br
+Quit jacksampler.
+
+.PP
+
+
 .SH
 SEE ALSO
 
index d4da6f7..898aeb6 100644 (file)
@@ -51,11 +51,19 @@ jacksampler - A JACK based sampler
         postponing their release until its off again.
 
 @heading KEYBOARD
-        Typing s, status or q, quit displays status information, or quits
-        jacksampler. Typing a number switches to the corresponding
-        instrument. The first command line argument is used as configuration
-        for instrument 1, the second command line argument is used as
-        configuration for instrument 2, and so on.
+
+@itemize{none}
+@item @manb{1}, @manb{2}, @manb{3}, @manb{...} @*
+        Switches to the corresponding instrument. The first command line argument
+        is used as configuration for instrument 1, the second command line
+        argument is used as configuration for instrument 2, and so on.
+@item @manb{s}, @manb{status} @*
+        Show status information.
+@item @manb{r}, @manb{reset} @*
+        Reset all voices (release all notes) - this command may click.
+@item @manb{q}, @manb{quit} @*
+        Quit jacksampler.
+@done
 
 @heading SEE ALSO
 @longuri{http://space.twc.de/~stefan/jacksampler.php, jacksampler Website}
index 79abecb..5d51ba6 100644 (file)
@@ -381,3 +381,11 @@ JackSampler::status()
   printf (" * release delay %d\n", release_delay);
   printf (" * fade out      %d\n", fade_out);
 }
+
+void
+JackSampler::reset()
+{
+  // reset all voices the hard way (might click)
+  for (size_t v = 0; v < voices.size(); v++)
+    voices[v].state = Voice::UNUSED;
+}
index c3164c5..0ca7310 100644 (file)
@@ -82,6 +82,7 @@ public:
   void parse_config (const Options& options, int instrument, const char *name);
   void change_instrument (int new_instrument);
   void status();
+  void reset();
 };
 
 #endif
index a62eba1..7376f8d 100644 (file)
@@ -90,11 +90,16 @@ main (int argc, char **argv)
           jack_deactivate (client);
           return 0;
         }
+      else if (strcmp (buffer, "r") == 0 || strcmp (buffer, "reset") == 0)
+        {
+          jack_sampler.reset();
+        }
       else if (strlen (buffer))
         {
           printf ("JackSampler keyboard commands:\n\n");
           printf ("  1, 2, 3, ...    switch to instrument 1, 2, 3, ...\n");
           printf ("  s, status       show status information\n");
+          printf ("  r, reset        reset all voices (release all notes)\n");
           printf ("  q, quit         quit JackSampler\n");
         }
     }