The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

MIDI::XML - Module for representing MIDI-XML objects.

SYNOPSIS

  use MIDI::XML;
  $document = MIDI::XML->parsefile($file);

DESCRIPTION

EXPORT

None by default.

$Document = MIDI::XML->parse($string);

This method is used to parse an existing MIDI XML file and create a DOM tree. Calls XML::Parser->parse with the given string and the MIDI::XML handlers. A DOM Document containing a tree of DOM objects is returned. Comments, processing instructions, and notations, are discarded. White space is retained.

$Document = MIDI::XML->parsefile($path);

This method is used to parse an existing MIDI XML file and create a DOM tree. Calls XML::Parser->parsefile with the given path and the MIDI::XML handlers. A DOM Document containing a tree of DOM objects is returned. Comments, processing instructions, and notations, are discarded. White space is retained.

$Document = MIDI::XML->readfile($path,[$pretty]);

This method is used to read an existing Standard MIDI XML file and create a DOM tree. It reads the file at the given path and creates SAX events which are directed to the MIDI::XML handlers. A DOM Document containing a tree of DOM objects is returned. White space is inserted to produce "pretty" output if the optional $pretty argument is non-zero.

NAME

MIDI::XML::Document - Module for representing Document objects.

DESCRIPTION of Document

$Object = MIDI::XML::Document->new();

Create a new MIDI::XML::Document object.

$array_ref = $MidiFile->measures() or $MidiFile->measures('refresh');

Returns a reference to an array of measures. If called with any parameter the array is refreshed before the reference is returned.

MIDI::XML::Document->writefile($path);

This method is used to write an Standard MIDI file.

$value = $Object->text([$new_value]);

Set or get element text content.

DESCRIPTION of MetaEvent

MIDI::XML::MetaEvent is used for representing MetaEvent objects

DESCRIPTION of CopyrightNotice

MIDI::XML::CopyrightNotice is used for representing CopyrightNotice objects

DESCRIPTION of CuePoint

MIDI::XML::CuePoint is used for representing CuePoint objects

DESCRIPTION of DeviceName

MIDI::XML::DeviceName is used for representing DeviceName objects.

 FF 09 len text        DEVICE NAME

The Device Name is the name of the device that this track is intended to address. It will often be the model name of a synthesizer, but can be any string which uniquely identifies a particular device in a given setup. There should only be one Device Name (Meta Event 09) per track, and it should appear at the beginning of a track before any events which are sendable (i.e., it should be grouped with the text events before the proposed Program Name [Meta Event 08 - see below] and before bank select and program change messages). This will ensure that each track can only address one device.

Each track of a MIDI File can contain one MIDI stream, including SysEx and up to 16 channels. The Device Name Meta Event is used to label each track in a MIDI File with a text label.

If a Type 1 Standard MIDI File contains MIDI data for several devices, the data for each device is contained in a separate track, each with a different Device Name Meta Event. It is possible to have any number of tracks which address the same Device Name; however, each track can only address one device, as noted above.

Since a Type 0 Standard MIDI File has only one track, it can have only one Device Name Meta Event.

DESCRIPTION of EndOfTrack

MIDI::XML::EndOfTrack is used for representing EndOfTrack objects

DESCRIPTION of InstrumentName

MIDI::XML::InstrumentName is used for representing InstrumentName objects

DESCRIPTION of KeySignature

MIDI::XML::KeySignature is used for representing KeySignature objects

$value = $Object->Fifths([$new_value]);

Set or get value of the Fifths attribute.

Type: int Lower: 1 Upper: 1

$value = $Object->Mode([$new_value]);

Set or get value of the Mode attribute.

Type: int Lower: 1 Upper: 1

DESCRIPTION of Lyric

MIDI::XML::Lyric is used for representing Lyric objects

DESCRIPTION of Marker

MIDI::XML::Marker is used for representing Marker objects

DESCRIPTION of MIDIChannelPrefix

MIDI::XML::MIDIChannelPrefix is used for representing MIDIChannelPrefix objects

$value = $Object->Value([$new_value]);

Set or get value of the Value attribute.

Type: int Lower: 1 Upper: 1

DESCRIPTION of OtherMetaEvent

MIDI::XML::OtherMetaEvent is used for representing OtherMetaEvent objects

$value = $Object->Number([$new_value]);

Set or get value of the Number attribute.

Type: int Lower: 1 Upper: 1

