subsequence.constants.instruments.vermona_drm1_drums ==================================================== .. py:module:: subsequence.constants.instruments.vermona_drm1_drums .. autoapi-nested-parse:: Vermona DRM1 MKIV drum note map. Note assignments for the Vermona DRM1 analog drum synthesizer. These note numbers correspond to the factory default trigger assignments. Two ways to use this module: 1. **As a drum_note_map** - pass ``VERMONA_DRM1_DRUM_MAP`` to the ``drum_note_map`` parameter of ``@composition.pattern()`` and use human-readable names like ``"kick"`` or ``"snare"`` in your pattern builder calls:: import subsequence.constants.instruments.vermona_drm1_drums as drm1 @composition.pattern(channel=9, length=4, drum_note_map=drm1.VERMONA_DRM1_DRUM_MAP) def drums (p): p.hit_steps("kick", [0, 4, 8, 12], velocity=127) 2. **As constants** - reference note numbers directly:: import subsequence.constants.instruments.vermona_drm1_drums as drm1 @composition.pattern(channel=9, length=4) def drums (p): p.hit_steps(drm1.KICK, [0, 4, 8, 12], velocity=127) ``VERMONA_DRM1_DRUM_MAP`` also accepts a *faithful* subset of General MIDI drum names (e.g. ``"kick_1"``, ``"snare_1"``, ``"hi_hat_closed"``) as aliases — only for the voices the DRM1 genuinely has (kick, snare, clap, hi-hats). These shared GM names are what let the DRM1 take part in symbolic mirroring (each device re-resolves a drum name through its own map). GM names for instruments the DRM1 lacks (toms, ride/crash cymbals, shakers, cowbell and other latin/aux percussion) are intentionally NOT aliased — naming one anyway is dropped with a one-time warning (never a wrong voice); address those by their native ``drum_1`` / ``drum_2`` / ``multi`` names. Canonical GM names come from `pymididefs.drums `_ (``GM_DRUM_MAP``).