I've coded a mock-up of the program I want to create for alternating play/listen rehearsal. Sorry, no GUI -- I want to spend more time playing and less time coding

. The current help output with examples is shown below. Feedback welcomed. I tried to aim for the simplest interface that made sense musically while being consistent with command line conventions. I've also gotten liblo and pyliblo installed and looked at some of the work posted here by others, (very useful, thanks!) but would welcome advice on getting past the "hello liblo" stage and, if possible, some thoughts on which SnooperLooper OSC commands would be required to support a real application.
Thanks,
Mike
$ slpractice.py -h
usage: slpractice.py [-h] [-t TEMPO] [-r REPEATS] [-c COUNT_IN]
[BARSPEC [BARSPEC ...]]
OSC controlled interface to SooperLooper for alternating record/listen.
Supports multiple measure loops with changes of meter and tempo.
positional arguments:
BARSPEC The number of beats in the bar optionally followed by
a relative or absolute tempo indicator e.g. 4*90 means
4 beats at 90% of the baseline tempo whereas 4@90
means 4 beats at 90 bpm. Tempo reverts to baseline at
the end of each bar.
optional arguments:
-h, --help show this help message and exit
-t TEMPO, --tempo TEMPO
baseline tempo in beats per minute (default: 120)
-r REPEATS, --repeats REPEATS
number of repetitions of the record/listen cycle
(default: 8)
-c COUNT_IN, --count_in COUNT_IN
number of measures for the initial count-in. (default:
2). Tempo and meter for count-in measures are taken
from the first BARSPEC
EXAMPLES
slpractice.py (no arguments)
Performs a two bar count-in (4 beats per bar) followed by
8 record/listen cycles of 1 bar at 120 beats per minute.
Terminal output appears as shown below with each count printed
in correct rhythm, ie as a visual metronome.
COUNT-IN
1 2 3 4
1 2 3 4
PLAY
1 2 3 4
LISTEN
1 2 3 4
PLAY
1 2 3 4
LISTEN
1 2 3 4
<< 6 more cycles >>
slpractice.py 4 4*90 4
Performs cycles of 3 bars with a 10% ritard in the second bar
and an 'a tempo' in the third. As in the previous example
there is a two bar count-in followed by 8 record/listen cycles.
Baseline tempo is 120 beats per minute.
slpractice.py -c1 -t90 -r4 2 3*150
Performs a 1 bar count_in of two beats at 90 bpm, then
4 cycles of a 2-beat bar at 90 bpm and a 3-beat bar at 135 bpm.
Note that this example is contrived so that both measures have
the same duration (as if changing between 6/8 and 3/4 time).
The same result could be obtained in other ways, including:
slpractice.py -c1 -t90 -r4 2 3@135
slpractice.py -c1 -t135 -r4 2*66.7 3