From bb38c09530d7e66182c0db5205c15b143f3d5a9b Mon Sep 17 00:00:00 2001 From: Grissess Date: Tue, 14 Jun 2016 02:44:27 -0400 Subject: Modwheel stuff, floating-point amplitude --- packet.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'packet.py') diff --git a/packet.py b/packet.py index aefa758..72e47f5 100644 --- a/packet.py +++ b/packet.py @@ -13,14 +13,16 @@ class Packet(object): def FromStr(cls, s): parts = struct.unpack('>9L', s) return cls(parts[0], *parts[1:]) + def as_float(self, i): + return struct.unpack('>f', struct.pack('>L', self.data[i]))[0] def __str__(self): - return struct.pack('>L'+('L'*len(self.data)), self.cmd, *self.data) + return struct.pack('>L'+(''.join('f' if isinstance(i, float) else 'L' for i in self.data)), self.cmd, *self.data) class CMD: KA = 0 # No important data PING = 1 # Data are echoed exactly QUIT = 2 # No important data - PLAY = 3 # seconds, microseconds, frequency (Hz), amplitude (0-255), port + PLAY = 3 # seconds, microseconds, frequency (Hz), amplitude (0.0 - 1.0), port CAPS = 4 # ports, client type (1), user ident (2-7) def itos(i): -- cgit v1.2.3-70-g09d2