Releases: ltgcgo/octavia
0.5 pre-release 1
Octavia 0.5 pre-release 1
Originally released at 20:40 on 1st May 2023 (UTC +0).
Also available on Deno Modules!
Try Octavia out! Play with demos on a modern machine or on a legacy machine.
Join the development discussion on Telegram!
This release is JS-only, with pre-compressed JS files. Use state.mjs
if you only need the processing core, and basic.mjs
if a basis for building new visualizers is needed. If you need to target legacy browsers, choose the files starting with xp_
.
This version is released as the last version before the complete MIDI I/O rewrite for archival purposes. Documentation is slowly being done.
Special thanks to JayB, GFHK-SDGM, ValleyBell, now_its_dark, AWE_asikwus and MJG0117!
Additions
- Octavia now officially supports Windows XP. (Firefox 52 ESR, Chrome 49)
- Effect Send/Variation/EFX support for XG, GS, 05R/W, X5D, NS5R and GMega.
- NS5R letter display and bitmap display support.
- Utility for converting bitmaps to SysEx strings.
- Primitive event support (
note
,cc
,voice
,pitch
). - Channels/parts now has types (melodic, drums, drum set N) assigned to.
- If in XG, 05R/W, X5D or NS5R mode, channels get automatically changed between melodic and drums upon MSB changes.
- Primitive support for Active Custom Effect allocation for writing visualizers. No de-allocation yet.
- Some SysEx commands, like GS EFX Setup and PLG150-VL Part Setup, will allocate ACE slots.
- Drum NRPN support for XG, GS and NS5R.
- Drum NRPN commits to "melodic" and "drums" parts will receive warnings.
- Drum NRPN commits under modes other than XG, GS and NS5R will receive warnings.
Changes
- Letter display SysEx strings now gets processed by the same method (
setLetterDisplay
). - Whether a channel gets considered as a drum channel is no longer solely determined by MSB values.
- Only drum channels with correct source MSB values will get converted to corresponding drum kits upon mode changes.
- Channel conquering are now only enabled if Octavia is in SC-88 or SC-88 Pro mode (GS with default LSB set to
2
or3
). - Dry level now allocates a separate internal CC register (cc128).
Fixes
- Invalid ASCII code points in letter display SysEx strings now show up as spaces with warnings. (thanks AWE_asikwus, ValleyBell and now_its_dark)
Development related
snowy
is now a dependency for legacy builds related to MIDI I/O.
Version credits
If you have contributed to this release but didn't get credited here, please let us know to get credited properly!
- JayB for providing references and critical software, while also testing Octavia.
- ValleyBell and now_its_dark for providing references and testing Octavia.
- GFHK-SDGM, dj.tuBIG/MaliceX, AWE_asikwus and MJG0117 for extensive software testing and bug reporting.
redactedfor freeing part of Octavia's development out of a certain Discord server under toxic moderation.
0.5 pre-release 2
Octavia 0.5 pre-release 2
Also available on Deno Modules!
Try Octavia out! Play with demos on a modern machine or on a legacy machine.
Join the development discussion on Telegram!
This version is the second pre-release of version 0.5. Previous version.
If without further problems, Octavia will begin publishing release candidates.
This release is JS-only, with pre-compressed JS files. Use state.mjs
if you only need the processing core, and basic.mjs
if a basis for building new visualizers is needed. If you need to target legacy browsers, choose the files starting with xp_
.
Too much time was wasted on the now-scrapped iteration of MIDI routing. MIDI routing didn't make it, due to the scrapped iteration being full of bugs and stability issues, and a more viable baseline approach require a rather vast change under the hood, which may or may not introduce severe negative performance impact.
Known defects
- (critical) Certain MIDI files on some versions of Firefox crash the browsers. #22
- (moderate) When setting GS receive channel to
0x10
, receiving for that channel should be disabled. #21 - (moderate) Line mode for Cambiare note displays isn't added yet.
- (low) Cambiare does not provide legacy support in this version.
Postponed features
- Baseline MIDI routing (postponed to 0.6)
Additions
- Optional MSB writes on certain modes can now be disabled.
- Under XG mode, switching between MU100 Native mode and MU Basic mode is now supported.
- Experimental Yamaha S90 ES support, with full voice maps.
- Experimental Yamaha Motif ES support.
- Kawai GMega reverb types are now supported.
- Direct Korg AG-10 support is removed, as it's deemed redundant with Korg X5D and Korg 05R/W support.
- Experimental Roland StudioCanvas SD-90 support, with full voice maps.
- Roland GS EFX toggles are now supported.
- Basic support for Yamaha XG, Roland GS and KORG AI2 audio effects.
- Voice IDs can now be mapped to voice names with up to 24 characters.
- TSV-based
.mdat
files can now be loaded for voice ID to name maps. - Full MU1000 and SC-8850 NRPN support.
- XG Drum Setup SysEx strings are now supported.
- GS Drum Setup SysEx strings are now supported.
- NS5R Drum Setup SysEx strings are now supported.
- Roland MT-32 Temporary Rhythm Setup SysEx strings are now supported.
- Roland MT-32 Device Rhythm Setup SysEx strings are now supported.
- Cambiare now supports note displays in block, comb and piano mode.
- Cambiare beta!
Changes
- Meta events are now commit-based.
- Anything related to channel voice changes will now emit
voice
events. - SC and NS5R now employ a lazy pixel-blurring technique.
Fixes
- Drum NRPN now resets to correct default values.
Development related
- Channel routing maps can now be retrieved via
OctaviaDevice.getChSource()
.
Version credits
If you have contributed to this release but didn't get credited here, please let us know to get credited properly!
- @JayB1988 for feature suggestions, and details on certain aspects of MIDI implementation.
- @GFHK-SDGM and @ask-compu for suggestions, software testing and bug reporting.
- @ValleyBell for indirectly finding implementation bugs.
- MJG0117 and @now-its-dark for software testing and bug reporting.