rescript-tone 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/README.md +47 -57
  2. package/package.json +2 -2
  3. package/src/{ToneJs_AMSynth.res → AMSynth.res} +5 -5
  4. package/src/{ToneJs_AutoFilter.res → AutoFilter.res} +5 -5
  5. package/src/{ToneJs_AutoPanner.res → AutoPanner.res} +5 -5
  6. package/src/{ToneJs_AutoWah.res → AutoWah.res} +5 -5
  7. package/src/{ToneJs_BitCrusher.res → BitCrusher.res} +4 -4
  8. package/src/{ToneJs_Channel.res → Channel.res} +6 -6
  9. package/src/{ToneJs_Chebyshev.res → Chebyshev.res} +3 -3
  10. package/src/{ToneJs_Chorus.res → Chorus.res} +4 -4
  11. package/src/{ToneJs_Compressor.res → Compressor.res} +7 -7
  12. package/src/{ToneJs_Context.res → Context.res} +1 -1
  13. package/src/{ToneJs_Tone.res → Core.res} +4 -4
  14. package/src/{ToneJs_CrossFade.res → CrossFade.res} +5 -5
  15. package/src/{ToneJs_Destination.res → Destination.res} +2 -2
  16. package/src/{ToneJs_Distortion.res → Distortion.res} +3 -3
  17. package/src/{ToneJs_EQ3.res → EQ3.res} +7 -7
  18. package/src/{ToneJs_Event.res → Event.res} +1 -1
  19. package/src/{ToneJs_FMSynth.res → FMSynth.res} +5 -5
  20. package/src/{ToneJs_FeedbackDelay.res → FeedbackDelay.res} +5 -5
  21. package/src/{ToneJs_Filter.res → Filter.res} +6 -6
  22. package/src/{ToneJs_Freeverb.res → Freeverb.res} +5 -5
  23. package/src/{ToneJs_FrequencyShifter.res → FrequencyShifter.res} +4 -4
  24. package/src/{ToneJs_Gain.res → Gain.res} +3 -3
  25. package/src/{ToneJs_Gate.res → Gate.res} +3 -3
  26. package/src/{ToneJs_JCReverb.res → JCReverb.res} +4 -4
  27. package/src/{ToneJs_Limiter.res → Limiter.res} +3 -3
  28. package/src/{ToneJs_Loop.res → Loop.res} +1 -1
  29. package/src/{ToneJs_MonoSynth.res → MonoSynth.res} +5 -5
  30. package/src/{ToneJs_Noise.res → Noise.res} +3 -3
  31. package/src/{ToneJs_Oscillator.res → Oscillator.res} +5 -5
  32. package/src/{ToneJs_Panner.res → Panner.res} +3 -3
  33. package/src/{ToneJs_Param.res → Param.res} +1 -1
  34. package/src/{ToneJs_Part.res → Part.res} +2 -2
  35. package/src/{ToneJs_Phaser.res → Phaser.res} +5 -5
  36. package/src/{ToneJs_PingPongDelay.res → PingPongDelay.res} +5 -5
  37. package/src/{ToneJs_PitchShift.res → PitchShift.res} +5 -5
  38. package/src/{ToneJs_Player.res → Player.res} +3 -3
  39. package/src/{ToneJs_PolySynth.res → PolySynth.res} +3 -3
  40. package/src/{ToneJs_Reverb.res → Reverb.res} +3 -3
  41. package/src/{ToneJs_Sequence.res → Sequence.res} +1 -1
  42. package/src/{ToneJs_Signal.res → Signal.res} +4 -4
  43. package/src/{ToneJs_StereoWidener.res → StereoWidener.res} +4 -4
  44. package/src/{ToneJs_Synth.res → Synth.res} +5 -5
  45. package/src/{ToneJs_Transport.res → Transport.res} +2 -2
  46. package/src/{ToneJs_Tremolo.res → Tremolo.res} +5 -5
  47. package/src/{ToneJs_Vibrato.res → Vibrato.res} +5 -5
  48. package/src/{ToneJs_Volume.res → Volume.res} +3 -3
  49. package/src/ToneJs.res +0 -64
  50. package/src/ToneJs.res.js +0 -150
  51. /package/src/{ToneJs_AudioNode.res → AudioNode.res} +0 -0
  52. /package/src/{ToneJs_Types.res → Types.res} +0 -0
package/README.md CHANGED
@@ -19,17 +19,15 @@ Add to your `rescript.json`:
19
19
  ## Quick Start
20
20
 
