• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

autom4te.cache/H29-Dec-2005-13,31512,168

COPYINGH A D29-Dec-200517.6 KiB340281

INSTALLH A D29-Dec-20057.6 KiB183143

Makefile.amH A D29-Dec-2005127 62

Makefile.inH A D29-Dec-200512.1 KiB433340

READMEH A D29-Dec-20055.8 KiB166124

acinclude.m4H A D29-Dec-20056.2 KiB181167

aclocal.m4H A D29-Dec-200543.1 KiB1,1581,102

config.guessH A D29-Dec-200542.8 KiB1,4661,268

config.h.inH A D29-Dec-2005909 3725

config.subH A D29-Dec-200530.8 KiB1,5701,429

configureH A D03-May-2022187.8 KiB6,3745,366

configure.acH A D29-Dec-2005748 4131

convert.plH A D29-Dec-20052.6 KiB12095

core.ccH A D03-May-202210.4 KiB401312

font.hH A D29-Dec-20056.8 KiB259258

icons.figH A D29-Dec-200513.4 KiB358357

icons.hH A D29-Dec-2005308.3 KiB4,8484,807

install-shH A D29-Dec-20056.3 KiB270153

main.ccH A D03-May-202210.8 KiB433304

missingH A D29-Dec-20056.1 KiB191154

mkinstalldirsH A D29-Dec-2005722 4123

polygon.hH A D29-Dec-20052.2 KiB9982

sdlwrap.ccH A D03-May-20226.3 KiB238163

sound.ccH A D03-May-202217.2 KiB596439

svgawrap.ccH A D03-May-20224.5 KiB16997

symbol.hH A D29-Dec-200574.6 KiB1,0221,021

syna.hH A D29-Dec-20055.4 KiB204130

ui.ccH A D03-May-202217.6 KiB645517

xlib.cH A D29-Dec-200521.7 KiB785688

xlib.hH A D29-Dec-20054.2 KiB136104

xlibwrap.ccH A D03-May-20225.6 KiB188120

README

