annotate README @ 8:5e3cbbf173aa tip

Reorganise some more
author samer
date Fri, 05 Apr 2019 22:41:58 +0100
parents bf79fb79ee13
children
rev   line source
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