21
21
  ```rescript
22
- open RescriptTone
23
-
24
22
  // Create a synth and connect it to the speakers
25
- let synth = ToneJs_Synth.make()
26
- let node = synth->ToneJs_Synth.asAudioNode->ToneJs_AudioNode.toDestination
23
+ let synth = Tone.Synth.make()
24
+ let node = synth->Tone.Synth.asAudioNode->Tone.AudioNode.toDestination
27
25
 
28
26
  // Play a note
29
- let _ = synth->ToneJs_Synth.triggerAttackRelease(440.0, ToneJs_Types.Time.seconds(0.5))
27
+ let _ = synth->Tone.Synth.triggerAttackRelease(440.0, Tone.Types.Time.seconds(0.5))
30
28
 
31
29
  // Start the audio context (required by browsers)
32
- let _ = ToneJs_Tone.start()
30
+ let _ = Tone.Core.start()
33
31
  ```
34
32
 
35
33
  ## Usage Examples
@@ -37,106 +35,96 @@ let _ = ToneJs_Tone.start()
37
35
  ### Playing Notes with a Synth
38
36
 
39
37
  ```rescript
40
- open RescriptTone
41
-
42
- let synth = ToneJs_Synth.makeWithOptions({
43
- oscillator: ?Some({\"type": ?Some(ToneJs_Types.Sawtooth)}),
38
+ let synth = Tone.Synth.makeWithOptions({
39
+ oscillator: ?Some({\"type": ?Some(Tone.Types.Sawtooth)}),
44
40
  envelope: ?Some({
45
- attack: ?Some(ToneJs_Types.Time.seconds(0.1)),
46
- decay: ?Some(ToneJs_Types.Time.seconds(0.2)),
41
+ attack: ?Some(Tone.Types.Time.seconds(0.1)),
42
+ decay: ?Some(Tone.Types.Time.seconds(0.2)),
47
43
  sustain: ?Some(0.5),
48
- release: ?Some(ToneJs_Types.Time.seconds(0.8)),
44
+ release: ?Some(Tone.Types.Time.seconds(0.8)),
49
45
  }),
50
46
  })
51
47
 
52
- let _ = synth->ToneJs_Synth.asAudioNode->ToneJs_AudioNode.toDestination
53
- let _ = synth->ToneJs_Synth.triggerAttackRelease(440.0, ToneJs_Types.Time.seconds(0.5))
48
+ let _ = synth->Tone.Synth.asAudioNode->Tone.AudioNode.toDestination
49
+ let _ = synth->Tone.Synth.triggerAttackRelease(440.0, Tone.Types.Time.seconds(0.5))
54
50
  ```
55
51
 
56
52
  ### Chaining Effects
57
53
 
58
54
  ```rescript
59
- open RescriptTone
60
-
61
- let synth = ToneJs_Synth.make()
62
- let reverb = ToneJs_Reverb.makeWithDecay(1.5)
63
- let delay = ToneJs_FeedbackDelay.makeWithTimeFeedback(ToneJs_Types.Time.notation("8n"), 0.5)
64
- let dest = ToneJs_Tone.getDestination()
55
+ let synth = Tone.Synth.make()
56
+ let reverb = Tone.Reverb.makeWithDecay(1.5)
57
+ let delay = Tone.FeedbackDelay.makeWithTimeFeedback(Tone.Types.Time.notation("8n"), 0.5)
58
+ let dest = Tone.Core.getDestination()
65
59
 
66
60
  // Chain: synth -> delay -> reverb -> destination
67
61
  let _ = synth
68
- ->ToneJs_Synth.asAudioNode
69
- ->ToneJs_AudioNode.chain([
70
- delay->ToneJs_FeedbackDelay.asAudioNode,
71
- reverb->ToneJs_Reverb.asAudioNode,
72
- dest->ToneJs_Destination.asAudioNode,
62
+ ->Tone.Synth.asAudioNode
63
+ ->Tone.AudioNode.chain([
64
+ delay->Tone.FeedbackDelay.asAudioNode,
65
+ reverb->Tone.Reverb.asAudioNode,
66
+ dest->Tone.Destination.asAudioNode,
73
67
  ])
74
68
  ```
75
69
 
76
70
  ### Scheduling with Transport
77
71
 
