@audio/decode 3.14.0 → 3.15.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.
package/audio-decode.js CHANGED
@@ -150,6 +150,21 @@ reg('dts', () => import('@audio/decode-dts'))
150
150
  reg('amr', () => import('@audio/decode-amr'))
151
151
  reg('wma', () => import('@audio/decode-wma'), true)
152
152
 
153
+ // lossless / audiophile long tail
154
+ reg('wv', () => import('@audio/decode-wavpack'))
155
+ reg('tta', () => import('@audio/decode-tta'))
156
+ reg('ape', () => import('@audio/decode-ape'))
157
+ reg('mpc', () => import('@audio/decode-mpc'))
158
+ reg('eac3', () => import('@audio/decode-eac3'))
159
+ reg('dsf', () => import('@audio/decode-dsd'))
160
+ reg('dff', () => import('@audio/decode-dsd'))
161
+
162
+ // tracker modules — one libopenmpt renderer, four format names
163
+ reg('mod', () => import('@audio/decode-mod'))
164
+ reg('xm', () => import('@audio/decode-mod'))
165
+ reg('s3m', () => import('@audio/decode-mod'))
166
+ reg('it', () => import('@audio/decode-mod'))
167
+
153
168
  /**
154
169
  * StreamDecoder — a callable function:
155
170
  * dec(chunk) — decode data, returns { channelData, sampleRate }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@audio/decode",
3
- "version": "3.14.0",
3
+ "version": "3.15.0",
4
4
  "description": "Decode audio data in node or browser",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -37,14 +37,19 @@
37
37
  "@audio/decode-dts": "^1.0.0",
38
38
  "@audio/decode-flac": "^1.3.0",
39
39
  "@audio/decode-mp3": "^1.3.0",
40
- "@audio/decode-mp4": "^1.1.0",
40
+ "@audio/decode-mp4": "^1.1.1",
41
41
  "@audio/decode-opus": "^1.3.0",
42
42
  "@audio/decode-qoa": "^1.2.0",
43
43
  "@audio/decode-vorbis": "^1.3.0",
44
44
  "@audio/decode-wav": "^1.5.0",
45
- "@audio/decode-webm": "^1.6.0",
45
+ "@audio/decode-webm": "^1.6.1",
46
46
  "@audio/decode-wma": "^1.3.0",
47
- "audio-type": "^2.6.0"
47
+ "audio-type": "^2.7.0",
48
+ "@audio/decode-wavpack": "^1.0.0",
49
+ "@audio/decode-tta": "^1.0.0",
50
+ "@audio/decode-mpc": "^1.0.0",
51
+ "@audio/decode-mod": "^1.0.0",
52
+ "@audio/decode-dsd": "^1.0.0"
48
53
  },
49
54
  "devDependencies": {
50
55
  "audio-lena": "^3.0.0",
package/readme.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # @audio/decode [![test](https://github.com/audiojs/decode/actions/workflows/test.js.yml/badge.svg)](https://github.com/audiojs/decode/actions/workflows/test.js.yml)
2
2
 
3
+ Try it in the browser: [Extract audio from video](https://audiojs.dev/util/extract-audio/), [Audio converter](https://audiojs.dev/util/convert-audio/). Runs on this package, nothing is uploaded.
4
+
3
5
  Decode any audio format to raw samples.<br>
4
6
  JS / WASM with no ffmpeg or native bindings; works in Node.js and browsers.<br>
5
7
  Small API, minimal size, near-native performance, lazy-loading, chunked decoding.
@@ -30,8 +32,15 @@ const { channelData, sampleRate } = await decode(anyAudioBuffer);
30
32
  | AVI video | [@audio/decode-avi](./packages/decode-avi) | 8 KB + codec | JS demux |
31
33
  | AC-3 | [@audio/decode-ac3](./packages/decode-ac3) | 43 KB | WASM |
32
34
  | DTS | [@audio/decode-dts](./packages/decode-dts) | 200 KB | WASM |
35
+ | E-AC-3 (Dolby Digital Plus, + AC-3) | [@audio/decode-eac3](./packages/decode-eac3) | 432 KB | WASM (FFmpeg libavcodec, LGPL) |
36
+ | APE (Monkey's Audio) | [@audio/decode-ape](./packages/decode-ape) | 262 KB | WASM (FFmpeg libavcodec, LGPL) |
33
37
  | AMR | [@audio/decode-amr](./packages/decode-amr) | 241 KB | WASM |
34
38
  | WMA | [@audio/decode-wma](./packages/decode-wma) | 91 KB | WASM |
39
+ | WavPack | [@audio/decode-wavpack](./packages/decode-wavpack) | 51 KB | WASM |
40
+ | TTA (True Audio) | [@audio/decode-tta](./packages/decode-tta) | 11 KB | JS |
41
+ | Musepack SV7 / SV8 | [@audio/decode-mpc](./packages/decode-mpc) | 51 KB | WASM |
42
+ | MOD / XM / S3M / IT tracker modules | [@audio/decode-mod](./packages/decode-mod) | 1.4 MB | WASM (libopenmpt) |
43
+ | DSF / DFF (DSD64–512 → PCM) | [@audio/decode-dsd](./packages/decode-dsd) | 18 KB | JS |
35
44
 
36
45
  ### Whole-file
37
46
 
@@ -67,7 +76,7 @@ for await (let { channelData, sampleRate } of decode.mp3(response.body)) {
67
76
 
68
77
  Works with `ReadableStream`, `fetch` body, Node stream, or any async iterable.
69
78
 
70
- Formats: `mp3`, `flac`, `opus`, `oga`, `m4a`, `mp4`, `mov`, `wav`, `qoa`, `aac`, `aiff`, `caf`, `webm`, `mkv`, `avi`, `ac3`, `dts`, `amr`, `wma`.
79
+ Formats: `mp3`, `flac`, `opus`, `oga`, `m4a`, `mp4`, `mov`, `wav`, `qoa`, `aac`, `aiff`, `caf`, `webm`, `mkv`, `avi`, `ac3`, `dts`, `amr`, `wma`, `eac3`, `ape`, `wv`, `tta`, `mpc`, `dsf`, `dff`, `mod`, `xm`, `s3m`, `it`.
71
80
 
72
81
  ### Video files
73
82
 
@@ -177,6 +186,6 @@ worker.onmessage = ({ data }) => { /* { channelData, sampleRate } */ }
177
186
 
