Maestro - Midi Player Tool Kit for Unity Version 2.19.0
Loading...
Searching...
No Matches
MidiPlayerTK.MPTKRangeLib

[MPTK PRO] Range/scale interval library loaded from GammeDefinition.csv. Can be used in any music-generation workflow. See examples in TestMidiStream.cs and ExtStreamPlayerPro.cs. More...

Static Public Member Functions

static MPTKRangeLib Range (int index, bool log=false)
 Gets a range from its zero-based index. Data is read from GammeDefinition.csv in Resources/GeneratorTemplate.
static MPTKRangeLib Range (MPTKRangeName index, bool log=false)
 Gets a range from its enum identifier. Data is read from GammeDefinition.csv in Resources/GeneratorTemplate.

Public Attributes

int Index
 Zero-based index in the loaded library.
string Name
 Full range/scale name.
string Short
 Short range/scale name.
string Flag
 Family indicator when available.
bool Main
 True for a commonly used range/scale, otherwise more exotic.
int Count
 Number of notes in the range/scale.

Properties

int this[int index] [get]
 Interval in semitones from the tonic. The first position (index = 0) always returns 0 regardless of the selected range.
static int RangeCount [get]
 Number of ranges/scales available in GammeDefinition.csv (Resources/GeneratorTemplate).

Detailed Description

[MPTK PRO] Range/scale interval library loaded from GammeDefinition.csv. Can be used in any music-generation workflow. See examples in TestMidiStream.cs and ExtStreamPlayerPro.cs.

// Example target: a MidiStreamPlayer prefab in the scene hierarchy.
public MidiStreamPlayer midiStreamPlayer;
new void Start()
{
// Find MidiStreamPlayer. It can also be assigned directly in the Inspector.
midiStreamPlayer = FindObjectOfType<MidiStreamPlayer>();
}
private void PlayScale()
{
// Get the currently selected range/scale.
MPTKRangeLib range = MPTKRangeLib.Range(CurrentScale, true);
for (int ecart = 0; ecart < range.Count; ecart++)
{
NotePlaying = new MPTKEvent()
{
Command = MPTKCommand.NoteOn, // MIDI command
Value = CurrentNote + range[ecart], // 0..127, 48 = C3, 60 = C4
Channel = StreamChannel, // 0..15, channel 9 reserved for drums
Duration = DelayPlayScale, // milliseconds, -1 for indefinite note
Velocity = Velocity, // 0..127
Delay = ecart * DelayPlayScale, // delay in milliseconds before note start
};
midiStreamPlayer.MPTK_PlayEvent(NotePlaying);
}
}
Represents a MIDI event used throughout MPTK. This class is central to script-based MIDI workflows in...
Definition MPTKEvent.cs:59
[MPTK PRO] Range/scale interval library loaded from GammeDefinition.csv. Can be used in any music-gen...
Definition MPTKRangeLib.cs:46
static MPTKRangeLib Range(int index, bool log=false)
Gets a range from its zero-based index. Data is read from GammeDefinition.csv in Resources/GeneratorT...
Definition MPTKRangeLib.cs:122
int Count
Number of notes in the range/scale.
Definition MPTKRangeLib.cs:78
Builds and plays real-time music in response to user actions or algorithmic logic....
Definition MidiStreamPlayer.cs:44
void MPTK_PlayEvent(MPTKEvent mptkEvent)
Plays one MIDI event from an instance of MPTKEvent. Runs in a thread so the call returns immediately....
Definition MidiStreamPlayer.cs:121
MPTKCommand
MIDI command codes. Defines the action performed by the message: note on/off, patch change,...
Definition MPTKEnum.cs:16

Member Function Documentation

◆ Range() [1/2]

MPTKRangeLib MidiPlayerTK.MPTKRangeLib.Range ( int index,
bool log = false )
static

Gets a range from its zero-based index. Data is read from GammeDefinition.csv in Resources/GeneratorTemplate.

Parameters
indexZero-based range index.
logTrue to log debug details while loading/building.
Returns
The matching MPTKRangeLib instance, or null when the index is invalid.

◆ Range() [2/2]

MPTKRangeLib MidiPlayerTK.MPTKRangeLib.Range ( MPTKRangeName index,
bool log = false )
static

Gets a range from its enum identifier. Data is read from GammeDefinition.csv in Resources/GeneratorTemplate.

Parameters
indexEnum identifier in MPTKRangeName.
logTrue to log debug details while loading/building.
Returns
The matching MPTKRangeLib instance.

Member Data Documentation

◆ Flag

string MidiPlayerTK.MPTKRangeLib.Flag

Family indicator when available.

  • M = major family
  • m = minor family
  • _ = unspecified/other

Property Documentation

◆ this[int index]

int MidiPlayerTK.MPTKRangeLib.this[int index]
get

Interval in semitones from the tonic. The first position (index = 0) always returns 0 regardless of the selected range.

Parameters
indexPosition in the range. When greater than Count, intervals continue in the next octave(s).
Returns
Interval in semitones from the tonic.