Node examples - Theodeus/tuna GitHub Wiki
The nodes
All values below are the default value you would get if you instantiate an effect without any settings passed as an argument.
A basic chorus effect.
var chorus = new tuna.Chorus({
rate: 1.5, //0.01 to 8+
feedback: 0.4, //0 to 1+
depth: 0.7, //0 to 1
delay: 0.0045, //0 to 1
bypass: false //true or false
});
A delay effect with feedback and a lowpass filter applied to the delayed signal.
var delay = new tuna.Delay({
feedback: 0.45, //0 to 1+
delayTime: 100, //1 to 10000 milliseconds
wetLevel: 0.5, //0 to 1+
dryLevel: 1, //0 to 1+
cutoff: 20000, //cutoff frequency of the built in lowpass-filter. 20 to 22050
bypass: false
});
A basic phaser effect.
var phaser = new tuna.Phaser({
rate: 0.1, //0.01 to 8 is a decent range, but higher values are possible
depth: 0.6, //0 to 1
feedback: 0.7, //0 to 1+
stereoPhase: 40, //0 to 180
baseModulationFrequency: 700, //500 to 1500
bypass: false
});
A basic overdrive effect.
var overdrive = new tuna.Overdrive({
outputGain: -9.154, //-42 to 0 in dB
drive: 0.197, //0 to 1
curveAmount: 0.979, //0 to 1
algorithmIndex: 0, //0 to 5, selects one of the drive algorithms
bypass: false
});
A compressor with the option to use automatic makeup gain.
var compressor = new tuna.Compressor({
threshold: -20, //-100 to 0
makeupGain: 1, //0 and up (in decibels)
attack: 1, //0 to 1000
release: 250, //0 to 3000
ratio: 4, //1 to 20
knee: 5, //0 to 40
automakeup: false, //true/false
bypass: false
});
A convolver with high- and lowcut. You can find a lot of impulse resonses here, or by searching for "free impulse response files".
var convolver = new tuna.Convolver({
highCut: 22050, //20 to 22050
lowCut: 20, //20 to 22050
dryLevel: 1, //0 to 1+
wetLevel: 1, //0 to 1+
level: 1, //0 to 1+, adjusts total output of both wet and dry
impulse: "impulses/impulse_rev.wav", //the path to your impulse response
bypass: false
});
A basic filter.
var filter = new tuna.Filter({
frequency: 800, //20 to 22050
Q: 1, //0.001 to 100
gain: 0, //-40 to 40 (in decibels)
filterType: "lowpass", //lowpass, highpass, bandpass, lowshelf, highshelf, peaking, notch, allpass
bypass: false
});
A cabinet/speaker emulator.
var cabinet = new tuna.Cabinet({
makeupGain: 1, //0 to 20
impulsePath: "impulses/impulse_guitar.wav", //path to your speaker impulse
bypass: false
});
A basic tremolo.
var tremolo = new tuna.Tremolo({
intensity: 0.3, //0 to 1
rate: 5, //0.001 to 8
stereoPhase: 0, //0 to 180
bypass: false
});
A wahwah with an auto wah option.
var wahwah = new tuna.WahWah({
automode: true, //true/false
baseFrequency: 0.153, //0 to 1
excursionOctaves: 3.3, //1 to 6
sweep: 0.35, //0 to 1
resonance: 19, //1 to 100
sensitivity: -0.5, //-1 to 1
bypass: false
});
A lo-fi bitcrusher effect.
var bitcrusher = new tuna.Bitcrusher({
bits: 4, //1 to 16
normfreq: 0.1, //0 to 1
bufferSize: 4096 //256 to 16384
});
A resonant, analog-sounding filter.
var moog = new tuna.MoogFilter({
cutoff: 0.065, //0 to 1
resonance: 3.5, //0 to 4
bufferSize: 4096 //256 to 16384
});
A delay that bounces between the left and right channel.
var pingPongDelay = new tuna.PingPongDelay({
wetLevel: 0.5, //0 to 1
feedback: 0.3, //0 to 1
delayTimeLeft: 200, //1 to 10000 (milliseconds)
delayTimeRight: 400 //1 to 10000 (milliseconds)
});
A stereo panner.
Note: For this to work in Safari and IE, you need to polyfill StereoPannerNode
using stereo-panner-node.
var panner = new tuna.Panner({
pan: 0 // -1 (left) to 1 (right)
});
A basic gain.
var gain = new tuna.Gain({
gain: 1 // 0 and up
});