NAME
MIDI::Drummer::Tiny::Tutorial::Quickstart
VERSION
version 0.5009
Import the Module
use MIDI::Drummer::Tiny ();
Object Instantiation
Use the defaults
my $d = MIDI::Drummer::Tiny->new;
Attribute configuration
my $d = MIDI::Drummer::Tiny->new(
file => 'drums.mid',
bpm => 120,
volume => 120,
signature => '5/4', # OR:
#beats => 5,
#divisions => 4,
bars => 8,
reverb => 0,
kick => 36, # Override default patch
snare => 40, # "
soundfont => '/Users/you/Music/FluidR3_GM.sf2',
verbose => 1,
);
Drum Set Components
Kick and snare-like things
Bass drums ("kicks"):
acoustic_bass & electric_bass (Generic: kick)
Snare-like things:
acoustic_snare & electric_snare (Generic: snare), side_stick, clap
Cymbals
open_hh, closed_hh, pedal_hh
crash1, crash2, splash, china
ride1, ride2, ride_bell
Toms
hi_tom, hi_mid_tom, low_mid_tom, low_tom, hi_floor_tom, low_floor_tom
Miscellaneous
click & bell (i.e. the metronome sounds), tambourine, cowbell, vibraslap, etc.
Handy Duration Aliases
whole, triplet_whole, dotted_whole, double_dotted_whole
half, triplet_half, dotted_half, double_dotted_half
quarter, triplet_quarter, dotted_quarter, double_dotted_quarter
eighth, triplet_eighth, dotted_eighth, double_dotted_eighth, ...
etc. down to double-dotted 128th notes!
Basic Beats
Rock
$d->metronome3;
$d->metronome4;
$d->metronome5;
$d->metronome6;
$d->metronome7;
# OR
$d->metronome44($d->bars, 1); # nb: 1 is an optional flag
Swing
$d->metronome4($d->bars, $d->ride2, $d->eighth, 67);
Viennese Waltz
for my $n (1 .. $d->bars) {
$d->note($d->quarter, $d->ride1, $d->kick);
$d->note($d->quarter, $d->ride1, $d->snare);
$d->note($d->quarter, $d->ride1, $d->snare);
}
Disco
for my $n ( 0 .. $d->bars - 1 ) {
$d->note( $d->sixteenth, $d->closed_hh, $d->kick );
$d->note( $d->sixteenth, $d->closed_hh );
$d->note( $d->sixteenth, $d->closed_hh );
$d->note( $d->sixteenth, $d->open_hh );
$d->note( $d->sixteenth, $d->pedal_hh, $d->kick, $d->snare );
$d->note( $d->sixteenth, $d->closed_hh );
$d->note( $d->sixteenth, $d->closed_hh );
$d->note( $d->sixteenth, $d->closed_hh );
}
This beat is extra-cheesy.
And Finally...
Either play the score with the built-in timidity++ functionality, plus a defined soundfont
:
my $d = MIDI::Drummer::Tiny->new(
# ...,
soundfont => '/you/soundfonts/TR808.sf2',
);
# ...
$d->play_with_timidity;
Or write-out the score to a MIDI file:
my $d = MIDI::Drummer::Tiny->new(
# ...,
file => 'drums.mid',
);
# ...
$d->write;
And then play the score with timidity (where the cfg
file specifies the soundfont to be used):
> timidity -c ~/timidity.cfg -Od drums.mid
You can also use the excellent, cross platform program, VLC.
You can also convert the MIDI file into MP3, or whatever format you like.
AUTHOR
Gene Boggs <gene.boggs@gmail.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2014-2025 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.