All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- Demo: Synth track
- Demo: Some sliders to control synth parameters
- Demo: Style (it looked awful until this release)
- Synth: Master volume
- Demo: Nexus UI was replaced with custom elements
- Sequencer: "loopStart" action not working
- Sequencer: "loopEnd" action not working
- Sequencer: Scheduler interval set to 1ms and not changable
- Sequencer: Scheduler keeps running after "stop" action
- Sequencer/Score: Wrong event start times (values copied by ref, not by value)
- Sequencer action "LOOP"
0.8.1 - 2020-10-06
- Rollup config error that led to sourcemaps being generated in the production build
0.8.0 - 2020-10-06
- Advanced audio routing
- Simple delay fx plugin
- An
onChangeDefault()
function that handles common events for plugins - API functions documentation on the webpage
npm run compile
renders the results to the dist/ folder instead of lib/- The non-minified bundles (esm and cjs) are now the default in npm. There's still a minified ES2015 bundle that can be used for embedding intermix into a website via script tag
- Huge interface refactoring
- Circular dependency: index->Sequencer->fileLoader->index
- Source maps for even smaller package size
- CommonJS minified bundle (makes not much sense, see this blog post for details)
0.7.0 - 2020-09-22
- External plugins can be loaded as ES2015 modules at runtime
- File-loader that loads additional files (code, assets) at runtime
- Worker-loader that loads Dedicated Workers inside of other scripts
- Rollup config
- Live-Server for hot reload in dev-mode (didn't work with Webpack)
- Non-minified bundles
- cross-env for OS independent shell variables
npm run doc
generates API doc in markdown format (experimental)
- Switched bundler from Webpack to Rollup
- Packages are bundled to CommonJS and ES2015 modules (former UMD)
npm run compile
builds non-bundled versions of intermix in 'lib/' folder (experimental)- Dev-Demo (
npm run watch
) uses native ES2015 modules instead of browser globals - Package size reduced from 900kB to <200kB
- Typescript declarations
- Sequencer position not saved in store
- Demo and audio assets removed from production build
- UMD package bundle
- Webpack config
- Legacy json API docs
0.6.0 - 2020-08-03
- Plugin Preset Management: All properties defined in the plugins Action Definitions can be saved and restored.
- Action Definitions are added to the plugin state.
- Integration Test for common Action Definitions (action defs that all plugins have by default).
- Plugin ID placeholder renamed from {UID} to <UID> since curly braces have a meaning in OSC semantics
- Sequencer Actions pointer and JUMP_TO_POSITION are now unified in a new position action.
- Webpage - all known bugs fixes and framework (Docusaurus) upgraded.
0.5.0 - 2020-07-01
- New API based on OSC-like messages
- Redux middleware for parsing OSC-like messages
- Custom reducer composition
- Sequencer parts (SeqPart) state is managed in the Redux store
- Demo: HTML Stepsequencer based on NexusUI
- All instrument plugins have a volume action by default
- Abstract class for controller plugins
- Prettier
- ESLint (switched back)
- License switched: Apache License v2.0 -> LGPL v3
- New release plan for shorter dev cycles
- Sequencer refactoring
- Score refactoring (new, memory efficient datastructure)
- SeqPart refactoring
- Runqueue completely rewritten (new datastructure and pointer management)
- New registry architecture (master-registry, item-registries)
- Redux store normalized
- Bower support
- TSLint
- Old HTML Demos
- Old registry
0.4.0 - 2019-12-12
- Webpack
- Typescript
- TSLint
- Redux
- Github CI actions
- Benchmark tests
- Registry that generates Redux action-creators, state and reducers at runtime
- Nearly everything, including ...
- Project Code migrated from Javascript (ES5) to Typescript
- Tests migrated from Jasmine to Jest
- Sequencer: New algorithm for frame animation that runs at least 6 times faster (@120bpm without stall/resume). In reality, speed improvement should be even higher.
- Sequencer: Minor speed optimizations.
- README.md improved.
- CHANGELOG.md improved.
- Old Dispatcher
- SoundWave class
- ESLint
- Travis CI jobs
0.3.0 - 2016-05-27
- Minified build broken.
- Sound: Note values ignored in note events.
- EventBus class with relays for controllers, instruments and fx.
- Distribution Test Suite for testing packages previous to release.
- Stepsequencer demo: adjustable note values for bass track
- CHANGELOG.md
0.2.0 - 2016-05-14
- SoundWave: audio buffer undefined while file is loading.
- SoundWave: multiple files/buffers can be loaded into one SoundWave object.
- Sequencer: sample-accurate pause/resume (experimental).
- SoundWave demo.
- Stepsequencer demo: reset button.
- Project Description in README.md.
0.1.0 - 2016-04-08
- SoundWave class
- Sound class
- Sequencer class
- Part class
- core module
- event module
- schedule-worker module
- main module (entrypoint)
- Sound demo
- Stepsequencer demo