ftp.nice.ch/pub/next/audio/apps/Granulator.README

This is the README for Granulator.1.3.I.b.tar.gz [Download] [Browse] [Up]

Granulator README, 

Version 1.3

Aeldrik Pander, 17 Dec 1997

Granulator is a small app wich does realtime granular synthesis. 
Granular synthesis is a process of generating streams of small 
soundparticles (grains). These grains are manipulated staticically (say random) 
and combined to create a two channel output. 
The sound has a certain richness and crunch and also timestretching effects are possible.

I wrote this app to see how such an algorithm could be programmed in C. I love
NextStep and my experience with it started when I worked with the IRCAM 
Workstation (1993). 

Granulator has now been upgraded to version 1.3. 
In the sound Settings panel CPU load has been added. The DMA size also works.
The sliders are now operating in a wider (and better) range. The code has been optimised a
bit so a little more voices can be used

The app runs only on Intel sofar (sorry, I do not have the other architectures),
voice allocation can be made on the fly, for those of you who are lucky enough
to have a lots-of-megaHz should be able to do maybe 32 voices at 44.1 Khz.
On a P-133 it does 12 voices at 44.1 Khz, 28 voices at 22Khz. 

If for some reason the system can't keep up and the sound makes periodical clicks,
use the 'Sync DAC's' button, and try lowering the number of voices (soundsettings menu).
This clicks are mostly caused by the interface somtimes eating up 10 to 20 % CPU time !  
Open the soundsettings panel to monitor the CPU time.

Tech:	The DACPlayer object is used doing the soundhandling stuff. 
	(TimeWarp app, Robert Poor, NeXT Computer thank). 
	It saves a you lot of trouble doing realtime sound manipulations. 
	The pitch calculation is still linear interpolation, 
	I haven't found a way yet to do a sinc combined with low CPU time.

Use:	Put this app in any apps directory, it should work fine.
	When you open a soundfile, it starts running, it stops when you close it.
	The resulting sound depends heavily on your soundfile. Record a piece from your
	favority CD or other sound.  Cut a nice part of 5 - 10 seconds with Editsound. 	
	Make sure it is mono and 16 bit !!!


Controls:

Windowlength: 	Lenght of the grain in samples.
WindowDelay:	Delay time between two grains.
Sustain Factor:	The rise and fall time of the window. More % means steeper !
		(default is Hanning window).
Pitch:		Pitch of the sample within the window.

Length Dev:	Random Deviation of the windowlength (ms)
Delay Dev:	Random deviation of the delaytime (ms)
Pointer Dev:	Random deviation of the current sample location.
		The used sample-material is read from a location in the sample.
		The location is monitored at the bottom 'SamplePointer' and
		indicates the where material is being read from the soundfile.
		(in ms).
Offset Speed:	Controls the speed of wich the samplepointer is moving trough
		the soundfile. It wraps automatically. Up to twice the original speed is
		possible.
Amplitude:	Sets the audiolevel at the output. When voices are added or removed, 
		the level is internally compensated.
Voices:		Nr of voices. When you have a high performance machine, try more.


Example settings:

Time Stretch:	windowlength: 	5000 - 6000 samples
		sustain:	70 - 80 %
		pitch:		80 - 120 %
		length dev:	200 - 1000 samples
		pointer dev:	0 - 400 samples
		offset speed:	600 - 1200 ms/s

		Play around with the pitch and offset values.

Cybersound:	windowlength: 	700 - 800 samples
		sustain:	60 - 70 %
		pitch:		40 - 150 %
		length dev:	50 - 100 samples
		pointer dev:	100 - 400 samples
		offset speed:	4 - 10 ms/s


Comments, questions and suggestions, let me know..

Have fun.

Aeldrik (a_pander@dds.nl)

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.