DESCRIPTION of Port

MIDI::XML::Port is used for representing Port objects

$value = $Object->Value([$new_value]);

Set or get value of the Value attribute.

Type: int Lower: 1 Upper: 1

DESCRIPTION of ProgramName

MIDI::XML::ProgramName is used for representing ProgramName objects FF 08 len text PROGRAM NAME

One purpose of this event is to aid in reorchestration; since one non-General-MIDI device's piano can be another one's drum kit; knowing the intended program name can be an important clue.

The Program Name is the name of the program called up by the immediately following sequence of bank select and program change messages. The channel for the program change is identified by the bank select and program change messages. The Program Name Meta Event may appear anywhere in a track, but should only be used in conjunction with optional bank selects and a program change. There may be more than one Program Name Meta Events in a track.

DESCRIPTION of SequenceNumber

MIDI::XML::SequenceNumber is used for representing SequenceNumber objects

$value = $Object->Value([$new_value]);

Set or get value of the Value attribute.

Type: int Lower: 1 Upper: 1

DESCRIPTION of SequencerSpecific

MIDI::XML::SequencerSpecific is used for representing SequencerSpecific objects

DESCRIPTION of SetTempo

MIDI::XML::SetTempo is used for representing SetTempo objects

$value = $Object->Value([$new_value]);

Set or get value of the Value attribute.

Type: int Lower: 1 Upper: 1

DESCRIPTION of SMPTEOffset

MIDI::XML::SMPTEOffset is used for representing SMPTEOffset objects

$value = $Object->TimeCodeType([$new_value]);

Set or get value of the TimeCodeType attribute.

Type: int Lower: 1 Upper: 1

$value = $Object->Hour([$new_value]);

Set or get value of the Hour attribute.

Type: int Lower: 1 Upper: 1

$value = $Object->Minute([$new_value]);

Set or get value of the Minute attribute.

Type: int Lower: 1 Upper: 1

$value = $Object->Second([$new_value]);

Set or get value of the Second attribute.

Type: int Lower: 1 Upper: 1

$value = $Object->Frame([$new_value]);

Set or get value of the Frame attribute.

Type: int Lower: 1 Upper: 1

$value = $Object->FractionalFrame([$new_value]);

Set or get value of the FractionalFrame attribute.

Type: int Lower: 1 Upper: 1

DESCRIPTION of TextEvent

MIDI::XML::TextEvent is used for representing TextEvent objects

DESCRIPTION of TimeSignature

MIDI::XML::TimeSignature is used for representing TimeSignature objects

$value = $Object->Numerator([$new_value]);

Set or get value of the Numerator attribute.

Type: int Lower: 1 Upper: 1

$value = $Object->LogDenominator([$new_value]);

Set or get value of the LogDenominator attribute.

Type: int Lower: 1 Upper: 1

$value = $Object->MIDIClocksPerMetronomeClick([$new_value]);

Set or get value of the MIDIClocksPerMetronomeClick attribute.

Type: int Lower: 1 Upper: 1

$value = $Object->ThirtySecondsPer24Clocks([$new_value]);

Set or get value of the ThirtySecondsPer24Clocks attribute.

Type: int Lower: 1 Upper: 1

DESCRIPTION of TrackName

MIDI::XML::TrackName is used for representing TrackName objects

DESCRIPTION of XMFPatchTypePrefix

MIDI::XML::XMFPatchTypePrefix is used for representing XMFPatchTypePrefix objects The XMFPatchTypePrefix meta-event is described in RP-032 from the MMA. It allows specification of using General MIDI 1, General MIDI 2, or DLS to interpret subsequent program change and bank select messages in the same track.

$value = $Object->Value([$new_value]);

Set or get value of the Value attribute.

Type: NMTOKEN Lower: 1 Upper: 1

DESCRIPTION of ChannelMessage

MIDI::XML::ChannelMessage is used for representing ChannelMessage objects MIDI::XML::Channel is the base class from which MIDI Channel objects are derived.

$value = $Object->Channel([$new_value]);

Set or get value of the Channel attribute.

Type: nybble Lower: 1 Upper: 1

DESCRIPTION of NoteOff

MIDI::XML::NoteOff is used for representing NoteOff objects MIDI::XML::NoteOff is a class encapsulating MIDI Note Off messages. A Note Off message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI Note Off event encoded in 3 bytes as follows:

 1000cccc 0nnnnnnn 0vvvvvvv

 cccc = channel;
 nnnnnnn = note number
 vvvvvvv = velocity

