Skip to content

Releases: ltgcgo/octavia

0.5.2 pre 3: Cute Night

01 Sep 20:23
146e35c
Compare
Choose a tag to compare
Pre-release

Octavia 0.5.2 pre 3

This release is available on GitHub and Codeberg. Also available on Deno Modules and JSR!

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_.

Documentation is slowly being done.

Known defects

  • (low) Held notes in the line style in Cambiare don't style properly if with pitch bend applied. #44

Postponed features

  • Baseline MIDI routing (postponed to 0.6)

Additions

Octavia

  • Added support to SC display type and SC peak hold type switch SysEx.
  • Added mode-specific voice absent error codes. Could be used with voice name maps when too lazy to come up with voice IDs.
  • Added cc22 and cc82 to the list of accepted CCs.
  • Added support of SC-8850 screen dump SysEx. Thanks @ChuChu_DX7@youtube.com
  • Voices now also have support levels, specified with LVL in bank files and read with level in code.
  • Added dedicated kanas to replace combo kanas for PLG-SG lyrics support.
  • Added support for voice element count.
  • Added fast parallel async loading for voice mappings.
  • Added priority support for bank loading, allowing fast async bank loading without concerns on race condition.
  • Added support of Bank A/G selection in X5 extended multi setup. Thanks @JayB1988
  • Expanded the program buffer and added channel voice primitives.
  • Added generation of offset lookup tables on load for optimization.
  • Added a unified method for pushing voice primitives.
  • Added subDb support for part voice primitives.
  • Added getChPrimitive.
  • Added reserved slots for default unset MSB and default unset LSB.

Standard visualizers

  • Supported MU channel switching in Octavia QY.
  • Added Octavia SC-8850. Thanks @MJG0117, @SSQMinky, @MasteredRealm, @GFHK-SDGM, @Thorndust@discord.com, @yasuda256@youtube.com, @ChuChu_DX7@youtube.com, @belka-sempai, @silverflash9261@discord.com
  • Added bitmap display support to Octavia SC-8850.
  • Added custom frame time support to Cambiare, allowing rendering in arbitrary frame rates. Suggested by @DearHoney_1996@youtube.com
  • Added support to all 8 SC strength metre display types and all 4 SC peak hold types in Octavia SC.
  • Added a keep value pool in Octavia SC for the lingered peak to match the references.
  • Added four overridden system reset prompts in Octavia SC for GM, GS, XG and GM2.
  • Added strength pixels when bars are set to hidden in Octavia SC.
  • Added support for SC display types and SC peak hold types in Octavia SC-8850.
  • Added practical boot animations to Octavia SC, Octavia NS5R and Octavia SC-8850.
  • Added 6 new styles of dashboard-inspired panpot styles in Octavia Cambiare.
  • Added 3 new styles of control knob-inspired panpot styles in Octavia Cambiare. Thanks @JayB1988
  • Added experimental support for colour schemes in Cambiare.
  • Added a meta event garbage collector in Octavia Cambiare.
  • Added letter display in non-GS modes for SC-8850.
  • Added a new pixel correction profile for Chromium browsers.

Fixes

Octavia

  • Fixed a voice fetch bug introduced with subDb.
  • Fixed bugs not considering sc the same as gs under certain situations.
  • Fixed bugs surrounding getChBm and getVoxBm in shared bitmap fetching methods.
  • Fixed bank 0 overrides with LSB bank selection in shared bitmap fetching methods.
  • Fixed a bug in EG NRPN CC redirection caused by incorrect maps.
  • Fixed a long-standing KORG drum mapping bug caused by incorrect mapping. Thanks @JayB1988
  • Corrected the drum NRPN lookup table.

