Skip to content
/ tune Public

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

License

Notifications You must be signed in to change notification settings

Woyten/tune

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9fb2b55 · Jan 18, 2025
Jan 9, 2025
Aug 23, 2024
Jun 26, 2024
Jul 11, 2024
Jan 18, 2025
Jan 18, 2025
Jan 9, 2025
Jan 18, 2025
May 16, 2024
Nov 9, 2022
Jan 18, 2025
Jul 11, 2024
Jan 10, 2019
Jul 10, 2024
Jul 7, 2024
Jun 15, 2024
Jul 15, 2024
Apr 4, 2024

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 pitch 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 for a glitch free tuning experience
    • 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

MOS Scales and Isomorphic Keyboards

  • Find MOSes for a given generator
  • Find generators for a given MOS
  • Find MOS-based isomorphic keyboard layouts
    • Supported genchains: Meantone, Mavila, Porcupine, Tetracot, Hanson
    • Determine step sizes
    • Generate automatic color schemas
    • Print generalized note names and accidentals

Commas and Temperaments

  • Find patent vals
  • Find tempered-out commas

MIDI Messages

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