0.5.1: Update Pulsewave
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) andDRM
(drum set settings). WhenELC
equals to16
, 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), andEXT_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)
andkorgUnpack(Uint8Array)
. - ACE slots can now be released one by one via
releaseAce(cc)
, or entirely wiped viaresetAce()
. - Supportedpart carrier and modulator level writes of the unknown DX7+ synth.
Emulated screens
- PSR rhythm display with lyrics. (@GFHK-SDGM)
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.