Standard visualizers

  • Fixed a bug in Octavia SC when peak hold type is set to 0.
  • Moved EFX and bank indicator in Octavia SC-8850 with hardware references. Thanks @Thorndust@discord.com and @MasteredRealm
  • Fixed a bug in peak hold type 3 in Octavia SC.
  • Let device resets clear the screen dump state in Octavia SC-8850.
  • Fixed a bug where unused parts in QY are unable to get highlighted.
  • Fixed a bug in counting maximum polyphony with element count in Cambiare.
  • Shifted the lines up one pixel in Cambiare.
  • Fixed draw calls in Cambiare to match the line position shifts.
  • Fixed mispositioned clearRect calls in Cambiare.
  • Pan value 0 in SC now shows as L63 instead. Thanks @ValleyBell

Changes

Octavia

  • Forced KORG KROSS 2 voices to be in KROSS 2 mode.
  • The default MSB for KORG Trinity, Yamaha S90 ES and Yamaha Motif ES has been set to 0, referring to regular GM voices. Thanks @JayB1988
  • The default MSB for KORG KROSS 2 has been set to 121, referring to regular GM2 voices. Thanks @JayB1988
  • XGworks port selection will now be logged under debug mode.
  • ACE (active custom effect) now operates on a per-part basis.
  • (N)RPN data commit states are now per-part. Fixes #43.
  • getVel switched to bitwise operations for optimization.
  • Bank selection range has been expanded from 7 bits to 8 bits.
  • Suppress voice changes until program change, meaning that cc0 and cc32 alone no longer cause voice changes. Thanks @JayB1988
  • Commit cc0 and cc32 to program buffer on program primitive change.
  • Migrated SysEx voice writes to voice buffers.
  • cc0 1~55 now select Bank G in 05R/W and X5D(R) mode.
  • Mirrored the VL internal bank to VL preset bank 1.

Standard visualizers

  • Octavia SC-8850 will refer to capital voice bitmaps with XG plug-in voices, GS voices and SD voices.
  • Aligned elements in SC-8850 according to the reference images in manuals.
  • The lingered peak value pool in Octavia SC now uses unsigned 16-bit values instead of unsigned 8-bit values for a higher precision.
  • Tweaked pixel blurring and peak value falling parameters in Octavia SC to better match the references.
  • Channel indexes in Octavia SC are no longer forced to be 2-digits.
  • Octavia SC now uses ± when key shift is at 0, with spaces for padding.
  • Revamped the generic bitmap loading flow.
  • Switched from forEach to fill for buffer initialization in Octavia MU and Octavia SC.
  • Switched from the sharp symbol to the normal hash symbol in PRG# in Octavia MU, until a similar glyph could be found.
  • Expanded the Octavia SC-8850 canvas to include some labels without changing the 808 by 328 resolution.
  • Changed the label colours in Octavia SC-8850.
  • Skipped metre rendering for unused parts in QY.
  • Manual optimization done in QY resulting in a 54% performance improvement.
  • Optimized Octavia Cambiare by 35% via writing texts raw.
  • The separator near C~4 (the middle C) is now highlighted in Cambiare.
  • A slightly more optimized area clearing flow in SC-8850.
  • Raised the canvas text position by one pixel in the pixel correction profile for macOS.
  • Temporarily disabled the VL breath noise indicator in Cambiare.

Development related

  • Added deno.json for JSR. The file will bork attempts of integrating into the Node.js ecosystem.
  • Octavia will now also be published to JSR, aside from Deno Modules.
  • File names for XG plug-in voices have been collapsed.
  • Added an experimental Standard MIDI File disassembler. Will be rewritten from scratch later.

Miscellaneous

Version credits

@JayB1988, @MJG0117, @SSQMinky, @MasteredRealm, @GFHK-SDGM, @ValleyBell, @Thorndust@discord.com, @yasuda256@youtube.com, @ChuChu_DX7@youtube.com, @DearHoney_1996@youtube.com, @belka-sempai, @silverflash9261@discord.com

0.5.2 pre 2: Cute Night

25 Apr 21:16
f4399b2
Compare
Choose a tag to compare

Octavia 0.5.2 pre 2

The Deno Modules version is broken. Do not use it.

Warning! Truth inside! Cute Night Sky? Polak is cute!

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_.

Documentation is slowly being done.

Changes