The classes for MIDI Note Off messages and the other six channel messages are derived from MIDI::XML::Channel.

$value = $Object->Note([$new_value]);

Set or get value of the Note attribute.

Type: byte Lower: 1 Upper: 1

$value = $Object->Velocity([$new_value]);

Set or get value of the Velocity attribute.

Type: byte Lower: 1 Upper: 1

DESCRIPTION of NoteOn

MIDI::XML::NoteOn is used for representing NoteOn objects MIDI::XML::NoteOn is a class encapsulating MIDI Note On messages. A Note On message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI Note On event encoded in 3 bytes as follows:

 1001cccc 0nnnnnnn 0vvvvvvv

 cccc = channel;
 nnnnnnn = note number
 vvvvvvv = velocity

The classes for MIDI Note On messages and the other six channel messages are derived from MIDI::XML::Channel.

$value = $Object->Note([$new_value]);

Set or get value of the Note attribute.

Type: byte Lower: 1 Upper: 1

$value = $Object->Velocity([$new_value]);

Set or get value of the Velocity attribute.

Type: byte Lower: 1 Upper: 1

DESCRIPTION of PolyKeyPressure

MIDI::XML::PolyKeyPressure is used for representing PolyKeyPressure objects MIDI::XML::PolyKeyPressure is a class encapsulating MIDI Poly Key Pressure messages. A Poly Key Pressure message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI Poly Key Pressure event encoded in 3 bytes as follows:

 1010cccc 0nnnnnnn 0ppppppp

 cccc = channel;
 nnnnnnn = note number
 ppppppp = pressure

The classes for MIDI Poly Key Pressure messages and the other six channel messages are derived from MIDI::XML::Channel.

$value = $Object->Note([$new_value]);

Set or get value of the Note attribute.

Type: byte Lower: 1 Upper: 1

$value = $Object->Pressure([$new_value]);

Set or get value of the Pressure attribute.

Type: byte Lower: 1 Upper: 1

DESCRIPTION of ControlChangeMessage

MIDI::XML::ControlChangeMessage is used for representing ControlChangeMessage objects MIDI::XML::ControlChangeMessage is a class encapsulating MIDI Control Change messages. A Control Change message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI Control Change event encoded in 3 bytes as follows:

 1011cccc 0nnnnnnn 0vvvvvvv

 cccc = channel;
 nnnnnnn = control number
 vvvvvvv = value

The classes for MIDI Control Change messages and the other six channel messages are derived from MIDI::XML::Channel.

DESCRIPTION of ProgramChange

MIDI::XML::ProgramChange is used for representing ProgramChange objects MIDI::XML::ProgramChange is a class encapsulating MIDI Program Change messages. A Program_Change message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI Program Change event encoded in 2 bytes as follows:

 1100cccc 0nnnnnnn

 cccc = channel;
 nnnnnnn = program number

The classes for MIDI Program Change messages and the other six channel messages are derived from MIDI::XML::Channel.

$value = $Object->Number([$new_value]);

Set or get value of the Number attribute.

Type: byte Lower: 1 Upper: 1

DESCRIPTION of ChannelKeyPressure

MIDI::XML::ChannelKeyPressure is used for representing ChannelKeyPressure objects MIDI::XML::ChannelKeyPressure is a class encapsulating MIDI Channel Key Pressure messages. A Channel Key Pressure message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI Channel Key Pressure event encoded in 2 bytes as follows:

 1101cccc 0ppppppp

 cccc = channel;
 ppppppp = pressure

The classes for MIDI Channel Key Pressure messages and the other six channel messages are derived from MIDI::XML::Channel.

$value = $Object->Pressure([$new_value]);

Set or get value of the Pressure attribute.

Type: byte Lower: 1 Upper: 1

DESCRIPTION of PitchBendChange

MIDI::XML::PitchBendChange is used for representing PitchBendChange objects MIDI::XML::PitchBendChange is a class encapsulating MIDI Pitch Bend Change messages. A Pitch Bend Change message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI Pitch Bend Change event encoded in 3 bytes as follows:

 1110cccc 0xxxxxxx 0yyyyyyy

 cccc = channel;
 xxxxxxx = least significant bits
 yyyyyyy = most significant bits

