Update docs and screenshots
CI / backend (pull_request) Canceled after 0s
CI / shell (pull_request) Canceled after 0s
CI / frontend (pull_request) Canceled after 0s
CI / arm64-smoke (pull_request) Canceled after 0s
CI / backend (push) Canceled after 0s
CI / shell (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
CI / arm64-smoke (push) Canceled after 0s
CI / backend (pull_request) Canceled after 0s
CI / shell (pull_request) Canceled after 0s
CI / frontend (pull_request) Canceled after 0s
CI / arm64-smoke (pull_request) Canceled after 0s
CI / backend (push) Canceled after 0s
CI / shell (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
CI / arm64-smoke (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
|
||||
from tuxdmx_midi_bridge.midi import MidiEventFilter, normalize_message
|
||||
|
||||
|
||||
@dataclass
|
||||
class FakeMessage:
|
||||
type: str
|
||||
channel: int
|
||||
note: int | None = None
|
||||
control: int | None = None
|
||||
program: int | None = None
|
||||
velocity: int | None = None
|
||||
value: int | None = None
|
||||
|
||||
|
||||
def test_normalize_note_on() -> None:
|
||||
payload = normalize_message(
|
||||
FakeMessage(type="note_on", channel=0, note=36, velocity=127),
|
||||
"bridge-a",
|
||||
"USB MIDI",
|
||||
)
|
||||
assert payload is not None
|
||||
assert payload["message"]["type"] == "note_on"
|
||||
assert payload["message"]["number"] == 36
|
||||
assert payload["message"]["value"] == 127
|
||||
|
||||
|
||||
def test_filter_suppresses_duplicates_and_rate_limits_control_change() -> None:
|
||||
event_filter = MidiEventFilter(channel_filter=None, control_change_interval_ms=25, suppress_duplicate_values=True)
|
||||
payload = {
|
||||
"message": {"type": "control_change", "channel": 0, "number": 14, "value": 64}
|
||||
}
|
||||
assert event_filter.should_forward(payload) is True
|
||||
assert event_filter.should_forward(payload) is False
|
||||
|
||||
Reference in New Issue
Block a user