78
72
  ```rescript
79
- open RescriptTone
80
-
81
- let synth = ToneJs_Synth.make()
82
- let _ = synth->ToneJs_Synth.asAudioNode->ToneJs_AudioNode.toDestination
73
+ let synth = Tone.Synth.make()
74
+ let _ = synth->Tone.Synth.asAudioNode->Tone.AudioNode.toDestination
83
75
 
84
- let transport = ToneJs_Tone.getTransport()
76
+ let transport = Tone.Core.getTransport()
85
77
 
86
78
  // Set BPM
87
- let bpm = transport->ToneJs_Transport.bpm
88
- ToneJs_Param.setValue(bpm, 120.0)
79
+ let bpm = transport->Tone.Transport.bpm
80
+ Tone.Param.setValue(bpm, 120.0)
89
81
 
90
82
  // Schedule a repeating note
91
- let _ = transport->ToneJs_Transport.scheduleRepeat(
83
+ let _ = transport->Tone.Transport.scheduleRepeat(
92
84
  _time => {
93
- let _ = synth->ToneJs_Synth.triggerAttackRelease(440.0, ToneJs_Types.Time.notation("8n"))
85
+ let _ = synth->Tone.Synth.triggerAttackRelease(440.0, Tone.Types.Time.notation("8n"))
94
86
  },
95
- ToneJs_Types.Time.notation("4n"),
87
+ Tone.Types.Time.notation("4n"),
96
88
  )
97
89
 
98
90
  // Start the transport
99
- let _ = transport->ToneJs_Transport.start
91
+ let _ = transport->Tone.Transport.start
100
92
  ```
101
93
 
102
94
  ### Looping Patterns
103
95
 
104
96
  ```rescript
105
- open RescriptTone
106
-
107
- let synth = ToneJs_Synth.make()
108
- let _ = synth->ToneJs_Synth.asAudioNode->ToneJs_AudioNode.toDestination
97
+ let synth = Tone.Synth.make()
98
+ let _ = synth->Tone.Synth.asAudioNode->Tone.AudioNode.toDestination
109
99
 
110
100
  let notes = ["C4", "E4", "G4", "B4"]
111
101
 
112
- let seq = ToneJs_Sequence.makeWithSubdivision(
102
+ let seq = Tone.Sequence.makeWithSubdivision(
113
103
  (time, note) => {
114
- let _ = synth->ToneJs_Synth.triggerAttackReleaseAt(
115
- ToneJs_Types.Frequency.fromNotation(note),
116
- ToneJs_Types.Time.notation("8n"),
117
- ~time=ToneJs_Types.Time.fromFloat(time),
104
+ let _ = synth->Tone.Synth.triggerAttackReleaseAt(
105
+ Tone.Types.Frequency.fromNotation(note),
106
+ Tone.Types.Time.notation("8n"),
107
+ ~time=Tone.Types.Time.fromFloat(time),
118
108
  )
119
109
  },
120
110
  notes,
121
- ToneJs_Types.Time.notation("4n"),
111
+ Tone.Types.Time.notation("4n"),
122
112
  )
123
113
 
124
- let _ = seq->ToneJs_Sequence.start
125
- let _ = ToneJs_Tone.getTransport()->ToneJs_Transport.start
114
+ let _ = seq->Tone.Sequence.start
115
+ let _ = Tone.Core.getTransport()->Tone.Transport.start
126
116
  ```
127
117
 
128
118
  ### Polyphonic Synth
129
119
 
130
120
  ```rescript
131
- open RescriptTone
132
-
133
- let poly = ToneJs_PolySynth.makeWithOptions({maxPolyphony: ?Some(4)})
134
- let _ = poly->ToneJs_PolySynth.asAudioNode->ToneJs_AudioNode.toDestination
121
+ let poly = Tone.PolySynth.makeWithOptions({maxPolyphony: ?Some(4)})
122
+ let _ = poly->Tone.PolySynth.asAudioNode->Tone.AudioNode.toDestination
135
123
 
136
124
  // Play a chord
137
- let _ = poly->ToneJs_PolySynth.triggerAttackRelease(
125
+ let _ = poly->Tone.PolySynth.triggerAttackRelease(
138
126
  [261.63, 329.63, 392.0],
139
- ToneJs_Types.Time.seconds(1.0),
127
+ Tone.Types.Time.seconds(1.0),
140
128
  )
141
129
  ```
142
130
 
@@ -150,7 +138,7 @@ The library is organized into modules that mirror Tone.js's structure:
150
138
 
151
139
  | Category | Modules |
152
140
  |----------|---------|
153
- | **Core** | `Tone`, `Context`, `Transport`, `Destination`, `Param`, `AudioNode`, `Types` |
141
+ | **Core** | `Core`, `Context`, `Transport`, `Destination`, `Param`, `AudioNode`, `Types` |
154
142
  | **Instruments** | `Synth`, `AMSynth`, `FMSynth`, `MonoSynth`, `PolySynth` |
155
143
  | **Sources** | `Oscillator`, `Player`, `Noise` |
