Skip to content

Commit

Permalink
Resample via a libsamplerate
Browse files Browse the repository at this point in the history
We need to do this for recording as we can't specify a rate.

We need to do this for playback for sample rates outside of the
browser's supported range. That includes the current default rate for
Firefox and older Safari.

Uses a resampler build that doesn't support medium/best to save on
bundle size.

I've also increased the buffer size so I can play a 44k sample in an
OK-ish way. Maybe 256 will be needed.

We know Firefox on Windows still performs poorly. It did badly with
audio before these changes.
  • Loading branch information
microbit-matt-hillsdon committed Aug 28, 2024
1 parent 677585f commit 5721ef5
Show file tree
Hide file tree
Showing 11 changed files with 575 additions and 99 deletions.
20 changes: 20 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,26 @@ Steps for WASM debugging in Chrome:
- Enable "WebAssembly Debugging: Enable DWARF support" in DevTools Experiments
- DEBUG=1 make

## License

This software is under the MIT open source license.

[SPDX-License-Identifier: MIT](LICENSE)

MicroPython for micro:bit is included in the build process via a submodule.

We use dependencies via the NPM registry as specified by the package.json file under common Open Source licenses.

Full details of each package can be found by running `license-checker`:

```bash
$ npx license-checker --direct --summary --production
```

Omit the flags as desired to obtain more detail.

A fork of libsamplerate_js to reduce bundle size is [hosted on GitHub](https://github.com/microbit-foundation/libsamplerate-js).

## Code of Conduct

Trust, partnership, simplicity and passion are our core values we live and
Expand Down
Loading

0 comments on commit 5721ef5

Please sign in to comment.