from dataclasses import dataclass
from typing import Iterator
@dataclass(frozen=True)
@dataclass(frozen=True)
[docs]
class DrumLaneRow:
# iteration: for lane in row
[docs]
def __iter__(self) -> Iterator["DrumLane"]:
return iter(self.lanes)
# len(row)
[docs]
def __len__(self) -> int:
return len(self.lanes)
# row[index]
[docs]
def __getitem__(self, index: int) -> "DrumLane":
return self.lanes[index]
[docs]
DRUM_MIXER_LANE_ROWS: list[DrumLaneRow] = [
DrumLaneRow(
title="Low End",
lanes=[
DrumLane(name="Kick", partials=["BD1", "BD2", "BD3"]),
DrumLane(name="Toms", partials=["TOM1", "TOM2", "TOM3"]),
],
),
DrumLaneRow(
title="Snares",
lanes=[
DrumLane(
name="Snare",
partials=["SD1", "SD2", "SD3", "SD4", "RIM", "CLAP"],
colspan=2, # Wide section: spans 2 columns on row 1
),
],
),
DrumLaneRow(
title="Backbeat",
lanes=[
DrumLane(name="Hi-Hat", partials=["CHH", "PHH", "OHH"]),
DrumLane(name="Cymbals", partials=["CYM1", "CYM2", "CYM3"]),
],
),
DrumLaneRow(
title="Time",
lanes=[
DrumLane(
name="Percussion", partials=["PRC1", "PRC2", "PRC3", "PRC4", "PRC5"]
),
DrumLane(name="Other", partials=["HIT", "OTH1", "OTH2"]),
],
),
]
"""DrumLaneRow( These don't make any sound
title="Notes",
lanes=[
DrumLane(
name="Chromatic",
partials=[
"D4",
"Eb4",
"E4",
"F4",
"F#4",
"G4",
"G#4",
"A4",
"Bb4",
"B4",
"C5",
"C#5",
],
colspan=2,
),
],
),"""