Yotam Mann
e414ce891a
convert MetalSynth to ts and extend Monophonic instead of instrument
...
fixes #486
thank you for the typescripting @jacobclarke92!
2019-09-03 20:20:08 -04:00
Yotam Mann
c167f1a0e1
detune can be passed into the options object
2019-09-03 20:09:46 -04:00
Yotam Mann
6c54f7b3ad
pass in the detune value
2019-09-03 20:09:19 -04:00
Yotam Mann
8ec8ba4a13
Merge branch 'pr/535' into typescript
2019-09-03 19:36:26 -04:00
Yotam Mann
26f931b3ed
PolySynth automatically disposes unused voices
...
expands to the maxPolyphony and will reduce back to 0 allocated voices if unused.
2019-09-03 19:29:59 -04:00
Jacob Clarke
f128fae51e
Converted PluckSynth to TS + filter deps: FeedbackCombFilter, LowpassCombFilter (could not make tests for filters yet due to other issues with ToneWithContext
2019-09-01 21:17:32 +10:00
Jacob Clarke
e49cb07607
Tidied up MetalSynth and restored original comments
2019-09-01 19:19:19 +10:00
Jacob Clarke
d4b0604eb0
Restored some comments
2019-09-01 18:58:56 +10:00
Jacob Clarke
9d95738497
Converted NoiseSynth and test file to ts
2019-09-01 16:27:50 +10:00
Jacob Clarke
d7578f62b0
MetalSynth done, extends Monophonic now
2019-09-01 16:10:32 +10:00
Jacob Clarke
a6fdd24c92
MetalSynth almost done, incomplete triggerAttack function
2019-09-01 14:20:20 +10:00
Yotam Mann
c9d757aaa6
removing references to "@private"
...
old jsdoc comments
2019-08-30 09:08:29 -07:00
Yotam Mann
3e2de8f259
fixing spacing
...
typedoc wants one space before the "@"
2019-08-30 09:06:38 -07:00
Yotam Mann
1dba46a822
removing converting files
2019-08-27 10:06:34 -07:00
Yotam Mann
539a5c45d8
updating docs
2019-08-27 08:57:00 -07:00
Yotam Mann
3fc30c4884
Merge branch 'dev' into typescript
2019-08-26 11:05:12 -07:00
Yotam Mann
f9b433c4cf
swapping order so that options are used
2019-08-16 15:35:52 -04:00
Yotam Mann
fb38cd4034
adding MembraneSynthOptions to PolySynth
2019-08-16 15:21:09 -04:00
Yotam Mann
68d650862d
MembraneSynth extends Synth
...
addresses #486
Saves some code and enables use in PolySynth
2019-08-16 15:15:14 -04:00
Yotam Mann
c56bef48c4
converting MembraneSynth to ts
2019-08-16 13:57:38 -04:00
Yotam Mann
77806402b6
omiting synth options on each individual options object
...
instead of on the entire object which caused some issues
2019-08-14 13:16:23 -04:00
Yotam Mann
8dc8c652fa
velocity and time should already be computed by parent class
2019-08-14 10:53:48 -04:00
Yotam Mann
e8cc284b0f
Using an active voices array instead of map
...
enables multiple notes on the same midi note to be scheduled without one deleting the other on _makeVoiceAvailable
2019-08-14 10:50:01 -04:00
Yotam Mann
ce4fde8e43
releaseAll does not take a release time
...
will release all envelopes immediately. having it be immediate saves the issues that come with tracking active voices
2019-08-13 19:54:11 -04:00
Yotam Mann
e1652b8c20
releaseAll uses multiple triggerRelease instead of directly scheduling the voice
...
seems to cause fewer issues with held notes
2019-08-12 14:15:10 -04:00
Yotam Mann
150e8be0d3
cleaning up
2019-08-12 13:33:18 -04:00
Yotam Mann
5b3df95487
warning when max polyphony is exceeded
2019-08-12 13:21:55 -04:00
Yotam Mann
4f3e8e233f
removing voice-stealing
...
adds too much complixity for now in terms of scheduling into the future. Using setTimeout for scheduling notes into the future. keeps track of active notes better with this type of scheduling.
2019-08-12 13:18:18 -04:00
Yotam Mann
e7c429f4ec
adding back envelope
...
getLevelAtTime was used for the portamento
2019-08-12 00:21:34 -04:00
Yotam Mann
c81364610c
converting polysynth to typescript
...
slightly updated API includes voice stealing
2019-08-12 00:16:03 -04:00
Yotam Mann
72e877ff67
hooking up onsilence
2019-08-12 00:13:52 -04:00
Yotam Mann
8b295c32de
removing getLevelAtTime
...
replaced by onsilence which is used to find when the instrument is making sound
2019-08-12 00:13:13 -04:00
Yotam Mann
b94be3cdc4
moving object creation to constructor body
...
more consistent style
2019-08-09 23:06:30 -04:00
Yotam Mann
38d6f9d242
optimization by moving child objects into constructor
...
means that in many cases the param won't be assigned twice
2019-08-08 14:15:56 -04:00
Yotam Mann
507f095992
compute time string values for envelope attack/release
...
fixes #501
2019-08-07 11:46:04 -04:00
Yotam Mann
0f1218b69e
updating docs
2019-08-04 13:12:23 -04:00
Yotam Mann
56db8b3a7a
simplifying _internalChannels
...
channelCount/Mode/Interpretation check the input/output nodes, which removes the need for many classes to have _internalChannels
2019-08-03 12:00:14 -04:00
Yotam Mann
b81310f107
doesn't need to set numberOfOutputs
2019-08-02 21:50:04 -04:00
Yotam Mann
52bcac2599
setting name to readonly
2019-08-02 21:09:35 -04:00
Yotam Mann
1792ff1d05
merging functionality from 'dev'
...
changes were made to .js files which are no longer there. moving functionality to .ts files
2019-08-02 13:56:51 -04:00
Yotam Mann
22396a8942
Merge branch 'dev' into typescript
2019-08-02 13:52:11 -04:00
Yotam Mann
d20f6e8fe9
Releases all held notes
...
thanks @lidiovargas! i ended up going with something more similar to your first solution. just removing the arrow function to fix the linting error
2019-08-02 10:43:31 -04:00
Lidio Vargas
82a9b54de1
Fixing sustained notes on Tone.Sampler (travis checked)
2019-08-01 21:00:05 -03:00
Lidio Vargas
f0febbdade
Fixing sustained notes on Tone.Sampler (passing test)
2019-08-01 20:32:24 -03:00
Yotam Mann
e97ea7d5df
better type checking for sampler url parameters
2019-07-30 15:53:10 -04:00
Yotam Mann
6e5e8b3399
using specific types
...
importing them so there are not multiple import type errors
2019-07-30 15:35:27 -04:00
Lidio Vargas
65098a0229
Fixing released-sustained notes on Tone.Sampler
2019-07-28 14:01:50 -03:00
Yotam Mann
bfc3d7ed15
toMaster() -> toDestination()
...
more consistent with the Web Audio API
2019-07-25 11:32:56 -04:00
Yotam Mann
9a49c873df
exporting modules from main entry
2019-07-25 11:29:36 -04:00
Yotam Mann
ffad8c1475
confirm that an instance was disposed
...
implement Tone.prototype.dispose which flips a boolean wasDisposed.
2019-07-23 12:11:57 -04:00
Yotam Mann
63cce0d48a
converting Sampler to ts
2019-07-22 16:18:16 -04:00
Yotam Mann
9f14b53d26
moving input definition to Instrument
2019-07-22 16:16:13 -04:00
Yotam Mann
cd0ab3ae10
only relative paths
2019-07-19 13:26:38 -04:00
Yotam Mann
45622f1418
omit context from child classes
2019-07-19 13:21:02 -04:00
Yotam Mann
b9dd8440b7
using OscillatorInterface to define all the oscilator properties
2019-07-19 12:32:17 -04:00
Yotam Mann
60736135f3
updating docs
2019-07-18 14:57:13 -04:00
Yotam Mann
e2d505c6fd
only relative paths
2019-07-18 14:54:20 -04:00
Yotam Mann
b3ab8e88ff
exporting instruments
2019-07-18 14:48:02 -04:00
Yotam Mann
f69666fe07
converting Synth to typescript
2019-07-18 14:07:25 -04:00
tambien
755aae326f
removing unused import
2019-03-25 22:17:13 -07:00
Vasilii Smirnov
cd7b4c7fed
Fixed 'notes' parameter in Sampler methods to point that several notes can be played. ( #457 )
2019-03-11 19:38:29 -04:00
tambien
ff371dfd69
converting arg to time
2019-03-09 17:52:03 -05:00
tambien
5212d76223
removing logging
2019-02-01 12:16:49 -05:00
tambien
ddb9f8b4d8
sampler should throw error if there are no available notes to play
...
before failed silently
2019-02-01 12:01:35 -05:00
tambien
d957aad613
Documenting next parameters
...
fixes #433
[skip ci]
2019-01-31 19:20:45 -05:00
tambien
ed71d8141b
amd to es6 import/export
...
no longer using AMD (require.js) style imports, and beginning to move to es6 "import/export" statements everywhere.
2019-01-27 13:05:20 -05:00
tambien
be077fb59c
can pass in oscillator options to constructor
2019-01-09 23:19:56 -05:00
tambien
e5179c76c5
setting initial frequency
...
just for the visual effect in tonejs-ui
2019-01-08 20:24:24 -05:00
tambien
72536e5673
voices are chosen based on minimum value after the given time
...
fixes #415
2018-12-26 12:39:37 -05:00
tambien
2cb0d67b67
checking if activeSources still exists before trying to remove elements
...
fixes #409
2018-12-16 13:26:28 -05:00
tambien
3d1202043a
all modules are relative paths
...
simplifies deep references to individual files
2018-08-26 22:29:17 -04:00
Yotam Mann
15755701f9
linting
2018-08-06 23:32:21 -04:00
Yotam Mann
f09b5d0372
Merge branch 'dev' of https://github.com/Tonejs/Tone.js into dev
2018-07-30 22:57:09 -04:00
tambien
9edafa8be4
removing source when sample has finished
...
prevents error where the BufferSource.stop is attempted after the source has already finished
2018-07-29 09:28:45 -04:00
Yotam Mann
ea218c2921
adding logging
2018-06-20 23:12:17 -04:00
Yotam Mann
0173e31c91
adding an index to each voice
2018-06-20 23:02:44 -04:00
Yotam Mann
ad1e362d7c
release happens after stop time
...
as per new BufferSource api
2018-06-20 15:03:52 -04:00
tambien
031dc98898
optimization to turn off oscillator after play
2018-06-13 19:04:02 -04:00
Yotam Mann
45e40a8498
linting
2018-06-13 00:20:23 -04:00
Yotam Mann
3d92d0fdf8
simplifying the way that free voices are selected
2018-06-12 23:44:15 -04:00
tambien
8e2295e229
making triggerAttackRelease private
...
fixes #358
2018-05-31 13:18:29 -04:00
ZIwen
fa23475906
Update Sampler.js ( #346 )
...
support sampler polyphonic syntax
2018-05-15 10:07:36 -04:00
Charles Holbrow
51ac1a2100
Sampler Instrument can play entire sample, even when pitch shifting down. ( #335 )
...
* Sampler instrument does not truncate playback when pitch shifting down
* `BufferSource.start` defaults to playing the entire buffer, respects `this.playbackRate`
Previously, the Buffer would truncate the sample when `playbackRage` is less than 1.
Within the `start` method, this commit also tightens the scope of `var computedDur`, so
that it is accessible only where it is used.
2018-04-25 14:27:50 -04:00
Yotam Mann
2fab59e446
fixing typo in triggerAttack
...
fixes #333
2018-04-25 10:28:49 -04:00
Yotam Mann
79a4aaae99
getLevelAtTime returns the envelope's value at the given time
2018-03-29 16:56:27 -04:00
Yotam Mann
ccc5fea22b
portamento only happens on close retriggers
2018-03-05 23:56:42 -05:00
Yotam Mann
a5503e02d2
linting
2018-03-05 12:25:33 -05:00
Yotam Mann
897b885a40
increasing max search interval to 8 octaves
...
fixes #315
2018-03-05 10:40:46 -05:00
Yotam Mann
a7e2f603d9
playing sources only while instruments are triggered
2018-02-08 11:11:57 -05:00
Yotam Mann
457c7b221c
optimizing instrument by only turning on oscillators when active
2018-02-05 13:50:14 -05:00
Yotam Mann
92454266f7
sync/unsync triggerAttack/Release to the Transport
2018-01-02 16:49:41 -05:00
Yotam Mann
d3b2444203
lowering default resonance
2018-01-02 16:48:38 -05:00
Yotam Mann
dded291a25
linting
2018-01-02 10:37:27 -05:00
Yotam Mann
f818bede9a
releaseAll stops all currently active notes
...
fixes #272
2017-11-29 16:54:17 -05:00
Yotam Mann
9a745e3624
PolySynth throws error if the instrument voice is not Monophonic
...
fixes #270
2017-11-26 11:22:25 -08:00
Yotam Mann
4316530b16
linting
2017-10-26 16:03:00 -04:00
Yotam Mann
cb2a982c39
linting
2017-10-21 19:02:46 -04:00
Steve De Jonghe
713e97fbeb
Fix typo in MembraneSynth description ( #262 )
...
"applied during during ..." => "applied during ..."
2017-09-26 12:33:41 -04:00
Yotam Mann
f8f0489e14
jsdocing constructor params
...
fixes #261
[skip ci]
2017-09-18 12:29:04 -04:00
Yotam Mann
25315eccc2
removing warnings triggered in constructor
2017-09-15 18:05:23 -04:00
Yotam Mann
c7385ef575
using exponential curve in sampler
2017-09-15 09:07:09 -04:00
Yotam Mann
e6faa39dba
classes which generate or process sound extend Tone.AudioNode
2017-08-27 17:50:31 -04:00
Yotam Mann
ea869e7c93
updating jsdoc comment to reflect that class extends Tone.Instrument
2017-08-27 16:28:29 -04:00
Yotam Mann
1e148a9c74
Sampler is now an instrument for creating a chromatic instrument from pitched samples
2017-08-27 12:55:54 -04:00
Yotam Mann
1d362ee6f7
account for release time when scheduling note stop
2017-08-26 15:39:09 -04:00
Alan Russell
bd0b36b9ab
Point links to Synth Secrets on archive.org ( #254 )
...
* point Cymbal Synthesis link to archive.org
* point to Synth Secrets Amplitude Modulation article on archive.org
* point to pair of Synth Secrets FM articles on archive.org
* point to Synth Secrets Reverb article on archive.org
* Revert "point Cymbal Synthesis link to archive.org"
This reverts commit f621d8ecec
.
* point to Synth Secrets Cymbal Synthesis article on archive.org
2017-08-15 01:02:00 -04:00
Yotam Mann
835a3be67d
no need to schedule a block in the future since lookAhead
is now built into Tone.now()
2017-06-29 13:55:36 -04:00
Yotam Mann
1f604f3f31
update sampler example
...
Fixes #243
[skip ci]
2017-06-28 15:23:49 -04:00
Yotam Mann
0a42b3ef54
adding triggerAttackRelease method
...
Instrument one does not work with MultiSampler since a note is required
as the first argument
2017-06-16 17:27:30 -04:00
Yotam Mann
59a276d8fe
including lookAhead
in now()
removes need for adding blockTime to reduce clicks
2017-05-28 21:52:28 -04:00
Yotam Mann
f778774401
linting
2017-05-13 22:14:13 -04:00
Yotam Mann
5d7bd92d7a
MultiSampler instrument
2017-05-13 22:08:04 -04:00
Yotam Mann
260d27bbb3
instruments depend on Tone.Master
2017-05-08 11:49:08 -04:00
Yotam Mann
b927395825
making defaultArg static
2017-04-30 15:03:49 -04:00
Yotam Mann
f7b7600ac9
fixing jsdoc errors
...
[skip ci]
2017-04-30 11:16:35 -04:00
Yotam Mann
4bda177b83
gainToDb, dbToGain, intervalToFrequencyRatio now static functions
2017-04-26 23:21:26 -04:00
Yotam Mann
edfa168713
moving to static type queries
...
i.e. this.isString -> Tone.isString
2017-04-26 00:24:19 -04:00
Yotam Mann
2e807dde30
light styling
2017-04-26 00:08:41 -04:00
Yotam Mann
c544255953
using defaults
in last remaining classes
2017-04-26 00:07:10 -04:00
Yotam Mann
aa54db39fe
using static defaultArg/defaults methods
2017-04-25 23:22:34 -04:00
Yotam Mann
752a0a6bc4
Duration argument must be greater than 0
...
fixes #203
[skip ci]
2017-03-05 13:19:55 -05:00
Yotam Mann
c3158bbcf7
fixing docs
...
fixes #202
[skip ci]
2017-02-16 12:04:12 -05:00
Yotam Mann
5d7c95b806
removing deprecated SimpleSynth
...
[skip ci]
2017-01-08 18:35:04 -05:00
Yotam Mann
3c8d77d02b
Merge branch 'master' into dev
2017-01-08 17:08:24 -05:00
Bobby Brennan
47d5299e9e
Update FMSynth.js
2016-12-31 20:36:24 -05:00
Bobby Brennan
1b9d82b189
Update AMSynth.js
2016-12-31 20:35:57 -05:00
Yotam Mann
5d469d44ba
adding triggerAttackRelease jsdoc
...
Clarifies and Fixes #175
[skip ci]
2016-11-07 10:42:09 -05:00
Yotam Mann
45eba82840
updating to new Q values
2016-11-06 19:10:26 -05:00
Yotam Mann
e3d05840d9
'linear' attack removes pops in FF
2016-11-03 14:40:21 -04:00
Yotam Mann
934e731f82
OmniOscillator in MembraneSynth
2016-10-20 11:45:28 -04:00
Yotam Mann
c1e5792497
passing in initial value
2016-10-19 01:01:40 -04:00
Yotam Mann
fb9d1617d8
updating docs
...
[skip ci]
private attribute was missing
2016-10-05 01:31:11 -04:00
Yotam Mann
b1765f71b0
moving the minimum timing to the Instrument classes
2016-09-24 10:38:57 -04:00
Yotam Mann
8d59c63d18
toSeconds no longer takes a currentTime value as second parameter
2016-09-23 20:06:07 -04:00
Yotam Mann
a60328345e
using Tone.Gain everywhere instead of GainNode
2016-09-19 23:53:07 -04:00
Yotam Mann
b266902bd7
can set the buffer
2016-07-20 15:42:55 -04:00
Yotam Mann
eb5a459d03
removing vibratoDelay
...
wasn’t doing anything.
2016-07-06 23:41:14 -04:00
Yotam Mann
02f96db94b
simplifiying Sampler
2016-07-06 22:32:34 -04:00
Yotam Mann
4628f8c47a
prefixing errors with class name.
2016-05-25 20:50:46 -04:00
Yotam Mann
aae52e3fa1
default PolySynth voice is Tone.Synth
...
instead of Tone.MonoSynth
2016-05-23 19:56:15 -04:00
Yotam Mann
49fc9d7bb6
renamed SimpleSynth to Tone.Synth
2016-05-23 19:49:41 -04:00
Yotam Mann
6060b397ad
added detune to PolySynth
...
applied when available.
2016-05-14 20:49:55 -04:00
Yotam Mann
b3e9ec173a
added detune for AM/FM synths
2016-05-14 20:10:31 -04:00
Yotam Mann
cdebaeedf5
Can pass in an array of durations into triggerAttackRelease
...
Fixes #135
2016-05-14 19:55:51 -04:00
Yotam Mann
733b49bcd5
using new types
2016-04-18 00:36:08 -04:00
Yotam Mann
3f6580b843
simplifying NoiseSynth
...
removing filer and filterEnvelope
2016-04-18 00:28:39 -04:00
Yotam Mann
278aace787
setting a reasonable max voice count
2016-03-03 13:01:11 -05:00
Yotam Mann
64dbebeb67
triggers oldest note
...
no more control over retriggering.
2016-02-08 13:44:49 -05:00
Yotam Mann
4a9f39a62b
keeps track of release times
...
so it’s able to trigger the voice that has already been release, or
retrigger the oldest voice (if stealVoices) is true.
2016-02-08 13:44:49 -05:00
Yotam Mann
46919e7c86
Simplifying the API of FMSynth and AMSynth
...
uses SimpleSynth instead of MonoSynth. API more flat.
2016-01-30 15:53:40 -05:00