Skip to content

Releases: Woyten/tune

MOSes, better automatic layouts and color schemas

11 Jul 11:08
Compare
Choose a tag to compare
  • New: Add pergen::Mos for MOS analysis
  • Change: EqualTemperament is now IsomorphicLayout
  • Change: PrototypeTemperament is now Genchain
  • Improvement: Add Genchain::Tetracot7 and Genchain::Hanson7
  • Improvement: Better implementation of the IsomorphicLayout search s.t. more and better matching layouts are returned
  • Improvement: Better color schema API with support for multi-cyclic MOSes using IsomorphicLayout::get_layers
  • Improvement: Retrieve MOS scale name via IsomorphicLayout::get_scale_name
  • Change: layout::IsomorphicKeyboard has been merged into pergen::Mos
  • Deletion: TemperamentFinder has been removed
    • Use IsomorphicLayout::find_by_{edo, step_size} instead
  • Deletion PrototypeTemperament::Porcupine7 has been removed
    • Use Genchain::Tetracot7 instead

More genchain layouts, MIDI autoconnect

11 Jul 11:37
Compare
Choose a tag to compare
Pre-release
  • Improvement: The layout search has been improved s.t. more and better matching layouts are returned
  • Improvement: Add Tetracot[7] and Hanson[7] layout
  • Improvement: tune mos find now communicates whether the given generator is bright or dark
  • Improvement: tune-cli will now wait for your MIDI-input device to come online and is able to recover from a temporary connection outage
  • Deletion: tune est no longer prints out matching temperaments. Finding temperaments is not a feature that tune or tune-cli is planned to support in the future as it is heavily data-driven and there are plenty of alternatives out there.

Lumatone plug'n'play, better isomorphic layouts, MIDI autoconnect

11 Jul 12:46
Compare
Choose a tag to compare
  • New: Lumatone plug'n'play
    • Sync the currently active layout to the Lumatone using the microwave luma subcommand
    • This will reconfigure all keys of the Lumatone to use the correct color and to emit the correct MIDI event
  • New: Add keyboard settings mode
    • Press Alt+K to enter the keyboard settings mode
    • Press Alt+K again to change the on-screen keyboard mode
    • Press Alt+S to browse through the different MOS scales (*)
    • Press Alt+L to change the layout (step sizes) of the isomorphic keyboard while keeping the color schema of the selected MOS (*)
    • Press Alt+C to change the compression of the layout for better ergonomics (*)
    • Press Alt+T to change the tilt of the isomorphic keyboard
    • Press Alt+I to change the inclination of the isomorphic keyboard
    • (*) This will be synced to the Lumatone
  • Improvement: The layout search has been improved s.t. more and better matching layouts are returned
  • Improvement: Add Tetracot[7] and Hanson[7] layout
  • Improvement: Better coloring of multi-cyclic EDOs
  • Improvement: Add color_palette to the profile to customize the automatic color schemas
  • Improvement: Add globals section to the profile to allow for global oscillators
  • Improvement: Add "Retro Square" as a demo patch for a global oscillator
  • Improvement: microwave will now wait for your MIDI-input device to come online and is able to recover from a temporary connection outage
  • Change: Rename waveform_{templates, envelopes} of the profile to templates and envelopes
  • Deletion: Remove main_templates from the profile. They had no good use case, use globals instead.

Support contexts with lifetime bounds

11 Jul 12:11
Compare
Choose a tag to compare
Pre-release

Another redesign was necessary to enable the usage of references in a generic context.

Changes:

  • Automation is replaced by AutomatedValue
  • AutomationContext is replaced by QueryInfo
  • AutomatableValue is replaced by Automatable
  • AutomatedValue is replaced by Automated
  • AutomationSpec is replaced by AutomatableParam
  • creator::Creator is replaced by automation::AutomationFactory
    • Example usages:
      • factory.automate(automatable).into_automation(automation_fn)
      • factory.automate(automatable).into_stage(stage_fn)
    • To access the former render_window_secs variable, inject RenderWindowSecs as an Automatable instead
  • AutomatedValue (former Automation) and Stage are now parameterized over Q: QueryInfo
  • AutomationFactory (former Creator) is now parameterized over C: CreationInfo

Update dependencies

11 Jul 12:02
Compare
Choose a tag to compare
Update dependencies Pre-release
Pre-release
  • Upgrade oxisynth to 0.0.5
  • Upgrade tune to 0.35.0

More temperament layouts, automatic color schemas

04 Dec 17:50
Compare
Choose a tag to compare
  • Change: Complete rewrite of temperament::EqualTemperament, moved to layout::EqualTemperament
    • New: Add EqualTemperament::get_colors for auto-generated color schemas
    • Improvement: Add EqualTemperament::get_keyboard to obtain an isomorphic keyboard layout
  • Change: Merge temperament::{TemperamentType, TemperamentPreference} into a single type layout::PrototypeTemperament
    • Improvement: Add PrototypeTemperament::Mavila9 and PrototypeTemperament::Porcupine8
    • Improvement: TemperamentFinder::{by_edo, by_step_size} now returns a list of matching temperaments
  • Change: Move key::Keyboard to layout::IsomorphicKeyboard
    • Change: IsomorphicKeyboard now returns a scale degree instead of a PianoKey
  • Change: Move all types of the comma package to temperament
  • Improvement: Add Val::pick_alternative to select the second-best prime representation ("wart")

More temperament layouts

04 Dec 18:43
Compare
Choose a tag to compare
Pre-release
  • Improvement: tune est uses a better strategy to identify compatible temperament layouts
  • Improvement: tune est supports Mavila[9] and Porcupine[8] temperaments

Isomorphic keyboard, automatic color schemas

04 Dec 20:16
Compare
Choose a tag to compare
  • New: Render a hexagonal isomorphic keyboard
    • Press Alt+Y to toggle through compatible keyboard layouts
    • Press Alt+K to toggle through different keyboard types
  • New: Find automatic color schemas for compatible keyboard layouts
  • New: Full browser support via WASM and WebGL or WebGPU
  • Improvement: Support Mavila[9] and Porcupine[8] temperaments
  • Change: Rewrite / flatten the profile structure

Improved stage nesting

04 Dec 19:50
Compare
Choose a tag to compare
Pre-release
  • Improvement: Add BufferWriter::{process, read}
  • Improvement / Change: Magnetron::{process, process_nested} is now a combination Magnetron::{prepare, prepare_nested} and BufferWriter::process
  • Improvement / Change: Homogenize BufferWriter::read_x_write_y
    • Add out_level / out_levels argument in every function
    • out_level / out_levels receives an Option<f64> defaulting to an amplitude of 1.0 if absent
  • Improvement: Add StageActivity::Observer

Update dependencies

04 Dec 19:20
Compare
Choose a tag to compare
Update dependencies Pre-release
Pre-release
  • Upgrade tune to 0.34.0