# Synthrom Sinus v2

The changes
Version 2 supports western 12tone based notes, is thus incompatible to version 1 (obsolete by now), however you may still create "odd" frequencies, see below for details. Another new feature is custom waveform support, you may even exchange custom waveforms (*.ssw) with other buzz users.
The theory
This buzz-machine is a waveform generator from a mathematical view.
You select one of the given functions with a certain frequency, and then select more functions (total maximum is 10)
to mix with the first one (in a custom way and with custom influence percentages). This also means that additional tracks are
not to be seen as separate signals but as stages of manipulation (not commutable, changing their order might cause other sounds) that can be triggered as you wish.
The parameters

Waveform: | choose from the following:
| sin the base of everything ;) sin.square a square wave that starts at 0 by default saw.1a wave that raises smooth from base (0) to 1 and then immidately drops to base again /I saw.2 dito, but the base is -1 tri.1 formed like a pyramid, base is 0 tri.2 dito, but the base is -1 noise creates a frequency-dependend - well, ehrm - noise
Offset: | selects the angle at which the function's calculation will start, eg, selecting sine with offset 90° will
| effectively result in a cos-waveform, as the sine of 90° is 1 and the playback will start there
Filter: | manipulates the function's values
| invert multiplies the value with -1 pos cuts all negative values neg cuts all positive values invert pos multiplies all positive values with -1 invert neg multiplies all negative values with -1
Volume: | adjusts the amplitude, thus also important for the mixing:
| imagine two "div"-mixed waves, with the second being louder - the result will be quieter.
Frequency: | ranges from 40 to 11,110Hz; what you type is what you get
| and it's correct, even if you use buzz at an other sampling rate than 44khz. The righmost value (FFFF) enables note support. With every other value, the note row of a track simply works as a trigger.
Sweep: | this value is constantly (read again and again) being added to the frequency, leading to "sweeps"
| can also be used to generate percussions, try e.g. an 80hz square with sweep -1 :)
MixType: | sets the combination mode for this track's and the previous function value (thus obsolete for track 1)
| max the bigger of the two values wins avg both values are added and divided by two add both values are added mul both values are multiplied (gets loud!) div value one is divided by value two and boolean operation, each bit of the new wave is and(oldbit,thistrackbit) (only 1 if both are 1) or boolean operation, each bit of the new wave is or(oldbit,thistrackbit) (only 0 if both are 0)
MixValue: | multiplies one value with 0<=x<=1, e.g. to add with 50%:100% means new=0.5*old+thistrack
Attack: | the time [0-11888ms] this track's waveform needs to reach its set volume, read fade-in
Sustain: | the time [0-11889ms] this track's waveform is to be played
| if you e.g. have a nice sound made with 4 tracks, all 4 sustain values should be the same...
Release: | the time [0-11888ms] this track's waveform needs to reach level 0 from its set volume, read fade-out
| note that 0ms will eventually lead to a click-sound at the end of the sustain-time, also setting sustain longer than the time between two triggers will cause clicks as the release then doesn't even start

The edit window
Remember to use the "Accept" button to refresh synthesis and hear your changes.
If you find it kinda hard to draw a waveform in here you may use the "Load Bitmap" feature. The bmp-resolution does not matter, as long as it is vertically centered. Our aim with the "Load/Save Settings" function was to enable waveform swapping and maybe setting up a global standard supported by other future synths...a how-to-implement text is included in this release.
request
We're totally not into midi. We'd be glad if anybody could mail us how to implement necessary features (midi channel attribute?) and beta-test the result.
credits
coding, additional ideas: 1mT (homepage)
idea, betatesting, helpfile: Geroyche (homepage)
keep buzz-updated:
the latest program files
the latest machines
another nice machine page
an up-to-date index.txt
share problems, tips, visions