Skip to content

Commit

Permalink
Resample via a libsamplerate (#117)
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.

Another significant issue is that it can take 3 seconds to call getUserMedia on Desktop Safari.
  • Loading branch information
microbit-matt-hillsdon authored Aug 28, 2024
1 parent 677585f commit ab07528
Show file tree
Hide file tree
Showing 11 changed files with 573 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 ab07528

Please sign in to comment.