|
@@ -275,6 +275,12 @@ class Picadae:
|
275
|
275
|
time.sleep( dur_ms / 1000.0 )
|
276
|
276
|
return self.note_off(midi_pitch)
|
277
|
277
|
|
|
278
|
+ def make_seq( self, midi_pitch, base_atk_us, dur_ms, delta_us, note_cnt ):
|
|
279
|
+ for i in range(note_cnt):
|
|
280
|
+ self.make_note( midi_pitch, base_atk_us + i*delta_us, dur_ms )
|
|
281
|
+ time.sleep( dur_ms / 1000.0 )
|
|
282
|
+ return Result()
|
|
283
|
+
|
278
|
284
|
def set_log_level( self, log_level ):
|
279
|
285
|
self.log_level = log_level
|
280
|
286
|
return Result()
|
|
@@ -286,13 +292,17 @@ class Picadae:
|
286
|
292
|
return vel
|
287
|
293
|
|
288
|
294
|
def _usec_to_coarse_and_fine( self, usec ):
|
|
295
|
+
|
|
296
|
+ coarse_usec = self.prescaler_usec*255 # usec's in one coarse tick
|
289
|
297
|
|
290
|
|
- coarse = int( usec / (self.prescaler_usec*255))
|
291
|
|
- fine = int((usec - coarse*self.prescaler_usec*255) / self.prescaler_usec)
|
|
298
|
+ coarse = int( usec / coarse_usec )
|
|
299
|
+ fine = int((usec - coarse*coarse_usec) / self.prescaler_usec)
|
292
|
300
|
|
293
|
301
|
assert( coarse <= 255 )
|
294
|
302
|
assert( fine <= 255)
|
295
|
303
|
|
|
304
|
+ print("C:%i F:%i : %i " % (coarse,fine, coarse*coarse_usec + fine*self.prescaler_usec ))
|
|
305
|
+
|
296
|
306
|
return coarse,fine
|
297
|
307
|
|
298
|
308
|
def _send( self, opcode, i2c_addr, reg_addr, byteL ):
|