Skip to content

0.4: Update Cambiare

Compare
Choose a tag to compare
@PoneyClairDeLune PoneyClairDeLune released this 11 Feb 19:27

Octavia 0.4: Update Cambiare

Also available on Deno Modules!

Try Octavia out! Play with demos.

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.

The middleware library is barely working, so please do not use it in production. Documentation is slowly being done.

Special thanks to JayB, GFHK-SDGM, MJG0117 and ValleyBell!

Additions

  • Basic no-SysEx support for PLG-150AN/DR/DX/PC.
  • cc64 (hold/sustain) is now supported.
  • cc66 (sostenuto) is now supported.
  • Experimental SC-8850 support.
  • MIDI event emitting is now supported, with four new events: note (on, off, aftertouch, held, sostenuto...), pitch, cc, voice.
  • getPitchShift() for retrieving the total affected pitch shift in channels, with RPN values in consideration.
  • Mono-mode (cc126) is now supported.
  • Partial support for MU128 Remote Switch.
  • Support for MT-32 System Setup SysEx.
  • Support for MT-32 System Temporary/Device Patch Write SysEx.
  • Support for MT-32 System Temporary/Device Timbre Write SysEx.
  • Support for MU1000/2000 EPROM Write SysEx. Can be used to extract ROM files from update instructions.
  • Support for NS5R Screen Dump SysEx.
  • Support for PLG-150VL Part Setup SysEx.
  • Support for TG300 Display Bitmap SysEx.
  • Support for TG300 Display Letter SysEx.
  • Support for TG300 Master Setup SysEx.
  • Support for TG300 Part Setup SysEx.
  • Support for X5D Multi-param Change SysEx.
  • XF data in MIDI files are now supported.

Changes

  • A new restriction on NS5R banks is applied: MSB, program or LSB cannot go over 127.
  • cc73 (attack time) and cc72 (release time) now affect the smoothed-out strength values in RootDisplay.
  • customInterpreter now emits byte arrays instead for optimizations.
  • If switched to MT-32 mode, default programs will be initialized.
  • Instead of .slice(), Octavia now calls .subarray() for optimized slice read.
  • Octavia now tries to decode strings in various encodings: ISO-8859-15, Shift-JIS, EUC-JP, UTF-8, UTF-16 and CP1252.
  • Roland SysEx checksum section is rewritten.
  • RootDisplay now correctly processes strength changes in live input.

Fixes

  • korgFilter now correctly overlays 7-on-8 encoding.
  • x5dSendLevel now caps maximum values.

Development related

  • Python is no longer a requirement for Octavia's development. Deno can now be used as a local web server.
  • shx srcMap can now be used to quickly link all necessary files for the demos.

Version Credits

  • JayB for providing references and SysEx dumps of real devices, and software testing.
  • GFHK-SDGM for developing the fake PSR screen and software testing.
  • MJG0117 for actively participating in software testing.
  • ValleyBell for providing basic PLG-150DX and PLG-150AN voice lists.