v0.0.3

Released on March 9, 2020

Downloads

No downloads available.

Changes

Added

  • More test cases for File
  • tests for Table<T>
  • misc/genstep.py, similar to gensinc.py, generates bandlimited step sets for Osc
  • implementation for WaveOsc
  • NoiseGen, buffered version of NoiseChannel
  • Envelope, moved code from EnvChannel here (will replace EnvChannel)
  • Sweep class, replaces SweepPulseChannel
  • HardwareFile struct (replaces ChannelFile)

Changed

  • Fix exception being thrown when attempting to insert into table of size one less than maximum
  • Rewrote Osc class. Subclasses must edit the delta buffer manually instead of using deltaSet.
  • Osc no longer uses sinc sets. It uses bandlimited steps instead, similiar to blargg's http://www.slack.net/~ant/bl-synth/11.implementation.html. Osc::generate uses floats for samples instead of int16_t. Samples range from -1.0-1.0, exceeding both limits due to overshoot (so volume will need to be adjusted or clipping will occur).
  • Mixer no longer emulates terminal volume/panning (tracker doesn't use it)
  • Mixer works with sample buffers as opposed to individual samples from each channel
  • Length counters are no longer emulated by the Synth
  • Mixer and Sequencer were moved into Synth, as only the synth used these internally.

Removed

  • Osc::deltaSet as only WaveOsc needed this method
  • Osc::setMute and Osc::muted, replaced by Osc::disable and Osc::disabled
  • misc/gensinc.py no longer needed, replaced by genstep.py
  • Channel, EnvChannel, PulseChannel, SweepPulseChannel, WaveChannel, NoiseChannel, ChannelFile, Mixer and Sequencer classes