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.
62 lines
1.7 KiB
62 lines
1.7 KiB
3 years ago
|
from calfbox import cbox
|
||
|
|
||
|
def cmd_dumper(cmd, fb, args):
|
||
|
print ("%s(%s)" % (cmd, ",".join(list(map(repr,args)))))
|
||
|
|
||
|
cbox.init_engine()
|
||
|
|
||
|
cbox.Config.add_section("drumpattern:pat1", """
|
||
|
title=Straight - Verse
|
||
|
beats=4
|
||
|
track1=bd
|
||
|
track2=sd
|
||
|
track3=hh
|
||
|
track4=ho
|
||
|
bd_note=c1
|
||
|
sd_note=d1
|
||
|
hh_note=f#1
|
||
|
ho_note=a#1
|
||
|
bd_trigger=9... .... 9.6. ....
|
||
|
sd_trigger=.... 9..5 .2.. 9...
|
||
|
hh_trigger=9353 7353 7353 73.3
|
||
|
ho_trigger=.... .... .... ..3.
|
||
|
""")
|
||
|
|
||
|
cbox.Config.set("io", "use_usb", 1)
|
||
|
cbox.start_audio(cmd_dumper)
|
||
|
|
||
|
global Document
|
||
|
Document = cbox.Document
|
||
|
|
||
|
status = cbox.JackIO.status()
|
||
|
client_name = status.client_name
|
||
|
print ("Client type: %s" % status.client_type)
|
||
|
print ("Client name: %s" % client_name)
|
||
|
print ("Audio inputs: %d, outputs: %d" % (status.audio_inputs, status.audio_outputs))
|
||
|
print ("Period: %d frames" % (status.buffer_size))
|
||
|
print ("Sample rate: %d frames/sec" % (status.sample_rate))
|
||
|
print ("Output resolution: %d bits/sample" % (status.output_resolution))
|
||
|
print ("MIDI input devices: %s" % (status.midi_input))
|
||
|
#cbox.JackIO.create_midi_output('drums', 'system:midi_playback_1')
|
||
|
|
||
|
scene = Document.get_scene()
|
||
|
scene.clear()
|
||
|
instrument = scene.add_new_instrument_layer("test_sampler", "sampler").get_instrument()
|
||
|
pgm_no = instrument.engine.get_unused_program()
|
||
|
pgm = instrument.engine.load_patch_from_file(pgm_no, 'synthbass.sfz', 'SynthBass')
|
||
|
instrument.engine.set_patch(1, pgm_no)
|
||
|
instrument.engine.set_patch(10, pgm_no)
|
||
|
|
||
|
song = Document.get_song()
|
||
|
track = song.add_track()
|
||
|
pattern = song.load_drum_pattern("pat1")
|
||
|
track.add_clip(0, 0, pattern.status().loop_end, pattern)
|
||
|
song.set_loop(0, pattern.status().loop_end)
|
||
|
song.update_playback()
|
||
|
cbox.Transport.play()
|
||
|
|
||
|
print("Ready!")
|
||
|
|
||
|
while True:
|
||
|
cbox.call_on_idle(cmd_dumper)
|