Mercurial > hg > jslab
view README @ 8:5e3cbbf173aa tip
Reorganise some more
author | samer |
---|---|
date | Fri, 05 Apr 2019 22:41:58 +0100 |
parents | bf79fb79ee13 |
children |
line wrap: on
line source
*** JSLAB version 0.4 *** Copyright 2000,2004: Dr. Samer Abdallah *** samer.abdallah@elec.qmul.ac.uk This is a Java class library and a bunch of scheme scripts which provide an interactive, interpreted environment for doing mathematical and signal processing experiments. It doesn't really have a name yet - JSLAB just stands for Java Scheme Lab (not too catchy eh?) and also the top level is still eponymously named. It will be changed eventually but that requires changes to nearly every source file and so is deferred till the next version. The core classes can run with or without a GUI. Many (those deriving from samer.core.Viewable) can generate a GUI on demand. Generally, if you type (expose) at the scheme prompt, you will get a window containing all the currently registered Viewable objects. Signal flow is usually handled by a main loop managed by an RThread object (see samer.tools.RThread and samer.tools.Task) In order to build the loop, you register Task objects with it (see task.scm). These are then run as part of the loop, which can be controlled either from the GUI or from the scheme prompt. The main Scheme commands for this are (addtask <newtask>) ; add a task (pr-tasks) ; list current tasks (start) ; start main loop (stop) ; etc... (task-ref 3) ; get 4th task in list (remove (task-ref 2)); remove 3rd task Most of the high level stuff is in Scheme, so it's best to look in the scheme subdirectory for more info. There are some examples in the examples directory, but the only ones likely to work are in examples/sound/sampled/ Even then, you may have some issues to do with which mixer (ie sound card) the program tries to grab, as I haven't really sorted out a general way of allowing the user to decide which mixer to use. INSTALLATION: See INSTALL. There is a pre-built jar in lib/samer.jar Note: The packages samer.core.* are in a directory called 'core_' instead of 'core', because CVS ignores any file/directory called 'core'.