summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/client.py b/client.py
index 877a68d..507e149 100644
--- a/client.py
+++ b/client.py
@@ -1,3 +1,4 @@
+from pprint import pprint
from unipath import FSPath as Path
DATA_DIR = Path(__file__).absolute().ancestor(1).child('data')
@@ -22,7 +23,7 @@ class LightLoopClient(object):
def init_sequences(self, sequence_data):
for sequence in sequence_data.split('#')[1:]:
lines = sequence.split('\n')
- name, sequence_data = lines[0].strip(), [map(int, list(x)) for x in filter(lambda x: x != '', lines[1:])]
+ name, sequence_data = lines[0].strip(), [list(x) for x in filter(lambda x: x != '', lines[1:])]
self.sequences[name] = sequence_data
def init_composition(self, composition_data):
@@ -30,8 +31,18 @@ class LightLoopClient(object):
self.tempo = composition_data[0].split('_')[1]
self.composition = [c.split(',') for c in composition_data[1:]]
+ def gen_packet(tree, channel, mode):
+ if tree > 7 or channel > 7 or mode > 1:
+ raise Exception('Bad values')
+ return (tree << 5) | (channel << 2) | mode
+
def process_single_loop(self):
- print zip(*self.composition)
+ raw_data = ''
+ for frame in zip(*self.composition):
+ print frame
+ sequences = zip(*[zip(*self.sequences[seq]) for seq in frame])
+ raw_data += ''.join([''.join([''.join(y) for y in x]) for x in sequences])
+ print raw_data
def loop(self):
print self