Octavia

  • Removed support for KORG KROSS 2 BMT1 RxCh toggle bit as it induces unexpected behaviour. Thanks @JayB1988
  • drumMsb is removed entirely, and sections requiring it have all been rewritten.

Fixes

Octavia

  • In XG, GS, MT-32, Motif ES and S90 ES mode, only coarse tune and fine tune RPN commits emit pitch change events. Thanks @ValleyBell, @JayB1988
  • Drum first write debug messages are now fixed.

Version credits

@JayB1988, @ValleyBell

0.5.2 pre 1: Cute Night

22 Apr 20:34
ab878ae
Compare
Choose a tag to compare
Pre-release

Octavia 0.5.2 pre 1

Also available on Deno Modules!

Warning! Truth inside! Cute Night Sky? Polak is cute!

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_.

Documentation is slowly being done.

Known defects

  • (low) Held notes in the line style in Cambiare don't style properly if with pitch bend applied. #44
  • (medium) The RPN/NRPN data commit state isn't set per-part, but rather globally. #43

Postponed features

  • Baseline MIDI routing (postponed to 0.6)

Additions

Octavia

  • Reserved slots for PSR ACMP (accompaniment) controls.
  • Reserved cc80, cc81 and cc83 for KORG KROSS 2.
  • Supported MU1000 Native channel switching, range set and the custom start port set extension. #39
  • Added portrange and portstart events.
  • Dry level (cc128) is now an ACE candidate.
  • Added support for KORG KROSS 2 PCG bank file.
  • Supported Yamaha S90 ES and Motif ES EFX.
  • Added per-port and per-part mode support.
  • Supported KORG KROSS 2 BMT1 dump SysEx. Thanks @JayB1988 for reversing the BMT1 registers!
  • Added GS, SC device/level targets.
  • Supported same-mode-only part dump protection.
  • Supported Yamaha DOC (Disk Orchestra Collection).
  • Added basic support for Yamaha QY10 native and Yamaha QY20 native.
  • Channel receive redirections to unused parts now copy part setup data to the unused part.
  • Added drumFirstWrite to XG for on-demand part setup copying under MU.
  • Added banklevel event for certain SysEx instructions.

Standard visualizers

  • Added elements to make Octavia MU look more like a real MU screen.
  • Supported channel switch events in Octavia SC, NS5R, PSR and Cambiare.
  • Added FPS counter to Cambiare.
  • VL monitor in Cambiare now also shows modulation/breath noise.

Changes

Octavia

  • Setting cc0 to 56 now also triggers X5 (05R/W and X5D) detection.
  • The GS mode got split into GS and SC modes. The SC mode is an alias of GS, but with channel conquering (automatic channel allocation) enabled, an isolated detection target and an isolated subMsb/subLsb.
  • XG part type and part setup data copy now emits voice events.
  • Removed the global subMsb and subLsb, and added the mode-specific subDb.

Standard visualizers

  • Repositioned the MSB/LSB bank status in Octavia MU.
  • Adjusted the dash length of the held line-styled notes in Octavia Cambiare.
  • SVG elements in Octavia Cambiare are now all direct canvas draw calls.
  • Note style in Cambiare now defaults to "comb".
  • The demo waving effect in Octavia MU got sped up.
  • Octavia NS5R now can display voice names with at most 12 characters.
  • Right-clicking on part number in Octavia Cambiare now toggles its visibility.
  • Changing XG (MU), GS and SC device targets/levels now also forces a refresh.

Fixes

Octavia

  • Fixed bank selection issues with KORG KROSS 2.
  • Drum type channels now gets announced whenever possible.
  • Pitch bend events now gets (more) properly announced (than before).
  • Pitch bend sensitivity, fine tune and coarse tune RPN commits now also trigger pitch events.
  • Fixed a loading bug in MT-32 device timbre write.
  • Revised unused S90 ES/Motif ES part detection.
  • GS display page -1 now disables bitmap. Thanks @JOELwindows7 for spotting the bug!