The classes for MIDI Pitch Bend messages and the other six channel messages are derived from MIDI::XML::Channel.

$value = $Object->Value([$new_value]);

Set or get value of the Value attribute.

Type: short Lower: 1 Upper: 1

DESCRIPTION of AllSoundOff

MIDI::XML::AllSoundOff is used for representing AllSoundOff objects MIDI::XML::AllSoundOff is a class encapsulating MIDI All Sound Off messages. An All Sound Off message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI All Sound Off event encoded in 3 bytes as follows:

 1011cccc 0nnnnnnn 0vvvvvvv

 cccc = channel;
 nnnnnnn = control number (120)
 vvvvvvv = value (0)

The classes for MIDI Control Change messages and the other six channel messages are derived from MIDI::XML::Channel.

DESCRIPTION of ResetAllControllers

MIDI::XML::ResetAllControllers is used for representing ResetAllControllers objects MIDI::XML::ResetAllControllers is a class encapsulating MIDI Reset All Controllers messages. A Reset All Controllers message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI Reset All Controllers event encoded in 3 bytes as follows:

 1011cccc 0nnnnnnn 0vvvvvvv

 cccc = channel;
 nnnnnnn = control number (121)
 vvvvvvv = value (0)

The classes for MIDI Control Change messages and the other six channel messages are derived from MIDI::XML::Channel.

DESCRIPTION of LocalControl

MIDI::XML::LocalControl is used for representing LocalControl objects MIDI::XML::LocalControl is a class encapsulating MIDI Local Control messages. A Local Control message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI Local Control event encoded in 3 bytes as follows:

 1011cccc 0nnnnnnn 0vvvvvvv

 cccc = channel;
 nnnnnnn = control number (122)
 vvvvvvv = value

The classes for MIDI Control Change messages and the other six channel messages are derived from MIDI::XML::Channel.

$value = $Object->Value([$new_value]);

Set or get value of the Value attribute.

Type: byte Lower: 1 Upper: 1

DESCRIPTION of AllNotesOff

MIDI::XML::AllNotesOff is used for representing AllNotesOff objects MIDI::XML::AllNotesOff is a class encapsulating MIDI All Notes Off messages. An All Notes Off message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI All Notes Off event encoded in 3 bytes as follows:

 1011cccc 0nnnnnnn 0vvvvvvv

 cccc = channel;
 nnnnnnn = control number (123)
 vvvvvvv = value (0)

The classes for MIDI Control Change messages and the other six channel messages are derived from MIDI::XML::Channel.

DESCRIPTION of OmniOff

MIDI::XML::OmniOff is used for representing OmniOff objects MIDI::XML::OmniOff is a class encapsulating MIDI Omni Off messages. An Omni Off message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI Omni Off event encoded in 3 bytes as follows:

 1011cccc 0nnnnnnn 0vvvvvvv

 cccc = channel;
 nnnnnnn = control number (124)
 vvvvvvv = value (0)

The classes for MIDI Control Change messages and the other six channel messages are derived from MIDI::XML::Channel.

DESCRIPTION of OmniOn

MIDI::XML::OmniOn is used for representing OmniOn objects MIDI::XML::OmniOn is a class encapsulating MIDI Omni On messages. An Omni On message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI Omni On event encoded in 3 bytes as follows:

 1011cccc 0nnnnnnn 0vvvvvvv

 cccc = channel;
 nnnnnnn = control number (125)
 vvvvvvv = value (0)

The classes for MIDI Control Change messages and the other six channel messages are derived from MIDI::XML::Channel.

DESCRIPTION of MonoMode

MIDI::XML::MonoMode is used for representing MonoMode objects MIDI::XML::MonoMode is a class encapsulating MIDI Mono Mode messages. A Mono Mode message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI Mono Mode event encoded in 3 bytes as follows:

 1011cccc 0nnnnnnn 0vvvvvvv

 cccc = channel;
 nnnnnnn = control number (126)
 vvvvvvv = value

The classes for MIDI Control Change messages and the other six channel messages are derived from MIDI::XML::Channel.

$value = $Object->Value([$new_value]);

Set or get value of the Value attribute.

Type: byte Lower: 1 Upper: 1

DESCRIPTION of PolyMode

