Skip to content

Woyten/tune

Repository files navigation

Explore musical tunings and create synthesizer tuning files for microtonal scales.

Overview

tune is planned to be part of a larger ecosystem for microtonal software in Rust.

Current projects relying on tune are:

  • tune-cli: A command line tool with live-retuning capabilities
  • microwave: A microtonal modular waveform synthesizer
  • fluid-xenth: A microtonal soundfont renderer

Resources

Features

Pitch Conversions

  • Convert between linear and logarithmic ratios
  • Determine the frequency for a given note in a custom tuning system
  • Determine the note for a given frequency in a custom tuning system
  • Find fractional approximations for frequency ratios

Export Scales

  • To Scala (scl and kbm) format
  • As Midi Tuning Standard (MTS) Sysex Messages
    • Single Note Tuning Change (with Bank Select)
    • Scale/Octave Tuning (1-Byte and 2-Byte)

Import Scales

  • From Scala (scl and kbm) format

Live Retuning

  • Enhance the capabilities of synthesizers with limited tuning support
    • Tune channels ahead of time to keep the bandwidth low
    • Tune channels just in time for full pitch freedom
  • Pick the message type that your synth supports
    • Single Note Tuning Change (with Bank Select)
    • Scale/Octave Tuning (1-Byte and 2-Byte)
    • Channel Fine Tuning
    • Pitch Bend

Equal-Step Tunings

  • Find patent vals
  • Find tempered-out commas
  • Isomorphic keyboards / Lumatone
    • Find appropriate layouts (meantone or porcupine)
    • Determine isomorphic step sizes
    • Print generalized note names and accidentals
    • Auto-generate nice-looking keyboard color schemas

MOS Scales

  • Find MOSes for a given generator
  • Find generators for a given MOS

MIDI Messages

  • Create basic MIDI messages
  • Create tuning-related RPN messages
  • Parse basic MIDI messages