156
144
  | **Effects** | `Reverb`, `FeedbackDelay`, `Chorus`, `Distortion`, `AutoFilter`, `AutoPanner`, `AutoWah`, `BitCrusher`, `Chebyshev`, `Freeverb`, `JCReverb`, `Phaser`, `PingPongDelay`, `PitchShift`, `Tremolo`, `Vibrato`, `FrequencyShifter`, `StereoWidener` |
@@ -158,11 +146,13 @@ The library is organized into modules that mirror Tone.js's structure:
158
146
  | **Signal & Channel** | `Signal`, `Volume`, `Gain`, `Channel`, `CrossFade` |
159
147
  | **Scheduling** | `Loop`, `Event`, `Part`, `Sequence` |
160
148
 
149
+ All modules are accessible under the `Tone` namespace (e.g., `Tone.Synth.make()`, `Tone.Reverb.makeWithDecay(1.5)`).
150
+
161
151
  Each Tone.js class maps to a ReScript module with an abstract `type t`. Modules expose:
162
152
  - `make` / `makeWithOptions` constructors
163
153
  - `@send` methods for instance operations
164
154
  - `@get` / `@set` for properties
165
- - `asAudioNode` for casting to the base `ToneJs_AudioNode.t` type (for `connect`, `chain`, etc.)
155
+ - `asAudioNode` for casting to the base `AudioNode.t` type (for `connect`, `chain`, etc.)
166
156
 
167
157
  ## Requirements