Standard visualizers

  • Extended displays in Cambiare now gets refreshed correctly.
  • PC and DR in Octavia MU now shows the correct bitmaps.
  • Removed an unnecessary meta event scrolling call in Cambiare.
  • Corrected position of CC send and panning in Cambiare.
  • Disabling GS bitmap display no longer causes Octavia QY to flicker.

Version credits

@JayB1988, @GFHK-SDGM, @JOELwindows7, @now-its-dark, @ValleyBell, @MJG0117, VideoJames

0.5.1: Update Pulsewave

15 Feb 17:19
Compare
Choose a tag to compare

Octavia 0.5.1

Also available on Deno Modules!

Warning! Truth inside! Polak is cute!

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_.

Documentation is slowly being done.

Known defects

  • (low) Cambiare does not provide legacy support in this version, and it may never due to technical difficulties.
  • (low) Held notes in the line style in Cambiare don't style properly if with pitch bend applied.

Postponed features

  • Baseline MIDI routing (postponed to 0.6)

Additions

Octavia

  • NS5R part setup now correctly sets part types.
  • Two more valid fields in bank TSV files: ELC (element count) and DRM (drum set settings). When ELC equals to 16, the voice is considered a drum kit.
  • PLG presets are now defined in the bank section.
  • MSB 128 is now used as the non-fallbeck MSB 0.
  • Added effect dump section in NS5R multi dump.
  • Supported the dump SysEx of an unknown DX7+ synth.
  • Added support for channel reset of an unknown DX7+ synth.
  • Added support for channel dump of an unknown DX7+ synth.
  • Supported a global handler of immediate notes.
  • Added support for GM2 EFX (reverb, chorus).
  • Added support for SD EFX (reverb, chorus)
  • Added support for SD MFX.
  • Added customizable KORG X5 detection target. Defaults to X5D(R).
  • A new internal CC range (129~157), occupied by PLG-VL and PLG-DX.
  • Supported VL part control source.
  • Supported VL part and system breath modes.
  • Supported DX part carrier and modulator level writes.
  • Breath (cc2), some internal VL and internal DX CCs are now valid ACE candidates.
  • Three part info extensions: EXT_NONE (default), EXT_VL (Yamaha VL/PVL virtual acoustic synthesis), and EXT_DX (Yamaha DX FM).
  • XG plug-in part assign can now enable part info extensions for VL and DX.
  • cc0 messages can now change part info extensions.
  • Two utility methods for KORG dump SysEx processing: korgPack(Uint8Array) and korgUnpack(Uint8Array).
  • ACE slots can now be released one by one via releaseAce(cc), or entirely wiped via resetAce().
  • Supportedpart carrier and modulator level writes of the unknown DX7+ synth.

Emulated screens

Cambiare

  • Added a dedicated canvas for extension displays for voices.
  • A new extension display: primitive VL monitor.
  • A new extension display: DX FM level monitor.

Changes

Octavia

  • Debug messages for XG plug-in part assigns are now slightly more concise.
  • MSB 80, 81, 82 and 83 no longer causes channel types to revert to melodic in NS5R mode.
  • Infinite loops during voice fetches are no longer possible. Unloaded will be returned when a voice cannot be returned.
  • Disabled AI2 EFX logging.
  • Default reverb and chorus types now changed to "GM Hall Large" and "GM Chorus 3" under auto and GM2 mode.
  • Default reverb and chorus types now changed to "SD SRV Hall" and "SD Chorus" under SD mode.

Emulated screens

  • NS5R param descriptions now repaints on mode changes.
  • PSR no longer notifies mode resets.

Cambiare

  • Cambiare now uses the global handler of immediate notes instead, reducing code complexity.
  • Current bar delimiter is now hidden in live mode.

Fixes

Octavia

  • MSB values of Yamaha PLG-DR and PLG-PC are no longer considered melodic.
  • MT-32 timbre writes now has voice names properly written.
  • NS5R part setups now write fallback cc0 to 128, ensuring proper compatibility with bank Y.
  • KORG X5 detection now follows the custom X5 detection target.

Emulated screens

  • Most elements in the emulated NS5R screen no longer gets affected by the "true mode" toggle.
  • MU now shows LSB in Yamaha PLG preset banks.
  • PSR now renders immediate notes properly.

