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

NAME

Win32API::MIDI::SysEX::Yamaha - Perl Module for YAMAHA MIDI System Exclusive Message.

SYNOPSIS

  use Win32API::MIDI::SysEX::Yamaha;
  # XG Sound Module
  $se = new Win32API::MIDI::SysEX::Yamaha(modelName => 'XG'); # 'XG' can be omitted

DESCRIPTION

Overview

Win32API::MIDI::SysEX::Yamaha is submodule of Win32API::MIDI::SysEX. Its object inherits his parents methods.

This module is still under development and most of function are not debugged yet. And the this module may have to be renamed as MIDI::SysEX::Yamaha in the future, since this module is dependent with Microsoft Windows.

Create an Object

new Win32API::MIDI::SysEX::Yamaha([model [, device_ID]])

Currently supported model are;

  'XG'

This information is used by RQ1 and DT1 method to know the size of the model ID and address. By default 'XG' is used.

To access XG common parameters the 'XG' object must be used. You may have to create one or more object for a MIDI device.

XG System On

XGSystemOn(void)
  F0H,43H,1nH,4CH,00H,00H,7EH,00H,F7H
  11110000 F0 Exclusive status
  01000011 43 YAMAHA ID
  0001nnnn 1n Device Number
  01001100 4C Model ID
  00000000 00 Address High
  00000000 00 Address Mid
  01111110 7E Address Low
  00000000 00 Data
  11110111 F7 End of Exclusive

This message switches SOUND MODULE MODE to XG and initializes all the parameters to the XG default settings, with the exception of Master Tune value.

MIDI Master Tuning

masterTuning(master_tune_2B)

Parameter Change

ParameterChange_2B(address, data)
ParameterChange_4B(address, data)
  11110000 F0 Exclusive status
  01000011 43 YAMAHA ID
  0001nnnn 1n Device Number
  01001100 4C Model ID
  0aaaaaaa aa Address High
  0aaaaaaa aa Address Mid
  0aaaaaaa aa Address Low
  0ddddddd dd Data
  | |
  0ddddddd dd Data
  11110111 F7 End of Exclusive

Includes 2 or 4 bytes of data, depending on parameter size. The following eight types of parameter change are provided.

  1) System Data parameter change
  2) Multi Effect Data parameter change
  3) Multi EQ Data parameter change
  4) Multi Part Data parameter change
  5) Drums Setup Data parameter change
  6) System Information
  7) Display Data parameter change
  8) AD Part Data parameter change

*6) System Information is sent in response to dump requests. Received parameter changes are ignored.

System Exclusive messages are not accepted if �gRcv System Exclusive�h is OFF.

Bulk Dump

BlukDump(address, data)
  11110000 F0 Exclusive status
  01000011 43 YAMAHA ID
  0000nnnn 0n Device Number
  01001100 4C Model ID
  0bbbbbbb bb Byte Count MSB
  0bbbbbbb bb Byte Count LSB
  0aaaaaaa aa Address High
  0aaaaaaa aa Address Mid
  0aaaaaaa aa Address Low
  0ddddddd dd Data
  | |
  0ddddddd dd Data
  0ccccccc cc Checksum
  11110111 F7 End of Exclusive

For information about �gAddress�h and �gByte Count�h fields, refer to Table 3.

Here the "Byte Count" refers to "Total Size" of Data shown on Table 3-n. The "Address" in Bulk Dump / Dump Request refers to the address at the beginning of each block.

The "block" refers to a unit of data stream which is enclosed by "Total Size" on Table 3-n.

Checksum value is set such that the sum of Byte Count, Address, Data and Checksum has value zero in its seven least significant bits.

Parameter Request

ParameterRequest(address)
  11110000 F0 Exclusive status
  01000011 43 YAMAHA ID
  0011nnnn 3n Device Number
  01001100 4C Model ID
  0aaaaaaa aa Address High
  0aaaaaaa aa Address Mid
  0aaaaaaa aa Address Low
  11110111 F7 End of Exclusive

Dump Request

DumpRequest(address)
  11110000 F0 Exclusive status
  01000011 43 YAMAHA ID
  0010nnnn 2n Device Number
  01001100 4C Model ID
  0aaaaaaa aa Address High
  0aaaaaaa aa Address Mid
  0aaaaaaa aa Address Low
  11110111 F7 End of Exclusive

Sending or receiving of dump request cannot be switched off except by setting �gExclusive�h to OFF.

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 196:

Non-ASCII character seen before =encoding in '�gRcv'. Assuming CP1252

Around line 288:

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