168
158
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rescript-tone",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "ReScript bindings for Tone.js",
5
5
  "repository": {
6
6
  "url": "https://github.com/brnrdog/rescript-tone.git",
@@ -19,7 +19,7 @@
19
19
  "files": [
20
20
  "src/**/*.res"
21
21
  ],
22
- "main": "src/ToneJs.res.js",
22
+ "main": "src/Tone.res.js",
23
23
  "scripts": {
24
24
  "res:build": "rescript",
25
25
  "res:dev": "rescript -w",
@@ -1,5 +1,5 @@
1
1
  // Bindings for Tone.AMSynth - AM synthesis
2
- open ToneJs_Types
2
+ open Types
3
3
 
4
4
  type t
5
5
 
@@ -23,12 +23,12 @@ type options = {
23
23
  @send external triggerAttackReleaseAt: (t, frequency, time, ~time: time=?) => t = "triggerAttackRelease"
24
24
  @send external triggerAttackReleaseAtVel: (t, frequency, time, ~time: time=?, ~velocity: normalRange=?) => t = "triggerAttackRelease"
25
25
 
26
- @get external volume: t => ToneJs_Param.t = "volume"
27
- @get external frequency: t => ToneJs_Param.t = "frequency"
28
- @get external detune: t => ToneJs_Param.t = "detune"
26
+ @get external volume: t => Param.t = "volume"
27
+ @get external frequency: t => Param.t = "frequency"
28
+ @get external detune: t => Param.t = "detune"
29
29
 
30
30
  @send external dispose: t => t = "dispose"
31
31
  @send external sync: t => t = "sync"
32
32
  @send external unsync: t => t = "unsync"
33
33
 
34
- external asAudioNode: t => ToneJs_AudioNode.t = "%identity"
34
+ external asAudioNode: t => AudioNode.t = "%identity"
@@ -1,5 +1,5 @@
1
1
  // Bindings for Tone.AutoFilter
2
- open ToneJs_Types
2
+ open Types
3
3
 
4
4
  type t
5
5
 
@@ -16,9 +16,9 @@ type options = {
16
16
  @module("tone") @new external make: unit => t = "AutoFilter"
17
17
  @module("tone") @new external makeWithOptions: options => t = "AutoFilter"
18
18
 
19
- @get external frequency: t => ToneJs_Param.t = "frequency"
20
- @get external depth: t => ToneJs_Param.t = "depth"
21
- @get external wet: t => ToneJs_Param.t = "wet"
19
+ @get external frequency: t => Param.t = "frequency"
20
+ @get external depth: t => Param.t = "depth"
21
+ @get external wet: t => Param.t = "wet"
22
22
  @get external octaves: t => positive = "octaves"
23
23
  @set external setOctaves: (t, positive) => unit = "octaves"
24
24
  @get external baseFrequency: t => frequency = "baseFrequency"
@@ -30,4 +30,4 @@ type options = {
30
30
  @send external unsync: t => t = "unsync"
31
31
  @send external dispose: t => t = "dispose"
32
32
 
33
- external asAudioNode: t => ToneJs_AudioNode.t = "%identity"
33
+ external asAudioNode: t => AudioNode.t = "%identity"
@@ -1,5 +1,5 @@
1
1
  // Bindings for Tone.AutoPanner
2
- open ToneJs_Types
2
+ open Types
3
3
 
4
4
  type t
5
5
 
@@ -13,9 +13,9 @@ type options = {
13
13
  @module("tone") @new external make: unit => t = "AutoPanner"
14
14
  @module("tone") @new external makeWithOptions: options => t = "AutoPanner"
15
15
 
16
- @get external frequency: t => ToneJs_Param.t = "frequency"
17
- @get external depth: t => ToneJs_Param.t = "depth"
18
- @get external wet: t => ToneJs_Param.t = "wet"
16
+ @get external frequency: t => Param.t = "frequency"
17
+ @get external depth: t => Param.t = "depth"
18
+ @get external wet: t => Param.t = "wet"
19
19
 
20
20
  @send external start: (t, ~time: time=?) => t = "start"
21
21
  @send external stop: (t, ~time: time=?) => t = "stop"
@@ -23,4 +23,4 @@ type options = {
23
23
  @send external unsync: t => t = "unsync"
24
24
  @send external dispose: t => t = "dispose"
25
25
 
26
- external asAudioNode: t => ToneJs_AudioNode.t = "%identity"
26
+ external asAudioNode: t => AudioNode.t = "%identity"
@@ -1,5 +1,5 @@
1
1
  // Bindings for Tone.AutoWah
2
- open ToneJs_Types
2
+ open Types
3
3
 
4
4
  type t
5
5
 
@@ -16,9 +16,9 @@ type options = {
16
16
  @module("tone") @new external make: unit => t = "AutoWah"
17
17
  @module("tone") @new external makeWithOptions: options => t = "AutoWah"
18
18
 
19
- @get external gain: t => ToneJs_Param.t = "gain"
20
- @get external q: t => ToneJs_Param.t = "Q"
21
- @get external wet: t => ToneJs_Param.t = "wet"
19
+ @get external gain: t => Param.t = "gain"
20
+ @get external q: t => Param.t = "Q"
21
+ @get external wet: t => Param.t = "wet"
22
22
  @get external octaves: t => positive = "octaves"
23
23
  @set external setOctaves: (t, positive) => unit = "octaves"
24
24
  @get external baseFrequency: t => frequency = "baseFrequency"
@@ -28,4 +28,4 @@ type options = {
28
28
 
29
29
  @send external dispose: t => t = "dispose"
30
30
 
31
- external asAudioNode: t => ToneJs_AudioNode.t = "%identity"
31
+ external asAudioNode: t => AudioNode.t = "%identity"
@@ -1,5 +1,5 @@
1
1
  // Bindings for Tone.BitCrusher
2
- open ToneJs_Types
2
+ open Types
3
3
 
4
4
  type t
5
5
 
@@ -12,9 +12,9 @@ type options = {
12
12
  @module("tone") @new external makeWithBits: positive => t = "BitCrusher"
13
13
  @module("tone") @new external makeWithOptions: options => t = "BitCrusher"
14
14
 
15
- @get external bits: t => ToneJs_Param.t = "bits"
16
- @get external wet: t => ToneJs_Param.t = "wet"
15
+ @get external bits: t => Param.t = "bits"
16
+ @get external wet: t => Param.t = "wet"
17
17
 
18
18
  @send external dispose: t => t = "dispose"
19
19
 
20
- external asAudioNode: t => ToneJs_AudioNode.t = "%identity"
20
+ external asAudioNode: t => AudioNode.t = "%identity"
@@ -1,5 +1,5 @@
1
1
  // Bindings for Tone.Channel - routing and mixing
2
- open ToneJs_Types
2
+ open Types
3
3
 
4
4
  type t
5
5
 
@@ -16,18 +16,18 @@ type options = {
16
16
  @module("tone") @new external makeWithVolumePan: (decibels, audioRange) => t = "Channel"
17
17
  @module("tone") @new external makeWithOptions: options => t = "Channel"
18
18
 
19
- @get external pan: t => ToneJs_Param.t = "pan"
20
- @get external volume: t => ToneJs_Param.t = "volume"
19
+ @get external pan: t => Param.t = "pan"
20
+ @get external volume: t => Param.t = "volume"
21
21
  @get external solo: t => bool = "solo"
22
22
  @set external setSolo: (t, bool) => unit = "solo"
23
23
  @get external mute: t => bool = "mute"
24
24
  @set external setMute: (t, bool) => unit = "mute"
25
25
  @get external muted: t => bool = "muted"
26
26
 
27
- @send external send: (t, string) => ToneJs_Gain.t = "send"
28
- @send external sendWithVolume: (t, string, ~volume: decibels=?) => ToneJs_Gain.t = "send"
27
+ @send external send: (t, string) => Gain.t = "send"
28
+ @send external sendWithVolume: (t, string, ~volume: decibels=?) => Gain.t = "send"
29
29
  @send external receive: (t, string) => t = "receive"
30
30
 
31
31
  @send external dispose: t => t = "dispose"
32
32
 
33
- external asAudioNode: t => ToneJs_AudioNode.t = "%identity"
33
+ external asAudioNode: t => AudioNode.t = "%identity"
@@ -1,5 +1,5 @@
1
1
  // Bindings for Tone.Chebyshev - waveshaping distortion
2
- open ToneJs_Types
2
+ open Types
3
3
 
4
4
  type t
5
5
 
@@ -17,8 +17,8 @@ type options = {
17
17
  @set external setOrder: (t, int) => unit = "order"
18
18
  @get external oversample: t => oversampleType = "oversample"
19
19
  @set external setOversample: (t, oversampleType) => unit = "oversample"
20
- @get external wet: t => ToneJs_Param.t = "wet"
20
+ @get external wet: t => Param.t = "wet"
21
21
 
22
22
  @send external dispose: t => t = "dispose"
23
23
 
24
- external asAudioNode: t => ToneJs_AudioNode.t = "%identity"
24
+ external asAudioNode: t => AudioNode.t = "%identity"
@@ -1,5 +1,5 @@
1
1
  // Bindings for Tone.Chorus
2
- open ToneJs_Types
2
+ open Types
3
3
 
4
4
  type t
5
5
 
@@ -17,7 +17,7 @@ type options = {
17
17
  @module("tone") @new external makeWithArgs: (frequency, milliseconds, normalRange) => t = "Chorus"
18
18
  @module("tone") @new external makeWithOptions: options => t = "Chorus"
19
19
 
20
- @get external frequency: t => ToneJs_Param.t = "frequency"
20
+ @get external frequency: t => Param.t = "frequency"
21
21
  @get external depth: t => normalRange = "depth"
22
22
  @set external setDepth: (t, normalRange) => unit = "depth"
23
23
  @get external delayTime: t => milliseconds = "delayTime"
@@ -26,7 +26,7 @@ type options = {
26
26
  @set external setType: (t, oscillatorType) => unit = "type"
27
27
  @get external spread: t => degrees = "spread"
28
28
  @set external setSpread: (t, degrees) => unit = "spread"
29
- @get external wet: t => ToneJs_Param.t = "wet"
29
+ @get external wet: t => Param.t = "wet"
30
30
 
31
31
  @send external start: (t, ~time: time=?) => t = "start"
32
32
  @send external stop: (t, ~time: time=?) => t = "stop"
@@ -34,4 +34,4 @@ type options = {
34
34
  @send external unsync: t => t = "unsync"
35
35
  @send external dispose: t => t = "dispose"
36
36
 
37
- external asAudioNode: t => ToneJs_AudioNode.t = "%identity"
37
+ external asAudioNode: t => AudioNode.t = "%identity"
@@ -1,5 +1,5 @@
1
1
  // Bindings for Tone.Compressor
2
- open ToneJs_Types
2
+ open Types
3
3
 
4
4
  type t
5
5
 
@@ -16,13 +16,13 @@ type options = {
16
16
  @module("tone") @new external makeWithThresholdRatio: (decibels, positive) => t = "Compressor"
17
17
  @module("tone") @new external makeWithOptions: options => t = "Compressor"
18
18
 
19
- @get external threshold: t => ToneJs_Param.t = "threshold"
20
- @get external ratio: t => ToneJs_Param.t = "ratio"
21
- @get external attack: t => ToneJs_Param.t = "attack"
22
- @get external release: t => ToneJs_Param.t = "release"
23
- @get external knee: t => ToneJs_Param.t = "knee"
19
+ @get external threshold: t => Param.t = "threshold"
20
+ @get external ratio: t => Param.t = "ratio"
21
+ @get external attack: t => Param.t = "attack"
22
+ @get external release: t => Param.t = "release"
23
+ @get external knee: t => Param.t = "knee"
24
24
  @get external reduction: t => decibels = "reduction"
25
25
 
26
26
  @send external dispose: t => t = "dispose"
27
27
 
28
- external asAudioNode: t => ToneJs_AudioNode.t = "%identity"
28
+ external asAudioNode: t => AudioNode.t = "%identity"
@@ -1,5 +1,5 @@
1
1
  // Bindings for Tone.js Context
2
- open ToneJs_Types
2
+ open Types
3
3
 
4
4
  type t
5
5
 
@@ -1,12 +1,12 @@
1
1
  // Top-level Tone.js module functions
2
- open ToneJs_Types
2
+ open Types
3
3
 
4
4
  @module("tone") external start: unit => promise<unit> = "start"
5
5
  @module("tone") external now: unit => seconds = "now"
6
6
  @module("tone") external immediate: unit => seconds = "immediate"
7
- @module("tone") external getContext: unit => ToneJs_Context.t = "getContext"
8
- @module("tone") external getTransport: unit => ToneJs_Transport.t = "getTransport"
9
- @module("tone") external getDestination: unit => ToneJs_Destination.t = "getDestination"
7
+ @module("tone") external getContext: unit => Context.t = "getContext"
8
+ @module("tone") external getTransport: unit => Transport.t = "getTransport"
9
+ @module("tone") external getDestination: unit => Destination.t = "getDestination"
10
10
  @module("tone") external loaded: unit => promise<unit> = "loaded"
11
11
  @module("tone") external supported: unit => bool = "supported"
12
12
  @module("tone") external version: string = "version"
@@ -1,5 +1,5 @@
1
1
  // Bindings for Tone.CrossFade
2
- open ToneJs_Types
2
+ open Types
3
3
 
4
4
  type t
5
5
 
@@ -11,10 +11,10 @@ type options = {
11
11
  @module("tone") @new external makeWithFade: normalRange => t = "CrossFade"
12
12
  @module("tone") @new external makeWithOptions: options => t = "CrossFade"
13
13
 
14
- @get external fade: t => ToneJs_Param.t = "fade"
15
- @get external a: t => ToneJs_Gain.t = "a"
16
- @get external b: t => ToneJs_Gain.t = "b"
14
+ @get external fade: t => Param.t = "fade"
15
+ @get external a: t => Gain.t = "a"
16
+ @get external b: t => Gain.t = "b"
17
17
 
18
18
  @send external dispose: t => t = "dispose"
19
19
 
20
- external asAudioNode: t => ToneJs_AudioNode.t = "%identity"
20
+ external asAudioNode: t => AudioNode.t = "%identity"
@@ -2,11 +2,11 @@
2
2
 
3
3
  type t
4
4
 
5
- @get external volume: t => ToneJs_Param.t = "volume"
5
+ @get external volume: t => Param.t = "volume"
6
6
  @get external mute: t => bool = "mute"
7
7
  @set external setMute: (t, bool) => unit = "mute"
8
8
  @get external maxChannelCount: t => int = "maxChannelCount"
9
9
  @send external dispose: t => t = "dispose"
10
10
 
11
11
  // Destination is also an AudioNode, so it can be connected to
12
- external asAudioNode: t => ToneJs_AudioNode.t = "%identity"
12
+ external asAudioNode: t => AudioNode.t = "%identity"
@@ -1,5 +1,5 @@
1
1
  // Bindings for Tone.Distortion
2
- open ToneJs_Types
2
+ open Types
3
3
 
4
4
  type t
5
5
 
@@ -17,8 +17,8 @@ type options = {
17
17
  @set external setDistortion: (t, float) => unit = "distortion"
18
18
  @get external oversample: t => oversampleType = "oversample"
19
19
  @set external setOversample: (t, oversampleType) => unit = "oversample"
20
- @get external wet: t => ToneJs_Param.t = "wet"
20
+ @get external wet: t => Param.t = "wet"
21
21
 
22
22
  @send external dispose: t => t = "dispose"
23
23
 
24
- external asAudioNode: t => ToneJs_AudioNode.t = "%identity"
24
+ external asAudioNode: t => AudioNode.t = "%identity"
@@ -1,5 +1,5 @@
1
1
  // Bindings for Tone.EQ3 - 3-band equalizer
2
- open ToneJs_Types
2
+ open Types
3
3
 
4
4
  type t
5
5
 
@@ -14,12 +14,12 @@ type options = {
14
14
  @module("tone") @new external make: unit => t = "EQ3"
15
15
  @module("tone") @new external makeWithOptions: options => t = "EQ3"
16
16
 
17
- @get external low: t => ToneJs_Param.t = "low"
18
- @get external mid: t => ToneJs_Param.t = "mid"
19
- @get external high: t => ToneJs_Param.t = "high"
20
- @get external lowFrequency: t => ToneJs_Param.t = "lowFrequency"
21
- @get external highFrequency: t => ToneJs_Param.t = "highFrequency"
17
+ @get external low: t => Param.t = "low"
18
+ @get external mid: t => Param.t = "mid"
19
+ @get external high: t => Param.t = "high"
20
+ @get external lowFrequency: t => Param.t = "lowFrequency"
21
+ @get external highFrequency: t => Param.t = "highFrequency"
22
22
 
23
23
  @send external dispose: t => t = "dispose"
24
24
 
25
- external asAudioNode: t => ToneJs_AudioNode.t = "%identity"
25
+ external asAudioNode: t => AudioNode.t = "%identity"
@@ -1,5 +1,5 @@
1
1
  // Bindings for Tone.ToneEvent - schedulable event
2
- open ToneJs_Types
2
+ open Types
3
3
 
4
4
  type t
5
5
 
@@ -1,5 +1,5 @@
1
1
  // Bindings for Tone.FMSynth - FM synthesis
2
- open ToneJs_Types
2
+ open Types
3
3
 
4
4
  type t
5
5
 
@@ -24,12 +24,12 @@ type options = {
24
24
  @send external triggerAttackReleaseAt: (t, frequency, time, ~time: time=?) => t = "triggerAttackRelease"
25
25
  @send external triggerAttackReleaseAtVel: (t, frequency, time, ~time: time=?, ~velocity: normalRange=?) => t = "triggerAttackRelease"
26
26
 
27
- @get external volume: t => ToneJs_Param.t = "volume"
28
- @get external frequency: t => ToneJs_Param.t = "frequency"
29
- @get external detune: t => ToneJs_Param.t = "detune"
27
+ @get external volume: t => Param.t = "volume"
28
+ @get external frequency: t => Param.t = "frequency"
29
+ @get external detune: t => Param.t = "detune"
30
30
 
31
31
  @send external dispose: t => t = "dispose"
32
32
  @send external sync: t => t = "sync"
33
33
  @send external unsync: t => t = "unsync"
34
34
 
35
- external asAudioNode: t => ToneJs_AudioNode.t = "%identity"
35
+ external asAudioNode: t => AudioNode.t = "%identity"
@@ -1,5 +1,5 @@
1
1
  // Bindings for Tone.FeedbackDelay
2
- open ToneJs_Types
2
+ open Types
3
3
 
4
4
  type t
5
5
 
@@ -15,10 +15,10 @@ type options = {
15
15
  @module("tone") @new external makeWithTimeFeedback: (time, normalRange) => t = "FeedbackDelay"
16
16
  @module("tone") @new external makeWithOptions: options => t = "FeedbackDelay"
17
17
 
18
- @get external delayTime: t => ToneJs_Param.t = "delayTime"
19
- @get external feedback: t => ToneJs_Param.t = "feedback"
20
- @get external wet: t => ToneJs_Param.t = "wet"
18
+ @get external delayTime: t => Param.t = "delayTime"
19
+ @get external feedback: t => Param.t = "feedback"
20
+ @get external wet: t => Param.t = "wet"
21
21
 
22
22
  @send external dispose: t => t = "dispose"
23
23
 
24
- external asAudioNode: t => ToneJs_AudioNode.t = "%identity"
24
+ external asAudioNode: t => AudioNode.t = "%identity"
@@ -1,5 +1,5 @@
1
1
  // Bindings for Tone.Filter
2
- open ToneJs_Types
2
+ open Types
3
3
 
4
4
  type t
5
5
 
@@ -31,10 +31,10 @@ type options = {
31
31
  @module("tone") @new external makeWithFreq: frequency => t = "Filter"
32
32
  @module("tone") @new external makeWithOptions: options => t = "Filter"
33
33
 
34
- @get external frequency: t => ToneJs_Param.t = "frequency"
35
- @get external q: t => ToneJs_Param.t = "Q"
36
- @get external gain: t => ToneJs_Param.t = "gain"
37
- @get external detune: t => ToneJs_Param.t = "detune"
34
+ @get external frequency: t => Param.t = "frequency"
35
+ @get external q: t => Param.t = "Q"
36
+ @get external gain: t => Param.t = "gain"
37
+ @get external detune: t => Param.t = "detune"
38
38
  @get external getType: t => filterType = "type"
39
39
  @set external setType: (t, filterType) => unit = "type"
40
40
  @get external rolloff: t => rolloff = "rolloff"
@@ -43,4 +43,4 @@ type options = {
43
43
  @send external getFrequencyResponse: (t, int) => array<float> = "getFrequencyResponse"
44
44
  @send external dispose: t => t = "dispose"
45
45
 
46
- external asAudioNode: t => ToneJs_AudioNode.t = "%identity"
46
+ external asAudioNode: t => AudioNode.t = "%identity"