NAME

MIDI::Util - MIDI Utilities

VERSION

version 0.0401

SYNOPSIS

use MIDI::Util;

my $score = MIDI::Util::setup_score( bpm => 120, etc => '...', );

MIDI::Util::set_chan_patch( $score, 0, 1 );

my $track = MIDI::Util::new_track( channel => 0, patch => 1, tempo => 450_000 );

my $dump = MIDI::Util::dump('volume');

DESCRIPTION

MIDI::Util comprises handy MIDI utilities.

FUNCTIONS

setup_score

$score = MIDI::Util::setup_score;  # Use defaults

$score = MIDI::Util::setup_score(  # Override defaults
  lead_in => $beats,
  volume  => $volume,
  bpm     => $bpm,
  channel => $channel,
  patch   => $patch,
  octave  => $octave,
);

Set basic MIDI parameters and return a MIDI::Simple object. If given a lead_in, play a hi-hat for that many beats. Do not include a lead_in by passing 0 as its value.

Named parameters and defaults:

lead_in: 4
volume:  120
bpm:     100
channel: 0
patch:   0
octave:  4

new_track

$track = MIDI::Util::new_track;  # Use defaults

$track = MIDI::Util::new_track(  # Override defaults
  channel => $channel,
  patch   => $patch,
  tempo   => $tempo,
);

Set the channel, patch, and tempo and return a MIDI::Track object.

Named parameters and defaults:

channel: 0
patch:   0
tempo:   500000

set_chan_patch

MIDI::Util::set_chan_patch($score);  # Use defaults

MIDI::Util::set_chan_patch( $score, $channel, $patch );  # Override defaults

Set the MIDI channel and patch.

Positional parameters and defaults:

score:   undef (required)
channel: 0
patch:   0

dump

$dump = MIDI::Util::dump($list_name);

Return sorted array references of the following MIDI, MIDI::Simple, and MIDI::Event internal lists:

Volume
Length
Note
note2number
number2note
patch2number
number2patch
notenum2percussion
percussion2notenum
All_events
MIDI_events
Meta_events
Text_events
Nontext_meta_events

SEE ALSO

MIDI

MIDI::Event

MIDI::Simple

MIDI::Track

Music::Tempo

AUTHOR

Gene Boggs <gene@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2019 by Gene Boggs.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.