Development related

  • Added a standalone version of Babel v7.
  • Windows XP transpilation is now handled automatically via shx babel using Babel v7.

Version credits

@GFHK-SDGM, @JayB1988, @ValleyBell, @now-its-dark

0.5: Update Bountiful

29 Oct 14:55
Compare
Choose a tag to compare

Octavia 0.5

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_.

Documentation is slowly being done.

Known defects

  • (low) Cambiare does not provide legacy support in this version, and it may never due to technical difficulties.
  • (low) Held notes in the line style in Cambiare don't style properly if with pitch bend applied.

Postponed features

  • Baseline MIDI routing (postponed to 0.6)

Cambiare-related changes are not included below due to being newly introducted. Please refer to the changelogs of previous versions.

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 and more).
  • 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.
  • 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 experimentally supported.
  • Direct Korg AG-10 support is removed, as 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.
  • Octavia SC now uses a new patched text renderer for lengthy letter displays. (thanks MJG0117)
  • RPN registers are now tracked for write states.

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 or 3).
  • Dry level now allocates a separate internal CC register (cc128).
  • Meta events are now commit-based.
  • Anything related to channel voice changes will now emit voice events.
  • Octavia SC and Octavia NS5R now employ a lazy pixel-blurring technique.
  • initOnReset is now enabled in preparation for full real-time event support.
  • Letter display is now exempt from real-time resets.
  • Letter display no longer pads input to various lengths.
  • OctaviaDevice.setLetterDisplay() now respects custom show durations.
  • Octavia SC no longer attempts to centre every letter display. (thanks MJG0117)
  • If the 0x0000 RPN register (pitch bend range/sensitivity) hasn't been written yet, it will return 12 in MT-32 mode. (thanks @ValleyBell)

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)
  • Drum NRPN now resets to correct default values.
  • Octavia now correctly handles drum MSB resets when fed with real-time resets.
  • GS Frame Draw SysEx frame addresses are now corrected. (thanks MJG0117)
  • When GS Part Setup is set to 0x10, the respective part will be disabled. (thanks @ValleyBell)
  • The receive tree building process will now prevent OOB access.
  • Mode resets should now also reset channel mono/poly states. (thanks @JayB1988)
  • LSB in XG PLG preset section now works correctly.
  • Voices under the XG PLG preset section now return the right two-letter category.

Development related

  • snowy is now a dependency for legacy builds related to MIDI I/O.
  • Channel routing maps can now be retrieved via OctaviaDevice.getChSource().
  • OctaviaDevice.getLetter() now also returns LetterDisplayDetails.set, indicating the timestamp of when the current letter display got written.

Version credits

If you have contributed to this release but didn't get credited here, please let us know to get credited properly!

  • JayB (@JayB1988) for feature suggestions, bug reporting, providing references and critical software, while also testing Octavia.
  • ValleyBell (@ValleyBell) and now_its_dark (@now-its-dark) for providing references, testing and reporting bugs in Octavia.
  • GFHK-SDGM (@GFHK-SDGM), dj.tuBIG/MaliceX, AWE_asikwus and MJG0117 for extensive software testing and bug reporting.
  • askcompu (@ask-compu) for feature suggestions and bug reporting.
  • redacted for freeing part of Octavia's development out of a certain Discord server under toxic moderation.

0.5 RC 4

28 Oct 17:53
Compare
Choose a tag to compare

Octavia 0.5 Release Candidate 4

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 fourth release candidate of version 0.5. Previous version.

If without further problems, this release is expected to be the version 0.5 release.

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_.

Known defects

  • (low) Cambiare does not provide legacy support in this version.
  • (low) Held notes in the line style in Cambiare don't style properly if with pitch bend applied.

Postponed features

  • Baseline MIDI routing (postponed to 0.6)

Additions

  • Added cc14, cc15, cc20 and cc21 to ACE candidates because of PLG-150VL.

Changes

  • Pitch bend transition time in Cambiare has been shortened from 50ms to 25ms.

