From a13658e5266e2d9243ac14b48e3ff1c15dc53e0a Mon Sep 17 00:00:00 2001 From: Bailey Stevens Date: Thu, 5 Oct 2023 23:09:39 -0400 Subject: [PATCH] Updates backend to handle new synth messages. --- backend/mmelodies/backend.py | 21 +++++++++++---------- backend/mmelodies/mmelodies_pb2.py | 12 ++++++------ flake.lock | 8 ++++---- proto/mmelodies.proto | 3 +++ 4 files changed, 24 insertions(+), 20 deletions(-) diff --git a/backend/mmelodies/backend.py b/backend/mmelodies/backend.py index 3768641..96dcf24 100644 --- a/backend/mmelodies/backend.py +++ b/backend/mmelodies/backend.py @@ -41,12 +41,12 @@ async def request_handler(ws, writer): if request.scope_samples: writer.write(b"scope;") if request.param_refresh: - writer.write(b"params;") + writer.write(b"getp;") if request.pgm_event: writer.write(f"pgmevt {request.pgm_event};".encode()) for param in request.param_changes: - writer.write(f"set {param.id} {param.value};".encode()) + writer.write(f"setp {param.id} {param.value};".encode()) writer.write(b"\n") @@ -75,20 +75,21 @@ async def update_handler(reader): update = Update() parts = message.split(" ") - if parts[0] == "params": - for param_id, value in enumerate(parts[1:]): - param = update.params.add() - param.id = param_id - param.value = int(value) - clients = connections() - elif parts[0] == "scope": + if parts[0] == "scope": update.scope_samples.extend([float(part) for part in parts[1:]]) clients = connections("/api/display") - elif parts[0] == "change": + elif parts[0] == "param": param = update.params.add() param.id = int(parts[1]) param.value = int(parts[2]) + param.scaled_value = float(parts[3]) clients = connections() + elif parts[0] == "seqc": + update.note_sequence.extend([int(part) for part in parts[1:]]) + clients = connections("/api/display") + elif parts[0] == "seqi": + update.sequence_index = int(parts[1]) + clients = connections("/api/display") else: print(parts[0]) continue diff --git a/backend/mmelodies/mmelodies_pb2.py b/backend/mmelodies/mmelodies_pb2.py index 6a0ac76..4c8b85a 100644 --- a/backend/mmelodies/mmelodies_pb2.py +++ b/backend/mmelodies/mmelodies_pb2.py @@ -14,7 +14,7 @@ _sym_db = _symbol_database.Default() -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0fmmelodies.proto\"&\n\tParameter\x12\n\n\x02id\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\r\"\xb4\x01\n\rUpdateRequest\x12\x1a\n\rscope_samples\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\rparam_refresh\x18\x03 \x01(\x08H\x01\x88\x01\x01\x12\x16\n\tpgm_event\x18\x04 \x01(\rH\x02\x88\x01\x01\x12!\n\rparam_changes\x18\x02 \x03(\x0b\x32\n.ParameterB\x10\n\x0e_scope_samplesB\x10\n\x0e_param_refreshB\x0c\n\n_pgm_event\";\n\x06Update\x12\x15\n\rscope_samples\x18\x01 \x03(\x02\x12\x1a\n\x06params\x18\x02 \x03(\x0b\x32\n.Parameterb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0fmmelodies.proto\"R\n\tParameter\x12\n\n\x02id\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\r\x12\x19\n\x0cscaled_value\x18\x03 \x01(\x02H\x00\x88\x01\x01\x42\x0f\n\r_scaled_value\"\xb4\x01\n\rUpdateRequest\x12\x1a\n\rscope_samples\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\rparam_refresh\x18\x03 \x01(\x08H\x01\x88\x01\x01\x12\x16\n\tpgm_event\x18\x04 \x01(\rH\x02\x88\x01\x01\x12!\n\rparam_changes\x18\x02 \x03(\x0b\x32\n.ParameterB\x10\n\x0e_scope_samplesB\x10\n\x0e_param_refreshB\x0c\n\n_pgm_event\"\x82\x01\n\x06Update\x12\x15\n\rscope_samples\x18\x01 \x03(\x02\x12\x1a\n\x06params\x18\x02 \x03(\x0b\x32\n.Parameter\x12\x15\n\rnote_sequence\x18\x03 \x03(\x02\x12\x1b\n\x0esequence_index\x18\x04 \x01(\x05H\x00\x88\x01\x01\x42\x11\n\x0f_sequence_indexb\x06proto3') @@ -46,9 +46,9 @@ if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None _PARAMETER._serialized_start=19 - _PARAMETER._serialized_end=57 - _UPDATEREQUEST._serialized_start=60 - _UPDATEREQUEST._serialized_end=240 - _UPDATE._serialized_start=242 - _UPDATE._serialized_end=301 + _PARAMETER._serialized_end=101 + _UPDATEREQUEST._serialized_start=104 + _UPDATEREQUEST._serialized_end=284 + _UPDATE._serialized_start=287 + _UPDATE._serialized_end=417 # @@protoc_insertion_point(module_scope) diff --git a/flake.lock b/flake.lock index d9a1d46..4b561fb 100644 --- a/flake.lock +++ b/flake.lock @@ -96,11 +96,11 @@ ] }, "locked": { - "lastModified": 1696489753, - "narHash": "sha256-7o3sAmftK9KGoAD4d3UPg9hveviT5fgQA42u+3DUclQ=", + "lastModified": 1696560194, + "narHash": "sha256-lRU+O0UsQBkVYhI45YzkJ2iFQdGdPrfgjVFFBbKWIcw=", "ref": "refs/heads/main", - "rev": "728d931a877c7324bd652ebcdd9dfe63f7f1d596", - "revCount": 26, + "rev": "053df5be8199eea85a463fb12f18947d043f85b3", + "revCount": 29, "type": "git", "url": "https://fem.mint.lgbt/mmelodies/phyzzy.git" }, diff --git a/proto/mmelodies.proto b/proto/mmelodies.proto index de64f43..3c380de 100644 --- a/proto/mmelodies.proto +++ b/proto/mmelodies.proto @@ -3,6 +3,7 @@ syntax = "proto3"; message Parameter { uint32 id = 1; uint32 value = 2; + optional float scaled_value = 3; } message UpdateRequest { @@ -15,4 +16,6 @@ message UpdateRequest { message Update { repeated float scope_samples = 1; repeated Parameter params = 2; + repeated int32 note_sequence = 3; + optional int32 sequence_index = 4; }