Skip to content

0.3: Update Cloudfree

Compare
Choose a tag to compare
@PoneyClairDeLune PoneyClairDeLune released this 12 Jan 14:33

Octavia 0.3: Update Cloudfree

Also available on Deno Modules!

Wanna see this in action? Visit our demo!

This release is JS-only, without pre-compressed JS files. Use state.mjs if you only need the processing core, or basic.mjs if a basis for building new visualizers is needed.

Documentation isn't yet available, but should be in 0.4. Middleware isn't available yet.

Special thanks to JayB, GFHK-SDGM, DearHoney and MIDIMan#87xx!

Additions

  • Certain NRPN values get redirected to CC values instead, and will not be stored in NRPN registers.
  • GS and MT-32 SysEx messages will now have their validity checked with checksum.
  • GS Page Turn support.
  • GS EFX support.
  • GS 2-part EQ support.
  • MT-32 Device Patch Write support.
  • MT-32 Device Timbre Write support.
  • NS5R Part Setup support.
  • NS5R Backlight.
  • Full XG 2.0 bank support.
  • Full MU100 specific bank support.
  • XG 5-part EQ support.
  • PLG-100SG bank and SysEx support.
  • PLG-150VL bank support.
  • PLG-150PF bank support.
  • PLG-150AP bank support.
  • Kawai GMega/K11 system SysEx support.
  • Kawai GMega/K11 Part Setup support.
  • Kawai GMega LX system SysEx support.
  • Kawai GMega LX Part Steup support.
  • Full Akai SG SysEx support.
  • Full Casio GZ-50M SysEx support.

Fixes

  • Reverb is now 40 by default, instead of 0.
  • Volume is now 100 by default, instead of 127.
  • Port allocation meta events now work properly when not under GS mode.
  • RPN values are now capped within hardcoded ranges.
  • Bar and beat information now won't get messed up due to time signature changes.

Changes

  • SysEx engine get rewritten from the ground up, with greater flexibility and slightly better performance.
  • CC values are now stored in a mapped register to decrease RAM usage.
  • Octavia now supports a maximum channel of 128.
  • N1R SysEx messages get redirected to NS5R pool.
  • Bank reads are now handled in state.mjs instead.
  • Bank are split into two (immutable/system/base and mutable/user), for easy resets and MT-32 support.
  • Bank reads now follow a descending fashion, when no alternate rule is defined. LSB gets decreased first, and if it's already at 0, while LSB is smaller than 56, MSB will get decreased instead.

More

During the development of Octavia 0.3, I received lots of emotional support from multiple people. Even they didn't directly help in the development of this project, their act is enough to let me push Octavia's development forward, knowing that this project will at least be used by someone.

Below is a list of all people shown acts of kindness and support, sorted alphabetically. Including them is the least I can do for them. If there have, in fact, directly offered help, details will be available next to their names. Thank you, everyone!