MIDI::XML::PolyMode is used for representing PolyMode objects MIDI::XML::PolyMode is a class encapsulating MIDI Poly Mode messages. A Poly Mode message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI Poly Mode event encoded in 3 bytes as follows:

 1011cccc 0nnnnnnn 0vvvvvvv

 cccc = channel;
 nnnnnnn = control number (127)
 vvvvvvv = value (0)

The classes for MIDI Control Change messages and the other six channel messages are derived from MIDI::XML::Channel.

DESCRIPTION of ControlChange

MIDI::XML::ControlChange is used for representing ControlChange objects MIDI::XML::ControlChange is a class encapsulating MIDI Control Change messages. A Control Change message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI Control Change event encoded in 3 bytes as follows:

 1011cccc 0nnnnnnn 0vvvvvvv

 cccc = channel;
 nnnnnnn = control number
 vvvvvvv = value

The classes for MIDI Control Change messages and the other six channel messages are derived from MIDI::XML::Channel.

$value = $Object->Control([$new_value]);

Set or get value of the Control attribute.

Type: byte Lower: 1 Upper: 1

$value = $Object->Value([$new_value]);

Set or get value of the Value attribute.

Type: byte Lower: 1 Upper: 1

DESCRIPTION of ControlChange14

MIDI::XML::ControlChange14 is used for representing ControlChange14 objects MIDI::XML::ControlChange14 is a class encapsulating MIDI Control Change messages. A Control Change message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI Control Change event encoded in 6 bytes as follows:

 1011cccc 0nnnnnnn 0vvvvvvv

 cccc = channel;
 nnnnnnn = control number
 vvvvvvv = value MSB

1011cccc 0nnnnnnn 0vvvvvvv

 cccc = channel;
 nnnnnnn = control number + 32
 vvvvvvv = value LSB

The classes for MIDI Control Change messages and the other six channel messages are derived from MIDI::XML::Channel.

$value = $Object->Control([$new_value]);

Set or get value of the Control attribute.

Type: byte Lower: 1 Upper: 1

$value = $Object->Value([$new_value]);

Set or get value of the Value attribute.

Type: short Lower: 1 Upper: 1

DESCRIPTION of RPNChange

MIDI::XML::RPNChange is used for representing RPNChange objects

$value = $Object->RPN([$new_value]);

Set or get value of the RPN attribute.

Type: short Lower: 1 Upper: 1

$value = $Object->Value([$new_value]);

Set or get value of the Value attribute.

Type: short Lower: 1 Upper: 1

DESCRIPTION of NRPNChange

MIDI::XML::NRPNChange is used for representing NRPNChange objects

$value = $Object->NRPN([$new_value]);

Set or get value of the NRPN attribute.

Type: short Lower: 1 Upper: 1

$value = $Object->Value([$new_value]);

Set or get value of the Value attribute.

Type: short Lower: 1 Upper: 1

DESCRIPTION of SysEx

MIDI::XML::SysEx is used for representing SysEx objects

DESCRIPTION of SysExDeviceID

MIDI::XML::SysExDeviceID is used for representing SysExDeviceID objects

$value = $Object->Multiplier([$new_value]);

Set or get value of the Multiplier attribute.

Type: int Lower: 1 Upper: 1

$value = $Object->Offset([$new_value]);

Set or get value of the Offset attribute.

Type: int Lower: 1 Upper: 1

DESCRIPTION of SysExChannel

MIDI::XML::SysExChannel is used for representing SysExChannel objects

$value = $Object->Multiplier([$new_value]);

Set or get value of the Multiplier attribute.

Type: int Lower: 1 Upper: 1

$value = $Object->Offset([$new_value]);

Set or get value of the Offset attribute.

Type: int Lower: 1 Upper: 1

DESCRIPTION of MTCQuarterFrame

MIDI::XML::MTCQuarterFrame is used for representing MTCQuarterFrame objects

$value = $Object->MessageType([$new_value]);

Set or get value of the MessageType attribute.

Type: mtc_category Lower: 1 Upper: 1

$value = $Object->DataNibble([$new_value]);

Set or get value of the DataNibble attribute.

Type: nybble Lower: 1 Upper: 1

DESCRIPTION of SongPositionPointer

MIDI::XML::SongPositionPointer is used for representing SongPositionPointer objects

$value = $Object->Position([$new_value]);

Set or get value of the Position attribute.

Type: short Lower: 1 Upper: 1

DESCRIPTION of SongSelect

MIDI::XML::SongSelect is used for representing SongSelect objects

