|
|
@ -1,196 +1,66 @@
|
|
|
|
import random
|
|
|
|
import random
|
|
|
|
import datetime
|
|
|
|
import datetime
|
|
|
|
|
|
|
|
|
|
|
|
print("")
|
|
|
|
warms = ["Warm-up bowing technique 1 (page 5)","Warm-up bowing technique 2 (page 5)","Adjusting tuning (page 6)","Warm up: fingers (page 7)","Position changes (page 8)", "Bow changes at the heel (page 8)", "Warm-up bowing technique 3 (page 9)", "String crossing (page 14)", "Rapid scales (page 15)", "Rudiments of bow distribution 1 (page 16)", "Rudiments of bow distribution 2 (page 17)", "Positions 1–4 (page 18)", "Transitional positions (page 19)"]
|
|
|
|
|
|
|
|
|
|
|
|
today = datetime.date.today()
|
|
|
|
def warm(x):
|
|
|
|
todaystr = (today.strftime("%d %B %Y"))
|
|
|
|
return warms[x]
|
|
|
|
print("Cello exercises for " + todaystr + ":")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
warm1 = random.randint(1,13)
|
|
|
|
|
|
|
|
warm2 = random.randint(1,13)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
while warm2 == warm1:
|
|
|
|
|
|
|
|
warm2 = random.randint(1,13)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# print(warm1)
|
|
|
|
|
|
|
|
# print(warm2)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
warm3 = random.randint(1,13)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
while warm3 == warm1:
|
|
|
|
|
|
|
|
warm3 = random.randint(1,13)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
while warm3 == warm2:
|
|
|
|
|
|
|
|
warm3 = random.randint(1,13)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# print(warm3)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
warms = [warm1, warm2, warm3]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if 1 in warms:
|
|
|
|
|
|
|
|
print("Warm-up bowing technique 1 (page 5)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if 2 in warms:
|
|
|
|
|
|
|
|
print("Warm-up bowing technique 2 (page 5)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if 3 in warms:
|
|
|
|
|
|
|
|
print("Adjusting tuning (page 6)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if 4 in warms:
|
|
|
|
|
|
|
|
print("Warm up: fingers (page 7)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if 5 in warms:
|
|
|
|
|
|
|
|
print("Position changes (page 8)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if 6 in warms:
|
|
|
|
|
|
|
|
print("Bow changes at the heel (page 8)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if 7 in warms:
|
|
|
|
|
|
|
|
print("Warm-up bowing technique 3 (page 9)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if 8 in warms:
|
|
|
|
|
|
|
|
print("String crossing (page 14)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if 9 in warms:
|
|
|
|
|
|
|
|
print("Rapid scales (page 15)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if 10 in warms:
|
|
|
|
|
|
|
|
print("Rudiments of bow distribution 1 (page 16)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if 11 in warms:
|
|
|
|
|
|
|
|
print("Rudiments of bow distribution 2 (page 17)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if 12 in warms:
|
|
|
|
|
|
|
|
print("Positions 1–4 (page 18)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if 13 in warms:
|
|
|
|
|
|
|
|
print("Transitional positions (page 19)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
weiter = random.randint(1,11)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if weiter == 1:
|
|
|
|
|
|
|
|
print("First thumb position (page 20)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if weiter == 2:
|
|
|
|
|
|
|
|
print("Chromatic scales (page 22)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if weiter == 3:
|
|
|
|
|
|
|
|
print("Playing arpeggios with various fingerings (page 23)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if weiter == 4:
|
|
|
|
|
|
|
|
print("Rudiments of bow distribution 3 (page 24)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if weiter == 5:
|
|
|
|
|
|
|
|
print("Rapid changes in bow speed (page 25)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if weiter == 6:
|
|
|
|
def randwarm():
|
|
|
|
print("Playing thirds (page 26)")
|
|
|
|
thewarm = random.randint(0, (len(warms) - 1))
|
|
|
|
|
|
|
|
return warm(thewarm)
|
|
|
|
|
|
|
|
|
|
|
|
if weiter == 7:
|
|
|
|
|
|
|
|
print("Playing sixths (page 27)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if weiter == 8:
|
|
|
|
weiters = ["First thumb position (page 20)", "Chromatic scales (page 22)", "Playing arpeggios with various fingerings (page 23)", "Rudiments of bow distribution 3 (page 24)", "Rapid changes in bow speed (page 25)", "Playing thirds (page 26)", "Playing sixths (page 27)", "Playing octaves (page 28)", "Playing staccato notes on one bow (page 29)", "Playing dotted notes (page 30)", "Position changes over an octave (page 31)"]
|
|
|
|
print("Playing octaves (page 28)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if weiter == 9:
|
|
|
|
def weiter(x):
|
|
|
|
print("Playing staccato notes on one bow (page 29)")
|
|
|
|
return weiters[x]
|
|
|
|
|
|
|
|
|
|
|
|
if weiter == 10:
|
|
|
|
def randweiter():
|
|
|
|
print("Playing dotted notes (page 30)")
|
|
|
|
theweiter = random.randint(0, (len(weiters) - 1))
|
|
|
|
|
|
|
|
return weiter(theweiter)
|
|
|
|
|
|
|
|
|
|
|
|
if weiter == 11:
|
|
|
|
tongues = ["Dynamics (page 32)", "Crescendo (page 33)", "Coordinating left and right hands (page 34)", "Bowing technique (page 35)", "Matching tone on the A string (page 36)", "Focus on bowing at the heel (page 37)", "Playing harmonics (page 38)", "Playing glissando (page 39)", "Basic practice techniques for right-left coordination (page 40)", "Left hand (page 41)", "Variable vibrato (page 42)", "Bow control (page 42)", "Balancing force between right and left arms (page 43)", "Developing tone on the C string (page 33)"]
|
|
|
|
print("Position changes over an octave (page 31)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tongue = random.randint(1,14)
|
|
|
|
def tongue(x):
|
|
|
|
|
|
|
|
return tongues[x]
|
|
|
|
|
|
|
|
|
|
|
|
if tongue == 1:
|
|
|
|
def randtongue():
|
|
|
|
print("Dynamics (page 32)")
|
|
|
|
thetongue = random.randint(0, (len(tongues) - 1))
|
|
|
|
|
|
|
|
return tongue(thetongue)
|
|
|
|
|
|
|
|
|
|
|
|
if tongue == 2:
|
|
|
|
scales = ["C major scale (page 10)", "D flat major scale (page 10)", "D major scale (page 11)", "E flat major scale (page 11)", "E major scale (page 11)", "F major scale (page 11)", "F sharp major scale (page 11)", "G major scale (page 12)", "A flat major scale (page 12)", "A major scale (page 12)", "B flat major scale (page 12)", "B major scale (page 12)", "C minor scale (page 13)", "D minor scale (page 13)", "G minor scale (page 13)"]
|
|
|
|
print("Crescendo (page 33)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if tongue == 3:
|
|
|
|
def scale(x):
|
|
|
|
print("Coordinating left and right hands (page 34)")
|
|
|
|
return scales[x]
|
|
|
|
|
|
|
|
|
|
|
|
if tongue == 4:
|
|
|
|
def randscale():
|
|
|
|
print("Bowing technique (page 35)")
|
|
|
|
thescale = random.randint(0, (len(scales) - 1))
|
|
|
|
|
|
|
|
return scale(thescale)
|
|
|
|
|
|
|
|
|
|
|
|
if tongue == 5:
|
|
|
|
if __name__ == "__main__":
|
|
|
|
print("Matching tone on the A string (page 36)")
|
|
|
|
today = datetime.date.today()
|
|
|
|
|
|
|
|
todaystr = (today.strftime("%d %B %Y"))
|
|
|
|
if tongue == 6:
|
|
|
|
print("\nCello exercises for " + todaystr + ":")
|
|
|
|
print("Focus on bowing at the heel (page 37)")
|
|
|
|
"""
|
|
|
|
|
|
|
|
The book recommends:
|
|
|
|
if tongue == 7:
|
|
|
|
a. three basic warm-ups;
|
|
|
|
print("Playing harmonics (page 38)")
|
|
|
|
b. one further intermediate warm-up;
|
|
|
|
|
|
|
|
c. one more advanced exercise;
|
|
|
|
if tongue == 8:
|
|
|
|
d. one scale.
|
|
|
|
print("Playing glissando (page 39)")
|
|
|
|
"""
|
|
|
|
|
|
|
|
warm1 = random.randint(0, (len(warms) - 1))
|
|
|
|
if tongue == 9:
|
|
|
|
warm2 = random.randint(0, (len(warms) - 1))
|
|
|
|
print("Basic practice techniques for right-left coordination (page 40)")
|
|
|
|
while warm2 == warm1:
|
|
|
|
|
|
|
|
warm2 = random.randint(0, (len(warms) - 1))
|
|
|
|
if tongue == 10:
|
|
|
|
warm3 = random.randint(0, (len(warms) - 1))
|
|
|
|
print("Left hand (page 41)")
|
|
|
|
while warm3 == warm1 or warm3 == warm2:
|
|
|
|
|
|
|
|
warm3 = random.randint(0, (len(warms) - 1))
|
|
|
|
if tongue == 11:
|
|
|
|
listwarms = [warm1, warm2, warm3]
|
|
|
|
print("Variable vibrato (page 42)")
|
|
|
|
sortwarms = sorted(listwarms)
|
|
|
|
|
|
|
|
print(warm(sortwarms[0]))
|
|
|
|
if tongue == 12:
|
|
|
|
print(warm(sortwarms[1]))
|
|
|
|
print("Bow control (page 42)")
|
|
|
|
print(warm(sortwarms[2]))
|
|
|
|
|
|
|
|
print(randweiter())
|
|
|
|
if tongue == 13:
|
|
|
|
print(randtongue())
|
|
|
|
print("Balancing force between right and left arms (page 43)")
|
|
|
|
print(randscale())
|
|
|
|
|
|
|
|
|
|
|
|
if tongue == 14:
|
|
|
|
|
|
|
|
print("Developing tone on the C string (page 33)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
scale = random.randint(1,15)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if scale == 1:
|
|
|
|
|
|
|
|
print("C major scale (page 10)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if scale == 2:
|
|
|
|
|
|
|
|
print("D flat major scale (page 10)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if scale == 3:
|
|
|
|
|
|
|
|
print("D major scale (page 11)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if scale == 4:
|
|
|
|
|
|
|
|
print("E flat major scale (page 11)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if scale == 5:
|
|
|
|
|
|
|
|
print("E major scale (page 11)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if scale == 6:
|
|
|
|
|
|
|
|
print("F major scale (page 11)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if scale == 7:
|
|
|
|
|
|
|
|
print("F sharp major scale (page 11)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if scale == 8:
|
|
|
|
|
|
|
|
print("G major scale (page 12)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if scale == 9:
|
|
|
|
|
|
|
|
print("A flat major scale (page 12)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if scale == 10:
|
|
|
|
|
|
|
|
print("A major scale (page 12)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if scale == 11:
|
|
|
|
|
|
|
|
print("B flat major scale (page 12)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if scale == 12:
|
|
|
|
|
|
|
|
print("B major scale (page 12)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if scale == 13:
|
|
|
|
|
|
|
|
print("C minor scale (page 13)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if scale == 14:
|
|
|
|
|
|
|
|
print("D minor scale (page 13)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if scale == 15:
|
|
|
|
|
|
|
|
print("G minor scale (page 13)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print("")
|
|
|
|
|
|
|
|