Sampled Instrument Player with static and monolithic design. All instruments are built-in.
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.
 
 

47 lines
1.1 KiB

import os
import sys
import struct
import time
import unittest
sys.path = ["./py"] + sys.path
import cbox
global Document
global Transport
Document = cbox.Document
Transport = cbox.Transport
song = Document.get_song()
# Delete all the tracks and patterns
song.clear()
# Create a binary blob that contains the MIDI events
pblob = bytes()
for noteindex in range(20):
# note on
pblob += cbox.Pattern.serialize_event(noteindex * 12, 0x90, 36+noteindex*3, 127)
# note off
pblob += cbox.Pattern.serialize_event(noteindex * 12 + 11, 0x90, 36+noteindex*3, 0)
# This will be the length of the pattern (in pulses). It should be large enough
# to fit all the events
pattern_len = 10 * 24 * 2
# Create a new pattern object using events from the blob
pattern = song.pattern_from_blob(pblob, pattern_len)
retrig = 10
i = 0
while i < 50:
i += 1
retrig -= 1
if retrig <= 0:
print ("Triggering adhoc pattern with ID 1")
Document.get_scene().play_pattern(pattern, 240, 0)
retrig = 5
# Query JACK ports, new USB devices etc.
cbox.call_on_idle()
time.sleep(0.1)