$value = $Object->Number([$new_value]);

Set or get value of the Number attribute.

Type: byte Lower: 1 Upper: 1

DESCRIPTION of TuneRequest

MIDI::XML::TuneRequest is a class encapsulating MIDI Tune Request messages. A Tune Request message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI Tune Request event encoded in 1 byte as follows:

 11110110

The class for MIDI Tune Request messages is derived from MIDI::XML::MIDISystemMessage.

DESCRIPTION of TimingClock

MIDI::XML::TimingClock is a class encapsulating MIDI Timing Clock messages. A Timing Clock message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI Timing Clock event encoded in 1 byte as follows:

 11111000

The class for MIDI Timing Clock messages is derived from MIDI::XML::MIDISystemMessage.

DESCRIPTION of Start

MIDI::XML::Start is a class encapsulating MIDI Start messages. A Start message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI Start event encoded in 1 byte as follows:

 11111010

The class for MIDI Start messages is derived from MIDI::XML::MIDISystemMessage.

DESCRIPTION of Continue

MIDI::XML::Continue is a class encapsulating MIDI Continue messages. A Continue message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI Continue event encoded in 1 byte as follows:

 11111011

The class for MIDI Continue messages is derived from MIDI::XML::MIDISystemMessage.

DESCRIPTION of Stop

MIDI::XML::Stop is a class encapsulating MIDI Stop messages. A Stop message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI Stop event encoded in 1 byte as follows:

 11111100

The class for MIDI Stop messages is derived from MIDI::XML::MIDISystemMessage.

DESCRIPTION of ActiveSensing

MIDI::XML::ActiveSensing is a class encapsulating MIDI Active Sensing messages. An Active Sensing message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI Active Sensing event encoded in 1 byte as follows:

 11111110

The class for MIDI Active Sensing messages is derived from MIDI::XML::MIDISystemMessage.

DESCRIPTION of SystemReset

MIDI::XML::SystemReset is a class encapsulating MIDI System Reset messages. A System Reset message includes either a delta time or absolute time as implemented by MIDI::XML::Message and the MIDI System Reset event encoded in 1 byte as follows:

 11111111

The class for MIDI System Reset messages is derived from MIDI::XML::MIDISystemMessage.

DESCRIPTION of MIDISystemMessage

MIDI::XML::MIDISystemMessage is used for representing MIDISystemMessage objects

DESCRIPTION of MIDIfile

MIDI::XML::MIDIfile is used for representing MIDIfile objects

$value = $Object->Format([$new_value]);

Set or get value of the Format attribute.

  Format indicates MIDI format 0, 1, or 2. So far only types 0 and 1 are explicitly supported by the MIDI XML format.
Type: int
Lower: 1
Upper: 1

$value = $Object->TrackCount([$new_value]);

Set or get value of the TrackCount attribute.

  TrackCount indicate the number of tracks in a file: 1 for type 0, usually more for types 1 and 2. The TrackCount matches the number of Track elements in the MIDI XML file.
Type: int
Lower: 1
Upper: 1

$value = $Object->TicksPerBeat([$new_value]);

Set or get value of the TicksPerBeat attribute.

  How many ticks in a beat (MIDI quarter note).
Type: int
Lower: 1
Upper: 1

$value = $Object->FrameRate([$new_value]);

Set or get value of the FrameRate attribute.

  Frame rate and ticks per frame are used with SMPTE time codes.
Type: int
Lower: 1
Upper: 1

$value = $Object->TicksPerFrame([$new_value]);

Set or get value of the TicksPerFrame attribute.

  Frame rate and ticks per frame are used with SMPTE time codes.
Type: int
Lower: 1
Upper: 1

$value = $Object->TimestampType([$new_value]);

Set or get value of the TimestampType attribute.

TimestampType should be Delta or Absolute. Indicates the element name to look for in the initial timestamp in each MIDI event.

Type: timestamp_type Lower: 1 Upper: 1

$arrayref = $Object->track();

Returns a reference to an array of the contained Track objects. Get values of the track property.

Type:

$value = $Object->push_track([$new_value]);

Set or get value of the track attribute.

Type:

DESCRIPTION of Format

MIDI::XML::Format is used for representing Format objects Format indicates MIDI format 0, 1, or 2. So far only types 0 and 1 are explicitly supported by the MIDI XML format.

DESCRIPTION of TrackCount

