2019-11-16 21:26:27 +00:00
# [14.4.0](https://github.com/Tonejs/Tone.js/compare/13.8.25...14.4.0) (2019-11-16)
### Features
* adding AudioWorkletNode constructors to Context ([f7bdd75](https://github.com/Tonejs/Tone.js/commit/f7bdd75))
* adding linting to jsdocs ([10ef513](https://github.com/Tonejs/Tone.js/commit/10ef513))
* adding send/receive to Channel ([703f27a](https://github.com/Tonejs/Tone.js/commit/703f27a))
* Adding triggerRelease to PluckSynth ([04405af](https://github.com/Tonejs/Tone.js/commit/04405af))
* Can set the parameter after constructing Param ([23ca0f9](https://github.com/Tonejs/Tone.js/commit/23ca0f9))
* Chorus extends StereoFeedbackEffect ([a28f1af](https://github.com/Tonejs/Tone.js/commit/a28f1af)), closes [#575 ](https://github.com/Tonejs/Tone.js/issues/575 )
* Convolver is just a wrapper around the ConvolverNode, no longer an effect ([1668dec](https://github.com/Tonejs/Tone.js/commit/1668dec))
* Get an oscillator wave as an array ([9ad519e](https://github.com/Tonejs/Tone.js/commit/9ad519e))
* OfflineContext returns a ToneAudioBuffer ([889dafa](https://github.com/Tonejs/Tone.js/commit/889dafa))
* OfflineContext yields thread every second of audio rendered ([1154470](https://github.com/Tonejs/Tone.js/commit/1154470)), closes [#436 ](https://github.com/Tonejs/Tone.js/issues/436 )
* Renaming TransportTimelineSignal to SyncedSignal ([86853fb](https://github.com/Tonejs/Tone.js/commit/86853fb))
* Render a segment of the envelope as an array ([fc5b6f7](https://github.com/Tonejs/Tone.js/commit/fc5b6f7))
* testing examples in jsdocs ([e306319](https://github.com/Tonejs/Tone.js/commit/e306319))
* Wrapper around the AudioWorkletNode ([2ee8cb1](https://github.com/Tonejs/Tone.js/commit/2ee8cb1))
2019-07-25 14:43:58 +00:00
* **Converted to typescript!!! (WIP)**
2019-09-04 22:18:29 +00:00
* Input/Outputs are no longer arrays.
2019-07-25 14:43:58 +00:00
* simplifies connect/disconnect logic greatly. Simplifies API to just have clearly named inputs/outputs instead of overloading input/output connect numbers
2019-07-25 15:32:56 +00:00
* Using "Destination" instead of "Master" for output
* More consistent with Web Audio API
2019-09-04 22:18:29 +00:00
* FrequencyShifter - thanks @Foaly
* PolySynth does not require a polyphony value.
* Voice allocation and disposing is done automatically based on demand.
2019-09-04 00:20:15 +00:00
* MetalSynth and MembraneSynth extends Monophonic enabling them to be used in PolySynth
2019-09-25 02:41:58 +00:00
* OnePoleFilter is a 6b-per-octave lowpass or highpass filter
* Using OnePoleFilter in PluckSynth and LowpassCombFilter
2019-07-25 14:43:58 +00:00
2019-11-16 21:26:27 +00:00
### BREAKING CHANGES
2019-11-16 22:04:33 +00:00
* TransportTimelineSignal renamed SyncedSignal
* Master renamed Destination
* Buffer renamed ToneAudioBuffer
2019-11-16 21:56:11 +00:00
* Buffer.on("loaded") is should now use: `Tone.loaded(): Promise<void>`
2019-11-16 21:26:27 +00:00
# 13.8.25
2019-07-25 14:43:58 +00:00
2019-01-31 17:32:16 +00:00
* Moving to common.js-style code
2019-11-16 21:26:27 +00:00
### BREAKING CHANGES
2019-02-15 18:02:38 +00:00
* AudioNode.prototype.connect is no longer overwritten. This means that you can no longer connect native nodes to Tone.js Nodes.
2019-09-04 22:18:29 +00:00
* Tone.connect(srcNode, destNode, [ouputNum], [inputNum]) is the way to connect native Web Audio nodes with Tone.js nodes.
2019-02-15 18:02:38 +00:00
2019-11-16 21:26:27 +00:00
# 13.4.9
2018-04-12 21:14:26 +00:00
* Updating semantic versioning to be more in line with other [semvers ](https://semver.org/ ). Now version is 13.x.x
2018-08-30 03:19:39 +00:00
* logging full version
2019-09-04 22:18:29 +00:00
* Added Object notation for Tone.TimeBase and classes that extend it.
2018-04-25 15:09:52 +00:00
- i.e. Tone.Time({'4n' : 1, '8t' : 2})
2019-09-04 22:18:29 +00:00
- Replacement for deprecated expression strings.
2018-05-17 15:55:03 +00:00
* Tone.Meter uses RMS instead of peak (thanks [@Idicious ](https://github.com/Idicious ))
* Tone.Sampler supports polyphonic syntax (thanks [@zfan40 ](https://github.com/zfan40 ))
2018-05-19 15:56:47 +00:00
* Building files with [webpack ](https://webpack.js.org/ )
2018-06-06 02:43:01 +00:00
* Follower/Gate uses a single "smoothing" value instead of separate attacks and releases
2018-08-30 03:19:39 +00:00
* Changing references to `window` allowing it to not throw error in node context
* Testing examples
2019-01-08 16:34:14 +00:00
* Tone.Channel combines Tone.PanVol with Tone.Solo.
2019-09-04 22:18:29 +00:00
* Removing require.html example.
2019-01-08 16:34:14 +00:00
* adding `partialCount` and `baseType` to Oscillator classes, helps with getting/setting complex types.
2018-04-25 15:09:52 +00:00
2018-04-12 21:14:26 +00:00
2019-11-16 21:26:27 +00:00
# r12
2017-11-29 22:11:25 +00:00
* Consolidating all shims into [shim folder ](https://github.com/Tonejs/Tone.js/tree/dev/Tone/shim )
* Using ConstantSourceNode in Signal when available
* switching to eslint from jshint
2018-01-03 17:42:22 +00:00
* Running [CI tests ](https://travis-ci.org/Tonejs/Tone.js/ ) on Firefox, Chrome (latest and canary) and Safari (latest and version 9).
2018-04-07 00:20:49 +00:00
* [Tone.Reverb ](https://tonejs.github.io/docs/Reverb ) is a convolution-based stereo reverb. [Example ](https://tonejs.github.io/examples/#reverb ).
2018-02-05 21:54:15 +00:00
* Optimizing basic Oscillator types and many Signal use-case
2018-03-05 16:32:18 +00:00
* Optimizing basic connection use-case of Tone.Signal where one signal is controlling another signal
2018-02-05 21:54:15 +00:00
* Testing rendered output against an existing audio file for continuity and consistency
* Optimizing triggerAttack/Release by starting/stopping oscillators when not playing
2018-03-05 16:32:18 +00:00
* [TickSource ](https://tonejs.github.io/docs/TickSource ) (used in Clock and Player) tracks the elapsed ticks
* Improved precision of tracking ticks in Transport and Clock
* `Player.position` returns the playback position of the AudioBuffer accounting for any playbackRate changes
2019-09-04 22:18:29 +00:00
* Removing `retrigger` option with Tone.Player. Tone.BufferSource should be used if retriggering is desired.
2017-11-29 22:11:25 +00:00
2017-12-16 19:31:37 +00:00
**BREAKING CHANGES:**
* Tone.TimeBase and all classes that extend it not longer support string expressions.
RATIONALE :
* Since all classes implement `valueOf` , expressions can be composed in JS instead of as strings
2018-03-05 16:32:18 +00:00
* e.g. `Time('4n') * 2 + Time('3t')` instead of `Time('4n * 2 + 3t')`
2017-12-16 19:31:37 +00:00
* this change greatly simplifies the code and is more performant
2019-11-16 21:26:27 +00:00
# r11
2017-05-14 02:17:10 +00:00
* [Code coverage ](https://coveralls.io/github/Tonejs/Tone.js ) analysis
* [Dev build ](https://tonejs.github.io/build/dev/Tone.js ) with each successful commit
2017-08-28 19:10:47 +00:00
* [Versioned docs ](https://tonejs.github.io/docs/Tone ) plus a [dev build of the docs ](https://tonejs.github.io/docs/dev/Tone ) on successful commits
2017-09-13 15:20:10 +00:00
* [Tone.AudioNode ](https://tonejs.github.io/docs/AudioNode ) is base class for all classes which generate or process audio
2017-08-28 15:09:05 +00:00
* [Tone.Sampler ](https://tonejs.github.io/docs/Sampler ) simplifies creating multisampled instruments
* [Tone.Solo ](https://tonejs.github.io/docs/Solo ) makes it easier to mute/solo audio
2017-08-27 21:53:42 +00:00
* [Mixer ](https://tonejs.github.io/examples/#mixer ) and [sampler ](https://tonejs.github.io/examples/#sampler ) examples
2017-08-28 19:10:47 +00:00
* Making type-checking methods static
* [Tone.TransportTimelineSignal ](https://tonejs.github.io/docs/TransportTimelineSignal ) is a signal which can be scheduled along the Transport
2017-09-13 15:20:10 +00:00
* [Tone.FFT ](https://tonejs.github.io/docs/FFT ) and [Tone.Waveform ](https://tonejs.github.io/docs/Waveform ) abstract Tone.Analyser
* [Tone.Meter ](https://tonejs.github.io/docs/Meter ) returns decibels
* [Tone.Envelope ](https://tonejs.github.io/docs/Envelope ) uses exponential approach instead of exponential curve for decay and release curves
2017-09-16 19:19:27 +00:00
* [Tone.BufferSource ](https://tonejs.github.io/docs/BufferSource ) fadeIn/Out can be either "linear" or "exponential" curve
2017-05-14 02:17:10 +00:00
2019-11-16 21:26:27 +00:00
# r10
2017-03-13 01:49:49 +00:00
* Tone.Context wraps AudioContext
* Tone.OfflineContext wraps OfflineAudioContext
* Tone.Offline: method for rendering audio offline
2017-03-26 16:33:34 +00:00
* Rewriting tests with Tone.Offline
2017-03-13 01:51:19 +00:00
* Optimizing Tone.Draw to only loop when events are scheduled: [#194 ](https://github.com/Tonejs/Tone.js/issues/194 )
* Time.eval->valueOf which takes advantage of build-in primitive evaluation [#205 ](https://github.com/Tonejs/Tone.js/issues/205 )
2017-03-26 16:33:34 +00:00
* [Offline example ](https://tonejs.github.io/examples/#offline )
2017-03-13 01:49:49 +00:00
2019-11-16 21:26:27 +00:00
# r9
2016-12-19 01:33:12 +00:00
2017-08-27 21:53:42 +00:00
* Tone.Clock performance and lookAhead updates.
2016-12-19 01:33:12 +00:00
* Tone.Transport.lookAhead = seconds|'playback'|'interactive'|'balanced'
* Convolver.load and Player.load returns Promise
2017-01-08 22:29:11 +00:00
* Tone.ExternalInput -> Tone.UserMedia, simplified API, open() returns Promise.
2016-12-19 01:33:12 +00:00
* Tone.Draw for animation-frame synced drawing
2017-01-08 22:29:11 +00:00
* Compressor Parameters are now Tone.Params
* Bug fixes
2016-12-19 01:33:12 +00:00
2019-11-16 21:26:27 +00:00
# r8
2016-08-15 11:29:16 +00:00
2017-08-27 21:53:42 +00:00
* Transport.seconds returns the progress in seconds.
2016-08-16 03:15:16 +00:00
* Buffer.from/toArray, Float32Array < - > Buffer conversions
* Buffer.slice(start, end) slices and returns a subsection of the Buffer
2017-08-27 21:53:42 +00:00
* Source.sync now syncs all subsequent calls to `start` and `stop` to the TransportTime instead of the AudioContext time.
2016-09-18 23:42:57 +00:00
* e.g. source.sync().start(0).stop(0.8); //plays source between 0 and 0.8 of the Transport
2016-10-01 20:26:49 +00:00
* Transport.on("start" / "stop") callbacks are invoked just before the event.
2016-09-18 23:42:57 +00:00
* Param can accept an LFO description in the constructor or .value
* e.g. param.value = {min : 10, max : 20, frequency : 0.4}
* Time.TimeBase has clone/copy methods.
2016-09-19 04:09:18 +00:00
* Tone.Buffer.prototype.load returns Promise
2016-09-24 15:02:15 +00:00
* Using Tone.Delay and Tone.Gain everywhere
2016-10-01 20:26:49 +00:00
* Patch for Chrome 53+ issue of not correctly scheduling AudioParams with setValueAtTime
2017-08-27 21:53:42 +00:00
* Panner3D and Tone.Listener wrap native PannerNode and AudioListener to give 3D panning ability.
2016-10-01 20:26:49 +00:00
2019-11-16 21:26:27 +00:00
# r7
2015-08-17 00:33:18 +00:00
2016-01-30 20:58:07 +00:00
* MetalSynth creates metalic, cymbal sounds
* DrumSynth -> MembraneSynth
* FMOscillator, AMOscillator types
* FatOscillator creates multiple oscillators and detunes them slightly
* FM, AM, Fat Oscillators incorporated into OmniOscillator
* Simplified FM and AM Synths and APIs
2016-03-05 05:25:27 +00:00
* Panner.pan is between -1,1 like the StereoPannerNode
2017-08-27 21:53:42 +00:00
* Pruned away unused (or little used) Signal classes.
* All this functionality will be available when the AudioWorkerNode is introduced.
* Clock uses Web Workers instead of requestAnimationFrame which allows it to run in the background.
* Removed `startMobile` . Using [StartAudioContext ](https://github.com/tambien/StartAudioContext ) in examples.
2016-03-05 05:25:27 +00:00
* Automated test runner using [Travis CI ](https://travis-ci.org/Tonejs/Tone.js/ )
2016-04-18 04:33:21 +00:00
* Simplified NoiseSynth by removing filter and filter envelope.
2016-04-18 06:40:18 +00:00
* Added new timing primitive types: Time, Frequency, TransportTime.
2016-05-14 20:40:00 +00:00
* Switching parameter position of type and size in Tone.Analyser
2016-05-14 23:16:03 +00:00
* Tone.Meter uses Tone.Analyser instead of ScriptProcessorNode.
2016-06-15 04:42:50 +00:00
* Tone.Envelope has 5 new attack/release curves: "sine", "cosine", "bounce", "ripple", "step"
2016-05-23 23:52:56 +00:00
* Renamed Tone.SimpleSynth -> Tone.Synth
2016-06-15 04:42:50 +00:00
* Tone.Buffers combines multiple buffers
* Tone.BufferSource a low-level wrapper, and Tone.MultiPlayer which is good for multisampled instruments.
2017-08-27 21:53:42 +00:00
* Tone.GrainPlayer: granular synthesis buffer player.
2016-07-07 14:40:30 +00:00
* Simplified Sampler
2016-01-30 20:58:07 +00:00
DEPRECATED:
* Removed SimpleFM and SimpleAM
2019-11-16 21:26:27 +00:00
# r6
2016-01-30 20:58:07 +00:00
2015-08-21 19:02:33 +00:00
* Added PitchShift and Vibrato Effect.
2015-12-06 18:14:32 +00:00
* Added Timeline/TimelineState/TimelineSignal which keeps track of all scheduled state changes.
2015-08-21 19:02:33 +00:00
* Clock uses requestAnimationFrame instead of ScriptProcessorNode
* Removed `onended` event from Tone.Source
2017-08-27 21:53:42 +00:00
* Refactored tests into individual files.
2015-10-21 17:16:39 +00:00
* Renamed some Signal methods: `exponentialRampToValueNow` ->`exponentialRampToValue`, `setCurrentValueNow` ->`setRampPoint`
2015-08-31 15:43:44 +00:00
* LFO no longer starts at bottom of cycle. Starts at whatever phase it's set at.
2017-08-27 21:53:42 +00:00
* Transport is an event emitter. triggers events on "start", "stop", "pause", and "loop".
* Oscillator accepts a "partials" array.
2015-10-21 17:16:39 +00:00
* Microphone inherits from ExternalInput which is generalized for different inputs.
* New scheduling methods on Transport - `schedule` , `scheduleOnce` , and `scheduleRepeat` .
* Tone.Gain and Tone.Delay classes wrap the native Web Audio nodes.
* Moved [MidiToScore ](https://github.com/Tonejs/MidiConvert ) and [TypeScript ](https://github.com/Tonejs/TypeScript ) definitions to separate repos.
2017-08-27 21:53:42 +00:00
* Tone.Param wraps the native AudioParam and allows for unit conversion.
2015-11-04 21:02:35 +00:00
* Quantization with Transport.quantize and using "@" in any Time. [Read more ](https://github.com/Tonejs/Tone.js/wiki/Time ).
2017-08-27 21:53:42 +00:00
* Control-rate generators for value interpolation, patterns, random numbers, and markov chains.
* Scheduable musical events: Tone.Event, Tone.Loop, Tone.Part, Tone.Pattern, Tone.Sequence.
* Player's playbackRate is now a signal and Noise includes a playbackRate signal.
* All filterEnvelopes use new Tone.FrequencyEnvelope with frequency units and `baseFrequency` and `octaves` instead of `min` and `max` .
* Phaser uses "octaves" instead of "depth" to be more consistent across the whole Tone.js API.
2015-12-08 02:32:40 +00:00
* Presets now have [their own repo ](https://github.com/Tonejs/Presets )
2015-10-21 17:16:39 +00:00
DEPRECATED:
* `setTimeout` , `setInterval` , `setTimeline` in favor of new `schedule` , `scheduleOnce` , and `scheduleRepeat` .
2017-08-27 21:53:42 +00:00
* Tone.Signal no longer takes an AudioParam in the first argument. Use Tone.Param instead.
* Tone.Buffer.onload/onprogress/onerror is deprecated. Use `Tone.Buffer.on("load", callback)` instead.
2015-08-17 00:33:18 +00:00
2019-11-16 21:26:27 +00:00
# r5
2015-04-20 19:46:19 +00:00
* reverse buffer for Player and Sampler.
* Tone.Volume for simple volume control in Decibels.
* Panner uses StereoPannerNode when available.
2017-08-27 21:53:42 +00:00
* AutoFilter and Tremolo effects.
2015-04-20 19:46:19 +00:00
* Made many attributes read-only. preventing this common type of error: `oscillator.frequency = 200` when it should be `oscillator.frequency.value = 200` .
2017-08-27 21:53:42 +00:00
* Envelope supports "linear" and "exponential" attack curves.
* Renamed Tone.EQ -> Tone.EQ3.
2015-04-20 19:46:19 +00:00
* Tone.DrumSynth makes kick and tom sounds.
* Tone.MidSideCompressor and Tone.MidSideSplit/Tone.MidSideMerge
2015-05-13 03:58:41 +00:00
* Tone.Oscillator - can specify the number of partials in the type: i.e. "sine10", "triangle3", "square4", etc.
2017-08-27 21:53:42 +00:00
* mute/unmute the master output: `Tone.Master.mute = true` .
2015-05-23 22:27:09 +00:00
* 3 new simplified synths: SimpleSynth, SimpleAM and SimpleFM
2017-08-27 21:53:42 +00:00
* `harmonicity` is a signal-rate value for all instruments.
* expose Q in Phaser.
* unit conversions using Tone.Type for signals and LFO.
2015-06-28 00:54:14 +00:00
* [new docs ](http://tonejs.org/docs )
2015-10-21 17:16:39 +00:00
* [updated examples ](http://tonejs.org/examples )
2015-04-20 19:46:19 +00:00
2019-11-16 21:26:27 +00:00
# r4
2014-12-06 21:49:04 +00:00
2015-02-10 21:35:50 +00:00
* `toFrequency` accepts notes by name (i.e. `"C4"` )
2015-01-06 03:02:48 +00:00
* Envelope no longer accepts exponential scaling, only Tone.ScaledEnvelope
2015-02-10 21:35:50 +00:00
* Buffer progress and load events which tracks the progress of all downloads
2015-01-06 03:02:48 +00:00
* Buffer only accepts a single url
2015-02-21 19:06:10 +00:00
* Sampler accepts multiple samples as an object.
2015-02-10 21:35:50 +00:00
* `setPitch` in sampler -> `setNote`
* Deprecated MultiSampler - use Sampler with PolySynth instead
2015-04-20 19:46:19 +00:00
* Added [cdn ](http://cdn.tonejs.org/latest/Tone.min.js ) - please don't use for production code
2015-02-02 17:48:04 +00:00
* Renamed DryWet to CrossFade
2015-02-10 21:35:50 +00:00
* Functions return `this` to allow for chaining. i.e. `player.toMaster().start(2)` .
2015-02-21 19:06:10 +00:00
* Added `units` to Signal class which allows signals to be set in terms of Tone.Time, Tone.Frequency, Numbers, or Decibels.
* Replaced set/get method with ES5 dot notation. i.e. `player.setVolume(-10)` is now `player.volume.value = -10` .
2017-08-27 21:53:42 +00:00
To ramp the volume use either `player.volume.linearRampToValueNow(-10, "4n")` , or the new `rampTo` method which automaically selects the ramp (linear|exponential) based on the type of data.
2015-02-23 19:08:22 +00:00
* set/get methods for all components
2015-02-21 19:06:10 +00:00
* syncSignal and unsyncSignal moved from Signal to Transport
2015-02-23 19:08:22 +00:00
* Add/Multiply/Subtract/Min/Max/GreaterThan/LessThan all extend Tone.Signal which allows them to be scheduled and automated just like Tone.Signal.
2015-02-24 03:15:22 +00:00
* Deprecated Tone.Divide and Tone.Inverse. They were more complicated than they were useful.
2015-02-21 19:06:10 +00:00
2015-02-23 19:08:22 +00:00
BREAKING CHANGES:
2015-02-21 19:06:10 +00:00
2017-08-27 21:53:42 +00:00
The API has been changed consistently to use `.attribute` for getting and setting instead of `getAttribute` and `setAttribute` methods. The reasoning for this is twofold: firstly, Tone.Signal attributes were previously limited in their scheduling capabilities when set through a setter function. For exactly, it was not possible to do a setValueAtTime on the `bpm` of the Transport. Secondly, the new EcmaScript 5 getter/setter approach resembles the Web Audio API much more closely, which will make intermixing the two APIs even easier.
2015-02-21 19:06:10 +00:00
If you're using Sublime Text, one way to transition from the old API to the new one is with a regex find/replace:
find `Tone.Transport.setBpm\((\d+)\)` and replace it with `Tone.Transport.bpm.value = $1` .
Or if setBpm was being invoked with a rampTime:
find `Tone.Transport.setBpm\((\d+)\, (\d+)\)` and replace it with `Tone.Transport.bpm.rampTo($1, $2)` .
2014-12-06 21:49:04 +00:00
2019-11-16 21:26:27 +00:00
# r3
2014-09-25 17:44:55 +00:00
2014-11-02 01:55:45 +00:00
Core Change:
2015-01-05 02:46:56 +00:00
2014-09-25 17:44:55 +00:00
* Swing parameter on Transport
2014-10-02 17:40:35 +00:00
* Player loop positions stay in tempo-relative terms even with tempo changes
2014-11-02 01:55:45 +00:00
* Envelope ASDR stay in tempo-relative terms even with tempo changes
2014-11-30 18:21:12 +00:00
* Modified build script to accommodate using requirejs with build and minified version
2014-12-04 03:48:20 +00:00
2014-11-02 01:55:45 +00:00
Signal Processing:
2014-12-04 03:48:20 +00:00
2014-11-02 01:55:45 +00:00
* Tone.Expr: signal processing expression parser for Tone.Signal math
* All signal binary operators accept two signals as inputs
2014-10-03 17:08:37 +00:00
* Deprecated Tone.Threshold - new class Tone.GreaterThanZero
2014-10-20 02:08:15 +00:00
* NOT, OR, AND, and IfThenElse signal logic operators
2014-11-30 02:36:43 +00:00
* Additional signal classes: Inverse, Divide, Pow, AudioToGain, Subtract
* Scale no longer accepts input min/max. Assumes [0,1] range.
* Normalize class if scaling needs to happen from other input ranges
2014-11-30 18:21:12 +00:00
* WaveShaper function wraps the WaveShaperNode
2014-12-04 03:48:20 +00:00
2014-11-02 01:55:45 +00:00
Effects:
2014-12-04 03:48:20 +00:00
2014-11-02 01:55:45 +00:00
* Distortion and Chebyshev distortion effects
* Compressor and MultibandCompressor
2014-11-30 02:36:43 +00:00
* MidSide effect type and StereoWidener
2014-11-02 01:55:45 +00:00
* Convolver effect and example
2014-12-04 03:48:20 +00:00
2014-11-02 01:55:45 +00:00
Synths:
2014-12-04 03:48:20 +00:00
2014-11-02 01:55:45 +00:00
* Setters on PluckSynth and PulseOscillator
* new PWMOscillator
* OmniOscillator which combines PWMOscillator, Oscillator, and PulseOscillator into one
2014-11-30 03:03:28 +00:00
* NoiseSynth
2014-09-25 17:44:55 +00:00
2014-10-02 22:56:13 +00:00
2019-11-16 21:26:27 +00:00
# r2
2014-09-12 05:19:45 +00:00
2014-09-20 23:24:56 +00:00
* PluckSynth - Karplus-Strong Plucked String modeling synth
2014-09-24 01:56:34 +00:00
* Freeverb
* John Chowning Reverb (JCReverb)
* LowpassCombFilter and FeedbackCombFilter
* Sampler with pitch control
2014-09-20 23:24:56 +00:00
* Clock tick callback is out of the audio thread using setTimeout
2014-09-12 05:19:45 +00:00
* Optimized Tone.Modulo
2014-09-14 19:36:31 +00:00
* Tests run using OfflineRenderingContext
* Fixed Transport bug where timeouts/intervals and timelines were on a different tick counter
2014-09-20 23:24:56 +00:00
* AmplitudeEnvelope + triggerAttackDecay on Envelope
2014-09-24 01:56:34 +00:00
* Instruments inherit from Tone.Instrument base-class
* midi< -- > note conversions
2014-09-20 23:24:56 +00:00
2014-09-12 05:19:45 +00:00
2019-11-16 21:26:27 +00:00
# r1 - First!