User:Contribution/Chanofreq Project

Chanofreq Project

Objective: To develop a standardized file format that enables precise tuning of each note on every MIDI channel to a specific frequency, utilizing a minimalistic data structure.

File Extension: .cnf

Format Name: Chanofreq

Etymology: Derived from Channel, Note, and Frequency.

File Structure

A Chanofreq file is a text file containing commands formatted as follows:

channel X note Y frequency Z
  • X: An integer ≥ 1 (representing the MIDI channel).
  • Y: An integer ≥ 0 (representing the note number).
  • Z: A 64-bit floating-point number > 0 (representing the frequency in Hertz).

Commands can be separated by either a semicolon or a newline.

Examples:

channel X1 note Y1 frequency Z1; channel X2 note Y2 frequency Z2
channel X3 note Y3 frequency Z3

Syntax

To specify tuning for MIDI-controlled instruments, use:

channel X note Y frequency Z

For instruments with internal notes not controlled via MIDI (like those with built-in sequencers or keyboards), use:

internal note Y frequency Z

To set a fallback frequency for any unspecified note Y across all channels and internal settings:

default note Y frequency Z

Comments:

/*Inline comment*/

/*Multiline
comment*/

Behavior on Loading

When a Chanofreq file is loaded, all notes are initially set to an inactive state. As the file is processed, each channel and internal command activates the corresponding note and assigns it a specified frequency. If a command specifies a frequency for a note that is already active, the note's frequency is updated to the new value. The same process applies to any default settings specified in the file. Once the file has been fully processed, any notes that remain unspecified are set to the default frequency, if one is provided. If no default frequency is defined, the unspecified notes remain inactive.

Planned Projects

  1. Web Interface: Create an online tool for generating .cnf files easily.
  2. Virtual Synthesizer: Develop a basic virtual synthesizer to serve as a reference implementation for developers.
  3. Presentation Video: Produce a compelling video introducing the .cnf format, featuring a demonstration of the synthesizer, designed to attract and convince developers and users of its potential.
  4. Collaboration with Oddsound: Engage with Oddsound to integrate the .cnf format into their MTS-ESP Mini and MTS-ESP Master plugins.
  5. Update Xen Wiki: Add a "Multi-Channel Tuning Ability" column to the List of Microtonal Software Plugins, giving a green highlight to developers who properly implement the .cnf format or MTS-ESP Multi-Channel.
  6. Advocacy: Promote the adoption of the .cnf format and MTS-ESP Multi-Channel among tuning-friendly companies such as these ones: https://oddsound.com/usingmtsesp.php