Index of /~raine/pub/software/squareroot

[ICO]NameLast modifiedSizeDescription

[DIR]Parent Directory  -  
[TXT]README.html11-Feb-2010 17:38 2.8K 
[   ]squareroot-0.8.tgz05-Jun-2009 22:11 5.4K 
[   ]squareroot-0.9.tgz11-Feb-2010 17:36 6.3K 
[   ]squareroot.tgz11-Feb-2010 17:36 6.3K 


  Square Root - a softsynth for DSSI/Linux
--------------------------------------------


WARNING
-------

This program can produce audio signals that may be harmful to ears, audio 
equipment and maybe even your relationship to your significant other(s). 

Proper care should be exercised, especially regarding the volume controls on 
amplification equipment. 

In addition to audible effects, there could be bugs that sell your dog on 
eBay and fill your hard drive with white noise. Or worse.


What is it?
-----------

This synth is monophonic, but different from most in the way that the
lowest note played drives a wave and the highest note controls the bandpass 
filter that is applied to the wave. 

NB. At least 2 notes must be played to get a sound! This is not a bug!

The waveform can be varied from square (0) to sawtooth.

Don't know about the usefulness of this, but maybe someone will find a 
use for the noise. I did this mostly to brush some rust off my programming 
skills and have a look at sound synthesis ;)


Block diagram / MIDI controls
-----------------------------

  F (low note)
  | waveform (Timbre, CC 71)
  | | velocity               main volume (CC 7)
  | | |                      |
 _v_v_v_      _____      ____v_
|  OSC  |--->| BPF |--->| GAIN |--->output
 -------      -----      ------
  ^   ^        ^ ^ 
  |   Tuning   | Q (mod wheel, CC 1)
  |   (CC 9)   F (high note)
  PWM (CC 70)


Building, running
-----------------
 
To build the synth, just type "make". You'll need the DSSI and LADSPA
development packages. If you have the following two files everything 
should be OK:

    /usr/include/dssi.h
    /usr/include/ladspa.h


To test the synth I used jack-dssi-host, which has a few quirks, but the 
following command worked for me:

    jack-dssi-host $(pwd)/squareroot.so


Installation should be more or less like this:

    make DESTDIR=my-dssi-dir install-strip

which installs the synth wherever you want it. The .ins file can be copied 
to wherever your sequencer or other software expects to find it, I use
it with VMPK ( http://vmpk.sourceforge.net/ ).



Attributions
------------

The code is based heavily on the Trivial synth from the DSSI source 
distribution.

For the filter part I've used Robert Bristow-Johnsons "Cookbook
formulae for audio EQ biquad filter coefficients", at
http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt 


Licensing
---------

In keeping with the original Trivial synth, this software is in the
public domain. Do as you please but don't expect much in the way of 
user support either.


TODO/ideas
----------

- Envelopes (for everything :)
- Upper velocity to Q?
- Optimize
- Clean up code
- Real MIDI tuning or support for Scala files
- Portamento? 
- Do some reading on vectorization

Changes
-------

0.9 (Woman of Mass Distraction)
    - Pitch bend
    - PWM    

0.8 (Unfinished Sweet)
    Initial release.