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

List::SomeUtils

MIDI::Drummer::Tiny

MIDI::RtMidi::ScorePlayer

Moo

Types::Standard

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.