FoscPitchParser

Returns a FoscPitchParser.


Description

Pitch parser


Attributes Summary

Instance Methods

pitches Returns parser result as an array of pitches and/or pitch segments.


Usage

  1. Example

    n = [60, 62, 64];
    FoscPitchParser(n).collect { |each| each.cs };
    [ "FoscPitch('C4')", "FoscPitch('D4')", "FoscPitch('E4')" ]
  2. Can contain nil (for use in FoscMaker classes)

    n = [60, 62, nil, 64];
    FoscPitchParser(n).collect { |each| each.cs };
    [ "FoscPitch('C4')", "FoscPitch('D4')", "nil", "FoscPitch('E4')" ]
  3. Example

    n = "Bb4 F#5 C4 <Cb4 E+4 G4> D+5 <C4 E4 G4>";
    FoscPitchParser(n).collect { |each| each.cs };
    [ "FoscPitch('Bb4')", "FoscPitch('F#5')", "FoscPitch('C4')", "FoscPitchSegment([
        FoscPitch('Cb4'),
        FoscPitch('E+4'),
        FoscPitch('G4')
    ])", "FoscPitch('D+5')", "FoscPitchSegment([
        FoscPitch('C4'),
        FoscPitch('E4'),
        FoscPitch('G4')
    ])" ]
  4. Example

    n = [60, 62, 64, 'F#5', 'G#5', 'A#5'];
    FoscPitchParser(n).collect { |each| each.cs };
    [ "FoscPitch('C4')", "FoscPitch('D4')", "FoscPitch('E4')", "FoscPitch('F#5')", "FoscPitch('G#5')", "FoscPitch('A#5')" ]
  5. Example

    n = [60, 62, 64, ['F#5', 'G#5', 'A#5']];
    FoscPitchParser(n).collect { |each| each.cs };
    [ "FoscPitch('C4')", "FoscPitch('D4')", "FoscPitch('E4')", "FoscPitchSegment([
        FoscPitch('F#5'),
        FoscPitch('G#5'),
        FoscPitch('A#5')
    ])" ]
  6. !!!TODO: this should raise an exception

    FoscPitchParser(['foo']);
    ERROR: Message 'at' not understood.


Instance Methods


pitches

Returns parser result as an array of pitches and/or pitch segments.

  1. Example

    x = "Bb4 A#2 C3 <Cb4 E+4 G4> D+-1 <C4 Eb4 G4>";
    y = FoscPitchStringParser(x);
    y.pitches.printAll;
  2. Example

    x = "Bb4 A#2 C3 C4 Eb4 Gb~4 D~5 C#+4 Eb4 G4";
    y = FoscPitchStringParser(x);
    y.matchingItems.printAll;