MIDI::XML::TrackCount is used for representing TrackCount objects TrackCount indicate the number of tracks in a file: 1 for type 0, usually more for types 1 and 2. The TrackCount matches the number of Track elements in the MIDI XML file.

DESCRIPTION of TicksPerBeat

MIDI::XML::TicksPerBeat is used for representing TicksPerBeat objects How many ticks in a beat (MIDI quarter note).

DESCRIPTION of FrameRate

MIDI::XML::FrameRate is used for representing FrameRate objects Frame rate and ticks per frame are used with SMPTE time codes.

DESCRIPTION of TicksPerFrame

MIDI::XML::TicksPerFrame is used for representing TicksPerFrame objects Frame rate and ticks per frame are used with SMPTE time codes.

DESCRIPTION of TimestampType

MIDI::XML::TimestampType is used for representing TimestampType objects TimestampType should be Delta or Absolute. Indicates the element name to look for in the initial timestamp in each MIDI event.

DESCRIPTION of Track

MIDI::XML::Track is used for representing Track objects

$value = $Object->Number([$new_value]);

Set or get value of the Number attribute.

Type: int Lower: 1 Upper: 1

$arrayref = $Object->event();

Returns a reference to an array of the contained Event objects. Get values of the event property.

Type: ArrayRef

$value = $Object->push_event([$new_value]);

Set or get value of the event attribute.

Return Type: ArrayRef

$trackName = $Track->name();

Returns a the value of the first TrackName object in the Track.

Type: String

$end = $Track->end() or $Track->end('refresh');

Returns the absolute time for the end of the track. If called with any parameter the value is refreshed before it is returned.

DESCRIPTION of Event

MIDI::XML::Event is used for representing Event objects

$value = $Object->Timestamp([$new_value]);

Set or get value of the Timestamp attribute.

Type: Timestamp Lower: 1 Upper: 1

$value = $Object->SmfEvent([$new_value]);

Set or get value of the SmfEvent attribute.

Type: SmfEvent Lower: 1 Upper: 1

DESCRIPTION of Timestamp

MIDI::XML::Timestamp is used for representing Timestamp objects

$value = $Object->Absolute([$new_value]);

Set or get value of the Absolute attribute.

Type: int Lower: 1 Upper: 1

$value = $Object->Delta([$new_value]);

Set or get value of the Delta attribute.

Type: int Lower: 1 Upper: 1

DESCRIPTION of Absolute

MIDI::XML::Absolute is used for representing Absolute objects

$value = $Object->Delta([$new_value]);

Set or get value of the Absolute element.

Type: int Lower: 1 Upper: 1

DESCRIPTION of Delta

MIDI::XML::Delta is used for representing Delta objects

$value = $Object->Delta([$new_value]);

Set or get value of the Delta element.

Type: int Lower: 1 Upper: 1

DESCRIPTION of SmfEvent

MIDI::XML::SmfEvent is used for representing SmfEvent objects

$value = $Object->ChannelMessage([$new_value]);

Set or get value of the ChannelMessage attribute.

Type: ChannelMessage Lower: 1 Upper: 1

$value = $Object->MetaEvent([$new_value]);

Set or get value of the MetaEvent attribute.

Type: MetaEvent Lower: 1 Upper: 1

$value = $Object->SysExEvent([$new_value]);

Set or get value of the SysExEvent attribute.

Type: SysExEvent Lower: 1 Upper: 1

DESCRIPTION of SysExEvent

MIDI::XML::SysExEvent is used for representing SysExEvent objects

DESCRIPTION of SystemExclusive

MIDI::XML::SystemExclusive is used for representing SystemExclusive objects

DESCRIPTION of EndOfExclusive

MIDI::XML::EndOfExclusive is used for representing EndOfExclusive objects

DESCRIPTION of timestamp_type enumeration

MIDI::XML::timestamp_type - Module representing the timestamp_type enumeration.

CONSTANTS for the timestamp_type enumeration

 Absolute                                  => 'Absolute'
 Delta                                     => 'Delta'

METHODS for the timestamp_type enumeration

@Literals = MIDI::XML::timestamp_type::Literals

Returns an array of literal name-value pairs.

%Literals = MIDI::XML::timestamp_type::Literals

Returns a hash of literal name-value pairs.

DESCRIPTION of control_change_enum enumeration

MIDI::XML::control_change_enum - Module representing the control_change_enum enumeration.

