tune

Make xenharmonic music and create synthesizer tuning files for microtonal scales.

MIT License

Downloads
79.8K
Stars
121
Committers
3
tune - OxiSynth, phase parameter

Published by Woyten about 2 years ago

  • Improvement: microwave is now based on OxiSynth
    • Compilation to more targets is possible
  • Improvement: Add phase parameter to oscillators
  • Bug fix: Mixed-up GUI status updates
tune - Minor improvements

Published by Woyten about 2 years ago

  • Improvement: Add BufferWriter::buffer_len
  • Improvement: Add Spec and AutomatedValue impls for Option<T>
tune - OxiSynth, WASM support

Published by Woyten about 2 years ago

  • Improvement: fluid-xenth is now based on OxiSynth
    • All code is written in Rust
    • Compilation to WASM is possible
  • Change: Several API changes due to the adoption of OxiSynth, mainly:
    • Calling into functions requires &mut Xenth
    • Xenth::write consumes a callback function
tune - Bench marks, bug fixes

Published by Woyten over 2 years ago

  • New: Add bench command for performance testing
  • Change: LF source Wavelength is now WaveformPeriod
  • Change: LF source Property.Velocity is now Velocity
  • Change: LF source Property.Pressure is now Controller[kind=KeyPressure]
  • Change: LF source Control[controller=<cc>] is now Controller[kind=<cc>]
  • Bug fix: Full keyboard AOT live retuning not working due to non-retuned notes being counted and exceeding the limit of 128 notes
  • Bug fix: Non-monotonic scales were sorted when they should not
tune - Fix full keyboard AOT live retuning

Published by Woyten over 2 years ago

  • Bug fix: Full keyboard AOT live retuning not working due to non-retuned notes being counted and exceeding the limit of 128 notes
tune - No functional changes, update upstream dependencies

Published by Woyten over 2 years ago

  • Change: AotXenthControl::set_tuning returns Result<usize, SendCommandResult> instead of Result<usize, SetTuningError<SendCommandResult>>
tune - Improve tuner API

Published by Woyten over 2 years ago

  • Deletion: FullKeyboardDetuning and OctaveBasedDetuning
    • Use ChannelDetuning<G> instead
  • Deletion: SetTuningError
    • Use AotTuner::tuned to test whether setting a tuning was succesful
  • Improvement: Reject Single Note Tuning Change messages only when number of actually retuned notes is larger than 128
tune - New crate: magnetron

Published by Woyten over 2 years ago

  • New: core components of microwave have been extracted to a separate crate.
tune - Colored keyboard, fixed-scale FluidLite without artifacts

Published by Woyten over 2 years ago

  • New: Fixed-scale mode with FluidLite now uses fluid-xenth's AOT tuning model for playback free of artifacts
  • Improvement: --kb2 option now allows for specifying a colored second keyboard
tune - No functional changes, prepare microwave release

Published by Woyten over 2 years ago

tune - Artifact-free AOT tuning model

Published by Woyten over 2 years ago

  • Change: XenthControl has been renamed to JitXenthControl
  • New: Add AotXenthControl for artifact-free playback of fixed-scale tunings
  • New: Add TunableFluid implementing TunableSynth for better composability
tune - Big tuner refactor

Published by Woyten over 2 years ago

  • Change: JitTuner has been renamed to JitTuningModel
  • Change: AotTuner has been renamed to AotTuningModel
  • New: Add TunableSynth abstraction implemented by TunableMidi
  • New: Add JitTuner consuming an instance of TunableSynth for better composability
  • New: Add AotTuner consuming an instance of TunableSynth for better composability
tune - Lumatone support, ANSI keyboard support

Published by Woyten over 2 years ago

  • New: Support the Lumatone and other MIDI controllers with multichannel note output
  • New: Add ANSI keyboard support
  • Improvement: Support MIDI controllers that send NoteOn with velocity 0 instead of NoteOff
  • Improvement: Multi-cyclic keyboard layouts are compressed along the sharp axis
  • Internal: Use clap instead of structopt
tune - Lumatone support, quality-of-life features

Published by Woyten over 2 years ago

  • New: Support the Lumatone and other MIDI controllers with multichannel note output
  • Improvement: Support MIDI controllers that send NoteOn with velocity 0 instead of NoteOff
  • Improvement: Multi-cyclic keyboard layouts are compressed along the sharp axis
  • Improvement: Print step sizes and fret constants in est command
  • Internal: Use clap instead of structopt
tune - Minor changes

Published by Woyten over 2 years ago

  • Improvement: tuner::MidiTarget now accepts an arbitrary channel list
  • Improvement: keyboard::Keyboard::coprime compresses along the sharp axis
tune - Improve graphics drivers support

Published by Woyten almost 3 years ago

  • Improvement: Add experimental GL support
  • Improvement (Bug fix?): Update wgpu from 0.11.0 to 0.11.1 which should fix some driver compatibility regressions
tune - Flexible sample rates

Published by Woyten almost 3 years ago

  • Improvement: The sample rate is now configurable
  • Bug fix: Prevent StreamConfigNotSupported aborts by taking the audio device's preferred sample rate into account
tune - Full pitch freedom and polyphonic pitch bends over MIDI

Published by Woyten almost 3 years ago

This is a huge, feature-rich release!

  • New: Support JIT-based MIDI-out
    • This means any pitch can be played without having to pre-tune the MIDI device
    • It is possible to update/bend a currently sounding note polyphonically
  • Improvement: All tuning message types and control parameters from tune-cli are available
    • realtime / device ID / tuning program / ...
  • Improvement: Both AOT and JIT live retuning can be used for MIDI-out
    • When tuning mode is "Fixed": Use AOT model
    • When tuning mode is "Continuous": Use JIT model
  • Improvement: Display the tuning message type
  • Improvement: Upgrade to Nannou 0.18.0
    • This should result in less non-Rust build dependencies
  • Change: The CLI of microwave and tune-cli have been harmonized
    • The available tuning methods are full, full-rt, octave-1, octave-1-rt, octave-2, octave-2-rt, fine-tuning and pitch-bend
  • Change: The --tun-method parameter is now mandatory if --midi-out is provided
  • Change: To toggle between the tuning modes "Fixed" and "Continuous" use Ctrl+T (instead of Ctrl+C)
tune - More live-retuning features

Published by Woyten almost 3 years ago

  • New: Add support for Scale/Octave Tuning (2-Byte) messages
    • Command-line argument: octave-2 or octave-2-rt
  • Improvement: Add control over Real-Time SysEx flag
    • Example: full vs. full-rt and octave-1 vs octave-1-rt
  • Change: The live subcommand has been updated
    • octave is now octave-1, channel is now fine-tuning
    • The order of the command-line arguments is slightly different
tune - More live-retuning features

Published by Woyten almost 3 years ago

  • New: Add JitMidiTuner and AotMidiTuner
    • Those components have been extracted from tune-cli in order to be reusable
  • Change: Rename ChannelTuner to AotTuner
  • Change: Remove the G parameter from JitTuner
  • Deletion: ChannelMessage::transform and ChannelMessage::distribute have been removed. They were too MIDI-centric and became useless in favor of JitMidiTuner and AotMidiTuner.