Skip to content

Release v2.0.0

Latest

Choose a tag to compare

@hoch hoch released this 30 Sep 05:09
7839c13
  • Bundler & SSR support (#105, #154): build/omnitone.js and build/omnitone.min.js are now built as UMD modules (working both as a <script> global and via require('omnitone')), paired with "module" and "exports" entry points in package.json for import Omnitone from 'omnitone' and browser global guards for Node / SSR environments.
  • CSP compatibility without 'unsafe-eval' (#106, #147): Rewrote BufferList.load() around Promise.all and removed new Function(), so Omnitone runs under strict Content Security Policies.
  • Setters work before initialize() resolves (#102, #145, #153): setChannelMap(), setRotationMatrix3(), setRotationMatrix4(), setRotationMatrixFromCamera(), and setRenderingMode() (as well as constructor-supplied renderingMode: 'bypass' | 'off') now apply immediately upon renderer construction and persist across HRIR initialization.
  • Clean promise rejection handling (#146, #150): Load and decode failures in BufferList, FOARenderer, and HOARenderer now reject the returned promise cleanly without throwing uncaught exceptions or leaking duplicate unhandledrejection events from decodeAudioData().
  • Correctness fixes (#143, #144): Fixed destination indices and sign mapping in HOARotator.prototype.getRotationMatrix3(), and renamed Omnitone.splitBufferbyChannel to Omnitone.splitBufferByChannel (fixing an internal bufflerList reference error in Utils.mergeBufferListByChannel).
  • Modernized toolchain (#148, #149): Upgraded build, lint, and test infrastructure to Node >=20, Rollup 4, @web/test-runner (headless Chrome), ESLint 8, and GitHub Actions CI.
  • Updated documentation (#155): Added What's New in 2.0, bundler usage examples, and updated links in README.md.