samer@0
|
1 *** JSLAB version 0.4
|
samer@0
|
2 *** Copyright 2000,2004: Dr. Samer Abdallah
|
samer@0
|
3 *** samer.abdallah@elec.qmul.ac.uk
|
samer@0
|
4
|
samer@0
|
5
|
samer@0
|
6 This is a Java class library and a bunch of
|
samer@0
|
7 scheme scripts which provide an interactive,
|
samer@0
|
8 interpreted environment for doing mathematical
|
samer@0
|
9 and signal processing experiments.
|
samer@0
|
10
|
samer@0
|
11 It doesn't really have a name yet - JSLAB just
|
samer@0
|
12 stands for Java Scheme Lab (not too catchy eh?)
|
samer@0
|
13 and also the top level is still eponymously named.
|
samer@0
|
14 It will be changed eventually but that requires
|
samer@0
|
15 changes to nearly every source file and so is
|
samer@0
|
16 deferred till the next version.
|
samer@0
|
17
|
samer@0
|
18 The core classes can run with or without a GUI.
|
samer@0
|
19 Many (those deriving from samer.core.Viewable)
|
samer@0
|
20 can generate a GUI on demand. Generally, if
|
samer@0
|
21 you type
|
samer@0
|
22 (expose)
|
samer@0
|
23 at the scheme prompt, you will get a window
|
samer@0
|
24 containing all the currently registered
|
samer@0
|
25 Viewable objects.
|
samer@0
|
26
|
samer@0
|
27 Signal flow is usually handled by a main
|
samer@0
|
28 loop managed by an RThread object (see
|
samer@0
|
29 samer.tools.RThread and samer.tools.Task)
|
samer@0
|
30 In order to build the loop, you register
|
samer@0
|
31 Task objects with it (see task.scm). These
|
samer@0
|
32 are then run as part of the loop, which can
|
samer@0
|
33 be controlled either from the GUI or from
|
samer@0
|
34 the scheme prompt. The main Scheme commands
|
samer@0
|
35 for this are
|
samer@0
|
36 (addtask <newtask>) ; add a task
|
samer@0
|
37 (pr-tasks) ; list current tasks
|
samer@0
|
38 (start) ; start main loop
|
samer@0
|
39 (stop) ; etc...
|
samer@0
|
40 (task-ref 3) ; get 4th task in list
|
samer@0
|
41 (remove (task-ref 2)); remove 3rd task
|
samer@0
|
42
|
samer@0
|
43 Most of the high level stuff is in Scheme, so
|
samer@0
|
44 it's best to look in the scheme subdirectory
|
samer@0
|
45 for more info.
|
samer@0
|
46
|
samer@0
|
47 There are some examples in the examples directory,
|
samer@0
|
48 but the only ones likely to work are in
|
samer@0
|
49 examples/sound/sampled/
|
samer@0
|
50 Even then, you may have some issues to do with
|
samer@0
|
51 which mixer (ie sound card) the program tries
|
samer@0
|
52 to grab, as I haven't really sorted out a general
|
samer@0
|
53 way of allowing the user to decide which mixer
|
samer@0
|
54 to use.
|
samer@0
|
55
|
samer@0
|
56
|
samer@0
|
57 INSTALLATION:
|
samer@0
|
58 See INSTALL.
|
samer@0
|
59 There is a pre-built jar in lib/samer.jar
|
samer@0
|
60
|
samer@0
|
61 Note: The packages samer.core.* are in a directory
|
samer@0
|
62 called 'core_' instead of 'core', because CVS ignores
|
samer@0
|
63 any file/directory called 'core'.
|
samer@0
|
64
|
samer@0
|
65
|