CONSTANTS for the control_change_enum enumeration

 BankSelectMSB                             => 0
 ModulationWheelMSB                        => 1
 BreathControllerMSB                       => 2
 FootControllerMSB                         => 4
 PortamentoTimeMSB                         => 5
 DataEntryMSB                              => 6
 ChannelVolumeMSB                          => 7
 BalanceMSB                                => 8
 PanMSB                                    => 10
 ExpressionControllerMSB                   => 11
 EffectControl1MSB                         => 12
 EffectControl2MSB                         => 13
 GeneralPurposeController1MSB              => 16
 GeneralPurposeController2MSB              => 17
 GeneralPurposeController3MSB              => 18
 GeneralPurposeController4MSB              => 19
 BankSelectLSB                             => 32
 ModulationWheelLSB                        => 33
 BreathControllerLSB                       => 34
 FootControllerLSB                         => 36
 PortamentoTimeLSB                         => 37
 DataEntryLSB                              => 38
 ChannelVolumeLSB                          => 39
 BalanceLSB                                => 40
 PanLSB                                    => 42
 ExpressionControllerLSB                   => 43
 EffectControl1LSB                         => 44
 EffectControl2LSB                         => 45
 GeneralPurposeController1LSB              => 48
 GeneralPurposeController2LSB              => 49
 GeneralPurposeController3LSB              => 50
 GeneralPurposeController4LSB              => 51
 DamperPedal                               => 64
 Portamento                                => 65
 Sostenuto                                 => 66
 SoftPedal                                 => 67
 LegatoFootswitch                          => 68
 Hold2                                     => 69
 SoundVariation                            => 70
 Timbre                                    => 71
 ReleaseTime                               => 72
 AttackTime                                => 73
 Brightness                                => 74
 DecayTime                                 => 75
 VibratoRate                               => 76
 VibratoDepth                              => 77
 VibratoDelay                              => 78
 SoundController10                         => 79
 GeneralPurposeController5                 => 80
 GeneralPurposeController6                 => 81
 GeneralPurposeController7                 => 87
 GeneralPurposeController8                 => 83
 PortamentoControl                         => 84
 ReverbSendLevel                           => 91
 TremoloDepth                              => 92
 ChorusSendLevel                           => 93
 Effects4Depth                             => 94
 Effects5Depth                             => 95
 DataIncrement                             => 96
 DataDecrement                             => 97
 NonRegisteredParameterNumberLSB           => 98
 NonRegisteredParameterNumberMSB           => 99
 RegisteredParameterNumberLSB              => 100
 RegisteredParameterNumberMSB              => 101

METHODS for the control_change_enum enumeration

@Literals = MIDI::XML::control_change_enum::Literals

Returns an array of literal name-value pairs.

%Literals = MIDI::XML::control_change_enum::Literals

Returns a hash of literal name-value pairs.

DESCRIPTION of mtc_category enumeration

MIDI::XML::mtc_category - Module representing the mtc_category enumeration.

CONSTANTS for the mtc_category enumeration

 FrameLSNibble                             => 0
 FrameMSNibble                             => 1
 SecsLSNibble                              => 2
 SecsMSNibble                              => 3
 MinsLSNibble                              => 4
 MinsMSNibble                              => 5
 HrsLSNibble                               => 6
 HrsMSNibbleSMPTEType                      => 7

METHODS for the mtc_category enumeration

@Literals = MIDI::XML::mtc_category::Literals

Returns an array of literal name-value pairs.

%Literals = MIDI::XML::mtc_category::Literals

Returns a hash of literal name-value pairs.

AUTHOR

Brian M. Ames, <bmames@apk.net>

SEE ALSO

XML::Parser.

COPYRIGHT and LICENSE

Copyright 2008 Brian M. Ames. This software may be used under the terms of the GPL and Artistic licenses, the same as Perl itself.

8 POD Errors

The following errors were encountered while parsing the POD:

Around line 232:

'=item' outside of any '=over'

Around line 746:

You forgot a '=back' before '=head1'

Around line 863:

'=item' outside of any '=over'

Around line 1104:

You forgot a '=back' before '=head2'

Around line 5098:

'=item' outside of any '=over'

Around line 5148:

You forgot a '=back' before '=head1'

Around line 5357:

'=item' outside of any '=over'

Around line 5473:

You forgot a '=back' before '=head1'