|
1 | 1 | # purescript-webaudio |
2 | 2 |
|
3 | | -## About |
4 | | - |
5 | 3 | This is an experimental library for dealing with the HTML5 [Web Audio |
6 | 4 | API](https://webaudio.github.io/web-audio-api/) |
7 | 5 |
|
8 | | -Module documentation is available [here](API.md). |
9 | | - |
| 6 | +## Installation |
| 7 | + bower install purescript-webaudio |
| 8 | + |
| 9 | +## Examples |
10 | 10 |
|
11 | | -To build the examples to run in your browser, perform the following scripts in order: |
| 11 | +To build the examples perform the following scripts in order: |
12 | 12 | 1. `npm run build:example:xx` where xx is the example (siren, gain, decode, decodeAsync) |
13 | 13 |
|
14 | 14 | To run the examples in your browser, perform the following scripts in order: |
15 | 15 | 1. `npm run exec:example:xx` where xx is the example (siren, gain, decode, decodeAsync) |
16 | 16 |
|
| 17 | +## Tests |
| 18 | + |
17 | 19 | To build the test suite |
18 | 20 | 1. `npm run build:test:props` |
19 | 21 |
|
20 | 22 | To run the test suite |
21 | 23 | 1. `npm run exec:test:props` and inspect the output log |
22 | 24 |
|
23 | | - |
24 | | -## Breaking Changes |
25 | | -* Updated to work with `purs 0.11.x` |
26 | | -* Renamed the `WebAudio` effect to `AUDIO` to conform with best practices |
27 | | -* Renamed the `AudioNode` class as `RawAudioNode` |
28 | | -* `AudioNode` is now a sum type over all the raw nodes. |
29 | | -* Renamed `wau` to `audio` |
30 | | -* Moved several fns from `AudioContext.purs` to `BaseAudiocontext` to match web audio spec |
31 | | -* Created a `Connectable` class encompassing `connect`, `disconnect` & `connectParam` with AudioNode as an instance. This lives in `Types.purs` |
32 | | - |
33 | | -## Improvements |
34 | | -* Moved test/Test0X to `examples/` and renamed appropriately |
35 | | -* Added `AudioParam.setTargetAtTime` |
36 | | -* Updated `API.md` to reflect `decodeAudioData` error handling change |
37 | | -* New type synomymns `Value` and `Seconds` for `AudioParam` methods |
38 | | -* Eliminated `gulp`, putting new build test scripts in `package.json` |
39 | | -* Added `decodeAudioDataAsync` to `BaseAudioContext`. This runs in Aff not Eff but has the advantage that audio buffers can be returned directly. This, of course, introduces a dependency on Aff 4.0.0 and requires users to lift the original Eff functions into Aff if they wish to use it. I hope that this overhead should not be too restrictive given that a natural way to load sound resources is via Aff anyway. |
40 | | -* Added `decodeAsync` to illustrate basic usage. devDependencies now include `Affjax`. |
41 | | -* Added `test/props` to test some simple properties of the new Node types. |
42 | | -* Added `BiquadFilterNode`. |
43 | | -* Added `detune` property to `Oscillator`. |
44 | | -* Added `DelayNode`. |
45 | | -* Added `disconnect` to Types. |
46 | | -* Experimented with shorthand setters for `AudioParam` properties on some nodes. |
47 | | -* Added `AnalyserNode` plus buffer creation functions in Utils. This introduces a dependency on `Data.ArrayBuffer`. |
48 | | -* Added `StereoPannerNode`. |
49 | | -* Added `DynamicsCompressorNode` |
50 | | -* Added `ConvolverNode` |
51 | | - |
52 | | -## adkelley ToDo: |
53 | | -* Add further error handling options for `decodeAudioData` besides writing to console |
54 | | -* Support for further nodes (e.g., ChannelSplitterNode), and interfaces |
55 | | - |
56 | | -## newlandsvalley ToDo: |
57 | | -* Document the changes from merging my fork |
0 commit comments