178
187
  ## Licensing
179
188
 
180
- The umbrella and most codec packages are MIT. Five codecs use another license: <a href="./packages/decode-aac">@audio/decode-aac</a> GPL-2.0, <a href="./packages/decode-wma">@audio/decode-wma</a>, <a href="./packages/decode-ac3">@audio/decode-ac3</a> and <a href="./packages/decode-dts">@audio/decode-dts</a> GPL-2.0-or-later, and <a href="./packages/decode-amr">@audio/decode-amr</a> Apache-2.0. Install only the codecs whose licenses fit your project. The umbrella loads them on demand.
189
+ The umbrella and most codec packages are MIT. Codecs built on other libraries carry that library's license: <a href="./packages/decode-aac">@audio/decode-aac</a> GPL-2.0; <a href="./packages/decode-wma">@audio/decode-wma</a>, <a href="./packages/decode-ac3">@audio/decode-ac3</a> and <a href="./packages/decode-dts">@audio/decode-dts</a> GPL-2.0-or-later; <a href="./packages/decode-ape">@audio/decode-ape</a> and <a href="./packages/decode-eac3">@audio/decode-eac3</a> LGPL-2.1-or-later (a slim FFmpeg libavcodec build, no GPL components); <a href="./packages/decode-wavpack">@audio/decode-wavpack</a>, <a href="./packages/decode-mpc">@audio/decode-mpc</a> and <a href="./packages/decode-mod">@audio/decode-mod</a> BSD-3-Clause; <a href="./packages/decode-amr">@audio/decode-amr</a> Apache-2.0. Install only the codecs whose licenses fit your project. The umbrella loads them on demand.
181
190
 
182
191
  <p align="center"><a href="https://github.com/krishnized/license/">ॐ</a> · <a href="./LICENSE">MIT</a>
package/test.html CHANGED
@@ -37,6 +37,13 @@
37
37
  "@audio/decode-opus/core": "./packages/decode-opus/core.js",
38
38
  "@audio/decode-ac3": "./packages/decode-ac3/decode-ac3.js",
39
39
  "@audio/decode-dts": "./packages/decode-dts/decode-dts.js",
40
+ "@audio/decode-wavpack": "./packages/decode-wavpack/decode-wavpack.js",
41
+ "@audio/decode-tta": "./packages/decode-tta/decode-tta.js",
42
+ "@audio/decode-ape": "./packages/decode-ape/decode-ape.js",
43
+ "@audio/decode-mpc": "./packages/decode-mpc/decode-mpc.js",
44
+ "@audio/decode-eac3": "./packages/decode-eac3/decode-eac3.js",
45
+ "@audio/decode-dsd": "./packages/decode-dsd/decode-dsd.js",
46
+ "@audio/decode-mod": "./packages/decode-mod/decode-mod.js",
40
47
  "@audio/decode-amr": "./packages/decode-amr/decode-amr.js",
41
48
  "@audio/decode-wma": "./packages/decode-wma/decode-wma.js"
42
49
  }