A proof of concept prototype that renders a fractal, and attempts to turn the results into some kind of magic mathematically generated music.

Very Basic usage:
Run program, mandelbrot will render. Click in mandelbrot to move around/zoom in.

Mandelbrot's render as gray scale. Red component of pixel is used for brightness to calculate a note when playing music. Green/Blue components are used to show what is being played.

X Min/Max, Y Min/Max = Location within mandelbrot
Max iterations: Maximum number of iterations. May want to use lower values to produce less complex images with more basic music.
Buffer Resolution: Image is 400x400. Program will render to a higher resolution if required, then anti-alias to the screen. 2 = twice resolution (800x800), 4 = four times the resolution, etc.
Lock X/Lock Y: Will stop the X or Y position from altering when zooming in
Auto Zoom: Automatically zoom in 2x when clicking in mandelbrot
Zoom In: Increase zoom by 2x without rerendering (click several times to quickly zoom in)
Zoom Out: Zoom out by 2x without rerendering (click several times to quickly zoom out)
Top Crop/Bottom Crop: Skip any colours above or below these values (helpfull for skipping e.g. large black areas of image)
Banding: Scale down the colour range used
Thingy: Power thingy part of equation - play with it
Colouring Type: Attempt at varying ways of colouring the mandelbrot

Fractal: Variations of the mandelbrot - with varying degrees of success :)
Calculate: Recalculates (e.g. after clicking Zoom In a few times)
Refresh: Redraws the current image from the buffer
Description: Give the current set of settigns a description
Save: Save current settings (that is the settings - doesn't save the resulting music file)
Box under save: drop down list of previously saved settings. Select to load.

Note Scale Down: Scale down the range of notes played back. (Higher the number then the higher the low notes and the lower the high notes)
Note Length: Length of notes during playback
Max Repeat: Maximum number of times to repeat the same note in a row. 0 is always repeat. Handy for large blocks of colour, to avoid the same note being played for too long.

Grid Settings:
X Jump/X Start: How many pixels to jump cross each time a note is played, and where to start
Y Jump/Y Start: As above
Play Grid: Plays a tune sampling in a grid pattern

Circle Settings:
Start Radius: Starting radius of a circle sampling pattern
Radius Creep: Make the circle bigger/smaller each time a note is played
Rotation Speed: How many degree's to go around the circle each time a note is played
Total Angle: How far around to go in total
Phase Offset: Offsets the sin/cos angle used to calculate the circle
Phase Drift: Alters the above each time a note is played
Play Circle: Plays a tune sampling in a circular pattern

Stop's current playback

Play From Buffer:
Play's from the buffer (higher resolution, not AA'ed) rather than from what you see on screen. Note that on screen AA'ed version of bugger may not have the same range of notes due to the image being smoothed.

Load Image:
Load an image into the screen and play back from this rather from a mandelbrot :)

Last edited Sep 28, 2011 at 10:10 PM by Babbage, version 1


No comments yet.