NAME
MIDI::RtController::Filter::Drums - RtController drum filters
VERSION
version 0.0201
SYNOPSIS
use curry;
use MIDI::RtController ();
use MIDI::RtController::Filter::Drums ();
my $rtc = MIDI::RtController->new(
input => 'keyboard',
output => 'usb',
);
my $filter = MIDI::RtController::Filter::Drums->new(rtc => $rtc);
$rtc->add_filter('drums', note_on => $filter->curry::drums);
$rtc->run;
DESCRIPTION
MIDI::RtController::Filter::Drums
is the MIDI::RtController filter for the drums.
ATTRIBUTES
rtc
$rtc = $filter->rtc;
The required MIDI::RtController instance provided in the constructor.
value
$value = $filter->value;
$filter->value($number);
Return or set the MIDI event value. This is a generic setting that can be used by filters to set or retrieve state. This often a whole number between 0
and 127
, but can take any number.
Default: undef
trigger
$trigger = $filter->trigger;
$filter->trigger($number);
Return or set the trigger. This is a generic setting that can be used by filters to set or retrieve state. This often a whole number between 0
and 127
, but can take any number.
Default: undef
bars
$bars = $filter->bars;
$filter->bars($number);
The number of measures to set for the drummer bars.
Default: 1
bpm
$bpm = $filter->bpm;
$filter->bpm($number);
The beats per minute.
Default: 120
METHODS
All filter methods must accept the object, a MIDI device name, a delta-time, and a MIDI event ARRAY reference, like:
sub drums ($self, $device, $delta, $event) {
my ($event_type, $chan, $note, $value) = $event->@*;
...
return $boolean;
}
A filter also must return a boolean value. This tells MIDI::RtController to continue processing other known filters or not.
drums
Play the drums.
If trigger or value is set, the filter checks those against the MIDI event note
or value
, respectively, to see if the filter should be applied.
SEE ALSO
The eg/*.pl program(s) in this distribution
MIDI::RtController::Filter::Tonal
MIDI::RtController::Filter::Math
MIDI::RtController::Filter::CC
AUTHOR
Gene Boggs <gene.boggs@gmail.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 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.