1SYNAESTHESIA v2.4                  http://logarithmic.net/pfh/Synaesthesia
2
3Introduction
4============
5
6Synaesthesia is a program for representing sounds visually.  It goes
7beyond the usual oscilliscope style program by combining an FFT and
8stereo positioning information to give a two dimensional display. Some
9of the shapes I have observed are:
10  * Drums: clouds of color, fairly high
11  * Clean guitar: several horizontal lines, low down
12  * Rough guitar: a cloud, low down
13  * Trumpet: Lots of horizontal lines everywhere
14  * Flute: A single horizontal line, low down
15  * Voice: A vertical line with some internal structure
16  * Synthesizer: All kinds of weird shapes!
17
18Synaesthesia represents frequency as the vertical position on screen,
19and stereo position as the horizontal position. It can also understand
20surround sound encoded music, and shows ambient noise in a different
21color.
22
23Synaesthesia can run in a window in X, or full screen using SVGAlib,
24or either using Simple DirectMedia Layer (SDL). Use of the SDL is
25recommended.
26
27It can take input from a CD, line input, EsounD, or piped from another
28program. As of version 2.2, EsounD support is much improved. For example,
29Synaesthesia works well with XMMS if both use EsounD.
30
31
32Usage
33=====
34
35Synaesthesia should work on Linux and BSD systems. (Note: I don't have
36access to a BSD system myself, I have to rely on patches -- if it doesn't
37work, please tell me!)
38
39For best results, first make sure you have installed the libraries and
40the header files for these: (on most systems, this means installing the
41appropriate "dev" packages)
42
43  * Simple DirectMedia Layer (SDL)
44  * EsounD (ESD)
45
46Compile Synaesthesia by typing
47
48  ./configure
49  make
50
51then install it by typing
52
53  make install
54
55then you should be able to type
56
57  synaesthesia
58
59to run the program.
60
61You will need to run Synaesthesia as root to run it full screen
62with SVGAlib. Other varieties can be run by any user providing you
63provide permissions on /dev/dsp, /dev/cdrom, and /dev/mixer.
64
65Synaesthesia creates a configuration file named ~/.synaesthesia
66to store settings such as brightness, color, and window size, as
67well as which devices to use to control sound input.
68
69BSD users will have to edit this file to set the CD-ROM device name
70before using Synaesthesia in order to control the CD.
71
72Run Synaesthesia with no parameters for further information on how to
73use it.
74
75
76Notes for code rippers
77======================
78
79This program contains code that you may wish to use in your own projects.
80If you want to, please do. (For example, you might want to add some
81snazzy visual effects to your favourite MP3 or CD player)
82
83The actual code to do the mapping from sound to visual display is
84all in core.cc, it should be fairly easy to disentangle from other
85parts of the program. It does make reference to some globals defined
86in syna.h, namely the #defines LogSize (log2 of the sample size for each
87frame) and Brightness, data (which stores the sound input), outputBmp,
88lastOutputBmp and lastLastOutputBmp (which hold the output), outWidth
89and outHeight (size of the bitmaps), and fadeMode, brightnessTwiddler,
90starSize and pointsAreDiamonds (various parameters affecting the display).
91
92The normal way to use it would be:
93
94  Call coreInit() to set up some look-up tables
95  Call setStarSize(starSize) to set up some more look-up tables
96  Loop
97    Put data into the data array
98    Call fade() to apply the fade/wave/heat effect to the output
99    Call coreGo() to add the next fragment of sound input to the output
100    Display contents of outputBmp to screen
101
102There is a simple anti-aliased polygon drawing engine in the file
103polygon.h. sound.cc contains code for driving the CD. xlib.c and
104xlibwrap.cc contain code for setting up a window under X (originally
105ripped from the Xaos fractal viewer program :-) ).
106
107
108Authors
109=======
110
111Feel free to email me me (Paul Harrison) at pfh@logarithmic.net with any
112suggestions, bug-reports, or better yet, patches.
113
114A number of other people have contributed to Synaesthesia:
115
116  Thanks to Asger Alstrup Nielsen for many great suggestions, and for
117  writing optimized 32 bit loops for fading and drawing to screen.
118
119  Thanks to Roger Knobbe for porting Synaesthesia to FreeBSD.
120
121  Thanks to Ben Gertzfield and Martin Mitchell for some small fixes to the
122  CD controlling code.
123
124  Thanks to Simon Budig for an improvement to the X code.
125
126  Thanks to Devin Carraway for fixing Synaesthesia to work with non-32-bit
127  word machines.
128
129Synaesthesia is distributed under the GPL.
130
131Changes
132=======
133
1341.1 - Added surround sound decoding.
1351.2 - Fixed a bug in the ioctl calls to /dev/dsp.
1361.3 - Asger Alstrup Nielsen's optimizations added.
137      Added X-Windows support.
138      More options, redesigned interface.
1391.4 - Bug fixes, including a great reduction in
140      "Sound: Recording overrun" warnings.
141      New command line options: play lists and piping.
142      Support for SDL.
1432.0 - Bug fixes: Fixed problem in xlib.c that caused occasional segfaults,
144        several endianness problems fixed.
145      New effects: Wave, heat, diamond shaped points.
146      Piping sound now longer requires the twiddle factor.
147      Yet another interface redesign.
148      Partial support for LinuxPPC (pipe mode only)
1492.1 - Autoconf support.
150      Esd support.
151      Some code cleanup, now only makes one binary.
152      SDL version now sets title.
153      Bug fixes: Old versions of gcc can't cope with some of the stuff
154      I was doing with templates.
1552.2 - Works on machines with non-32-bit words (patch by Devin Carraway)
156      Pipe and ESD modes greatly improved: it now syncs properly to the music
157        with ESD
158      Resizable window with SDL
159      Fixes to autoconf of SDL
160      Clicking on window toggles full screen in SDL
161      Automatic brightness compensation
1622.3 - Compiles with g++ 3.4
163      Tweaked sound code, should now work on fast computers
1642.4 - Applied a patch by Aurelien Jarno that fixes some FreeBSD problems
165
166