You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
830 B
32 lines
830 B
#!/usr/bin/env python3
|
|
|
|
# Perkons Sequencer Model
|
|
# (Hypothetical)
|
|
|
|
ppq_cc = 16
|
|
cc_count = 8
|
|
cc_bits = 7
|
|
|
|
ppq_note = 4
|
|
note_trigger_bits = 1
|
|
note_threepos_count = 3
|
|
note_threepos_bits = 2
|
|
note_accent_bits = 1
|
|
note_ratchet_bits = 3
|
|
note_oddprob_bits = 4
|
|
|
|
bars = 1
|
|
channels = 4
|
|
|
|
|
|
cc_bits_per_pulse = cc_count * cc_bits
|
|
note_bits_per_pulse = (note_threepos_count * note_threepos_bits) + (note_trigger_bits) + note_ratchet_bits + note_oddprob_bits
|
|
|
|
cc_bytes_per_quarter = cc_bits_per_pulse / 8 * ppq_cc
|
|
note_bytes_per_quarter = note_bits_per_pulse / 8 * ppq_note
|
|
|
|
bytes_per_quarter = cc_bytes_per_quarter + note_bytes_per_quarter
|
|
#bytes_per_quarter = 128
|
|
|
|
print('quarter size: {0} bits {1}bytes'.format(bytes_per_quarter * 8, bytes_per_quarter))
|
|
print('sequence size: {0} kb'.format((bytes_per_quarter * 4 * bars * channels) / 1024))
|
|
|