Tone.OmniOscillator
↳ EXTENDS Tone.SourceTone.OmniOscillator aggregates Tone.Oscillator, Tone.PulseOscillator, Tone.PWMOscillator, Tone.FMOscillator, Tone.AMOscillator, and Tone.FatOscillator into one class. The oscillator class can be changed by setting the type
. omniOsc.type = "pwm"
will set it to the Tone.PWMOscillator. Prefixing any of the basic types (“sine”, “square4”, etc.) with “fm”, “am”, or “fat” will use the FMOscillator, AMOscillator or FatOscillator respectively. For example: omniOsc.type = "fatsawtooth"
will create set the oscillator to a FatOscillator of type “sawtooth”.
CONSTRUCTOR
new Tone.OmniOscillator (DEFAULTS
EXAMPLE
var omniOsc = new Tone.OmniOscillator("C#4", "pwm");
Members
.width
↝ NormalRange #The width of the oscillator (only if the oscillator is set to “pulse”)
EXAMPLE
var omniOsc = new Tone.OmniOscillator(440, "pulse");
//can access the width attribute only if type === "pulse"
omniOsc.width.value = 0.2;
.modulationFrequency
↝ Frequency #The modulationFrequency Signal of the oscillator (only if the oscillator type is set to pwm). See Tone.PWMOscillator for more info.
EXAMPLE
var omniOsc = new Tone.OmniOscillator(440, "pwm");
//can access the modulationFrequency attribute only if type === "pwm"
omniOsc.modulationFrequency.value = 0.2;
.modulationType
↝ String #The type of the modulator oscillator. Only if the oscillator is set to “am” or “fm” types. see. Tone.AMOscillator or Tone.FMOscillator for more info.
.partials
↝ Array #The partials of the waveform. A partial represents the amplitude at a harmonic. The first harmonic is the fundamental frequency, the second is the octave and so on following the harmonic series. Setting this value will automatically set the type to “custom”. The value is an empty array when the type is not “custom”. This is not available on “pwm” and “pulse” oscillator types.
EXAMPLE
osc.partials = [1, 0.2, 0.01];
.spread
↝ Cents #The detune spread between the oscillators. If “count” is set to 3 oscillators and the “spread” is set to 40, the three oscillators would be detuned like this: [-20, 0, 20] for a total detune spread of 40 cents. See Tone.FatOscillator for more info.
.type
↝ String #The type of the oscillator. Can be any of the basic types: sine, square, triangle, sawtooth. Or prefix the basic types with “fm”, “am”, or “fat” to use the FMOscillator, AMOscillator or FatOscillator types. The oscillator could also be set to “pwm” or “pulse”. All of the parameters of the oscillator’s class are accessible when the oscillator is set to that type, but throws an error when it’s not.
EXAMPLE
omniOsc.type = "pwm";
//modulationFrequency is parameter which is available
//only when the type is "pwm".
omniOsc.modulationFrequency.value = 0.5;
EXAMPLE
//an square wave frequency modulated by a sawtooth
omniOsc.type = "fmsquare";
omniOsc.modulationType = "sawtooth";
.harmonicity
↝ Positive #Harmonicity is the frequency ratio between the carrier and the modulator oscillators. A harmonicity of 1 gives both oscillators the same frequency. Harmonicity = 2 means a change of an octave. See Tone.AMOscillator or Tone.FMOscillator for more info.
.context
↝ Tone.Context READONLY #Get the audio context belonging to this instance.
.mute
↝ boolean #Mute the output.
EXAMPLE
//mute the output
source.mute = true;
.state
↝ Tone.State READONLY #Returns the playback state of the source, either “started” or “stopped”.
.volume
↝ Decibels #The volume of the output in decibels.
EXAMPLE
source.volume.value = -6;
Methods
.set ( )
#Set a member/attribute of the oscillator.
.toMaster ( )
#this
Connect ‘this’ to the master output. Shorthand for this.connect(Tone.Master)
EXAMPLE
//connect an oscillator to the master output
var osc = new Tone.Oscillator().toMaster();
.connect ( )
#optionally which output to connect from
optionally which input to connect to
this
connect the output of a ToneNode to an AudioParam, AudioNode, or ToneNode
.disconnect ( )
#Either the output index to disconnect if the output is an array, or the node to disconnect from.
this
disconnect the output
.unsync ( )
#this
Unsync the source to the Transport. See Tone.Source.sync
.start ( )
#When the source should be started.
this
Start the source at the specified time. If no time is given, start the source now.
EXAMPLE
source.start("+0.5"); //starts the source 0.5 seconds from now
.stop ( )
#When the source should be stopped.
this
Stop the source at the specified time. If no time is given, stop the source now.
EXAMPLE
source.stop(); // stops the source immediately
.sync ( )
#this
Sync the source to the Transport so that all subsequent calls to start
and stop
are synced to the TransportTime instead of the AudioContext time.
EXAMPLE
//sync the source so that it plays between 0 and 0.3 on the Transport's timeline
source.sync().start(0).stop(0.3);
//start the transport.
Tone.Transport.start();
EXAMPLE
//start the transport with an offset and the sync'ed sources
//will start in the correct position
source.sync().start(0.1);
//the source will be invoked with an offset of 0.4
Tone.Transport.start("+0.5", 0.5);