summaryrefslogtreecommitdiffstats
path: root/kscd/kscdmagic/README
diff options
context:
space:
mode:
Diffstat (limited to 'kscd/kscdmagic/README')
-rw-r--r--kscd/kscdmagic/README146
1 files changed, 146 insertions, 0 deletions
diff --git a/kscd/kscdmagic/README b/kscd/kscdmagic/README
new file mode 100644
index 00000000..64af4f6f
--- /dev/null
+++ b/kscd/kscdmagic/README
@@ -0,0 +1,146 @@
+
+kscdmagic is based on synaesthesia
+by Paul Harrison <pfh@yoyo.cc.monash.edu.au>.
+
+ -dirk <milliByte@gmx.net>
+
+
+
+
+SYNAESTHESIA v2.0
+
+Introduction
+============
+
+This is a program for representing sounds visually from a CD or line
+input or piped from another program. It goes beyond the usual oscilliscope
+style program by combining an FFT and stereo positioning information to
+give a two dimensional display. Some of the shapes I have observed are:
+ * Drums: clouds of color, fairly high
+ * Clean guitar: several horizontal lines, low down
+ * Rough guitar: a cloud, low down
+ * Trumpet: Lots of horizontal lines everywhere
+ * Flute: A single horizontal line, low down
+ * Voice: A vertical line with some internal structure
+ * Synthesizer: All kinds of weird shapes!
+
+Synaesthesia can run in a window in X or full screen using SVGAlib.
+
+The display represents frequency as vertical position on screen,
+left-right position as left-right position on screen. It can also
+understand surround sound encoded music, and shows ambient noise
+in orange.
+
+X-Windows support was added in version 1.3, as well as a major redesign
+of the interface. You can use Synaesthesia as a fully functional
+CD player, suitable for use while working.
+
+There is command line support for play lists and piping from another
+program (such as an mp3 player).
+
+Usage
+=====
+
+Synaesthesia should work on Linux and BSD systems. (Note: I don't
+have access to a BSD system myself, I have to rely on patches -- if it
+doesn't work, please tell me!) LinuxPPC users may have to use the pipe
+mode rather than taking sound input from the CD player, as I believe
+sound recording is not yet implemented.
+
+Compile Synaesthesia by typing
+
+ make
+
+then install it by typing
+
+ make install
+
+This will create three versions of Synaesthesia:
+
+ synaesthesia - full screen SVGAlib version (Linux only)
+ xsynaesthesia - Version that runs as a window in X
+ sdlsynaesthesia - Version that uses the SDL graphics library
+
+If you want to use the SDL version, you need to get SDL from
+http://www.devolution.com/~slouken/SDL.
+
+You will need to run Synaesthesia as root to run it full screen
+with SVGAlib. Other varieties can be run by any user providing you
+provide permissions on /dev/dsp, /dev/cdrom, and /dev/mixer.
+
+Synaesthesia creates a configuration file, named ~/.synaesthesia,
+to store settings such as brightness, color, and window size, as
+well as which devices to use to control sound input.
+
+BSD users will have to edit this file to set the CD-ROM device name
+before using Synaesthesia in order to control the CD.
+
+Run Synaesthesia with no parameters for further information on how to
+use it.
+
+Notes for code rippers
+======================
+
+This program contains code that you may wish to use in your own projects.
+If you want to, please do. (For example, you might want to add some
+snazzy visual effects to your favorite MP3 or CD player)
+
+The actual code to do the mapping from sound to visual display is
+all in core.cpp, it should be fairly easy to disentangle from other
+parts of the program. It does make reference to some globals defined
+in syna.h, namely the #defines m (log2 of the sample size for each
+frame) and brightness, data (which stores the sound input), outputBmp,
+lastOutputBmp and lastLastOutputBmp (which hold the output), outWidth
+and outHeight (size of the bitmaps), and fadeMode, brightnessTwiddler,
+starSize and pointsAreDiamonds (various parameters affecting the display).
+
+The normal way to use it would be:
+
+ Call coreInit() to set up some look-up tables
+ Call setStarSize(starSize) to set up some more look-up tables
+ Loop
+ Put data into the data array
+ Call fade() to apply the fade/wave/heat effect to the output
+ Call coreGo() to add the next fragment of sound input to the output
+ Display contents of outputBmp to screen
+
+There is a simple anti-aliased polygon drawing engine in the file
+polygon.h. sound.cpp contains code for driving the CD. xlib.c and
+xlibwrap.cpp contain code for setting up a window under X (originally
+ripped from the Xaos fractal viewer program :-) ).
+
+Authors
+=======
+
+This program is free. If you like it, or have any suggestions, please
+send me (Paul Harrison) an email (pfh@yoyo.cc.monash.edu.au).
+
+Thanks to Asger Alstrup Nielsen for many great suggestions, and for
+writing optimized 32 bit loops for fading and drawing to screen.
+
+Thanks to Roger Knobbe for porting Synaesthesia to FreeBSD.
+
+Thanks to Ben Gertzfield and Martin Mitchell for some small fixes to the
+CD controlling code.
+
+Thanks to Simon Budig for an improvement to the X code.
+
+Changes
+=======
+
+1.1 - Added surround sound decoding.
+1.2 - Fixed a bug in the ioctl calls to /dev/dsp.
+1.3 - Asger Alstrup Nielsen's optimizations added.
+ Added X-Windows support.
+ More options, redesigned interface.
+1.4 - Bug fixes, including a great reduction in
+ "Sound: Recording overrun" warnings.
+ New command line options: play lists and piping.
+ Support for SDL.
+2.0 - Bug fixes: Fixed problem in xlib.c that caused occasional segfaults,
+ several endianness problems fixed.
+ New effects: Wave, heat, diamond shaped points.
+ Piping sound now longer requires the twiddle factor.
+ Yet another interface redesign.
+ Partial support for LinuxPPC (pipe mode only)
+