Fixes

  • Text elements of Cambiare in regular font weight now can get rendered properly on macOS, once the correct pixel correction profile is chosen. #26 (reported by @JayB1988)
  • LSB in XG PLG preset section now works correctly.
  • Voices under the XG PLG preset section now return the right two-letter category.

Version credits

0.5 RC 3

22 Oct 18:58
Compare
Choose a tag to compare

Octavia 0.5 Release Candidate 3

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 third release candidate of version 0.5. Previous version.

If without further problems, this version will become the final Octavia 0.5 release.

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_.

Known defects

  • (low) Cambiare does not provide legacy support in this version.
  • (low) Held notes in the line style in Cambiare don't style properly if with pitch bend applied.

Postponed features

  • Baseline MIDI routing (postponed to 0.6)

Fixes

  • Mode resets should now also reset channel mono/poly states. (reported by @JayB1988)

Version credits

0.5 RC 2

22 Oct 18:52
Compare
Choose a tag to compare
0.5 RC 2 Pre-release
Pre-release

Octavia 0.5 Release Candidate 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 release candidate of version 0.5. Previous version.

If without further problems, this version will become the final Octavia 0.5 release.

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_.

Known defects

  • (low) Cambiare does not provide legacy support in this version.
  • (low) Held notes in the line style in Cambiare don't style properly if with pitch bend applied.

Postponed features

  • Baseline MIDI routing (postponed to 0.6)

Fixes

  • The receive tree building process will now prevent OOB access.

0.5 RC 1

21 Oct 13:44
Compare
Choose a tag to compare

Octavia 0.5 Release Candidate 1

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 first release candidate of version 0.5. Previous version.

If without further problems, this version will become the final Octavia 0.5 release.

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_.

Known defects

  • (low) Cambiare does not provide legacy support in this version.
  • (low) Held notes in the line style in Cambiare don't style properly if with pitch bend applied.

Postponed features

  • Baseline MIDI routing (postponed to 0.6)

Additions

  • RPN registers are now tracked for write states.
  • The line note style in Cambiare. (thanks @ask-compu)

Changes

  • If the 0x0000 RPN register (pitch bend range/sensitivity) hasn't been written yet, it will return 12 in MT-32 mode. (reported by @ValleyBell)
  • Smooth sliding in Cambiare is disabled when the note style is set to line.

Fixes

  • Immediate notes in Cambiare now show up in their correct ports.
  • When GS Part Setup is set to 0x10, the respective part will be disabled. (reported by @ValleyBell)
  • In Cambiare, Firefox-specific pixel correction is applied to the notes in line style.

Version credits

If you have contributed to this release but didn't get credited here, please let us know to get credited properly!

0.5 pre-release 3

26 Sep 16:40
Compare
Choose a tag to compare
0.5 pre-release 3 Pre-release
Pre-release

Octavia 0.5 pre-release 3

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 third 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_.

Known defects

  • (high) Pitch bend range for MT-32 defaults to 12, instead of 2. #23
  • (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

  • Several new features in Cambiare.
  • Octavia SC now uses a new patched text renderer for lengthy letter displays. (reported by: MJG0117)

Changes

  • initOnReset is now re-enabled in preparation for full real-time event support.
  • Letter display is now exempt from real-time resets.
  • Letter display no longer pads input to various lengths.
  • OctaviaDevice.setLetterDisplay() now custom show durations.
  • Octavia SC no longer attempts to centre every letter display. (reported by: MJG0117)
  • Cambiare now accepts the runtime/system as a time source when receiving real-time events. (e.g. line in, line out)
  • Demos in Cambiare are now mutually exclusive with line in.

Fixes

  • Octavia now correctly handles drum MSB resets when fed with real-time resets.
  • GS Frame Draw SysEx frame addresses are now corrected. (reported by: MJG0117)

Development related

  • OctaviaDevice.getLetter() now also returns LetterDisplayDetails.set, indicating the timestamp of when the current letter display got written.

Version credits

If you have contributed to this release but didn't get credited here, please let us know to get credited properly!