mirror of
https://github.com/microtherion/VocalEasel.git
synced 2024-12-22 03:04:00 +00:00
Double accidentals mostly work, but highlighting on playback is broken
This commit is contained in:
parent
9233e42cfc
commit
a815cc09da
126
Resources/Music/doubleflat.eps
Normal file
126
Resources/Music/doubleflat.eps
Normal file
|
@ -0,0 +1,126 @@
|
||||||
|
%!PS-Adobe-3.0 EPSF-3.0
|
||||||
|
%%BoundingBox: -25 -157 362 470
|
||||||
|
%%Pages: 0
|
||||||
|
%%Title: accidentals.flatflat from Emmentaler-26
|
||||||
|
%%Creator: FontForge
|
||||||
|
%%Author: Matthias Neeracher
|
||||||
|
%%CreationDate: 5:16 28-8-2011
|
||||||
|
%%EndComments
|
||||||
|
%%BeginPreview: 45 74 4 74
|
||||||
|
%0000000000000000000000000000000000000000000000
|
||||||
|
%6CEEC600000000000018DFEA3000000000000000000000
|
||||||
|
%DFFFFD0000000000004FFFFF9000000000000000000000
|
||||||
|
%DFFFFD0000000000003FFFFF9000000000000000000000
|
||||||
|
%CFFFFC0000000000003FFFFF9000000000000000000000
|
||||||
|
%CFFFFC0000000000003FFFFF8000000000000000000000
|
||||||
|
%CFFFFC0000000000002FFFFF8000000000000000000000
|
||||||
|
%CFFFFC0000000000002FFFFF8000000000000000000000
|
||||||
|
%BFFFFB0000000000002FFFFF7000000000000000000000
|
||||||
|
%BFFFFB0000000000001FFFFF7000000000000000000000
|
||||||
|
%BFFFFB0000000000001FFFFF7000000000000000000000
|
||||||
|
%AFFFFB0000000000001FFFFF6000000000000000000000
|
||||||
|
%AFFFFA0000000000000FFFFF6000000000000000000000
|
||||||
|
%AFFFFA0000000000000FFFFF6000000000000000000000
|
||||||
|
%AFFFFA0000000000000FFFFF5000000000000000000000
|
||||||
|
%9FFFFA0000000000000FFFFF5000000000000000000000
|
||||||
|
%9FFFF90000000000000EFFFF5000000000000000000000
|
||||||
|
%9FFFF90000000000000EFFFF5000000000000000000000
|
||||||
|
%9FFFF90000000000000EFFFF4000000000000000000000
|
||||||
|
%8FFFF90000000000000DFFFF4000000000000000000000
|
||||||
|
%8FFFF80000000000000DFFFF4000000000000000000000
|
||||||
|
%8FFFF80000000000000DFFFF3000000000000000000000
|
||||||
|
%7FFFF80000000000000CFFFF3000000000000000000000
|
||||||
|
%7FFFF80000000000000CFFFF3000000000000000000000
|
||||||
|
%7FFFF70000000000000CFFFF2000000000000000000000
|
||||||
|
%7FFFF70000000000000BFFFF2000000000000000000000
|
||||||
|
%6FFFF70000000000000BFFFF2000000000000000000000
|
||||||
|
%6FFFF60000000000000BFFFF2000000000000000000000
|
||||||
|
%6FFFF60000000000000BFFFF1000000000000000000000
|
||||||
|
%6FFFF60000000000000AFFFF1000000000000000000000
|
||||||
|
%5FFFF60000000000000AFFFF1000000000000000000000
|
||||||
|
%5FFFF50000000000000AFFFF0000000000000000000000
|
||||||
|
%5FFFF500000000000009FFFF0000000000000000000000
|
||||||
|
%4FFFF500000000000009FFFF0000000000000000000000
|
||||||
|
%4FFFF500000000000009FFFE0000000000000000000000
|
||||||
|
%4FFFF400000000000008FFFE0000000000000000000000
|
||||||
|
%4FFFF400000000000008FFFE0000000000000000000000
|
||||||
|
%3FFFF400000000000008FFFE0000000000000000000000
|
||||||
|
%3FFFF400003688630007FFFD0000003578762000000000
|
||||||
|
%3FFFF3018DFFFFFFD507FFFD0003AEFFFFFFFC60000000
|
||||||
|
%2FFFF34DFFFFFFFFFFB8FFFD03CFFFFFFFFFFFFC200000
|
||||||
|
%2FFFF9FFFFFFFFFFFFFFFFFD8FFFFFFFFFFFFFFFE30000
|
||||||
|
%2FFFFFFFFDEFFFFFFFFFFFFFFFFFFEDFFFFFFFFFFE2000
|
||||||
|
%2FFFFFF91007FFFFFFFFFFFFFFFB30018FFFFFFFFFC000
|
||||||
|
%1FFFFF9000009FFFFFFFFFFFFFA0000008FFFFFFFFF500
|
||||||
|
%1FFFFE1000002FFFFFFFFFFFFD00000001EFFFFFFFFC00
|
||||||
|
%1FFFF90000000EFFFFFFFFFFF600000000AFFFFFFFFF10
|
||||||
|
%1FFFF40000000AFFFFFFFFFFE0000000005FFFFFFFFF60
|
||||||
|
%0FFFF200000008FFFFFFFFFFB0000000002FFFFFFFFF70
|
||||||
|
%0FFFF000000007FFFFFFFFFF90000000001FFFFFFFFF90
|
||||||
|
%0FFFE000000007FFFFFFFFFF70000000000EFFFFFFFF90
|
||||||
|
%0EFFE000000007FFFFFFFFFF70000000000FFFFFFFFF70
|
||||||
|
%0EFFE000000008FFFFFFFFFF70000000001FFFFFFFFF40
|
||||||
|
%0EFFE00000000AFFFFFFFFFF70000000004FFFFFFFFE10
|
||||||
|
%0EFFD00000000DFFFFFFFFFF70000000008FFFFFFFF800
|
||||||
|
%0DFFD00000002FFFFFFFFFFF6000000000CFFFFFFFF200
|
||||||
|
%0DFFD00000007FFFFFFFFFFF6000000004FFFFFFFF8000
|
||||||
|
%0DFFD0000000DFFFFFFFFFFF600000000BFFFFFFFB0000
|
||||||
|
%0DFFD0000005FFFFFFFDFFFF600000005FFFFFFFD20000
|
||||||
|
%0CFFD000000CFFFFFFD2FFFF60000001EFFFFFFD200000
|
||||||
|
%0CFFD000007FFFFFFD21FFFF7000001CFFFFFFD2000000
|
||||||
|
%0CFFE00002FFFFFFD201FFFF800000BFFFFFFA10000000
|
||||||
|
%0BFFE0000CFFFFFC1000FFFF900009FFFFFF6000000000
|
||||||
|
%0BFFF0008FFFFFA10000FFFFA0008FFFFFD30000000000
|
||||||
|
%0BFFF106FFFFF9000000FFFFB009FFFFF9100000000000
|
||||||
|
%0BFFF25FFFFF60000000EFFFC1BFFFFE60000000000000
|
||||||
|
%0AFFF8FFFFE400000000EFFFDCFFFFC200000000000000
|
||||||
|
%0AFFFFFFFD3000000000EFFFFFFFF90000000000000000
|
||||||
|
%0AFFFFFFC10000000000EFFFFFFE500000000000000000
|
||||||
|
%0AFFFFFB000000000000DFFFFFC2000000000000000000
|
||||||
|
%09FFFFD1000000000000DFFFFD10000000000000000000
|
||||||
|
%06FFFE30000000000000AFFFE300000000000000000000
|
||||||
|
%00AFD4000000000000002CFC3000000000000000000000
|
||||||
|
%0000000000000000000000000000000000000000000000
|
||||||
|
%%EndPreview
|
||||||
|
%%EndProlog
|
||||||
|
%%Page "accidentals.flatflat" 1
|
||||||
|
gsave newpath
|
||||||
|
187 44 moveto
|
||||||
|
186 -25 lineto
|
||||||
|
186 -36 lineto
|
||||||
|
186 -58 188 -80 190 -102 curveto
|
||||||
|
235 -65 279 -21 279 37 curveto
|
||||||
|
279 71 267 106 238 106 curveto
|
||||||
|
208 106 188 76 187 44 curveto
|
||||||
|
closepath
|
||||||
|
17 44 moveto
|
||||||
|
16 -25 lineto
|
||||||
|
16 -36 lineto
|
||||||
|
16 -59 17 -81 20 -104 curveto
|
||||||
|
60 -66 92 -18 92 37 curveto
|
||||||
|
92 70 86 106 58 106 curveto
|
||||||
|
31 106 18 75 17 44 curveto
|
||||||
|
closepath
|
||||||
|
149 -136 moveto
|
||||||
|
147 -30 lineto
|
||||||
|
119 -65 76 -93 42 -125 curveto
|
||||||
|
30 -136 24 -157 7 -157 curveto
|
||||||
|
-5 -157 -14 -148 -14 -136 curveto
|
||||||
|
-25 463 lineto
|
||||||
|
-17 467 -9 470 0 470 curveto
|
||||||
|
9 470 17 467 25 463 curveto
|
||||||
|
19 114 lineto
|
||||||
|
37 133 61 144 87 144 curveto
|
||||||
|
109 144 129 135 144 121 curveto
|
||||||
|
137 463 lineto
|
||||||
|
145 467 153 470 162 470 curveto
|
||||||
|
171 470 180 467 188 463 curveto
|
||||||
|
181 114 lineto
|
||||||
|
205 133 236 144 267 144 curveto
|
||||||
|
321 144 362 99 362 45 curveto
|
||||||
|
362 -37 272 -73 209 -125 curveto
|
||||||
|
195 -136 188 -157 170 -157 curveto
|
||||||
|
158 -157 149 -148 149 -136 curveto
|
||||||
|
closepath
|
||||||
|
fill grestore
|
||||||
|
%%EOF
|
126
Resources/Music/doubleflatcursor.eps
Normal file
126
Resources/Music/doubleflatcursor.eps
Normal file
|
@ -0,0 +1,126 @@
|
||||||
|
%!PS-Adobe-3.0 EPSF-3.0
|
||||||
|
%%BoundingBox: -25 -157 362 470
|
||||||
|
%%Pages: 0
|
||||||
|
%%Title: accidentals.flatflat from Emmentaler-26
|
||||||
|
%%Creator: FontForge
|
||||||
|
%%Author: Matthias Neeracher
|
||||||
|
%%CreationDate: 5:16 28-8-2011
|
||||||
|
%%EndComments
|
||||||
|
%%BeginPreview: 45 74 4 74
|
||||||
|
%0000000000000000000000000000000000000000000000
|
||||||
|
%6CEEC600000000000018DFEA3000000000000000000000
|
||||||
|
%DFFFFD0000000000004FFFFF9000000000000000000000
|
||||||
|
%DFFFFD0000000000003FFFFF9000000000000000000000
|
||||||
|
%CFFFFC0000000000003FFFFF9000000000000000000000
|
||||||
|
%CFFFFC0000000000003FFFFF8000000000000000000000
|
||||||
|
%CFFFFC0000000000002FFFFF8000000000000000000000
|
||||||
|
%CFFFFC0000000000002FFFFF8000000000000000000000
|
||||||
|
%BFFFFB0000000000002FFFFF7000000000000000000000
|
||||||
|
%BFFFFB0000000000001FFFFF7000000000000000000000
|
||||||
|
%BFFFFB0000000000001FFFFF7000000000000000000000
|
||||||
|
%AFFFFB0000000000001FFFFF6000000000000000000000
|
||||||
|
%AFFFFA0000000000000FFFFF6000000000000000000000
|
||||||
|
%AFFFFA0000000000000FFFFF6000000000000000000000
|
||||||
|
%AFFFFA0000000000000FFFFF5000000000000000000000
|
||||||
|
%9FFFFA0000000000000FFFFF5000000000000000000000
|
||||||
|
%9FFFF90000000000000EFFFF5000000000000000000000
|
||||||
|
%9FFFF90000000000000EFFFF5000000000000000000000
|
||||||
|
%9FFFF90000000000000EFFFF4000000000000000000000
|
||||||
|
%8FFFF90000000000000DFFFF4000000000000000000000
|
||||||
|
%8FFFF80000000000000DFFFF4000000000000000000000
|
||||||
|
%8FFFF80000000000000DFFFF3000000000000000000000
|
||||||
|
%7FFFF80000000000000CFFFF3000000000000000000000
|
||||||
|
%7FFFF80000000000000CFFFF3000000000000000000000
|
||||||
|
%7FFFF70000000000000CFFFF2000000000000000000000
|
||||||
|
%7FFFF70000000000000BFFFF2000000000000000000000
|
||||||
|
%6FFFF70000000000000BFFFF2000000000000000000000
|
||||||
|
%6FFFF60000000000000BFFFF2000000000000000000000
|
||||||
|
%6FFFF60000000000000BFFFF1000000000000000000000
|
||||||
|
%6FFFF60000000000000AFFFF1000000000000000000000
|
||||||
|
%5FFFF60000000000000AFFFF1000000000000000000000
|
||||||
|
%5FFFF50000000000000AFFFF0000000000000000000000
|
||||||
|
%5FFFF500000000000009FFFF0000000000000000000000
|
||||||
|
%4FFFF500000000000009FFFF0000000000000000000000
|
||||||
|
%4FFFF500000000000009FFFE0000000000000000000000
|
||||||
|
%4FFFF400000000000008FFFE0000000000000000000000
|
||||||
|
%4FFFF400000000000008FFFE0000000000000000000000
|
||||||
|
%3FFFF400000000000008FFFE0000000000000000000000
|
||||||
|
%3FFFF400003688630007FFFD0000003578762000000000
|
||||||
|
%3FFFF3018DFFFFFFD507FFFD0003AEFFFFFFFC60000000
|
||||||
|
%2FFFF34DFFFFFFFFFFB8FFFD03CFFFFFFFFFFFFC200000
|
||||||
|
%2FFFF9FFFFFFFFFFFFFFFFFD8FFFFFFFFFFFFFFFE30000
|
||||||
|
%2FFFFFFFFDEFFFFFFFFFFFFFFFFFFEDFFFFFFFFFFE2000
|
||||||
|
%2FFFFFF91007FFFFFFFFFFFFFFFB30018FFFFFFFFFC000
|
||||||
|
%1FFFFF9000009FFFFFFFFFFFFFA0000008FFFFFFFFF500
|
||||||
|
%1FFFFE1000002FFFFFFFFFFFFD00000001EFFFFFFFFC00
|
||||||
|
%1FFFF90000000EFFFFFFFFFFF600000000AFFFFFFFFF10
|
||||||
|
%1FFFF40000000AFFFFFFFFFFE0000000005FFFFFFFFF60
|
||||||
|
%0FFFF200000008FFFFFFFFFFB0000000002FFFFFFFFF70
|
||||||
|
%0FFFF000000007FFFFFFFFFF90000000001FFFFFFFFF90
|
||||||
|
%0FFFE000000007FFFFFFFFFF70000000000EFFFFFFFF90
|
||||||
|
%0EFFE000000007FFFFFFFFFF70000000000FFFFFFFFF70
|
||||||
|
%0EFFE000000008FFFFFFFFFF70000000001FFFFFFFFF40
|
||||||
|
%0EFFE00000000AFFFFFFFFFF70000000004FFFFFFFFE10
|
||||||
|
%0EFFD00000000DFFFFFFFFFF70000000008FFFFFFFF800
|
||||||
|
%0DFFD00000002FFFFFFFFFFF6000000000CFFFFFFFF200
|
||||||
|
%0DFFD00000007FFFFFFFFFFF6000000004FFFFFFFF8000
|
||||||
|
%0DFFD0000000DFFFFFFFFFFF600000000BFFFFFFFB0000
|
||||||
|
%0DFFD0000005FFFFFFFDFFFF600000005FFFFFFFD20000
|
||||||
|
%0CFFD000000CFFFFFFD2FFFF60000001EFFFFFFD200000
|
||||||
|
%0CFFD000007FFFFFFD21FFFF7000001CFFFFFFD2000000
|
||||||
|
%0CFFE00002FFFFFFD201FFFF800000BFFFFFFA10000000
|
||||||
|
%0BFFE0000CFFFFFC1000FFFF900009FFFFFF6000000000
|
||||||
|
%0BFFF0008FFFFFA10000FFFFA0008FFFFFD30000000000
|
||||||
|
%0BFFF106FFFFF9000000FFFFB009FFFFF9100000000000
|
||||||
|
%0BFFF25FFFFF60000000EFFFC1BFFFFE60000000000000
|
||||||
|
%0AFFF8FFFFE400000000EFFFDCFFFFC200000000000000
|
||||||
|
%0AFFFFFFFD3000000000EFFFFFFFF90000000000000000
|
||||||
|
%0AFFFFFFC10000000000EFFFFFFE500000000000000000
|
||||||
|
%0AFFFFFB000000000000DFFFFFC2000000000000000000
|
||||||
|
%09FFFFD1000000000000DFFFFD10000000000000000000
|
||||||
|
%06FFFE30000000000000AFFFE300000000000000000000
|
||||||
|
%00AFD4000000000000002CFC3000000000000000000000
|
||||||
|
%0000000000000000000000000000000000000000000000
|
||||||
|
%%EndPreview
|
||||||
|
%%EndProlog
|
||||||
|
%%Page "accidentals.flatflat" 1
|
||||||
|
gsave newpath
|
||||||
|
187 44 moveto
|
||||||
|
186 -25 lineto
|
||||||
|
186 -36 lineto
|
||||||
|
186 -58 188 -80 190 -102 curveto
|
||||||
|
235 -65 279 -21 279 37 curveto
|
||||||
|
279 71 267 106 238 106 curveto
|
||||||
|
208 106 188 76 187 44 curveto
|
||||||
|
closepath
|
||||||
|
17 44 moveto
|
||||||
|
16 -25 lineto
|
||||||
|
16 -36 lineto
|
||||||
|
16 -59 17 -81 20 -104 curveto
|
||||||
|
60 -66 92 -18 92 37 curveto
|
||||||
|
92 70 86 106 58 106 curveto
|
||||||
|
31 106 18 75 17 44 curveto
|
||||||
|
closepath
|
||||||
|
149 -136 moveto
|
||||||
|
147 -30 lineto
|
||||||
|
119 -65 76 -93 42 -125 curveto
|
||||||
|
30 -136 24 -157 7 -157 curveto
|
||||||
|
-5 -157 -14 -148 -14 -136 curveto
|
||||||
|
-25 463 lineto
|
||||||
|
-17 467 -9 470 0 470 curveto
|
||||||
|
9 470 17 467 25 463 curveto
|
||||||
|
19 114 lineto
|
||||||
|
37 133 61 144 87 144 curveto
|
||||||
|
109 144 129 135 144 121 curveto
|
||||||
|
137 463 lineto
|
||||||
|
145 467 153 470 162 470 curveto
|
||||||
|
171 470 180 467 188 463 curveto
|
||||||
|
181 114 lineto
|
||||||
|
205 133 236 144 267 144 curveto
|
||||||
|
321 144 362 99 362 45 curveto
|
||||||
|
362 -37 272 -73 209 -125 curveto
|
||||||
|
195 -136 188 -157 170 -157 curveto
|
||||||
|
158 -157 149 -148 149 -136 curveto
|
||||||
|
closepath
|
||||||
|
1 0 0 setrgbcolor fill grestore
|
||||||
|
%%EOF
|
123
Resources/Music/doublesharp.eps
Normal file
123
Resources/Music/doublesharp.eps
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
%!PS-Adobe-3.0 EPSF-3.0
|
||||||
|
%%BoundingBox: -8 -133 258 133
|
||||||
|
%%Pages: 0
|
||||||
|
%%Title: accidentals.doublesharp from Emmentaler-26
|
||||||
|
%%Creator: FontForge
|
||||||
|
%%Author: Matthias Neeracher
|
||||||
|
%%CreationDate: 5:16 28-8-2011
|
||||||
|
%%EndComments
|
||||||
|
%%BeginPreview: 73 74 4 74
|
||||||
|
%00000000000000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%06EFDCA976431000000000000000000000000000000000000000000000000235689BCEFE30
|
||||||
|
%1FFFFFFFFFFFFFDCA9764310000000000000000000000000000235689BCEFFFFFFFFFFFFC0
|
||||||
|
%2FFFFFFFFFFFFFFFFFFFFFFFDCA81000000000000000039ACEFFFFFFFFFFFFFFFFFFFFFFD0
|
||||||
|
%1FFFFFFFFFFFFFFFFFFFFFFFFFFFD0000000000000003FFFFFFFFFFFFFFFFFFFFFFFFFFFC0
|
||||||
|
%0EFFFFFFFFFFFFFFFFFFFFFFFFFFF4000000000000008FFFFFFFFFFFFFFFFFFFFFFFFFFFA0
|
||||||
|
%0DFFFFFFFFFFFFFFFFFFFFFFFFFFF5000000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFF90
|
||||||
|
%0BFFFFFFFFFFFFFFFFFFFFFFFFFFF6000000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFF70
|
||||||
|
%09FFFFFFFFFFFFFFFFFFFFFFFFFFF600000000000000AFFFFFFFFFFFFFFFFFFFFFFFFFFF60
|
||||||
|
%08FFFFFFFFFFFFFFFFFFFFFFFFFFF700000000000000BFFFFFFFFFFFFFFFFFFFFFFFFFFF40
|
||||||
|
%06FFFFFFFFFFFFFFFFFFFFFFFFFFF800000000000000BFFFFFFFFFFFFFFFFFFFFFFFFFFF30
|
||||||
|
%05FFFFFFFFFFFFFFFFFFFFFFFFFFF800000000000000CFFFFFFFFFFFFFFFFFFFFFFFFFFF10
|
||||||
|
%03FFFFFFFFFFFFFFFFFFFFFFFFFFF900000000000000DFFFFFFFFFFFFFFFFFFFFFFFFFFF00
|
||||||
|
%02FFFFFFFFFFFFFFFFFFFFFFFFFFFB00000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFD00
|
||||||
|
%00FFFFFFFFFFFFFFFFFFFFFFFFFFFD00000000000002FFFFFFFFFFFFFFFFFFFFFFFFFFFC00
|
||||||
|
%00EFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000004FFFFFFFFFFFFFFFFFFFFFFFFFFFA00
|
||||||
|
%00CFFFFFFFFFFFFFFFFFFFFFFFFFFF30000000000007FFFFFFFFFFFFFFFFFFFFFFFFFFF900
|
||||||
|
%00BFFFFFFFFFFFFFFFFFFFFFFFFFFF6000000000000AFFFFFFFFFFFFFFFFFFFFFFFFFFF700
|
||||||
|
%009FFFFFFFFFFFFFFFFFFFFFFFFFFFA000000000000EFFFFFFFFFFFFFFFFFFFFFFFFFFF600
|
||||||
|
%008FFFFFFFFFFFFFFFFFFFFFFFFFFFE000000000003FFFFFFFFFFFFFFFFFFFFFFFFFFFF400
|
||||||
|
%006FFFFFFFFFFFFFFFFFFFFFFFFFFFF400000000008FFFFFFFFFFFFFFFFFFFFFFFFFFFF200
|
||||||
|
%005FFFFFFFFFFFFFFFFFFFFFFFFFFFF80000000000CFFFFFFFFFFFFFFFFFFFFFFFFFFFF100
|
||||||
|
%003FFFFFFFFFFFFFFFFFFFFFFFFFFFFE0000000003FFFFFFFFFFFFFFFFFFFFFFFFFFFFE000
|
||||||
|
%002FFFFFFFFFFFFFFFFFFFFFFFFFFFFF600000000AFFFFFFFFFFFFFFFFFFFFFFFFFFFFD000
|
||||||
|
%000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFC00000002FFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000
|
||||||
|
%000EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFA000
|
||||||
|
%000CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE100004FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
|
||||||
|
%000AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6000
|
||||||
|
%0003EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF600AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1000
|
||||||
|
%0000267889AABEFFFFFFFFFFFFFFFFFFFFFF48FFFFFFFFFFFFFFFFFFFFFFDBA99877510000
|
||||||
|
%000000000000001369CFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFB852000000000000000
|
||||||
|
%000000000000000000026BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA510000000000000000000
|
||||||
|
%000000000000000000000029EFFFFFFFFFFFFFFFFFFFFFFFFD710000000000000000000000
|
||||||
|
%00000000000000000000000019FFFFFFFFFFFFFFFFFFFFFE60000000000000000000000000
|
||||||
|
%000000000000000000000000003CFFFFFFFFFFFFFFFFFFA100000000000000000000000000
|
||||||
|
%0000000000000000000000000000AFFFFFFFFFFFFFFFF60000000000000000000000000000
|
||||||
|
%000000000000000000000000000007FFFFFFFFFFFFFE400000000000000000000000000000
|
||||||
|
%000000000000000000000000000007FFFFFFFFFFFFFE400000000000000000000000000000
|
||||||
|
%0000000000000000000000000000AFFFFFFFFFFFFFFFF60000000000000000000000000000
|
||||||
|
%000000000000000000000000003CFFFFFFFFFFFFFFFFFFA100000000000000000000000000
|
||||||
|
%00000000000000000000000019FFFFFFFFFFFFFFFFFFFFFE60000000000000000000000000
|
||||||
|
%000000000000000000000029EFFFFFFFFFFFFFFFFFFFFFFFFD710000000000000000000000
|
||||||
|
%000000000000000000016BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA510000000000000000000
|
||||||
|
%000000000000000269CFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFB852000000000000000
|
||||||
|
%0000267789AABDFFFFFFFFFFFFFFFFFFFFFF48FFFFFFFFFFFFFFFFFFFFFFDBA99877510000
|
||||||
|
%0003EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF600AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1000
|
||||||
|
%000AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6000
|
||||||
|
%000CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE100004FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
|
||||||
|
%000EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFA000
|
||||||
|
%000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFC00000002FFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000
|
||||||
|
%002FFFFFFFFFFFFFFFFFFFFFFFFFFFFF600000000AFFFFFFFFFFFFFFFFFFFFFFFFFFFFD000
|
||||||
|
%003FFFFFFFFFFFFFFFFFFFFFFFFFFFFE0000000003FFFFFFFFFFFFFFFFFFFFFFFFFFFFE000
|
||||||
|
%005FFFFFFFFFFFFFFFFFFFFFFFFFFFF80000000000CFFFFFFFFFFFFFFFFFFFFFFFFFFFF100
|
||||||
|
%006FFFFFFFFFFFFFFFFFFFFFFFFFFFF400000000008FFFFFFFFFFFFFFFFFFFFFFFFFFFF200
|
||||||
|
%008FFFFFFFFFFFFFFFFFFFFFFFFFFFE000000000003FFFFFFFFFFFFFFFFFFFFFFFFFFFF400
|
||||||
|
%009FFFFFFFFFFFFFFFFFFFFFFFFFFFA000000000000EFFFFFFFFFFFFFFFFFFFFFFFFFFF600
|
||||||
|
%00BFFFFFFFFFFFFFFFFFFFFFFFFFFF7000000000000AFFFFFFFFFFFFFFFFFFFFFFFFFFF700
|
||||||
|
%00CFFFFFFFFFFFFFFFFFFFFFFFFFFF30000000000007FFFFFFFFFFFFFFFFFFFFFFFFFFF900
|
||||||
|
%00EFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000004FFFFFFFFFFFFFFFFFFFFFFFFFFFA00
|
||||||
|
%00FFFFFFFFFFFFFFFFFFFFFFFFFFFD00000000000002FFFFFFFFFFFFFFFFFFFFFFFFFFFC00
|
||||||
|
%02FFFFFFFFFFFFFFFFFFFFFFFFFFFB00000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFD00
|
||||||
|
%03FFFFFFFFFFFFFFFFFFFFFFFFFFF900000000000000DFFFFFFFFFFFFFFFFFFFFFFFFFFF00
|
||||||
|
%05FFFFFFFFFFFFFFFFFFFFFFFFFFF800000000000000CFFFFFFFFFFFFFFFFFFFFFFFFFFF10
|
||||||
|
%06FFFFFFFFFFFFFFFFFFFFFFFFFFF800000000000000BFFFFFFFFFFFFFFFFFFFFFFFFFFF30
|
||||||
|
%08FFFFFFFFFFFFFFFFFFFFFFFFFFF700000000000000BFFFFFFFFFFFFFFFFFFFFFFFFFFF40
|
||||||
|
%09FFFFFFFFFFFFFFFFFFFFFFFFFFF600000000000000AFFFFFFFFFFFFFFFFFFFFFFFFFFF60
|
||||||
|
%0BFFFFFFFFFFFFFFFFFFFFFFFFFFF6000000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFF70
|
||||||
|
%0DFFFFFFFFFFFFFFFFFFFFFFFFFFF5000000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFF90
|
||||||
|
%0EFFFFFFFFFFFFFFFFFFFFFFFFFFF4000000000000008FFFFFFFFFFFFFFFFFFFFFFFFFFFA0
|
||||||
|
%1FFFFFFFFFFFFFFFFFFFFFFFFFFFD0000000000000003FFFFFFFFFFFFFFFFFFFFFFFFFFFC0
|
||||||
|
%2FFFFFFFFFFFFFFFFFFFFFFFDCA81000000000000000039BCEFFFFFFFFFFFFFFFFFFFFFFD0
|
||||||
|
%1FFFFFFFFFFFFFDCA9764310000000000000000000000000000235689BCEFFFFFFFFFFFFC0
|
||||||
|
%06FFECA976431000000000000000000000000000000000000000000000000235689BCEFE40
|
||||||
|
%00000000000000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%%EndPreview
|
||||||
|
%%EndProlog
|
||||||
|
%%Page "accidentals.doublesharp" 1
|
||||||
|
gsave newpath
|
||||||
|
150 0 moveto
|
||||||
|
173 -23 208 -28 241 -28 curveto
|
||||||
|
245 -28 249 -32 249 -36 curveto
|
||||||
|
258 -125 lineto
|
||||||
|
258 -129 255 -133 251 -133 curveto
|
||||||
|
250 -133 lineto
|
||||||
|
161 -124 lineto
|
||||||
|
157 -124 153 -120 153 -116 curveto
|
||||||
|
153 -83 148 -48 125 -25 curveto
|
||||||
|
102 -48 97 -83 97 -116 curveto
|
||||||
|
97 -120 93 -124 89 -124 curveto
|
||||||
|
0 -133 lineto
|
||||||
|
-1 -133 lineto
|
||||||
|
-5 -133 -8 -129 -8 -125 curveto
|
||||||
|
1 -36 lineto
|
||||||
|
1 -32 5 -28 9 -28 curveto
|
||||||
|
42 -28 77 -23 100 0 curveto
|
||||||
|
77 23 42 28 9 28 curveto
|
||||||
|
5 28 1 32 1 36 curveto
|
||||||
|
-8 125 lineto
|
||||||
|
-8 129 -5 133 -1 133 curveto
|
||||||
|
0 133 lineto
|
||||||
|
89 124 lineto
|
||||||
|
93 124 97 120 97 116 curveto
|
||||||
|
97 83 102 48 125 25 curveto
|
||||||
|
148 48 153 83 153 116 curveto
|
||||||
|
153 120 157 124 161 124 curveto
|
||||||
|
250 133 lineto
|
||||||
|
251 133 lineto
|
||||||
|
255 133 258 129 258 125 curveto
|
||||||
|
249 36 lineto
|
||||||
|
249 32 245 28 241 28 curveto
|
||||||
|
208 28 173 23 150 0 curveto
|
||||||
|
closepath
|
||||||
|
fill grestore
|
||||||
|
%%EOF
|
123
Resources/Music/doublesharpcursor.eps
Normal file
123
Resources/Music/doublesharpcursor.eps
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
%!PS-Adobe-3.0 EPSF-3.0
|
||||||
|
%%BoundingBox: -8 -133 258 133
|
||||||
|
%%Pages: 0
|
||||||
|
%%Title: accidentals.doublesharp from Emmentaler-26
|
||||||
|
%%Creator: FontForge
|
||||||
|
%%Author: Matthias Neeracher
|
||||||
|
%%CreationDate: 5:16 28-8-2011
|
||||||
|
%%EndComments
|
||||||
|
%%BeginPreview: 73 74 4 74
|
||||||
|
%00000000000000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%06EFDCA976431000000000000000000000000000000000000000000000000235689BCEFE30
|
||||||
|
%1FFFFFFFFFFFFFDCA9764310000000000000000000000000000235689BCEFFFFFFFFFFFFC0
|
||||||
|
%2FFFFFFFFFFFFFFFFFFFFFFFDCA81000000000000000039ACEFFFFFFFFFFFFFFFFFFFFFFD0
|
||||||
|
%1FFFFFFFFFFFFFFFFFFFFFFFFFFFD0000000000000003FFFFFFFFFFFFFFFFFFFFFFFFFFFC0
|
||||||
|
%0EFFFFFFFFFFFFFFFFFFFFFFFFFFF4000000000000008FFFFFFFFFFFFFFFFFFFFFFFFFFFA0
|
||||||
|
%0DFFFFFFFFFFFFFFFFFFFFFFFFFFF5000000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFF90
|
||||||
|
%0BFFFFFFFFFFFFFFFFFFFFFFFFFFF6000000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFF70
|
||||||
|
%09FFFFFFFFFFFFFFFFFFFFFFFFFFF600000000000000AFFFFFFFFFFFFFFFFFFFFFFFFFFF60
|
||||||
|
%08FFFFFFFFFFFFFFFFFFFFFFFFFFF700000000000000BFFFFFFFFFFFFFFFFFFFFFFFFFFF40
|
||||||
|
%06FFFFFFFFFFFFFFFFFFFFFFFFFFF800000000000000BFFFFFFFFFFFFFFFFFFFFFFFFFFF30
|
||||||
|
%05FFFFFFFFFFFFFFFFFFFFFFFFFFF800000000000000CFFFFFFFFFFFFFFFFFFFFFFFFFFF10
|
||||||
|
%03FFFFFFFFFFFFFFFFFFFFFFFFFFF900000000000000DFFFFFFFFFFFFFFFFFFFFFFFFFFF00
|
||||||
|
%02FFFFFFFFFFFFFFFFFFFFFFFFFFFB00000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFD00
|
||||||
|
%00FFFFFFFFFFFFFFFFFFFFFFFFFFFD00000000000002FFFFFFFFFFFFFFFFFFFFFFFFFFFC00
|
||||||
|
%00EFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000004FFFFFFFFFFFFFFFFFFFFFFFFFFFA00
|
||||||
|
%00CFFFFFFFFFFFFFFFFFFFFFFFFFFF30000000000007FFFFFFFFFFFFFFFFFFFFFFFFFFF900
|
||||||
|
%00BFFFFFFFFFFFFFFFFFFFFFFFFFFF6000000000000AFFFFFFFFFFFFFFFFFFFFFFFFFFF700
|
||||||
|
%009FFFFFFFFFFFFFFFFFFFFFFFFFFFA000000000000EFFFFFFFFFFFFFFFFFFFFFFFFFFF600
|
||||||
|
%008FFFFFFFFFFFFFFFFFFFFFFFFFFFE000000000003FFFFFFFFFFFFFFFFFFFFFFFFFFFF400
|
||||||
|
%006FFFFFFFFFFFFFFFFFFFFFFFFFFFF400000000008FFFFFFFFFFFFFFFFFFFFFFFFFFFF200
|
||||||
|
%005FFFFFFFFFFFFFFFFFFFFFFFFFFFF80000000000CFFFFFFFFFFFFFFFFFFFFFFFFFFFF100
|
||||||
|
%003FFFFFFFFFFFFFFFFFFFFFFFFFFFFE0000000003FFFFFFFFFFFFFFFFFFFFFFFFFFFFE000
|
||||||
|
%002FFFFFFFFFFFFFFFFFFFFFFFFFFFFF600000000AFFFFFFFFFFFFFFFFFFFFFFFFFFFFD000
|
||||||
|
%000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFC00000002FFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000
|
||||||
|
%000EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFA000
|
||||||
|
%000CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE100004FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
|
||||||
|
%000AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6000
|
||||||
|
%0003EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF600AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1000
|
||||||
|
%0000267889AABEFFFFFFFFFFFFFFFFFFFFFF48FFFFFFFFFFFFFFFFFFFFFFDBA99877510000
|
||||||
|
%000000000000001369CFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFB852000000000000000
|
||||||
|
%000000000000000000026BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA510000000000000000000
|
||||||
|
%000000000000000000000029EFFFFFFFFFFFFFFFFFFFFFFFFD710000000000000000000000
|
||||||
|
%00000000000000000000000019FFFFFFFFFFFFFFFFFFFFFE60000000000000000000000000
|
||||||
|
%000000000000000000000000003CFFFFFFFFFFFFFFFFFFA100000000000000000000000000
|
||||||
|
%0000000000000000000000000000AFFFFFFFFFFFFFFFF60000000000000000000000000000
|
||||||
|
%000000000000000000000000000007FFFFFFFFFFFFFE400000000000000000000000000000
|
||||||
|
%000000000000000000000000000007FFFFFFFFFFFFFE400000000000000000000000000000
|
||||||
|
%0000000000000000000000000000AFFFFFFFFFFFFFFFF60000000000000000000000000000
|
||||||
|
%000000000000000000000000003CFFFFFFFFFFFFFFFFFFA100000000000000000000000000
|
||||||
|
%00000000000000000000000019FFFFFFFFFFFFFFFFFFFFFE60000000000000000000000000
|
||||||
|
%000000000000000000000029EFFFFFFFFFFFFFFFFFFFFFFFFD710000000000000000000000
|
||||||
|
%000000000000000000016BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA510000000000000000000
|
||||||
|
%000000000000000269CFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFB852000000000000000
|
||||||
|
%0000267789AABDFFFFFFFFFFFFFFFFFFFFFF48FFFFFFFFFFFFFFFFFFFFFFDBA99877510000
|
||||||
|
%0003EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF600AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1000
|
||||||
|
%000AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6000
|
||||||
|
%000CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE100004FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
|
||||||
|
%000EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFA000
|
||||||
|
%000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFC00000002FFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000
|
||||||
|
%002FFFFFFFFFFFFFFFFFFFFFFFFFFFFF600000000AFFFFFFFFFFFFFFFFFFFFFFFFFFFFD000
|
||||||
|
%003FFFFFFFFFFFFFFFFFFFFFFFFFFFFE0000000003FFFFFFFFFFFFFFFFFFFFFFFFFFFFE000
|
||||||
|
%005FFFFFFFFFFFFFFFFFFFFFFFFFFFF80000000000CFFFFFFFFFFFFFFFFFFFFFFFFFFFF100
|
||||||
|
%006FFFFFFFFFFFFFFFFFFFFFFFFFFFF400000000008FFFFFFFFFFFFFFFFFFFFFFFFFFFF200
|
||||||
|
%008FFFFFFFFFFFFFFFFFFFFFFFFFFFE000000000003FFFFFFFFFFFFFFFFFFFFFFFFFFFF400
|
||||||
|
%009FFFFFFFFFFFFFFFFFFFFFFFFFFFA000000000000EFFFFFFFFFFFFFFFFFFFFFFFFFFF600
|
||||||
|
%00BFFFFFFFFFFFFFFFFFFFFFFFFFFF7000000000000AFFFFFFFFFFFFFFFFFFFFFFFFFFF700
|
||||||
|
%00CFFFFFFFFFFFFFFFFFFFFFFFFFFF30000000000007FFFFFFFFFFFFFFFFFFFFFFFFFFF900
|
||||||
|
%00EFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000004FFFFFFFFFFFFFFFFFFFFFFFFFFFA00
|
||||||
|
%00FFFFFFFFFFFFFFFFFFFFFFFFFFFD00000000000002FFFFFFFFFFFFFFFFFFFFFFFFFFFC00
|
||||||
|
%02FFFFFFFFFFFFFFFFFFFFFFFFFFFB00000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFD00
|
||||||
|
%03FFFFFFFFFFFFFFFFFFFFFFFFFFF900000000000000DFFFFFFFFFFFFFFFFFFFFFFFFFFF00
|
||||||
|
%05FFFFFFFFFFFFFFFFFFFFFFFFFFF800000000000000CFFFFFFFFFFFFFFFFFFFFFFFFFFF10
|
||||||
|
%06FFFFFFFFFFFFFFFFFFFFFFFFFFF800000000000000BFFFFFFFFFFFFFFFFFFFFFFFFFFF30
|
||||||
|
%08FFFFFFFFFFFFFFFFFFFFFFFFFFF700000000000000BFFFFFFFFFFFFFFFFFFFFFFFFFFF40
|
||||||
|
%09FFFFFFFFFFFFFFFFFFFFFFFFFFF600000000000000AFFFFFFFFFFFFFFFFFFFFFFFFFFF60
|
||||||
|
%0BFFFFFFFFFFFFFFFFFFFFFFFFFFF6000000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFF70
|
||||||
|
%0DFFFFFFFFFFFFFFFFFFFFFFFFFFF5000000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFF90
|
||||||
|
%0EFFFFFFFFFFFFFFFFFFFFFFFFFFF4000000000000008FFFFFFFFFFFFFFFFFFFFFFFFFFFA0
|
||||||
|
%1FFFFFFFFFFFFFFFFFFFFFFFFFFFD0000000000000003FFFFFFFFFFFFFFFFFFFFFFFFFFFC0
|
||||||
|
%2FFFFFFFFFFFFFFFFFFFFFFFDCA81000000000000000039BCEFFFFFFFFFFFFFFFFFFFFFFD0
|
||||||
|
%1FFFFFFFFFFFFFDCA9764310000000000000000000000000000235689BCEFFFFFFFFFFFFC0
|
||||||
|
%06FFECA976431000000000000000000000000000000000000000000000000235689BCEFE40
|
||||||
|
%00000000000000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%%EndPreview
|
||||||
|
%%EndProlog
|
||||||
|
%%Page "accidentals.doublesharp" 1
|
||||||
|
gsave newpath
|
||||||
|
150 0 moveto
|
||||||
|
173 -23 208 -28 241 -28 curveto
|
||||||
|
245 -28 249 -32 249 -36 curveto
|
||||||
|
258 -125 lineto
|
||||||
|
258 -129 255 -133 251 -133 curveto
|
||||||
|
250 -133 lineto
|
||||||
|
161 -124 lineto
|
||||||
|
157 -124 153 -120 153 -116 curveto
|
||||||
|
153 -83 148 -48 125 -25 curveto
|
||||||
|
102 -48 97 -83 97 -116 curveto
|
||||||
|
97 -120 93 -124 89 -124 curveto
|
||||||
|
0 -133 lineto
|
||||||
|
-1 -133 lineto
|
||||||
|
-5 -133 -8 -129 -8 -125 curveto
|
||||||
|
1 -36 lineto
|
||||||
|
1 -32 5 -28 9 -28 curveto
|
||||||
|
42 -28 77 -23 100 0 curveto
|
||||||
|
77 23 42 28 9 28 curveto
|
||||||
|
5 28 1 32 1 36 curveto
|
||||||
|
-8 125 lineto
|
||||||
|
-8 129 -5 133 -1 133 curveto
|
||||||
|
0 133 lineto
|
||||||
|
89 124 lineto
|
||||||
|
93 124 97 120 97 116 curveto
|
||||||
|
97 83 102 48 125 25 curveto
|
||||||
|
148 48 153 83 153 116 curveto
|
||||||
|
153 120 157 124 161 124 curveto
|
||||||
|
250 133 lineto
|
||||||
|
251 133 lineto
|
||||||
|
255 133 258 129 258 125 curveto
|
||||||
|
249 36 lineto
|
||||||
|
249 32 245 28 241 28 curveto
|
||||||
|
208 28 173 23 150 0 curveto
|
||||||
|
closepath
|
||||||
|
1 0 0 setrgbcolor fill grestore
|
||||||
|
%%EOF
|
|
@ -53,6 +53,16 @@ static inline bool HasSharp(int semi, int key)
|
||||||
return sSharps[key-1] & (1<<(semi+2));
|
return sSharps[key-1] & (1<<(semi+2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint16_t VLVisualInKey(int8_t pitch, int key)
|
||||||
|
{
|
||||||
|
if (key < 0 && HasFlat(pitch % 12, key))
|
||||||
|
return VLNote::kWantFlat;
|
||||||
|
else if (key > 0 && HasSharp(pitch % 12, key))
|
||||||
|
return VLNote::kWantSharp;
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static inline int8_t SemiToStep(int semi)
|
static inline int8_t SemiToStep(int semi)
|
||||||
{
|
{
|
||||||
static const int8_t sSteps[] =
|
static const int8_t sSteps[] =
|
||||||
|
|
|
@ -10,6 +10,11 @@
|
||||||
|
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
|
|
||||||
|
//
|
||||||
|
// Inquire about accidentals
|
||||||
|
//
|
||||||
|
uint16_t VLVisualInKey(int8_t pitch, int key);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Grid position is defined from middle C
|
// Grid position is defined from middle C
|
||||||
//
|
//
|
||||||
|
|
|
@ -22,6 +22,8 @@ enum VLMusicElement {
|
||||||
kMusicFlat,
|
kMusicFlat,
|
||||||
kMusicSharp,
|
kMusicSharp,
|
||||||
kMusicNatural,
|
kMusicNatural,
|
||||||
|
kMusic2Flat,
|
||||||
|
kMusic2Sharp,
|
||||||
kMusicWholeNote,
|
kMusicWholeNote,
|
||||||
kMusicHalfNote,
|
kMusicHalfNote,
|
||||||
kMusicNote,
|
kMusicNote,
|
||||||
|
@ -38,6 +40,8 @@ enum VLMusicElement {
|
||||||
kMusicFlatCursor,
|
kMusicFlatCursor,
|
||||||
kMusicSharpCursor,
|
kMusicSharpCursor,
|
||||||
kMusicNaturalCursor,
|
kMusicNaturalCursor,
|
||||||
|
kMusic2FlatCursor,
|
||||||
|
kMusic2SharpCursor,
|
||||||
kMusicRestCursor,
|
kMusicRestCursor,
|
||||||
kMusicKillCursor,
|
kMusicKillCursor,
|
||||||
kMusicExtendCursor,
|
kMusicExtendCursor,
|
||||||
|
|
|
@ -30,6 +30,8 @@ static NSString * sElementNames[kMusicElements] = {
|
||||||
@"flat",
|
@"flat",
|
||||||
@"sharp",
|
@"sharp",
|
||||||
@"natural",
|
@"natural",
|
||||||
|
@"doubleflat",
|
||||||
|
@"doublesharp",
|
||||||
@"whole-notehead",
|
@"whole-notehead",
|
||||||
@"half-notehead",
|
@"half-notehead",
|
||||||
@"notehead",
|
@"notehead",
|
||||||
|
@ -46,6 +48,8 @@ static NSString * sElementNames[kMusicElements] = {
|
||||||
@"flatcursor",
|
@"flatcursor",
|
||||||
@"sharpcursor",
|
@"sharpcursor",
|
||||||
@"naturalcursor",
|
@"naturalcursor",
|
||||||
|
@"doubleflatcursor",
|
||||||
|
@"doublesharpcursor",
|
||||||
@"restcursor",
|
@"restcursor",
|
||||||
@"killcursor",
|
@"killcursor",
|
||||||
@"extendcursor",
|
@"extendcursor",
|
||||||
|
@ -169,11 +173,13 @@ static float sFlatPos[] = {
|
||||||
{
|
{
|
||||||
switch (visual & VLNote::kAccidentalsMask) {
|
switch (visual & VLNote::kAccidentalsMask) {
|
||||||
case VLNote::kWantSharp:
|
case VLNote::kWantSharp:
|
||||||
case VLNote::kWant2Sharp: // TODO
|
|
||||||
return kMusicSharp;
|
return kMusicSharp;
|
||||||
case VLNote::kWantFlat:
|
case VLNote::kWantFlat:
|
||||||
case VLNote::kWant2Flat: // TODO
|
|
||||||
return kMusicFlat;
|
return kMusicFlat;
|
||||||
|
case VLNote::kWant2Sharp:
|
||||||
|
return kMusic2Sharp;
|
||||||
|
case VLNote::kWant2Flat:
|
||||||
|
return kMusic2Flat;
|
||||||
case VLNote::kWantNatural:
|
case VLNote::kWantNatural:
|
||||||
return kMusicNatural;
|
return kMusicNatural;
|
||||||
default:
|
default:
|
||||||
|
@ -725,7 +731,7 @@ static int8_t sSharpAcc[] = {
|
||||||
//
|
//
|
||||||
// Extension
|
// Extension
|
||||||
//
|
//
|
||||||
if ([event modifierFlags] & NSShiftKeyMask) {
|
if (([event modifierFlags] & (NSShiftKeyMask|NSAlternateKeyMask|NSCommandKeyMask))==NSShiftKeyMask) {
|
||||||
fCursorAccidental = kMusicExtendCursor;
|
fCursorAccidental = kMusicExtendCursor;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -734,66 +740,38 @@ static int8_t sSharpAcc[] = {
|
||||||
const VLProperties & prop =
|
const VLProperties & prop =
|
||||||
[self song]->fProperties[cursorSection];
|
[self song]->fProperties[cursorSection];
|
||||||
|
|
||||||
if (prop.fKey >= 0) {
|
switch ([event modifierFlags] & (NSShiftKeyMask|NSAlternateKeyMask|NSCommandKeyMask)) {
|
||||||
if (prop.fKey >= sSharpAcc[fCursorPitch % 12]) { // Sharp in Key
|
case NSShiftKeyMask|NSAlternateKeyMask:
|
||||||
switch ([event modifierFlags] & (NSAlternateKeyMask|NSCommandKeyMask)) {
|
fCursorAccidental = kMusic2FlatCursor; // Gbb
|
||||||
case NSAlternateKeyMask:
|
fCursorActualPitch = fCursorPitch-2;
|
||||||
fCursorAccidental = kMusicFlatCursor; // G# -> Gb
|
break;
|
||||||
fCursorActualPitch = fCursorPitch-1;
|
case NSAlternateKeyMask:
|
||||||
break;
|
fCursorAccidental = kMusicFlatCursor; // Gb
|
||||||
case NSCommandKeyMask:
|
fCursorActualPitch = fCursorPitch-1;
|
||||||
fCursorAccidental = kMusicSharpCursor;
|
break;
|
||||||
// Fall through
|
case NSShiftKeyMask|NSCommandKeyMask:
|
||||||
default:
|
fCursorAccidental = kMusic2SharpCursor; // G##
|
||||||
fCursorActualPitch = fCursorPitch+1;
|
fCursorActualPitch = fCursorPitch+2;
|
||||||
break; // G# -> G#
|
break;
|
||||||
case NSAlternateKeyMask|NSCommandKeyMask:
|
case NSCommandKeyMask:
|
||||||
fCursorAccidental = kMusicNaturalCursor; // G# -> G
|
fCursorAccidental = kMusicSharpCursor; // G#
|
||||||
fCursorActualPitch = fCursorPitch;
|
fCursorActualPitch = fCursorPitch+1;
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (prop.fKey <= -sFlatAcc[fCursorPitch % 12]) { // Flat in Key
|
|
||||||
switch ([event modifierFlags] & (NSAlternateKeyMask|NSCommandKeyMask)) {
|
|
||||||
case NSAlternateKeyMask:
|
|
||||||
fCursorAccidental = kMusicFlatCursor;
|
|
||||||
// Fall through
|
|
||||||
default:
|
|
||||||
fCursorActualPitch = fCursorPitch-1;
|
|
||||||
break; // Gb -> Gb
|
|
||||||
case NSCommandKeyMask:
|
|
||||||
fCursorAccidental = kMusicSharpCursor; // Gb -> G#
|
|
||||||
fCursorActualPitch = fCursorPitch+1;
|
|
||||||
break;
|
|
||||||
case NSAlternateKeyMask|NSCommandKeyMask:
|
|
||||||
fCursorAccidental = kMusicNaturalCursor; // Gb -> G
|
|
||||||
fCursorActualPitch = fCursorPitch;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Natural
|
|
||||||
//
|
|
||||||
switch ([event modifierFlags] & (NSAlternateKeyMask|NSCommandKeyMask)) {
|
|
||||||
case NSAlternateKeyMask:
|
|
||||||
fCursorAccidental = kMusicFlatCursor; // G -> Gb
|
|
||||||
fCursorActualPitch = fCursorPitch-1;
|
|
||||||
break;
|
|
||||||
case NSCommandKeyMask:
|
|
||||||
fCursorAccidental = kMusicSharpCursor; // G -> G#
|
|
||||||
fCursorActualPitch = fCursorPitch+1;
|
|
||||||
break;
|
|
||||||
case NSAlternateKeyMask|NSCommandKeyMask:
|
case NSAlternateKeyMask|NSCommandKeyMask:
|
||||||
fCursorAccidental = kMusicNaturalCursor;
|
fCursorAccidental = kMusicNaturalCursor; // G
|
||||||
// Fall through
|
fCursorActualPitch = fCursorPitch;
|
||||||
default:
|
break;
|
||||||
fCursorActualPitch = fCursorPitch;
|
default:
|
||||||
break; // G -> G
|
switch (VLVisualInKey(fCursorPitch, prop.fKey)) {
|
||||||
}
|
case VLNote::kWantFlat:
|
||||||
|
fCursorActualPitch = fCursorPitch-1;
|
||||||
|
case VLNote::kWantSharp:
|
||||||
|
fCursorActualPitch = fCursorPitch+1;
|
||||||
|
default:
|
||||||
|
fCursorActualPitch = fCursorPitch;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (VLRegion) findRegionForEvent:(NSEvent *) event
|
- (VLRegion) findRegionForEvent:(NSEvent *) event
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
//
|
//
|
||||||
// (MN) Matthias Neeracher
|
// (MN) Matthias Neeracher
|
||||||
//
|
//
|
||||||
// Copyright © 2006-2007 Matthias Neeracher
|
// Copyright © 2006-2011 Matthias Neeracher
|
||||||
//
|
//
|
||||||
|
|
||||||
const float kLineX = 5.0;
|
const float kLineX = 5.0;
|
||||||
|
@ -28,9 +28,13 @@ const float kAccW = 10.0f;
|
||||||
const float kSharpY =-15.0f;
|
const float kSharpY =-15.0f;
|
||||||
const float kFlatY = -7.0f;
|
const float kFlatY = -7.0f;
|
||||||
const float kNaturalY =-15.0f;
|
const float kNaturalY =-15.0f;
|
||||||
|
const float k2SharpY = -5.0f;
|
||||||
|
const float k2FlatY = -7.0f;
|
||||||
const float kSharpW =-11.0f;
|
const float kSharpW =-11.0f;
|
||||||
const float kFlatW = -9.0f;
|
const float kFlatW = -9.0f;
|
||||||
const float kNaturalW = -7.0f;
|
const float kNaturalW = -7.0f;
|
||||||
|
const float k2SharpW =-11.0f;
|
||||||
|
const float k2FlatW =-11.0f;
|
||||||
const float kImgScale = 0.04f;
|
const float kImgScale = 0.04f;
|
||||||
#define kChordY ((fNumTopLedgers+6)*kLineH)
|
#define kChordY ((fNumTopLedgers+6)*kLineH)
|
||||||
const float kChordW = 40.0f;
|
const float kChordW = 40.0f;
|
||||||
|
|
|
@ -30,8 +30,16 @@
|
||||||
case kMusicSharpCursor:
|
case kMusicSharpCursor:
|
||||||
newNote.fVisual |= VLNote::kWantSharp;
|
newNote.fVisual |= VLNote::kWantSharp;
|
||||||
break;
|
break;
|
||||||
|
case kMusic2FlatCursor:
|
||||||
|
newNote.fVisual |= VLNote::kWant2Flat;
|
||||||
|
break;
|
||||||
|
case kMusic2SharpCursor:
|
||||||
|
newNote.fVisual |= VLNote::kWant2Sharp;
|
||||||
|
break;
|
||||||
case kMusicNaturalCursor:
|
case kMusicNaturalCursor:
|
||||||
newNote.fVisual |= VLNote::kWantNatural;
|
newNote.fVisual |= VLNote::kWantNatural;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
[[self document] willChangeSong];
|
[[self document] willChangeSong];
|
||||||
|
@ -88,33 +96,21 @@
|
||||||
int cursorX;
|
int cursorX;
|
||||||
int cursorY;
|
int cursorY;
|
||||||
int cursorSect;
|
int cursorSect;
|
||||||
uint16_t cursorVisual = 0;
|
|
||||||
VLMusicElement cursorElt;
|
VLMusicElement cursorElt;
|
||||||
|
|
||||||
cursorX = [self noteXInMeasure:measure at:at];
|
cursorX = [self noteXInMeasure:measure at:at];
|
||||||
if (accidental == kMusicExtendCursor) {
|
if (accidental == kMusicExtendCursor) {
|
||||||
cursorY = [self noteYInMeasure:measure withPitch:pitch];
|
cursorY = [self noteYInMeasure:measure withPitch:pitch];
|
||||||
cursorElt = accidental;
|
cursorElt = accidental;
|
||||||
} else
|
} else {
|
||||||
|
uint16_t visual = 0;
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
default:
|
default:
|
||||||
switch (accidental) {
|
cursorY = [self noteYInMeasure:measure withPitch:pitch visual:&visual] - kNoteY;
|
||||||
case kMusicSharp:
|
|
||||||
cursorVisual = VLNote::kWantSharp;
|
|
||||||
break;
|
|
||||||
case kMusicFlat:
|
|
||||||
cursorVisual = VLNote::kWantFlat;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
cursorY =
|
|
||||||
[self noteYInMeasure:measure withPitch:pitch
|
|
||||||
visual:&cursorVisual] - kNoteY;
|
|
||||||
cursorSect = [self song]->fMeasures[measure].fPropIdx;
|
cursorSect = [self song]->fMeasures[measure].fPropIdx;
|
||||||
[self drawLedgerLinesInSection:cursorSect withPitch:pitch
|
[self drawLedgerLinesInSection:cursorSect withPitch:pitch
|
||||||
visual:cursorVisual at:NSMakePoint(cursorX,
|
visual:visual at:NSMakePoint(cursorX,
|
||||||
[self systemY:fLayout->SystemForMeasure(measure)])];
|
[self systemY:fLayout->SystemForMeasure(measure)])];
|
||||||
cursorElt = kMusicNoteCursor;
|
cursorElt = kMusicNoteCursor;
|
||||||
break;
|
break;
|
||||||
case 'r':
|
case 'r':
|
||||||
|
@ -126,12 +122,13 @@
|
||||||
cursorElt = kMusicKillCursor;
|
cursorElt = kMusicKillCursor;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
NSPoint xy = NSMakePoint(cursorX-kNoteX, cursorY);
|
NSPoint xy = NSMakePoint(cursorX-kNoteX, cursorY);
|
||||||
[[self musicElement:cursorElt]
|
[[self musicElement:cursorElt]
|
||||||
compositeToPoint:xy
|
compositeToPoint:xy
|
||||||
operation: NSCompositeSourceOver];
|
operation: NSCompositeSourceOver];
|
||||||
if (accidental && accidental != kMusicExtendCursor) {
|
if (mode && accidental && accidental != kMusicExtendCursor) {
|
||||||
xy.y += kNoteY;
|
xy.y += kNoteY;
|
||||||
switch (cursorElt= accidental) {
|
switch (cursorElt= accidental) {
|
||||||
case kMusicFlatCursor:
|
case kMusicFlatCursor:
|
||||||
|
@ -142,6 +139,14 @@
|
||||||
xy.x += kSharpW;
|
xy.x += kSharpW;
|
||||||
xy.y += kSharpY;
|
xy.y += kSharpY;
|
||||||
break;
|
break;
|
||||||
|
case kMusic2FlatCursor:
|
||||||
|
xy.x += k2FlatW;
|
||||||
|
xy.y += k2FlatY;
|
||||||
|
break;
|
||||||
|
case kMusic2SharpCursor:
|
||||||
|
xy.x += k2SharpW;
|
||||||
|
xy.y += k2SharpY;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
xy.x += kNaturalW;
|
xy.x += kNaturalW;
|
||||||
xy.y += kNaturalY;
|
xy.y += kNaturalY;
|
||||||
|
@ -156,8 +161,7 @@
|
||||||
- (void) drawNoteCursor:(int)pitch inMeasure:(size_t)measure at:(VLFract)at
|
- (void) drawNoteCursor:(int)pitch inMeasure:(size_t)measure at:(VLFract)at
|
||||||
accidental:(VLMusicElement)accidental
|
accidental:(VLMusicElement)accidental
|
||||||
{
|
{
|
||||||
[self drawNoteCursor:pitch inMeasure:measure at:at
|
[self drawNoteCursor:pitch inMeasure:measure at:at accidental:accidental mode:0];
|
||||||
accidental:accidental mode:' '];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) drawNoteCursor
|
- (void) drawNoteCursor
|
||||||
|
@ -209,6 +213,14 @@
|
||||||
at.x += kFlatW;
|
at.x += kFlatW;
|
||||||
at.y += kFlatY;
|
at.y += kFlatY;
|
||||||
break;
|
break;
|
||||||
|
case kMusic2Sharp:
|
||||||
|
at.x += k2SharpW;
|
||||||
|
at.y += k2SharpY;
|
||||||
|
break;
|
||||||
|
case kMusic2Flat:
|
||||||
|
at.x += k2FlatW;
|
||||||
|
at.y += k2FlatY;
|
||||||
|
break;
|
||||||
case kMusicNatural:
|
case kMusicNatural:
|
||||||
at.x += kNaturalW;
|
at.x += kNaturalW;
|
||||||
at.y += kNaturalY;
|
at.y += kNaturalY;
|
||||||
|
|
|
@ -51,8 +51,26 @@
|
||||||
VLMIDIUserEvent * event = (VLMIDIUserEvent *)[ev pointerValue];
|
VLMIDIUserEvent * event = (VLMIDIUserEvent *)[ev pointerValue];
|
||||||
if (event->fPitch) {
|
if (event->fPitch) {
|
||||||
fNotePitch = event->fPitch;
|
fNotePitch = event->fPitch;
|
||||||
fNoteAccidental = (event->fVisual & VLNote::kWantFlat) ? kMusicFlat
|
fNoteAccidental = kMusicNothing;
|
||||||
: ((event->fVisual & VLNote::kWantSharp) ? kMusicSharp : kMusicNothing);
|
switch (event->fVisual & VLNote::kAccidentalsMask) {
|
||||||
|
case VLNote::kWantFlat:
|
||||||
|
fNoteAccidental = kMusicFlatCursor;
|
||||||
|
break;
|
||||||
|
case VLNote::kWantSharp:
|
||||||
|
fNoteAccidental = kMusicSharpCursor;
|
||||||
|
break;
|
||||||
|
case VLNote::kWant2Flat:
|
||||||
|
fNoteAccidental = kMusic2FlatCursor;
|
||||||
|
break;
|
||||||
|
case VLNote::kWant2Sharp:
|
||||||
|
fNoteAccidental = kMusic2SharpCursor;
|
||||||
|
break;
|
||||||
|
case VLNote::kWantNatural:
|
||||||
|
fNoteAccidental = kMusicNaturalCursor;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
fNoteMeasure = event->fMeasure;
|
fNoteMeasure = event->fMeasure;
|
||||||
fNoteAt = event->fAt;
|
fNoteAt = event->fAt;
|
||||||
fStanza = event->fStanza;
|
fStanza = event->fStanza;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user