ftom Reference

Convert frequency to a MIDI note number

ftom

Description

ftom converts frequency to MIDI note numbers

Examples

Find the MIDI key number to play the same pitch as an MSP oscillator

Arguments

format [float]

Optional

If a float value is present, the ftom object outputs floating-point values with fractional parts. By default, it outputs whole number values.

Attributes

base [float]

Sets the "base frequency" used when converting frequency values (e.g., A = 440.). The default is 440.

map [atom]

A set of values for a keyboard map in Scala format:

  • Size of map; the pattern repeats every so many keys (example: 12)
  • First MIDI note number to retune (example: 0)
  • Last MIDI note number to retune (example: 127)
  • Middle note where the first entry of the mapping is mapped to (example: 60)
  • Reference note for which frequency is given (example: 69)
  • Frequency for reference note, as a float (example: 440.0)
  • Frequency for reference note, as a float (example: 440.0)
  • Scale degree to consider as formal octave, determines difference in pitch between adjacent mapping patterns (example: 12)
  • Mapping (example: 0 1 2 3 4 5 6 7 8 9 10 11)
Note: to indicate an unmapped key, you can use either an "x" or "-1". At the end of the list, unmapped keys may be left out. For more information about keyboard mappings, visit the Scala documentation.

mapname [symbol]

The name of a valid keyboard map file in Scala format that has been saved in Max's search path will cause ftom to use that mapping. The file extension (.kbm) can be omitted. For more information about keyboard mappings, visit the Scala documentation.

mid [int]

The note number where a Scala scale begins (default 60).

ref [int]

The MIDI note number assigned to the base frequency (default 69).

round [int]

When round is non-zero, ftom outputs the closest whole MIDI note number value for the frequency it receives. Otherwise if in float mode, ftom outputs a number with a fractional part corresponding to the distance between the two closest MIDI note numbers. If ftom is in int output mode, it outputs the MIDI note number at or below the input frequency value. Example: in int mode with other attributes at their default values, 439 would output 69 when round is enabled and 68 when round disabled. 439 is closest to 440 Hz (MIDI note number 69).

scale [atom]

A set of values, given as a list, for a scale described using the Scala format. The first value is the count of notes, followed either by floats defining a value in cents (example: 579.47057) or a ratio of two ints (example: 5/4). For more information, see the Scala documentation.

scalename [symbol]

A valid scale name from the Scala archive , will cause ftom to use the tuning described in that scale for its frequency to MIDI conversion. For this purposes of this attribute, the file extension (.scl) can be omitted.

Common Box Attributes

annotation [symbol]

Sets the text that will be displayed in the Clue window when the user moves the mouse over the object.

background [int] (default: 0)

Adds or removes the object from the patcher's background layer. background 1 adds the object to the background layer, background 0 removes it. Objects in the background layer are shown behind all objects in the default foreground layer.

color [4 floats]

Sets the color for the object box outline.

fontface [int]

Sets the type style used by the object. The options are:

plain
bold
italic
bold italic Possible values:

0 = 'regular'
1 = 'bold'
2 = 'italic'
3 = 'bold italic'

fontname [symbol]

Sets the object's font.

fontsize [float]

Sets the object's font size (in points). Possible values:

'8'
'9'
'10'
'11'
'12'
'13'
'14'
'16'
'18'
'20'
'24'
'30'
'36'
'48'
'64'
'72'

hidden [int] (default: 0)

Toggles whether an object is hidden when the patcher is locked.

hint [symbol]

Sets the text that will be displayed in as a pop-up hint when the user moves the mouse over the object in a locked patcher.

ignoreclick [int] (default: 0)

Toggles whether an object ignores mouse clicks in a locked patcher.

jspainterfile [symbol]

JS Painter File

patching_rect [4 floats] (default: 0. 0. 100. 0.)

Sets the position and size of the object in the patcher window.

position [2 floats]

g/s(set)

Sets the object's x and y position in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its size unchanged.

presentation [int] (default: 0)

Sets whether an object belongs to the patcher's presentation.

presentation_rect [4 floats] (default: 0. 0. 0. 0.)

Sets the x and y position and width and height of the object in the patcher's presentation, leaving its patching position unchanged.

rect [4 floats]

g/s(set)

Sets the x and y position and width and height of the object in both patching and presentation modes (if the object belongs to its patcher's presentation).

size [2 floats]

g/s(set)

Sets the object's width and height in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its position unchanged.

textcolor [4 floats]

Sets the color for the object's text in RGBA format.

textjustification [int]

Sets the justification for the object's text. Possible values:

0 = 'left'
1 = 'center'
2 = 'right'

varname [symbol]

Sets the patcher's scripting name, which can be used to address the object by name in pattr, scripting messages to thispatcher, and the js object.

Messages

int

Arguments

frequency [int]
Outputs the MIDI note number (from 0 to 127) corresponding to the frequency

float

Arguments

frequency [float]
Outputs the MIDI note number (from 0 to 127) corresponding to the frequency

list

Arguments

list of frequencies [list]
Outputs a list of MIDI note numbers (from 0 to 127) corresponding to the frequencies in the input list

Output

float

The MIDI note number that corresponds to the input frequency. When an input frequency falls between two equal tempered pitches, the value is rounded to the nearest int when ftom is used in its default int mode. When ftom is used in the optional float mode, the fractional part of the float is included, which could be used to calculate an additional pitch offset for applying MIDI pitch bend.

int

The MIDI note number that corresponds to the input frequency. When an input frequency falls between two equal tempered pitches, the value is rounded to the nearest int when ftom is used in its default int mode. When ftom is used in the optional float mode, the fractional part of the float is included, which could be used to calculate an additional pitch offset for applying MIDI pitch bend.

See Also

Name Description
MIDI MIDI
expr Evaluate a mathematical expression
ftom~ Convert frequency to MIDI note numbers at signal-rate
mtof Convert a MIDI note number to frequency