now unzips BoosterMusicBooks.zip to the home/Music directory on startup.
git-svn-id: https://svn.code.sf.net/p/pianobooster/code/trunk@128 ba081f5d-443b-49a7-ac4b-446c3f91f371
This commit is contained in:
parent
3de0f93f9d
commit
384960a8be
|
@ -0,0 +1,21 @@
|
|||
X:1
|
||||
T:Welcome to C Major Chord
|
||||
M:4/4
|
||||
L:1/4
|
||||
K:Cmaj
|
||||
V: RH1 clef=treble
|
||||
%%MIDI channel 4
|
||||
%%MIDI program 1 4
|
||||
%%MIDI gchordoff
|
||||
V: LH1 clef=bass
|
||||
%%MIDI channel 3
|
||||
%%MIDI program 1 3
|
||||
%%MIDI gchordoff
|
||||
%
|
||||
[V: RH1] | CCCC | EEEE | GGGG | EEEE | C4
|
||||
[V: LH1] | z4 | z4 | z4 | z4 | z4
|
||||
[V: RH1] | CCCC | EEEE | GGGG | EEEE | C4
|
||||
[V: LH1] | z4 | z4 | z4 | z4 | z4
|
||||
[V: RH1] | [C4E4G4] |
|
||||
[V: LH1] | z4 |
|
||||
%
|
|
@ -0,0 +1,99 @@
|
|||
SeqClear
|
||||
SeqSize 1
|
||||
Time 4
|
||||
Timesig 4 4
|
||||
|
||||
Begin Plectrum-Guitar
|
||||
Voice NylonGuitar
|
||||
Octave 4
|
||||
Volume m
|
||||
// Tuning e-- a-- d- g- b- e // A guitar
|
||||
// Tuning g-- d- a- e // A four string tenor Banjo
|
||||
// Capo 0 // The fret number of the capo
|
||||
Sequence { \
|
||||
1.0 0 - 100 - - 90 -; \
|
||||
1.5 0 - - - 90 - -; \
|
||||
2.0 0 - - 90 - 90 -; \
|
||||
2.5 0 - - - 90 - -; \
|
||||
3.0 0 - - - - - 90; \
|
||||
3.5 0 - - - - 90 -; \
|
||||
4.0 0 - - - 90 - -; \
|
||||
4.5 0 - - 90 - - -; \
|
||||
}
|
||||
End
|
||||
|
||||
|
||||
Begin Drum-HH
|
||||
Tone ClosedHiHat
|
||||
Sequence {1 4 80; 2 4 90; 3 4 90; 4 4 90}
|
||||
End
|
||||
|
||||
|
||||
|
||||
DefGroove PlectrumFingerPicking
|
||||
|
||||
|
||||
|
||||
|
||||
SeqClear
|
||||
SeqSize 1
|
||||
Time 4
|
||||
Timesig 4 4
|
||||
|
||||
|
||||
Begin Plectrum-Guitar
|
||||
Voice NylonGuitar
|
||||
Octave 4
|
||||
Volume m
|
||||
Sequence { \
|
||||
1.0 +5 80 80 80 80 80 80; \
|
||||
2.0 +5 80 80 80 80 80 80; \
|
||||
3.0 +5 80 80 80 80 80 80; \
|
||||
4.0 +5 80 80 80 80 80 80; \
|
||||
}
|
||||
End
|
||||
|
||||
|
||||
Begin Drum-HH
|
||||
Tone ClosedHiHat
|
||||
Sequence {1 4 90; 2 4 90; 3 4 90; 4 4 90}
|
||||
End
|
||||
|
||||
|
||||
|
||||
DefGroove PlectrumStrum
|
||||
|
||||
Begin Solo-Right
|
||||
Voice Piano1
|
||||
Channel 4
|
||||
End
|
||||
Begin Solo-Left
|
||||
Voice Piano1
|
||||
Channel 3
|
||||
End
|
||||
|
||||
|
||||
Tempo 90
|
||||
Timesig 4 4
|
||||
|
||||
Groove Metronome4
|
||||
|
||||
z
|
||||
midiInc file=ChordOfCMajor.solo.mid Solo-Left=3 Solo-Right=4 Volume=100
|
||||
|
||||
Groove PlectrumFingerPicking
|
||||
C
|
||||
Am:5
|
||||
G:8
|
||||
Am:5
|
||||
Groove PlectrumStrum
|
||||
C
|
||||
Groove PlectrumFingerPicking
|
||||
C
|
||||
Am:5
|
||||
G:8
|
||||
Am:5
|
||||
Groove PlectrumStrum
|
||||
C
|
||||
C z! z! z!
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
// Musical MIDI Accompaniment file for the Piano Booster project
|
||||
// For more information see: www.pianobooster.sourceforge.net
|
||||
// Creative Commons license
|
||||
|
||||
MidiTName Amazing Grace
|
||||
|
||||
Begin Solo-Right
|
||||
Voice Piano1
|
||||
Channel 4
|
||||
End
|
||||
|
||||
Begin Solo-Left
|
||||
Voice Piano1
|
||||
Channel 3
|
||||
End
|
||||
|
||||
Tempo 87
|
||||
Groove Metronome3
|
||||
z
|
||||
|
||||
Groove countrywaltz2
|
||||
|
||||
Beatadjust 2
|
||||
midiInc file=AmazingGraceMid.solo.mid Solo-Right=4 Solo-Left=3 Volume=80
|
||||
Beatadjust -2
|
||||
|
||||
1 z
|
||||
|
||||
Repeat
|
||||
|
||||
2 F
|
||||
3 F
|
||||
4 Bb
|
||||
5 F
|
||||
6 F
|
||||
7 F
|
||||
8 C7
|
||||
9 C7
|
||||
10 F
|
||||
11 F7
|
||||
12 Bb
|
||||
13 F
|
||||
14 F
|
||||
15 C7
|
||||
RepeatEnding
|
||||
|
||||
16 F
|
||||
17 F
|
||||
|
||||
Groove CountrywaltzIntro
|
||||
20 Bb
|
||||
21 C
|
||||
22 F
|
||||
23 F / z
|
||||
|
||||
Groove CountryWaltz1Sus
|
||||
|
||||
RepeatEnd
|
||||
|
||||
Groove CountryWaltzEnd
|
||||
16 F
|
||||
17 F
|
||||
|
||||
Tempo 77
|
||||
|
||||
18 Bb C F
|
||||
19 F
|
||||
|
||||
cut -1
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
X: 1
|
||||
T: Amazing Grace
|
||||
Q: "English Waltz " 87
|
||||
C: Traditional
|
||||
M: 3/4 % time signature
|
||||
L: 1/4 % default length
|
||||
%%staves {RH LH}
|
||||
V: 1 clef=treble
|
||||
%%MIDI channel 4
|
||||
%%MIDI program 1 4
|
||||
%%MIDI gchordoff
|
||||
%
|
||||
V: 2 clef=bass
|
||||
%%MIDI channel 3
|
||||
%%MIDI program 1 3
|
||||
%%MIDI gchordoff
|
||||
%
|
||||
K: F % key signature
|
||||
%
|
||||
V: 1
|
||||
z2 C/F/ |: F2 A/F/ | A2 G | F2 D |
|
||||
C2 C/F/ | F2 A/G/ | A2 c | c3 |
|
||||
-c2 A/c/ | c2 A/F/ | A2 G | F2 D |
|
||||
C2 C/F/ | F2 A/F/ | A2 G |[1 F3 |
|
||||
-F2 z | z3 | z3 | z3 |
|
||||
z2 C/F/ :|2 F3 | -F2 |]
|
||||
%
|
||||
V: 2
|
||||
z3 |: F,,3 | F,3 | B,,3 |
|
||||
F,3 | F,,3 | F,3 | C,3 |
|
||||
-C,3 | F,,3 | F,3 | B,,3 |
|
||||
F,,3 | F,3 | C,3 |[1 F,,3 |
|
||||
-F,,3 | B,,3 | C,3 | F,3 |
|
||||
F,,3 :|2 F,,3 | -F,,2 |]
|
|
@ -0,0 +1,34 @@
|
|||
X: 1
|
||||
T: Amazing Grace
|
||||
Q: "English Waltz " 87
|
||||
C: Traditional
|
||||
M: 3/4 % time signature
|
||||
L: 1/4 % default length
|
||||
%%staves {RH LH}
|
||||
V: RH clef=treble
|
||||
%%MIDI channel 4
|
||||
%%MIDI program 1 4 % Klavier
|
||||
%%MIDI gchordoff
|
||||
%
|
||||
V: LH clef=bass
|
||||
%%MIDI channel 3
|
||||
%%MIDI program 1 3 % Klavier
|
||||
%%MIDI gchordoff
|
||||
%
|
||||
K: F % key signature
|
||||
%
|
||||
[V: RH] z2 +1+C/+3+F/ |: "F"F2 A/F/ | A2 G |
|
||||
w: A_ma-zing_ grace, how
|
||||
[V: LH] z3 |: +1+F,,3 | +5+F,3 |
|
||||
%
|
||||
[V: RH] "Bb"F2 +2+D | "F"C2 C/+2+F/ | +1+F2 A/G/ | A2 c | "C7"(c3 |
|
||||
w: sweet the sound that_ saved a_ wretch like me!
|
||||
[V: LH] +3+B,,3 | +5+F,3 | +1+F,,3 | +5+F,3 | +4+(C,3 |
|
||||
%
|
||||
[V: RH] c2) A/c/ | "F"c2 A/F/ | "F7"+5+A2 G | "Bb"F2 +2+D |
|
||||
w: _ I_ once was_ lost, but now I'm
|
||||
[V: LH] C,3) | +1+F,,3 | +5+F,3 | +3+B,,3 |
|
||||
%
|
||||
[V: RH] "F"C2 C/+3+F/ | F2 A/F/ | "C7"A2 G |[1 "F"(F3 | F2) +1+C/+3+F/ :|2 "F"(F3 | F2) |]
|
||||
w: found, Was_ blind, but_ now I see._ * * * *
|
||||
[V: LH] +1+F,,3 | +5+F,3 | +3+C,3 |[1 +1+(F,,3 | F,,3) :|2 +1+(F,,3 | F,,2) |]
|
|
@ -0,0 +1,19 @@
|
|||
X: 4
|
||||
T: Easy Clair De La Lune
|
||||
M:4/4
|
||||
L:1/4
|
||||
K:Cmaj
|
||||
V: RH1 clef=treble
|
||||
%%MIDI channel 4
|
||||
%%MIDI program 1 4
|
||||
%%MIDI gchordoff
|
||||
V: LH1 clef=bass
|
||||
%%MIDI channel 3
|
||||
%%MIDI program 1 3
|
||||
%%MIDI gchordoff
|
||||
%
|
||||
[V: RH1] CCCD | E2D2 | CEDD | C4 |
|
||||
[V: RH1] CCCD | E2D2 | CEDD | C4 |
|
||||
[V: RH1] DDDD | E2E2 | EEDD | C4 |
|
||||
[V: RH1] CCCD | E2D2 | CEDD | C4 |
|
||||
%
|
|
@ -0,0 +1,112 @@
|
|||
// Musical MIDI Accompaniment file for the Piano Booster project
|
||||
// For more information see: www.pianobooster.sourceforge.net
|
||||
// Creative Commons license
|
||||
|
||||
MidiTName Easy Clair De La Lune
|
||||
|
||||
SeqClear
|
||||
SeqSize 1
|
||||
Time 4
|
||||
Timesig 4 4
|
||||
|
||||
Begin Plectrum-Guitar
|
||||
Voice NylonGuitar
|
||||
Octave 4
|
||||
Volume m
|
||||
// Tuning e-- a-- d- g- b- e // A guitar
|
||||
// Tuning g-- d- a- e // A four string tenor Banjo
|
||||
// Capo 0 // The fret number of the capo
|
||||
Sequence {
|
||||
1.0 0 5:100 2:80; // On the 1st beat pluck strings 5 + 2
|
||||
1.5 0 3:80; // pluck string number 3 with a velocity of 80
|
||||
2.0 0 4:90 2:80; // The 2nd beat of the bar pluck strings 4 + 2
|
||||
2.5 0 3:80;
|
||||
3.0 0 1:80;
|
||||
3.5 0 2:80;
|
||||
4.0 0 3:80;
|
||||
4.5 0 4:80;
|
||||
}
|
||||
End
|
||||
|
||||
|
||||
Begin Drum-HH
|
||||
Tone ClosedHiHat
|
||||
Sequence {1 4 80; 2 4 90; 3 4 90; 4 4 90}
|
||||
End
|
||||
|
||||
|
||||
|
||||
DefGroove PlectrumFingerPicking
|
||||
|
||||
|
||||
|
||||
|
||||
SeqClear
|
||||
SeqSize 1
|
||||
Time 4
|
||||
Timesig 4 4
|
||||
|
||||
|
||||
Begin Plectrum-Guitar
|
||||
Voice NylonGuitar
|
||||
Octave 4
|
||||
Volume m
|
||||
Sequence {
|
||||
1.0 +5 80;
|
||||
2.0 +5 80;
|
||||
3.0 +5 80;
|
||||
4.0 +5 80;
|
||||
}
|
||||
End
|
||||
|
||||
|
||||
Begin Drum-HH
|
||||
Tone ClosedHiHat
|
||||
Sequence {1 4 90; 2 4 90; 3 4 90; 4 4 90}
|
||||
End
|
||||
|
||||
|
||||
|
||||
DefGroove PlectrumStrum
|
||||
|
||||
Begin Solo-Right
|
||||
Voice Piano1
|
||||
Channel 4
|
||||
End
|
||||
Begin Solo-Left
|
||||
Voice Piano1
|
||||
Channel 3
|
||||
End
|
||||
|
||||
|
||||
Tempo 90
|
||||
Timesig 4 4
|
||||
|
||||
Groove Metronome4
|
||||
|
||||
z
|
||||
midiInc file=ClairDeLaLune.solo.mid Solo-Left=3 Solo-Right=4 Volume=100
|
||||
|
||||
Groove PlectrumFingerPicking
|
||||
//Groove PlectrumStrum
|
||||
C / / G
|
||||
C / G7 /
|
||||
Am / G7 /
|
||||
C
|
||||
|
||||
C / / G
|
||||
C / G7 /
|
||||
Am / G7 /
|
||||
C
|
||||
|
||||
Dm
|
||||
C
|
||||
Em / Dm /
|
||||
C
|
||||
|
||||
C / / G
|
||||
C / G7 /
|
||||
Am / G7 /
|
||||
C
|
||||
|
||||
C z! z! z!
|
|
@ -0,0 +1,19 @@
|
|||
X:1
|
||||
T:Frere Jacques/Brother John
|
||||
M:4/4
|
||||
L:1/4
|
||||
K:Cmaj
|
||||
V: RH1 clef=treble
|
||||
%%MIDI channel 4
|
||||
%%MIDI program 1 4
|
||||
%%MIDI gchordoff
|
||||
V: LH1 clef=bass
|
||||
%%MIDI channel 3
|
||||
%%MIDI program 1 3
|
||||
%%MIDI gchordoff
|
||||
%
|
||||
[V: RH1] |: CDEC | CDEC | EFG2 | EFG2 |
|
||||
[V: LH1] |: E,4 | E,4 | C,4 | C,4 |
|
||||
[V: RH1] G/2A/2G/2F/2 EC | G/2A/2G/2F/2 EC | Cz C2 | Cz C2 :|
|
||||
[V: LH1] E,4 | E,4 | zG,z2 | zG,z2 :|
|
||||
%
|
|
@ -0,0 +1,110 @@
|
|||
// Musical MIDI Accompaniment file for the Piano Booster project
|
||||
// For more information see: www.pianobooster.sourceforge.net
|
||||
// Creative Commons license
|
||||
|
||||
MidiTName Frere Jacques/Brother John
|
||||
SeqClear
|
||||
SeqSize 1
|
||||
Time 4
|
||||
Timesig 4 4
|
||||
|
||||
Begin Plectrum-Guitar
|
||||
Voice NylonGuitar
|
||||
Octave 4
|
||||
Volume m
|
||||
// Tuning e-- a-- d- g- b- e // A guitar
|
||||
// Tuning g-- d- a- e // A four string tenor Banjo
|
||||
// Capo 0 // The fret number of the capo
|
||||
Sequence {
|
||||
1.0 0 5:100 2:80; // On the 1st beat pluck strings 5 + 2
|
||||
1.5 0 3:80; // pluck string number 3 with a velocity of 80
|
||||
2.0 0 4:90 2:80; // The 2nd beat of the bar pluck strings 4 + 2
|
||||
2.5 0 3:80;
|
||||
3.0 0 1:80;
|
||||
3.5 0 2:80;
|
||||
4.0 0 3:80;
|
||||
4.5 0 4:80;
|
||||
}
|
||||
End
|
||||
|
||||
|
||||
Begin Drum-HH
|
||||
Tone ClosedHiHat
|
||||
Sequence {1 4 80; 2 4 90; 3 4 90; 4 4 90}
|
||||
End
|
||||
|
||||
|
||||
|
||||
DefGroove PlectrumFingerPicking
|
||||
|
||||
|
||||
|
||||
|
||||
SeqClear
|
||||
SeqSize 1
|
||||
Time 4
|
||||
Timesig 4 4
|
||||
|
||||
|
||||
Begin Plectrum-Guitar
|
||||
Voice NylonGuitar
|
||||
Octave 4
|
||||
Volume m
|
||||
Sequence { \
|
||||
1.0 +5 80 80 80 80 80 80; \
|
||||
2.0 +5 80 80 80 80 80 80; \
|
||||
3.0 +5 80 80 80 80 80 80; \
|
||||
4.0 +5 80 80 80 80 80 80; \
|
||||
}
|
||||
End
|
||||
|
||||
|
||||
Begin Drum-HH
|
||||
Tone ClosedHiHat
|
||||
Sequence {1 4 90; 2 4 90; 3 4 90; 4 4 90}
|
||||
End
|
||||
|
||||
|
||||
|
||||
DefGroove PlectrumStrum
|
||||
|
||||
Begin Solo-Right
|
||||
Voice Piano1
|
||||
Channel 4
|
||||
End
|
||||
Begin Solo-Left
|
||||
Voice Piano1
|
||||
Channel 3
|
||||
End
|
||||
|
||||
|
||||
Tempo 90
|
||||
Timesig 4 4
|
||||
|
||||
Groove Metronome4
|
||||
|
||||
z
|
||||
midiInc file=FrereJacques.solo.mid Solo-Left=3 Solo-Right=4 Volume=100
|
||||
|
||||
Groove PlectrumFingerPicking
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
Groove PlectrumStrum
|
||||
C G C z
|
||||
C G C z
|
||||
Groove PlectrumFingerPicking
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
Groove PlectrumStrum
|
||||
C G C z
|
||||
C G C z
|
||||
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
|
||||
X:1
|
||||
T:Greensleeves
|
||||
M:3/4
|
||||
L:1/4
|
||||
Q: "Allegro" 1/4 = 130 % tempo
|
||||
K:G
|
||||
%%staves {RH1 LH1}
|
||||
V: RH1 clef=treble name="Piano"
|
||||
%%MIDI channel 4
|
||||
%%MIDI program 1 4
|
||||
%%MIDI gchordoff
|
||||
V: LH1 clef=bass
|
||||
%%MIDI channel 3
|
||||
%%MIDI program 1 3
|
||||
%%MIDI gchordoff
|
||||
%
|
||||
[V: RH1] z2E |: "Em"G2A | BcB | "D"A2F | DEF |
|
||||
w: A las, my love, _ you do me wrong _ To
|
||||
[V: LH1] z3 |: E,3 | D,3 | D,3 | F,3 |
|
||||
[V: RH1] "Em"G2E | E^DE | "B"F2^D | B,2E | "Em"G2A | B c B |
|
||||
w: cast me off _ dis-court-eous-ly, For I have loved_ you
|
||||
[V: LH1] E,3 | B,,3 | B,,3 | ^D,3 | B,,3 | B,,3 |
|
||||
[V: RH1] "D"A2F | DEF | "Em"GFE | "B7"^D^CD | "Em"E2E | E2z |
|
||||
w: so_ long,_ De-light_ing in_your com-pa-ny.
|
||||
[V: LH1] D,3 | B,,3| B,,3 | B,,3 | B,,3 | E,3 |
|
||||
[V: RH1] "G"d3 | d^cB | "D"A2F | DEF | "Em"G2E | E^DE |
|
||||
w: Green-sleeves* was all my joy,__ Green*-sleeves was
|
||||
[V: LH1] G,3 | D,3 | D,3 | F,3 | E,3 | B,,3 |
|
||||
[V: RH1] "B"F2^D | B,2z | "G"d3 | d^cB | "D"A2F | DEF |
|
||||
w: my de-light, Green-sleeves, was my heart of gold,_ And
|
||||
[V: LH1] B,,3 | ^D,3 | G,3 | D,3 | D,3 | F,3 |
|
||||
[V: RH1] "Em"GFE | "B7"^D^CD | "Em"E3 |[1 E2 E :|2 E3 |]
|
||||
w: who but my la_dy Green-sleeves.
|
||||
[V: LH1] E,3 | F,3 | E,3 |[1 B,,3 :|2 B,,3|]
|
||||
%
|
||||
|
|
@ -0,0 +1,128 @@
|
|||
// Musical MIDI Accompaniment file for the Piano Booster project
|
||||
// For more information see: www.pianobooster.sourceforge.net
|
||||
// Creative Commons license
|
||||
MidiTName Greensleeves
|
||||
|
||||
//KeySig E Minor
|
||||
KeySig G Major
|
||||
TimeSig 3 4
|
||||
Tempo 115
|
||||
|
||||
Groove Metronome3
|
||||
z!
|
||||
z
|
||||
|
||||
//Solo Channel 4 // the Right hand piano sound
|
||||
//Melody Channel 3 // the Left hand piano track
|
||||
|
||||
// create 2 tracks for the left/right piano in the greensleeves midi track
|
||||
// Note: this is changing the voicing!! Example only!!!
|
||||
|
||||
Begin Solo-right
|
||||
Voice Piano1
|
||||
Channel 4
|
||||
End
|
||||
|
||||
Begin Solo-Left
|
||||
Voice Piano1
|
||||
Channel 3
|
||||
End
|
||||
|
||||
Begin Solo-RightDoubleUp
|
||||
Voice JazzGuitar
|
||||
Channel 5
|
||||
End
|
||||
|
||||
Begin Solo-LeftDoubleUp
|
||||
Voice JazzGuitar
|
||||
Channel 6
|
||||
End
|
||||
|
||||
|
||||
/// The include file has several tracks. We're interested in 3 and 4 ... the left/right
|
||||
/// hands. These are read and assigned to the solo-left/right MMA tracks. Because of the
|
||||
/// MMA strips off the two beats of silence at the start in the included file
|
||||
/// we adjust the MMA internal pointer to get it in the
|
||||
/// the correct position.
|
||||
Beatadjust 2
|
||||
midiInc file=Greensleeves.solo.mid Solo-Right=4 Solo-Left=3 Volume=80
|
||||
//midiInc file=Greensleeves.solo.mid Solo-Right=4 Solo-Left=3 Volume=80 stripsilence=off
|
||||
BeatAdjust -2 // reset beat pointer. Important!
|
||||
|
||||
Groove CountryWaltz
|
||||
0 z z Em
|
||||
|
||||
1 Em
|
||||
2 G
|
||||
3 D
|
||||
4 Bm
|
||||
5 Em
|
||||
6 /
|
||||
7 B
|
||||
8 /
|
||||
9 Em
|
||||
10 G
|
||||
11 D
|
||||
12 Bm
|
||||
13 Em
|
||||
14 B7
|
||||
15 Em
|
||||
16 /
|
||||
Groove CountryWaltzSus
|
||||
17 G
|
||||
18 /
|
||||
19 D
|
||||
20 Bm
|
||||
21 Em
|
||||
22 /
|
||||
23 B
|
||||
24 /
|
||||
25 G
|
||||
26 /
|
||||
27 D
|
||||
28 Bm
|
||||
29 Em
|
||||
30 B7
|
||||
31 Em
|
||||
32 /
|
||||
Groove CountryWaltz1
|
||||
Arpeggio Volume 25
|
||||
1 Em
|
||||
2 /
|
||||
3 D
|
||||
4 /
|
||||
5 Em
|
||||
6 /
|
||||
7 B
|
||||
8 /
|
||||
9 Em
|
||||
10 /
|
||||
11 D
|
||||
12 /
|
||||
13 Em
|
||||
14 B7
|
||||
15 Em
|
||||
16 /
|
||||
Groove CountryWaltz1Sus
|
||||
Arpeggio Volume 25
|
||||
17 G
|
||||
18 /
|
||||
19 D
|
||||
20 /
|
||||
21 Em
|
||||
22 /
|
||||
23 B
|
||||
24 /
|
||||
25 G
|
||||
26 /
|
||||
27 D
|
||||
28 /
|
||||
29 Em
|
||||
30 B7
|
||||
31 Em
|
||||
Arpeggio Volume pppp
|
||||
32 Em EmzA EmzA
|
||||
Groove CountryWaltzEnd
|
||||
33 /
|
||||
Groove CountryWaltzEnd
|
||||
33 -EmzD z! z!
|
|
@ -0,0 +1,18 @@
|
|||
|
||||
X:77
|
||||
T:Lavender's Blue
|
||||
M:3/4
|
||||
L:1/4
|
||||
K:Cmaj
|
||||
V: RH1 clef=treble
|
||||
%%MIDI channel 4
|
||||
%%MIDI program 1 4
|
||||
%%MIDI gchordoff
|
||||
V: LH1 clef=bass
|
||||
%%MIDI channel 3
|
||||
%%MIDI program 1 3
|
||||
%%MIDI gchordoff
|
||||
%
|
||||
[V: RH1] |: C G G | G F/E/D/C/ | C A A | A3 |
|
||||
[V: RH1] C G G | G F/E/D/C/ | F E D | C3 :|
|
||||
%
|
|
@ -0,0 +1,158 @@
|
|||
// Musical MIDI Accompaniment file for the Piano Booster project
|
||||
// For more information see: www.pianobooster.sourceforge.net
|
||||
// Creative Commons license
|
||||
|
||||
MidiTName Lavender's Blue
|
||||
|
||||
Begin Plectrum-Guitar
|
||||
Voice NylonGuitar
|
||||
Octave 4
|
||||
Volume m
|
||||
// Tuning e-- a-- d- g- b- e // A guitar
|
||||
// Tuning g-- d- a- e // A four string tenor Banjo
|
||||
// Capo 0 // The fret number of the capo
|
||||
Sequence {
|
||||
1.0 0 5:100 2:80; // On the 1st beat pluck strings 5 + 2
|
||||
1.5 0 3:80; // pluck string number 3 with a velocity of 80
|
||||
2.0 0 4:90 2:80; // The 2nd beat of the bar pluck strings 4 + 2
|
||||
2.5 0 3:80;
|
||||
3.0 0 1:80;
|
||||
3.5 0 2:80;
|
||||
}
|
||||
End
|
||||
|
||||
|
||||
|
||||
|
||||
Begin Plectrum-Pattern1
|
||||
Voice NylonGuitar
|
||||
Octave 4
|
||||
Volume m
|
||||
Sequence { 1.0 0 6:110; 1.5 0 3:80; 2.0 0 2:90; 2.5 0 1:80; 3.0 0 4:80; 3.5 0 3:80; }
|
||||
End
|
||||
|
||||
Begin Plectrum-Pattern2
|
||||
Voice NylonGuitar
|
||||
Octave 4
|
||||
Volume m
|
||||
Sequence { 1.0 0 6:110; 1.5 0 3:80; 2.0 0 2:90; 2.5 0 1:80; 3.0 0 2:80; 3.5 0 3:80; }
|
||||
End
|
||||
|
||||
Begin Plectrum-Pattern3
|
||||
Voice NylonGuitar
|
||||
Octave 4
|
||||
Volume m
|
||||
Sequence { 1.0 0 6:110; 1.5 0 3:80; 2.0 0 2-1:90; 2.5 0 3:80; 3.0 0 5:80; 3.5 0 3:80; }
|
||||
End
|
||||
|
||||
Begin Plectrum-Pattern4
|
||||
Voice NylonGuitar
|
||||
Octave 4
|
||||
Volume m
|
||||
Sequence { 1.0 0 6:110; 2.0 0 3-1:90; 3.0 0 3-1:80; } { 1.0 0 5:110; 2.0 0 3-1:90; 3.0 0 3-1:80; }
|
||||
End
|
||||
|
||||
Begin Plectrum-Pattern5
|
||||
Voice NylonGuitar
|
||||
Octave 4
|
||||
Volume m
|
||||
Sequence { 1.0 0 6:110; 2.0 0 3:90; 3.0 0 2-1:80; } { 1.0 0 5:110; 2.0 0 3:90; 3.0 0 2-1:80; }
|
||||
End
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
SeqClear
|
||||
SeqSize 2
|
||||
Time 3
|
||||
Timesig 3 4
|
||||
|
||||
|
||||
Begin Plectrum-Pattern5
|
||||
Voice NylonGuitar
|
||||
Octave 4
|
||||
Volume m
|
||||
Sequence { 1.0 0 6:100; 2.0 0 3:90; 3.0 0 2-1:80; } { 1.0 0 5:100; 2.0 0 3:90; 3.0 0 2-1:80; }
|
||||
End
|
||||
|
||||
|
||||
Begin Drum-HH
|
||||
Tone ClosedHiHat
|
||||
Sequence {1 4 80; 2 4 90; 3 4 90}
|
||||
End
|
||||
|
||||
|
||||
|
||||
DefGroove PlectrumFingerPicking1
|
||||
|
||||
Begin Bass-Simple
|
||||
Voice SlowStrings
|
||||
Volume m
|
||||
Octave 5
|
||||
Sequence {1 2 1 100 ; 3 8 1 90 }
|
||||
End
|
||||
|
||||
SeqClear
|
||||
SeqSize 2
|
||||
Time 3
|
||||
Timesig 3 4
|
||||
|
||||
|
||||
|
||||
Begin Plectrum-Pattern2
|
||||
Voice NylonGuitar
|
||||
Octave 4
|
||||
Volume m
|
||||
Sequence { 1.0 0 6:100; 1.5 0 3:80; 2.0 0 2:90; 2.5 0 1:80; 3.0 0 2:80; 3.5 0 3:80; }
|
||||
End
|
||||
|
||||
Begin Drum-HH
|
||||
Tone ClosedHiHat
|
||||
Sequence {1 4 80; 2 4 90; 3 4 90}
|
||||
End
|
||||
|
||||
|
||||
DefGroove PlectrumFingerPicking2
|
||||
|
||||
|
||||
|
||||
Begin Solo-Right
|
||||
Voice Piano1
|
||||
Channel 4
|
||||
End
|
||||
Begin Solo-Left
|
||||
Voice Piano1
|
||||
Channel 3
|
||||
End
|
||||
|
||||
|
||||
Tempo 90
|
||||
Timesig 3 4
|
||||
|
||||
Groove Metronome3
|
||||
|
||||
z
|
||||
midiInc file=LavendersBlue.solo.mid Solo-Left=3 Solo-Right=4 Volume=100
|
||||
|
||||
Groove PlectrumFingerPicking1
|
||||
C
|
||||
C
|
||||
F
|
||||
F
|
||||
C
|
||||
C
|
||||
G7
|
||||
C
|
||||
|
||||
Groove PlectrumFingerPicking2
|
||||
|
||||
C
|
||||
C
|
||||
F
|
||||
F
|
||||
C
|
||||
C
|
||||
G7
|
||||
C
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
X: 1
|
||||
T: Scarborough Fair
|
||||
M: 3/4
|
||||
L: 1/4
|
||||
Q:1/4=30
|
||||
K:C
|
||||
V:1
|
||||
V: RH1 clef=treble
|
||||
%%MIDI channel 4
|
||||
%%MIDI program 1 4
|
||||
%%MIDI gchordoff
|
||||
V: LH1 clef=bass
|
||||
%%MIDI channel 3
|
||||
%%MIDI program 1 3
|
||||
%%MIDI gchordoff
|
||||
%
|
||||
[V: RH1] |: D2D | A2A | E3/2F/E | D3 | zAc |
|
||||
[V: LH1] |: z3 | z3 | z3 | z3 | z3 |
|
||||
[V: RH1] d2c | ABG | A3- | Azd | d2d |
|
||||
[V: LH1] z3 | z3 | z3 | z3 | z3 |
|
||||
[V: RH1] c2A | AGF | E/C/-C2 |-C3 |
|
||||
[V: LH1] z3 | z3 | z3 | z3 |
|
||||
[V: RH1] D2A | G2F | EDC | D3- | D3 :|
|
||||
[V: LH1] z3 | z3 | z3 | z3 | z3 :|
|
||||
%
|
|
@ -0,0 +1,154 @@
|
|||
// Musical MIDI Accompaniment file for the Piano Booster project
|
||||
// For more information see: www.pianobooster.sourceforge.net
|
||||
// Creative Commons license
|
||||
|
||||
MidiTName Scarborough Fair
|
||||
SeqClear
|
||||
SeqSize 4
|
||||
Time 3
|
||||
Timesig 3 4
|
||||
|
||||
|
||||
DefGroove GuitarStrum3
|
||||
|
||||
|
||||
SeqClear
|
||||
SeqSize 4
|
||||
Time 3
|
||||
Timesig 3 4
|
||||
|
||||
Begin Plectrum-GuitarStrum
|
||||
Voice NylonGuitar
|
||||
Capo 8
|
||||
Volume p
|
||||
Sequence {
|
||||
1.0 +7 6-4:90 3-1:100;
|
||||
2.0 +5 6-1:80;
|
||||
2.5 -5 4-1:50;
|
||||
3.0 +5 6-1:80;
|
||||
3.5 -5 4-1:50;
|
||||
}
|
||||
|
||||
End
|
||||
|
||||
Begin Bass
|
||||
Sequence {1 2. 1 100; 3 4. 1 90; } {1 2. 5 100; 3 4. 5 90; }
|
||||
//Voice PickedBass
|
||||
Voice AcousticBass
|
||||
Octave 3
|
||||
Articulate 90
|
||||
Volume f
|
||||
End
|
||||
|
||||
|
||||
Begin Drum Define
|
||||
D1 1 8 90 ; 2.5 8 90 ; 3 8 90
|
||||
S1 2 8 90 ; 3 8 90
|
||||
CH1 1 8 90
|
||||
C1 CH1 * 6
|
||||
End
|
||||
|
||||
|
||||
//Begin Drum-Kick
|
||||
// Tone KickDrum1
|
||||
// Sequence D1
|
||||
//End
|
||||
|
||||
//Begin Drum-Snare
|
||||
// Tone SnareDrum1
|
||||
// Sequence S1
|
||||
//End
|
||||
|
||||
Begin Drum
|
||||
Sequence {1 4 100 ; 2 4 80 ; 3 4 80}
|
||||
Tone ClosedHiHat
|
||||
Rtime 10
|
||||
Rvolume 10
|
||||
Volume mp
|
||||
End
|
||||
|
||||
|
||||
|
||||
//Begin Plectrum
|
||||
// Voice NylonGuitar
|
||||
// instrument Guitar
|
||||
// Tuning e a d g b e
|
||||
// capo 2 // on the second fret
|
||||
// Strumming /Position strum strings volume mute 1::6 80::80:80:80:
|
||||
|
||||
//plectrum 1 +5 6 ; 2 +5 6; 2.5 -5 4;
|
||||
DefGroove GuitarStrum2
|
||||
|
||||
|
||||
|
||||
Begin Solo-Right
|
||||
Voice Piano1
|
||||
Channel 4
|
||||
End
|
||||
|
||||
Begin Solo-Left
|
||||
Voice Piano1
|
||||
Channel 3
|
||||
End
|
||||
|
||||
KeySig C
|
||||
TimeSig 3 2
|
||||
Tempo 110
|
||||
|
||||
|
||||
Groove Metronome3
|
||||
z!
|
||||
z
|
||||
|
||||
midiInc file=ScarboroughFair.solo.mid Solo-Right=4 Solo-Left=3 Volume=100
|
||||
// midiInc file="scarborough Fair.mid" Solo=1 Volume=70 octave=-1
|
||||
|
||||
|
||||
|
||||
Groove GuitarStrum2
|
||||
//Groove CountryWaltz
|
||||
|
||||
1 Dm
|
||||
2 /
|
||||
3 C
|
||||
4 Dm
|
||||
5 F
|
||||
6 Dm
|
||||
7 F
|
||||
8 A
|
||||
9 /
|
||||
10 Dm
|
||||
11 F
|
||||
12 /
|
||||
13 C
|
||||
14 /
|
||||
15 Dm
|
||||
16 C
|
||||
17 Am
|
||||
18 Dm
|
||||
19 /
|
||||
|
||||
Groove CountryWaltz1Sus
|
||||
|
||||
1 Dm
|
||||
2 /
|
||||
3 C
|
||||
4 Dm
|
||||
5 F
|
||||
6 Dm
|
||||
7 F
|
||||
8 A
|
||||
9 /
|
||||
10 Dm
|
||||
11 F
|
||||
12 /
|
||||
13 C
|
||||
14 /
|
||||
15 Dm
|
||||
16 C
|
||||
17 Am
|
||||
18 Dm
|
||||
Groove CountryWaltzEnd
|
||||
33 /
|
||||
Groove CountryWaltzEnd
|
||||
33 -DmzD z! z!
|
|
@ -0,0 +1,21 @@
|
|||
|
||||
X: 1
|
||||
T:Skip to My Lou
|
||||
M:4/4
|
||||
L:1/4
|
||||
K:Cmaj
|
||||
V:RH1 clef=treble
|
||||
%%MIDI channel 4
|
||||
%%MIDI program 1 4
|
||||
%%MIDI gchordoff
|
||||
%
|
||||
V: LH1 clef=bass
|
||||
%%MIDI channel 3
|
||||
%%MIDI program 1 3
|
||||
%%MIDI gchordoff
|
||||
[V:RH1]|: EEz2 | EEG2 | DD z2 | DDF2 | EEz2 | EEG2 | DE/2F/2ED | z4 |
|
||||
[V:LH1]|: z2CC | z4 | z2 B,B, | z4 | z2CC | z4 | z4 | C2C2 |
|
||||
[V:RH1] E2z2 | EEG2 | D2z2 | DDF2 | E2z2 | EEG2 | DE/2F/2ED | z4 :|
|
||||
[V:LH1] z2C2 | z4 | z2B,2 | z4 | z2C2 | z4 | z4 | C2C2:|
|
||||
%
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
// Musical MIDI Accompaniment file for the Piano Booster project
|
||||
// For more information see: www.pianobooster.sourceforge.net
|
||||
// Creative Commons license
|
||||
|
||||
MidiTName Skip to My Lou
|
||||
|
||||
|
||||
|
||||
Bass Channel 8
|
||||
|
||||
KeySig C
|
||||
//TimeSig 2 4
|
||||
//Time 2
|
||||
|
||||
Tempo 110
|
||||
|
||||
Begin Solo-Right
|
||||
Voice Piano1
|
||||
Channel 4
|
||||
End
|
||||
|
||||
Begin Solo-Left
|
||||
Voice Piano1
|
||||
Channel 3
|
||||
End
|
||||
|
||||
Groove Metronome4
|
||||
SwingMode Off
|
||||
|
||||
z!
|
||||
z
|
||||
|
||||
//Groove Folk
|
||||
Groove GuitarBallad
|
||||
//Groove FolkArticulated
|
||||
//Groove Ballad
|
||||
//Groove twi.mma
|
||||
//Groove Main-A
|
||||
|
||||
|
||||
MIDIinc file=SkipToMyLoo.solo.mid Solo-Right=4 Solo-Left=3 Volume=120
|
||||
Groove GuitarBallad
|
||||
1 C
|
||||
2 C
|
||||
3 G
|
||||
4 G
|
||||
5 C
|
||||
6 C
|
||||
7 G
|
||||
8 C
|
||||
Groove GuitarBallad1
|
||||
Groove FolkArticulated
|
||||
9 C
|
||||
10 C
|
||||
11 G
|
||||
12 G
|
||||
13 C
|
||||
14 C
|
||||
15 G
|
||||
16 C
|
||||
Groove GuitarBalladSus
|
||||
1 C
|
||||
2 C
|
||||
3 G
|
||||
4 G
|
||||
5 C
|
||||
6 C
|
||||
7 G
|
||||
8 C
|
||||
Groove GuitarBallad1Sus
|
||||
//Groove FolkArticulatedSus
|
||||
9 C
|
||||
10 C
|
||||
11 G
|
||||
12 G
|
||||
13 C
|
||||
14 C
|
||||
15 G
|
||||
Groove GuitarBalladEnd
|
||||
16 C
|
||||
|
||||
/ z! z!
|
|
@ -0,0 +1,8 @@
|
|||
<body bgcolor=#FFFFC0>
|
||||
<p>For <b>Skip To My Loo</b> start with both thumbs on <b>middle C</b> and then use one finger for each white note on the piano.
|
||||
|
||||
So for the first two notes which are <b>E</b> of the piece you would use the middle finger of your right hand </p>
|
||||
<p> This piece introucdes the use of two hands as the melody goes across <b>middle C</b></p>
|
||||
|
||||
<p>Note: <i>If you are a complete beiginner try the pieces from the beginner book first</i></p>
|
||||
</body>
|
|
@ -0,0 +1 @@
|
|||
Hello from <b>Skip to my looooooooo ja</b>
|
|
@ -97,7 +97,7 @@ class songDetails:
|
|||
|
||||
os.remove("{0}001.eps".format(tempName ))
|
||||
|
||||
os.system("cp \"{0}.abc\" {1}.abc".format(srcName, webName))
|
||||
os.system("cp \"{0}.abc\" {1}.abc".format(abcMidiName, webName))
|
||||
os.system("cp \"{0}.mma\" {1}.mma".format(srcName, webName))
|
||||
os.system("cp \"{0}.pdf\" {1}.pdf".format(outputName, webName))
|
||||
os.system("cp \"{0}.mid\" {1}.mid".format(outputName, webName))
|
||||
|
@ -141,62 +141,64 @@ def addSong(songs, directory, index, name):
|
|||
|
||||
def runMain(argv):
|
||||
|
||||
if len(argv) > 1:
|
||||
outputRootDir = "Output"
|
||||
zipFileName = "BoosterMusicBooks"
|
||||
MUSIC_RELEASE = "1"
|
||||
outputDir = outputRootDir + '/' + zipFileName + MUSIC_RELEASE
|
||||
webDir = outputRootDir + '/' + "MusicWeb"
|
||||
tempDir = outputRootDir + '/' + "Temp"
|
||||
if len(argv) > 3:
|
||||
print "usage: makescore args"
|
||||
return
|
||||
|
||||
if not os.path.isdir("Output"):
|
||||
os.mkdir("Output")
|
||||
if not os.path.isdir(outputDir):
|
||||
os.mkdir(outputDir)
|
||||
if not os.path.isdir(webDir):
|
||||
os.mkdir(webDir)
|
||||
if not os.path.isdir(tempDir):
|
||||
os.mkdir(tempDir)
|
||||
outputRootDir = "Output"
|
||||
zipFileName = "BoosterMusicBooks"
|
||||
MUSIC_RELEASE = "1"
|
||||
outputDir = outputRootDir + '/' + zipFileName + MUSIC_RELEASE
|
||||
webDir = outputRootDir + '/' + "MusicWeb"
|
||||
tempDir = outputRootDir + '/' + "Temp"
|
||||
|
||||
musicHtmlPage = webDir + "/music.html"
|
||||
#musicHtmlPage = "music.html"
|
||||
if os.path.isfile(musicHtmlPage):
|
||||
os.remove(musicHtmlPage)
|
||||
os.system("cp music.html.start {0}".format(webDir + "/" + "Beginner" + ".html"))
|
||||
os.system("cp music.html.start {0}".format(webDir + "/" + "Booster" + ".html"))
|
||||
if not os.path.isdir("Output"):
|
||||
os.mkdir("Output")
|
||||
if not os.path.isdir(outputDir):
|
||||
os.mkdir(outputDir)
|
||||
if not os.path.isdir(webDir):
|
||||
os.mkdir(webDir)
|
||||
if not os.path.isdir(tempDir):
|
||||
os.mkdir(tempDir)
|
||||
|
||||
musicHtmlPage = webDir + "/music.html"
|
||||
#musicHtmlPage = "music.html"
|
||||
if os.path.isfile(musicHtmlPage):
|
||||
os.remove(musicHtmlPage)
|
||||
os.system("cp music.html.start {0}".format(webDir + "/" + "Beginner" + ".html"))
|
||||
os.system("cp music.html.start {0}".format(webDir + "/" + "Booster" + ".html"))
|
||||
|
||||
|
||||
songs=[]
|
||||
addSong(songs, "Beginner", 1, "ChordOfCMajor")
|
||||
addSong(songs, "Booster", 1, "ClairDeLaLune")
|
||||
addSong(songs, "Booster", 2, "LavendersBlue")
|
||||
addSong(songs, "Booster", 3, "SkipToMyLoo")
|
||||
addSong(songs, "Booster", 4, "FrereJacques")
|
||||
addSong(songs, "Booster", 5, "ScarboroughFair")
|
||||
addSong(songs, "Booster", 6, "Greensleeves")
|
||||
addSong(songs, "Booster", 7, "AmazingGrace")
|
||||
songs=[]
|
||||
addSong(songs, "Beginner Course", 1, "ChordOfCMajor")
|
||||
addSong(songs, "Booster Music", 1, "ClairDeLaLune")
|
||||
addSong(songs, "Booster Music", 2, "LavendersBlue")
|
||||
addSong(songs, "Booster Music", 3, "SkipToMyLoo")
|
||||
addSong(songs, "Booster Music", 4, "FrereJacques")
|
||||
addSong(songs, "Booster Music", 5, "ScarboroughFair")
|
||||
addSong(songs, "Booster Music", 6, "Greensleeves")
|
||||
addSong(songs, "Booster Music", 7, "AmazingGrace")
|
||||
|
||||
result = False
|
||||
for n,song in enumerate(songs):
|
||||
result = song.createMusic(outputDir, webDir, tempDir)
|
||||
if not result:
|
||||
break
|
||||
result = False
|
||||
for n,song in enumerate(songs):
|
||||
result = song.createMusic(outputDir, webDir, tempDir)
|
||||
if not result:
|
||||
break
|
||||
|
||||
if result:
|
||||
os.system("cat music.html.end >>{0}".format(webDir + "/" + "Beginner" + ".html"))
|
||||
os.system("cat music.html.end >>{0}".format(webDir + "/" + "Booster" + ".html"))
|
||||
if result:
|
||||
os.system("cat music.html.end >>{0}".format(webDir + "/" + "Beginner" + ".html"))
|
||||
os.system("cat music.html.end >>{0}".format(webDir + "/" + "Booster" + ".html"))
|
||||
|
||||
#cmd = "gzip \"{0}\" >\"{1}.zip\"" .format(outputDir, outputDir )
|
||||
if os.path.isfile("{0}/{1}.zip".format(outputRootDir, zipFileName )):
|
||||
os.remove("{0}/{1}.zip".format(outputRootDir, zipFileName ))
|
||||
|
||||
cmd = "cd {0};zip -r {1}.zip \"{2}\" " .format(outputRootDir, zipFileName, zipFileName + MUSIC_RELEASE )
|
||||
print cmd
|
||||
if os.system(cmd) != 0:
|
||||
return False
|
||||
#cmd = "gzip \"{0}\" >\"{1}.zip\"" .format(outputDir, outputDir )
|
||||
cmd = "cd {0};zip -r {1}.zip \"{2}\" " .format(outputRootDir, zipFileName, zipFileName + MUSIC_RELEASE )
|
||||
print cmd
|
||||
if os.system(cmd) != 0:
|
||||
return False
|
||||
|
||||
|
||||
else:
|
||||
print "usage: makescore args"
|
||||
|
||||
if __name__ == "__main__":
|
||||
runMain(sys.argv)
|
||||
|
|
Binary file not shown.
|
@ -106,9 +106,6 @@ QtWindow::QtWindow()
|
|||
|
||||
m_sidePanel->init(m_song, m_song->getTrackList(), m_topBar);
|
||||
m_topBar->init(m_song, m_song->getTrackList());
|
||||
createActions();
|
||||
createMenus();
|
||||
readSettings();
|
||||
|
||||
QWidget *centralWin = new QWidget();
|
||||
centralWin->setLayout(mainLayout);
|
||||
|
@ -148,6 +145,10 @@ QtWindow::QtWindow()
|
|||
|
||||
m_settings->loadSettings();
|
||||
|
||||
createActions();
|
||||
createMenus();
|
||||
readSettings();
|
||||
|
||||
show();
|
||||
}
|
||||
|
||||
|
@ -311,9 +312,17 @@ void QtWindow::createActions()
|
|||
m_setupKeyboardAct->setStatusTip(tr("Change the piano keybaord settings"));
|
||||
connect(m_setupKeyboardAct, SIGNAL(triggered()), this, SLOT(showKeyboardSetup()));
|
||||
|
||||
m_toggleSidePanelAct = new QAction(tr("&Show/Hide the Side Panel"), this);
|
||||
m_toggleSidePanelAct->setShortcut(tr("F11"));
|
||||
connect(m_toggleSidePanelAct, SIGNAL(triggered()), this, SLOT(toggleSidePanel()));
|
||||
m_fullScreenStateAct = new QAction(tr("&Fullscreen"), this);
|
||||
m_fullScreenStateAct->setShortcut(tr("F11"));
|
||||
m_fullScreenStateAct->setCheckable(true);
|
||||
connect(m_fullScreenStateAct, SIGNAL(triggered()), this, SLOT(onFullScreenStateAct()));
|
||||
|
||||
m_sidePanelStateAct = new QAction(tr("&Show the Side Panel"), this);
|
||||
m_sidePanelStateAct->setShortcut(tr("F12"));
|
||||
m_sidePanelStateAct->setCheckable(true);
|
||||
m_sidePanelStateAct->setChecked(true);
|
||||
connect(m_sidePanelStateAct, SIGNAL(triggered()), this, SLOT(toggleSidePanel()));
|
||||
|
||||
|
||||
m_setupPreferencesAct = new QAction(tr("&Preferences ..."), this);
|
||||
m_setupPreferencesAct->setShortcut(tr("Ctrl+P"));
|
||||
|
@ -352,7 +361,8 @@ void QtWindow::createMenus()
|
|||
m_fileMenu->addAction(m_exitAct);
|
||||
|
||||
m_viewMenu = menuBar()->addMenu(tr("&View"));
|
||||
m_viewMenu->addAction(m_toggleSidePanelAct);
|
||||
m_viewMenu->addAction(m_sidePanelStateAct);
|
||||
m_viewMenu->addAction(m_fullScreenStateAct);
|
||||
|
||||
m_songMenu = menuBar()->addMenu(tr("&Song"));
|
||||
m_songMenu->addAction(m_songDetailsAct);
|
||||
|
|
|
@ -103,7 +103,14 @@ private slots:
|
|||
|
||||
void toggleSidePanel()
|
||||
{
|
||||
m_sidePanel->setVisible(!m_sidePanel->isVisible());
|
||||
m_sidePanel->setVisible(m_sidePanelStateAct->isChecked());
|
||||
}
|
||||
|
||||
void onFullScreenStateAct () {
|
||||
if (m_fullScreenStateAct->isChecked())
|
||||
showFullScreen();
|
||||
else
|
||||
showNormal();
|
||||
}
|
||||
|
||||
void enableFollowTempo()
|
||||
|
@ -175,7 +182,8 @@ private:
|
|||
QAction *m_songPlayAct;
|
||||
QAction *m_setupMidiAct;
|
||||
QAction *m_setupKeyboardAct;
|
||||
QAction *m_toggleSidePanelAct;
|
||||
QAction *m_sidePanelStateAct;
|
||||
QAction *m_fullScreenStateAct;
|
||||
QAction *m_setupPreferencesAct;
|
||||
QAction *m_songDetailsAct;
|
||||
|
||||
|
|
|
@ -363,102 +363,11 @@ void CSettings::writeSettings()
|
|||
saveXmlFile();
|
||||
}
|
||||
|
||||
|
||||
void CSettings::loadSettings()
|
||||
{
|
||||
unzipBootserMusicBooks();
|
||||
// Set default values
|
||||
|
||||
const int MUSIC_RELEASE = 1;
|
||||
|
||||
|
||||
if (value("PianoBooster/MusicRelease", 0).toInt() < MUSIC_RELEASE)
|
||||
{
|
||||
QDir destMusicDir;
|
||||
QString resourceDir;
|
||||
resourceDir = QApplication::applicationDirPath() + "/music/";
|
||||
|
||||
destMusicDir.setPath(QDir::homePath() );
|
||||
|
||||
if (!QFile::exists(resourceDir))
|
||||
{
|
||||
#ifdef Q_OS_LINUX
|
||||
resourceDir = QApplication::applicationDirPath() + "/../share/" + QSTR_APPNAME + "/music/";
|
||||
#endif
|
||||
#ifdef Q_OS_DARWIN
|
||||
resourceDir = QApplication::applicationDirPath() + "/../Resources/music";
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
QFileInfo zipFile(resourceDir + "BoosterMusicBooks.zip");
|
||||
const QString MUSIC_DIR_NAME("Music");
|
||||
ppLogTrace("xx %s", qPrintable(zipFile.filePath()));
|
||||
|
||||
if (zipFile.exists() )
|
||||
{
|
||||
ppLogTrace("xx2");
|
||||
if (!QDir(destMusicDir.path() + "/" + MUSIC_DIR_NAME).exists())
|
||||
{
|
||||
destMusicDir.mkdir(MUSIC_DIR_NAME);
|
||||
}
|
||||
destMusicDir.setPath(destMusicDir.path() + "/" + MUSIC_DIR_NAME);
|
||||
|
||||
|
||||
QProcess unzip;
|
||||
unzip.start("unzip", QStringList() << "-o" << zipFile.filePath() << "-d" << destMusicDir.path() );
|
||||
ppLogInfo(qPrintable("running unzip -o " + zipFile.filePath() + " -d " + destMusicDir.path()) );
|
||||
char buf[1024];
|
||||
while (true)
|
||||
{
|
||||
qint64 lineLength = unzip.readLine(buf, sizeof(buf));
|
||||
if (lineLength <= 0)
|
||||
break;
|
||||
ppLogInfo(buf);
|
||||
// the line is available in buf
|
||||
}
|
||||
|
||||
|
||||
if (unzip.waitForFinished())
|
||||
{
|
||||
setCurrentSongName(destMusicDir.path() + "/BoosterMusicBooks" + QString::number(MUSIC_RELEASE) + "/Booster/01-ClairDeLaLune.mid");
|
||||
setValue("PianoBooster/MusicRelease", MUSIC_RELEASE);
|
||||
}
|
||||
else
|
||||
{
|
||||
ppLogError("unzip failed");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
srcMusicDir.setPath(resourceDir); // FIXME
|
||||
srcMusicDir.setFilter(QDir::Files);
|
||||
QFileInfoList fileNames = srcMusicDir.entryInfoList();
|
||||
const QString MUSIC_DIR_NAME("PianoBoosterBooks");
|
||||
|
||||
QDir des(QDir::homePath() + "/" + MUSIC_DIR_NAME);
|
||||
if (!QDir(destMusicDir.path() + "/" + MUSIC_DIR_NAME).exists())
|
||||
{
|
||||
destMusicDir.mkdir(MUSIC_DIR_NAME);
|
||||
}
|
||||
destMusicDir.setPath(destMusicDir.path() + "/" + MUSIC_DIR_NAME);
|
||||
|
||||
|
||||
for (int i = 0; i < fileNames.size(); i++)
|
||||
{
|
||||
if ( fileNames.at(i).fileName().endsWith(".mid", Qt::CaseInsensitive ) )
|
||||
{
|
||||
//QFileInfo destFile(destMusicDir, QFileInfo(fileNames.at(i)).fileName());
|
||||
|
||||
QFile::copy(fileNames.at(i).filePath(), destMusicDir.path() + "/" + fileNames.at(i).fileName());
|
||||
if (i==2)
|
||||
openSongFile( destMusicDir.path() + "/" + fileNames.at(i).fileName() );
|
||||
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
setValue("PianoBooster/Version",PB_VERSION);
|
||||
setDefaultValue("ShortCuts/LeftHand", "F2");
|
||||
setDefaultValue("ShortCuts/BothHands","F3");
|
||||
|
@ -477,6 +386,83 @@ void CSettings::loadSettings()
|
|||
|
||||
}
|
||||
|
||||
void CSettings::unzipBootserMusicBooks()
|
||||
{
|
||||
// Set default values
|
||||
|
||||
const int MUSIC_RELEASE = 1;
|
||||
const QString ZIPFILENAME("BoosterMusicBooks.zip");
|
||||
|
||||
|
||||
if (value("PianoBooster/MusicRelease", 0).toInt() < MUSIC_RELEASE)
|
||||
{
|
||||
QString resourceDir = QApplication::applicationDirPath() + "/../music/";
|
||||
|
||||
ppLogTrace("resourceDir1 %s", qPrintable(resourceDir));
|
||||
|
||||
if (!QFile::exists(resourceDir + ZIPFILENAME))
|
||||
resourceDir = QApplication::applicationDirPath() + "/../../music/";
|
||||
ppLogTrace("resourceDir2 %s", qPrintable(resourceDir));
|
||||
|
||||
if (!QFile::exists(resourceDir + ZIPFILENAME))
|
||||
{
|
||||
#ifdef Q_OS_LINUX
|
||||
resourceDir = QApplication::applicationDirPath() + "/../share/" + QSTR_APPNAME + "/music/";
|
||||
#endif
|
||||
#ifdef Q_OS_DARWIN
|
||||
resourceDir = QApplication::applicationDirPath() + "/../Resources/music/";
|
||||
#endif
|
||||
}
|
||||
|
||||
ppLogInfo(qPrintable("applicationDirPath=" + QApplication::applicationDirPath()));
|
||||
ppLogTrace("resourceDir3 %s", qPrintable(resourceDir));
|
||||
|
||||
|
||||
QFileInfo zipFile(resourceDir + ZIPFILENAME);
|
||||
ppLogTrace("xx %s", qPrintable(zipFile.filePath()));
|
||||
|
||||
const QString MUSIC_DIR_NAME("Music");
|
||||
QDir destMusicDir;
|
||||
destMusicDir.setPath(QDir::homePath() );
|
||||
|
||||
if (!zipFile.exists() )
|
||||
{
|
||||
ppLogError(qPrintable("Cannot find " + ZIPFILENAME));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!QDir(destMusicDir.path() + "/" + MUSIC_DIR_NAME).exists())
|
||||
{
|
||||
destMusicDir.mkdir(MUSIC_DIR_NAME);
|
||||
}
|
||||
destMusicDir.setPath(destMusicDir.path() + "/" + MUSIC_DIR_NAME);
|
||||
|
||||
|
||||
QProcess unzip;
|
||||
unzip.start("unzip", QStringList() << "-o" << zipFile.filePath() << "-d" << destMusicDir.path() );
|
||||
ppLogInfo(qPrintable("running unzip -o " + zipFile.filePath() + " -d " + destMusicDir.path()) );
|
||||
char buf[1024];
|
||||
while (true)
|
||||
{
|
||||
qint64 lineLength = unzip.readLine(buf, sizeof(buf));
|
||||
if (lineLength <= 0)
|
||||
break;
|
||||
ppLogInfo(buf);
|
||||
// the line is available in buf
|
||||
}
|
||||
|
||||
|
||||
if (unzip.waitForFinished())
|
||||
{
|
||||
setCurrentSongName(destMusicDir.path() + "/BoosterMusicBooks" + QString::number(MUSIC_RELEASE) + "/Booster Music/01-ClairDeLaLune.mid");
|
||||
setValue("PianoBooster/MusicRelease", MUSIC_RELEASE);
|
||||
}
|
||||
else
|
||||
{
|
||||
ppLogError("unzip failed");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CSettings::setCurrentSongName(const QString & name)
|
||||
{
|
||||
|
|
|
@ -72,6 +72,7 @@ public:
|
|||
QStringList getSongList();
|
||||
void writeSettings();
|
||||
void loadSettings();
|
||||
void unzipBootserMusicBooks();
|
||||
QString getCurrentSongLongFileName()
|
||||
{
|
||||
if (getCurrentSongName().isEmpty())
|
||||
|
|
Loading…
Reference in New Issue