User:Contribution/Chanofreq Project: Difference between revisions

From Xenharmonic Wiki
Jump to navigation Jump to search
Contribution (talk | contribs)
Contribution (talk | contribs)
No edit summary
Line 18: Line 18:
  channel X note Y frequency Z
  channel X note Y frequency Z


* '''X:''' An integer ≥ 1 (or 0, which does not control a MIDI channel but instead controls the internal keyboard independent of the plugin, such as the built-in sequencer in ABL3).
* '''X:''' An integer ≥ 1.
* '''Y:''' An integer ≥ 0.
* '''Y:''' An integer ≥ 0.
* '''Z:''' A 64-bit floating-point number > 0.
* '''Z:''' A 64-bit floating-point number > 0.
Line 28: Line 28:
  channel X3 note Y3 frequency Z3
  channel X3 note Y3 frequency Z3


=== Behavior on Loading ===
== Syntax ==
Main
channel X note Y frequency Z
For instruments with internal notes that are not MIDI-controlled (such as built-in sequencer or keyboard), use the following instruction:
internal note Y frequency Z
To assign a fallback frequency to any note Y that remains deactivated after the file is processed, regardless of the MIDI channel or if it is internal:
default note Y frequency Z
Comments
/*Multi-line
 
== Behavior on Loading ==
When the file is loaded, all notes are initially deactivated. Each instruction activates or updates the frequency of a note.  
When the file is loaded, all notes are initially deactivated. Each instruction activates or updates the frequency of a note.  
For instruments with internal notes that are not MIDI-controlled, use the following instruction:
channel 0 note Y frequency Z
Channel 0 also assigns a frequency to any note Y that remains deactivated after the file is processed, regardless of the MIDI channel.


== Planned Projects ==
== Planned Projects ==

Revision as of 23:26, 23 August 2024

Chanofreq Project

Objective: Develop a standardized file format that allows each note on every MIDI channel to be tuned to a specific frequency, using the simplest possible data structure.


File Extension: .cnf

Format Name: Chanofreq

Etymology: Channel + Note + Frequency

File Structure

A Chanofreq file is a straightforward text file with instructions formatted as follows:

channel X note Y frequency Z
  • X: An integer ≥ 1.
  • Y: An integer ≥ 0.
  • Z: A 64-bit floating-point number > 0.

Instructions can be separated either by 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

Main

channel X note Y frequency Z

For instruments with internal notes that are not MIDI-controlled (such as built-in sequencer or keyboard), use the following instruction:

internal note Y frequency Z

To assign a fallback frequency to any note Y that remains deactivated after the file is processed, regardless of the MIDI channel or if it is internal:

default note Y frequency Z

Comments

/*Multi-line

Behavior on Loading

When the file is loaded, all notes are initially deactivated. Each instruction activates or updates the frequency of a note.

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