mirror of
https://github.com/microtherion/VocalEasel.git
synced 2024-12-22 03:04:00 +00:00
Imported into SVN
This commit is contained in:
commit
2cd57a8869
29
English.lproj/Credits.rtf
Normal file
29
English.lproj/Credits.rtf
Normal file
|
@ -0,0 +1,29 @@
|
|||
{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
|
||||
{\colortbl;\red255\green255\blue255;}
|
||||
\paperw9840\paperh8400
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
|
||||
\f0\b\fs24 \cf0 Engineering:
|
||||
\b0 \
|
||||
Some people\
|
||||
\
|
||||
|
||||
\b Human Interface Design:
|
||||
\b0 \
|
||||
Some other people\
|
||||
\
|
||||
|
||||
\b Testing:
|
||||
\b0 \
|
||||
Hopefully not nobody\
|
||||
\
|
||||
|
||||
\b Documentation:
|
||||
\b0 \
|
||||
Whoever\
|
||||
\
|
||||
|
||||
\b With special thanks to:
|
||||
\b0 \
|
||||
Mom\
|
||||
}
|
BIN
English.lproj/InfoPlist.strings
Normal file
BIN
English.lproj/InfoPlist.strings
Normal file
Binary file not shown.
4
English.lproj/MainMenu.nib/classes.nib
generated
Normal file
4
English.lproj/MainMenu.nib/classes.nib
generated
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
IBClasses = ({CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; });
|
||||
IBVersion = 1;
|
||||
}
|
21
English.lproj/MainMenu.nib/info.nib
generated
Normal file
21
English.lproj/MainMenu.nib/info.nib
generated
Normal file
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>86 100 356 240 0 0 1280 1002 </string>
|
||||
<key>IBEditorPositions</key>
|
||||
<dict>
|
||||
<key>29</key>
|
||||
<string>87 342 318 44 0 0 1280 1002 </string>
|
||||
</dict>
|
||||
<key>IBFramework Version</key>
|
||||
<string>401.0</string>
|
||||
<key>IBOpenObjects</key>
|
||||
<array>
|
||||
<integer>29</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>8A259</string>
|
||||
</dict>
|
||||
</plist>
|
BIN
English.lproj/MainMenu.nib/keyedobjects.nib
generated
Normal file
BIN
English.lproj/MainMenu.nib/keyedobjects.nib
generated
Normal file
Binary file not shown.
15
English.lproj/VLDocument.nib/classes.nib
generated
Normal file
15
English.lproj/VLDocument.nib/classes.nib
generated
Normal file
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
IBClasses = (
|
||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
||||
{CLASS = MyDocument; LANGUAGE = ObjC; SUPERCLASS = NSDocument; },
|
||||
{CLASS = VLDocument; LANGUAGE = ObjC; SUPERCLASS = NSDocument; },
|
||||
{
|
||||
ACTIONS = {scroll = id; setDivisions = id; setKey = id; setTime = id; };
|
||||
CLASS = VLSheetView;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {chords = id; };
|
||||
SUPERCLASS = NSView;
|
||||
}
|
||||
);
|
||||
IBVersion = 1;
|
||||
}
|
16
English.lproj/VLDocument.nib/info.nib
generated
Normal file
16
English.lproj/VLDocument.nib/info.nib
generated
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>41 30 356 240 0 0 1024 746 </string>
|
||||
<key>IBFramework Version</key>
|
||||
<string>437.0</string>
|
||||
<key>IBOpenObjects</key>
|
||||
<array>
|
||||
<integer>5</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>8F46</string>
|
||||
</dict>
|
||||
</plist>
|
BIN
English.lproj/VLDocument.nib/keyedobjects.nib
generated
Normal file
BIN
English.lproj/VLDocument.nib/keyedobjects.nib
generated
Normal file
Binary file not shown.
15
English.lproj/VLDocument~.nib/classes.nib
generated
Normal file
15
English.lproj/VLDocument~.nib/classes.nib
generated
Normal file
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
IBClasses = (
|
||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
||||
{CLASS = MyDocument; LANGUAGE = ObjC; SUPERCLASS = NSDocument; },
|
||||
{CLASS = VLDocument; LANGUAGE = ObjC; SUPERCLASS = NSDocument; },
|
||||
{
|
||||
ACTIONS = {scroll = id; setDivisions = id; setKey = id; setTime = id; };
|
||||
CLASS = VLSheetView;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {chords = id; };
|
||||
SUPERCLASS = NSView;
|
||||
}
|
||||
);
|
||||
IBVersion = 1;
|
||||
}
|
16
English.lproj/VLDocument~.nib/info.nib
generated
Normal file
16
English.lproj/VLDocument~.nib/info.nib
generated
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>41 30 356 240 0 0 1024 746 </string>
|
||||
<key>IBFramework Version</key>
|
||||
<string>437.0</string>
|
||||
<key>IBOpenObjects</key>
|
||||
<array>
|
||||
<integer>5</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>8F46</string>
|
||||
</dict>
|
||||
</plist>
|
BIN
English.lproj/VLDocument~.nib/keyedobjects.nib
generated
Normal file
BIN
English.lproj/VLDocument~.nib/keyedobjects.nib
generated
Normal file
Binary file not shown.
51
Resources/Info.plist
Normal file
51
Resources/Info.plist
Normal file
|
@ -0,0 +1,51 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>vlsong</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>DocumentType</string>
|
||||
<key>CFBundleTypeOSTypes</key>
|
||||
<array>
|
||||
<string>????</string>
|
||||
</array>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Editor</string>
|
||||
<key>LSTypeIsPackage</key>
|
||||
<false/>
|
||||
<key>NSDocumentClass</key>
|
||||
<string>VLDocument</string>
|
||||
<key>NSPersistentStoreTypeKey</key>
|
||||
<string>XML</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>Vocalese</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.aereperennius.Vocalese</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>MainMenu</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>NSApplication</string>
|
||||
</dict>
|
||||
</plist>
|
114
Resources/Music/eighth-flag.eps
Normal file
114
Resources/Music/eighth-flag.eps
Normal file
|
@ -0,0 +1,114 @@
|
|||
%!PS-Adobe-3.0 EPSF-3.0
|
||||
%%BoundingBox: -13.7812 -752.095 208.323 0.110352
|
||||
%%Pages: 0
|
||||
%%Title: $8th-Flag from feta
|
||||
%%Creator: FontForge
|
||||
%%Author: Matthias Neeracher
|
||||
%%CreationDate: 21:59 10-1-2006
|
||||
%%EndComments
|
||||
%%BeginPreview: 22 73 4 73
|
||||
%3100000000000000000000
|
||||
%F500000000000000000000
|
||||
%F500000000000000000000
|
||||
%F700000000000000000000
|
||||
%F800000000000000000000
|
||||
%FB00000000000000000000
|
||||
%FE00000000000000000000
|
||||
%FF20000000000000000000
|
||||
%FF60000000000000000000
|
||||
%FFA0000000000000000000
|
||||
%FFE1000000000000000000
|
||||
%FFF5000000000000000000
|
||||
%FFFB000000000000000000
|
||||
%FFFF200000000000000000
|
||||
%FFFF900000000000000000
|
||||
%FFFFF20000000000000000
|
||||
%FFFFF90000000000000000
|
||||
%FFFFFF2000000000000000
|
||||
%FFFFFF9000000000000000
|
||||
%FFFFFFF200000000000000
|
||||
%FFFFFFFB00000000000000
|
||||
%FFFFFFFF50000000000000
|
||||
%FFFFFFFFD0000000000000
|
||||
%FFFFFFFFF8000000000000
|
||||
%CEFFFFFFFF200000000000
|
||||
%02DFFFFFFFB00000000000
|
||||
%002EFFFFFFF50000000000
|
||||
%0003EFFFFFFE1000000000
|
||||
%00003EFFFFFF9000000000
|
||||
%000004FFFFFFF300000000
|
||||
%0000006FFFFFFC00000000
|
||||
%00000008FFFFFF60000000
|
||||
%00000000AFFFFFE1000000
|
||||
%000000001CFFFFF8000000
|
||||
%0000000002EFFFFF200000
|
||||
%00000000005FFFFF900000
|
||||
%000000000009FFFFF20000
|
||||
%000000000001DFFFF90000
|
||||
%0000000000003FFFFF2000
|
||||
%00000000000009FFFF8000
|
||||
%00000000000001EFFFE000
|
||||
%000000000000007FFFF500
|
||||
%000000000000001EFFFA00
|
||||
%0000000000000007FFFE00
|
||||
%0000000000000001FFFF40
|
||||
%0000000000000000AFFF80
|
||||
%00000000000000005FFFB0
|
||||
%00000000000000001FFFE0
|
||||
%00000000000000000DFFF1
|
||||
%00000000000000000AFFF3
|
||||
%000000000000000008FFF4
|
||||
%000000000000000007FFF4
|
||||
%000000000000000007FFF5
|
||||
%000000000000000007FFF4
|
||||
%000000000000000008FFF4
|
||||
%000000000000000009FFF3
|
||||
%00000000000000000AFFF2
|
||||
%00000000000000000CFFF0
|
||||
%00000000000000000EFFD0
|
||||
%00000000000000001FFFB0
|
||||
%00000000000000004FFF90
|
||||
%00000000000000007FFF60
|
||||
%0000000000000000BFFF30
|
||||
%0000000000000000EFFE00
|
||||
%0000000000000003FFFB00
|
||||
%0000000000000008FFF700
|
||||
%000000000000000DFFF300
|
||||
%000000000000003FFFD000
|
||||
%000000000000008FFF9000
|
||||
%00000000000000DFFF4000
|
||||
%00000000000004FFFD0000
|
||||
%00000000000005FFF80000
|
||||
%00000000000000AFC10000
|
||||
%%EndPreview
|
||||
%%EndProlog
|
||||
%%Page "$8th-Flag" 1
|
||||
gsave newpath
|
||||
-13.7812 -125.027 moveto
|
||||
-13.7812 0.110352 lineto
|
||||
-6.89062 0.110352 lineto
|
||||
0 0.110352 lineto
|
||||
0 -4.52051 lineto
|
||||
0 -16.2012 2.1377 -37.4863 4.73926 -51.709 curveto
|
||||
11.1934 -86.9912 23.4346 -121.775 43.54 -161.963 curveto
|
||||
57.6348 -190.136 70.8203 -212.955 103.872 -266.373 curveto
|
||||
138.152 -321.775 152.201 -346.117 165.943 -373.925 curveto
|
||||
187.084 -416.703 200.057 -455.732 205.337 -492.447 curveto
|
||||
212.951 -545.388 205.82 -616.648 186.059 -685.116 curveto
|
||||
180.283 -705.127 168.515 -739.052 165.865 -743.33 curveto
|
||||
164.217 -745.991 160.64 -748.996 157.166 -750.637 curveto
|
||||
154.525 -751.884 153.362 -752.095 149.118 -752.095 curveto
|
||||
144.708 -752.095 143.746 -751.9 140.463 -750.348 curveto
|
||||
133.071 -746.853 128.571 -740.629 128.016 -733.131 curveto
|
||||
127.737 -729.381 127.838 -728.997 131.615 -719.46 curveto
|
||||
151.983 -668.026 163.727 -619.226 167.868 -568.798 curveto
|
||||
169.114 -553.639 169.533 -530.377 168.732 -520.838 curveto
|
||||
163.457 -457.971 127.515 -391.015 54.8037 -308.6 curveto
|
||||
14.7344 -265.215 lineto
|
||||
0.385742 -250.165 lineto
|
||||
-6.69824 -250.165 lineto
|
||||
-13.7812 -250.165 lineto
|
||||
-13.7812 -125.027 lineto
|
||||
closepath
|
||||
fill grestore
|
||||
%%EOF
|
112
Resources/Music/eighth-rest.eps
Normal file
112
Resources/Music/eighth-rest.eps
Normal file
|
@ -0,0 +1,112 @@
|
|||
%!PS-Adobe-3.0 EPSF-3.0
|
||||
%%BoundingBox: -1.59413 -258.794 250.386 205.14
|
||||
%%Pages: 0
|
||||
%%Title: $8th-rest from feta
|
||||
%%Creator: FontForge
|
||||
%%Author: Matthias Neeracher
|
||||
%%CreationDate: 14:59 27-12-2005
|
||||
%%EndComments
|
||||
%%BeginPreview: 40 72 4 72
|
||||
%000000059CDDB830000000000000000000000000
|
||||
%000006EFFFFFFFFB200000000000000000000000
|
||||
%0001BFFFFFFFFFFFE40000000000000000000000
|
||||
%001DFFFFFFFFFFFFFF4000000000000000004510
|
||||
%00CFFFFFFFFFFFFFFFD10000000000000007FFC0
|
||||
%07FFFFFFFFFFFFFFFFF7000000000000001EFFC0
|
||||
%1EFFFFFFFFFFFFFFFFFC00000000000000AFFF80
|
||||
%6FFFFFFFFFFFFFFFFFFF20000000000004FFFF30
|
||||
%AFFFFFFFFFFFFFFFFFFF6000000000001EFFFE00
|
||||
%DFFFFFFFFFFFFFFFFFFF900000000000BFFFFA00
|
||||
%FFFFFFFFFFFFFFFFFFFFC00000000008FFFFF500
|
||||
%FFFFFFFFFFFFFFFFFFFFF1000000006FFFFFF100
|
||||
%EFFFFFFFFFFFFFFFFFFFF500000005FFFFFFB000
|
||||
%CFFFFFFFFFFFFFFFFFFFFB0000005FFFFFFF7000
|
||||
%8FFFFFFFFFFFFFFFFFFFFF600007FFFFFFFF2000
|
||||
%3FFFFFFFFFFFFFFFFFFFFFFB66CFFFFFFFFD0000
|
||||
%0BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80000
|
||||
%02FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40000
|
||||
%006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00000
|
||||
%0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA00000
|
||||
%00006FFFFFFFFFFFFFFFFFFFFFFD86FFFF600000
|
||||
%000003BFFFFFFFFFFFFFFFFFC73008FFFF100000
|
||||
%00000004AEFFFFFFFFFEB84100000DFFFC000000
|
||||
%00000000003577765420000000003FFFF7000000
|
||||
%00000000000000000000000000009FFFF3000000
|
||||
%0000000000000000000000000000EFFFD0000000
|
||||
%0000000000000000000000000004FFFF90000000
|
||||
%000000000000000000000000000AFFFF40000000
|
||||
%000000000000000000000000001EFFFE00000000
|
||||
%000000000000000000000000005FFFFA00000000
|
||||
%00000000000000000000000000BFFFF600000000
|
||||
%00000000000000000000000001FFFFF200000000
|
||||
%00000000000000000000000006FFFFC000000000
|
||||
%0000000000000000000000000BFFFF8000000000
|
||||
%0000000000000000000000002FFFFF3000000000
|
||||
%0000000000000000000000007FFFFE0000000000
|
||||
%000000000000000000000000CFFFF90000000000
|
||||
%000000000000000000000002FFFFF50000000000
|
||||
%000000000000000000000008FFFFF10000000000
|
||||
%00000000000000000000000DFFFFB00000000000
|
||||
%00000000000000000000003FFFFF600000000000
|
||||
%00000000000000000000009FFFFF200000000000
|
||||
%0000000000000000000000EFFFFC000000000000
|
||||
%0000000000000000000004FFFFF8000000000000
|
||||
%0000000000000000000009FFFFF4000000000000
|
||||
%000000000000000000001EFFFFE0000000000000
|
||||
%000000000000000000005FFFFFA0000000000000
|
||||
%00000000000000000000AFFFFF50000000000000
|
||||
%00000000000000000001FFFFFF10000000000000
|
||||
%00000000000000000006FFFFFB00000000000000
|
||||
%0000000000000000000BFFFFF700000000000000
|
||||
%0000000000000000002FFFFFF200000000000000
|
||||
%0000000000000000007FFFFFD000000000000000
|
||||
%000000000000000000CFFFFF8000000000000000
|
||||
%000000000000000002FFFFFF4000000000000000
|
||||
%000000000000000008FFFFFE0000000000000000
|
||||
%00000000000000000DFFFFFA0000000000000000
|
||||
%00000000000000003FFFFFF50000000000000000
|
||||
%00000000000000009FFFFFF10000000000000000
|
||||
%0000000000000000EFFFFFC00000000000000000
|
||||
%0000000000000004FFFFFF700000000000000000
|
||||
%0000000000000009FFFFFF300000000000000000
|
||||
%000000000000000EFFFFFD000000000000000000
|
||||
%000000000000005FFFFFF9000000000000000000
|
||||
%00000000000000AFFFFFF4000000000000000000
|
||||
%00000000000001FFFFFFE0000000000000000000
|
||||
%00000000000005FFFFFFA0000000000000000000
|
||||
%0000000000000BFFFFFF50000000000000000000
|
||||
%0000000000001FFFFFFF10000000000000000000
|
||||
%0000000000006FFFFFFB00000000000000000000
|
||||
%000000000000AFFFFFF600000000000000000000
|
||||
%00000000000018DFEB5000000000000000000000
|
||||
%%EndPreview
|
||||
%%EndProlog
|
||||
%%Page "$8th-rest" 1
|
||||
gsave newpath
|
||||
60.1982 204.578 moveto
|
||||
82.6348 207.497 104.066 198.919 117.087 181.809 curveto
|
||||
124.229 172.422 126.998 164.994 132.026 141.73 curveto
|
||||
136.84 119.46 140.704 111.699 149.008 107.625 curveto
|
||||
155.402 104.487 161.988 104.089 167.53 106.504 curveto
|
||||
178.14 111.127 196.523 130.154 213.87 154.465 curveto
|
||||
218.512 160.97 224.843 171.235 226.178 174.421 curveto
|
||||
228.142 179.109 232.414 182.041 237.872 182.445 curveto
|
||||
240.738 182.657 241.584 182.48 244.212 181.119 curveto
|
||||
246.142 180.119 247.815 178.726 248.814 177.288 curveto
|
||||
250.386 175.027 lineto
|
||||
187.211 -37.707 lineto
|
||||
135.249 -212.68 123.82 -250.612 122.822 -251.407 curveto
|
||||
120.236 -253.466 114.774 -256.211 110.805 -257.445 curveto
|
||||
104.7 -259.344 95.2041 -259.225 88.9746 -257.173 curveto
|
||||
85.3359 -255.974 78.9248 -252.542 77.0674 -250.8 curveto
|
||||
76.8252 -250.572 102.553 -176.984 134.233 -87.293 curveto
|
||||
165.914 2.39844 191.841 75.9854 191.841 76.2129 curveto
|
||||
191.841 76.4395 186.328 74.7744 179.604 72.5146 curveto
|
||||
144.267 60.6426 117.97 55.1904 91.7861 54.3086 curveto
|
||||
73.0977 53.6797 59.1719 56.3594 44.377 63.4326 curveto
|
||||
30.7607 69.9424 19.6514 79.334 11.4902 91.2344 curveto
|
||||
-8.16992 119.9 -5.42773 158.309 18.0527 183.187 curveto
|
||||
28.7607 194.531 44.542 202.542 60.1982 204.578 curveto
|
||||
closepath
|
||||
fill grestore
|
||||
%%EOF
|
126
Resources/Music/flat.eps
Normal file
126
Resources/Music/flat.eps
Normal file
|
@ -0,0 +1,126 @@
|
|||
%!PS-Adobe-3.0 EPSF-3.0
|
||||
%%BoundingBox: -24.917 -157.276 200.068 470.155
|
||||
%%Pages: 0
|
||||
%%Title: Flat from feta
|
||||
%%Creator: FontForge
|
||||
%%Author: Matthias Neeracher
|
||||
%%CreationDate: 15:01 27-12-2005
|
||||
%%EndComments
|
||||
%%BeginPreview: 26 73 4 73
|
||||
%00220000000000000000000000
|
||||
%9EFFE700000000000000000000
|
||||
%FFFFFB00000000000000000000
|
||||
%FFFFFB00000000000000000000
|
||||
%EFFFFB00000000000000000000
|
||||
%EFFFFA00000000000000000000
|
||||
%EFFFFA00000000000000000000
|
||||
%DFFFFA00000000000000000000
|
||||
%DFFFFA00000000000000000000
|
||||
%DFFFF900000000000000000000
|
||||
%DFFFF900000000000000000000
|
||||
%CFFFF900000000000000000000
|
||||
%CFFFF800000000000000000000
|
||||
%CFFFF800000000000000000000
|
||||
%BFFFF800000000000000000000
|
||||
%BFFFF800000000000000000000
|
||||
%BFFFF700000000000000000000
|
||||
%BFFFF700000000000000000000
|
||||
%AFFFF700000000000000000000
|
||||
%AFFFF700000000000000000000
|
||||
%AFFFF600000000000000000000
|
||||
%9FFFF600000000000000000000
|
||||
%9FFFF600000000000000000000
|
||||
%9FFFF500000000000000000000
|
||||
%9FFFF500000000000000000000
|
||||
%8FFFF500000000000000000000
|
||||
%8FFFF500000000000000000000
|
||||
%8FFFF400000000000000000000
|
||||
%8FFFF400000000000000000000
|
||||
%7FFFF400000000000000000000
|
||||
%7FFFF400000000000000000000
|
||||
%7FFFF300000000000000000000
|
||||
%6FFFF300000000000000000000
|
||||
%6FFFF300000000000000000000
|
||||
%6FFFF300000000000000000000
|
||||
%6FFFF200000000000000000000
|
||||
%5FFFF200000000000000000000
|
||||
%5FFFF200000000000000000000
|
||||
%5FFFF100000368998610000000
|
||||
%5FFFF10039EFFFFFFFFA200000
|
||||
%4FFFF13BFFFFFFFFFFFFF70000
|
||||
%4FFFF9FFFFFFFFFFFFFFFF8000
|
||||
%4FFFFFFFFFECCFFFFFFFFFF600
|
||||
%3FFFFFFFD50001AFFFFFFFFE20
|
||||
%3FFFFFFD1000000BFFFFFFFFA0
|
||||
%3FFFFFF200000002FFFFFFFFF1
|
||||
%3FFFFF9000000000AFFFFFFFF6
|
||||
%2FFFFF30000000006FFFFFFFF9
|
||||
%2FFFFE00000000003FFFFFFFFC
|
||||
%2FFFFD00000000001FFFFFFFFD
|
||||
%1FFFFC00000000000FFFFFFFFD
|
||||
%1FFFFB00000000001FFFFFFFFB
|
||||
%1FFFFB00000000003FFFFFFFF8
|
||||
%1FFFFB00000000006FFFFFFFF4
|
||||
%0FFFFB0000000000AFFFFFFFD0
|
||||
%0FFFFA0000000001FFFFFFFF60
|
||||
%0FFFFA0000000008FFFFFFFC00
|
||||
%0FFFFA000000002EFFFFFFE200
|
||||
%0EFFFA00000000BFFFFFFF4000
|
||||
%0EFFFA00000007FFFFFFF50000
|
||||
%0EFFFA0000005FFFFFFE400000
|
||||
%0DFFFA000004FFFFFFD2000000
|
||||
%0DFFFB00004EFFFFFA10000000
|
||||
%0DFFFC0005EFFFFE6000000000
|
||||
%0DFFFD006FFFFFB20000000000
|
||||
%0CFFFE08FFFFF7000000000000
|
||||
%0CFFFFBFFFFD30000000000000
|
||||
%0CFFFFFFFF9000000000000000
|
||||
%0BFFFFFFE50000000000000000
|
||||
%0BFFFFFD200000000000000000
|
||||
%0BFFFFE3000000000000000000
|
||||
%08FFFF40000000000000000000
|
||||
%01AFD400000000000000000000
|
||||
%%EndPreview
|
||||
%%EndProlog
|
||||
%%Page "Flat" 1
|
||||
gsave newpath
|
||||
-8.93066 469.513 moveto
|
||||
-3.19727 470.614 7.11426 470.257 12.7891 468.76 curveto
|
||||
15.1045 468.149 18.9512 466.751 21.251 465.684 curveto
|
||||
25.4688 463.727 lineto
|
||||
25.1104 448.98 lineto
|
||||
24.9131 440.867 23.5371 366.538 22.0508 283.737 curveto
|
||||
20.5645 200.938 19.2383 128.988 19.1016 123.787 curveto
|
||||
18.8535 114.333 lineto
|
||||
24.752 118.316 lineto
|
||||
43.751 131.146 63.6162 138.937 86.2734 142.439 curveto
|
||||
97.7402 144.213 115.233 144.233 123.87 142.484 curveto
|
||||
152.866 136.611 175.987 118.364 189.365 90.7939 curveto
|
||||
201.544 65.6943 203.425 36.4385 194.519 10.6396 curveto
|
||||
187.65 -9.25488 172.657 -29.6553 151.213 -48.2832 curveto
|
||||
138.048 -59.7178 125.469 -69.0869 97.0234 -88.6426 curveto
|
||||
68.2471 -108.425 51.2627 -120.881 44.4326 -127.21 curveto
|
||||
42.9395 -128.594 38.4551 -133.683 34.4053 -138.589 curveto
|
||||
25.7139 -149.118 22.0654 -152.521 16.5381 -155.258 curveto
|
||||
12.6934 -157.16 12.1553 -157.276 7.19434 -157.276 curveto
|
||||
2.67383 -157.276 1.50098 -157.074 -1.10254 -155.844 curveto
|
||||
-7.61133 -152.768 -12.7256 -145.921 -13.498 -139.25 curveto
|
||||
-13.6846 -137.644 -16.1689 -7.93848 -19.0186 148.952 curveto
|
||||
-21.8682 305.844 -24.3623 440.846 -24.5586 448.925 curveto
|
||||
-24.917 463.616 lineto
|
||||
-22.5469 464.831 lineto
|
||||
-18.5781 466.865 -13.3408 468.666 -8.93066 469.513 curveto
|
||||
closepath
|
||||
87.3213 104.869 moveto
|
||||
77.3057 107.447 64.7744 105.209 54.5205 99.0127 curveto
|
||||
40.8887 90.7744 30.8574 75.6895 26.9873 57.6074 curveto
|
||||
25.6748 51.4775 25.1914 37.1006 24.499 -16.4277 curveto
|
||||
24.0498 -51.1572 25.0225 -79.5254 27.3271 -98.9521 curveto
|
||||
27.6738 -101.874 lineto
|
||||
30.21 -99.832 lineto
|
||||
81.8086 -58.2705 106.525 -28.8633 117.454 3.96875 curveto
|
||||
124.629 25.5234 124.715 50.4863 117.686 71.5547 curveto
|
||||
111.562 89.9121 101.18 101.302 87.3213 104.869 curveto
|
||||
closepath
|
||||
fill grestore
|
||||
%%EOF
|
207
Resources/Music/g-clef.eps
Normal file
207
Resources/Music/g-clef.eps
Normal file
|
@ -0,0 +1,207 @@
|
|||
%!PS-Adobe-3.0 EPSF-3.0
|
||||
%%BoundingBox: 0.331055 -653.589 636.078 1249.21
|
||||
%%Pages: 0
|
||||
%%Title: G-clef from feta
|
||||
%%Creator: FontForge
|
||||
%%Author: Matthias Neeracher
|
||||
%%CreationDate: 14:45 27-12-2005
|
||||
%%EndComments
|
||||
%%BeginPreview: 25 73 4 73
|
||||
%00000000000030000000000000
|
||||
%000000000008F6000000000000
|
||||
%00000000007FFF300000000000
|
||||
%0000000004FFFFC00000000000
|
||||
%000000000DFFFFF70000000000
|
||||
%000000007FFFFFFE1000000000
|
||||
%00000000EFFFFB6F7000000000
|
||||
%00000005FFFF900DD000000000
|
||||
%00000009FFFA0007F400000000
|
||||
%0000000DFFD10003F900000000
|
||||
%0000001FFF400002FD00000000
|
||||
%0000003FFB000001FF20000000
|
||||
%0000004FF5000001FF50000000
|
||||
%0000004FF1000002FF70000000
|
||||
%0000003FC0000004FF80000000
|
||||
%0000003FA0000007FF80000000
|
||||
%0000002F9000000BFF70000000
|
||||
%0000000F9000001FFF50000000
|
||||
%0000000DA000007FFF20000000
|
||||
%0000000AC00000EFFD00000000
|
||||
%00000008F00007FFF800000000
|
||||
%00000004F4001EFFF200000000
|
||||
%00000001F700AFFFA000000000
|
||||
%00000000CB05FFFF2000000000
|
||||
%000000008F3EFFF80000000000
|
||||
%000000004FEFFFD10000000000
|
||||
%000000000EFFFF400000000000
|
||||
%000000006FFFF8000000000000
|
||||
%00000003FFFFB0000000000000
|
||||
%0000001DFFFE10000000000000
|
||||
%000000BFFFFE00000000000000
|
||||
%000008FFFFBF30000000000000
|
||||
%00004FFFF91F80000000000000
|
||||
%0001EFFFC00BD0000000000000
|
||||
%000AFFFE2007F2000000000000
|
||||
%004FFFF50002F7000000000000
|
||||
%00CFFF900000DB000000000000
|
||||
%05FFFE1000009F100000000000
|
||||
%0BFFF5000005BFCA7300000000
|
||||
%2FFFC00005EFFFFFFFC4000000
|
||||
%6FFF40008FFFFFFFFFFF800000
|
||||
%AFFD0006FFFFFFFFFFFFF90000
|
||||
%DFF7001EFFFB66F98DFFFF5000
|
||||
%FFF3006FFE5000E9007FFFE100
|
||||
%FFE0009FF50000BC0005FFF600
|
||||
%FFC000BFC000008F10007FFB00
|
||||
%DFA000BF9000005F30000DFF00
|
||||
%BFA0009F9000002F600008FF20
|
||||
%7FA0004FD000000E900004FF20
|
||||
%2FE0000CF600000BC00003FF10
|
||||
%0AF40003EF400009E00004FE00
|
||||
%02FC00004EF80007F10007F900
|
||||
%007F800002AF2005F3000CF300
|
||||
%000AF80000000003F5006F9000
|
||||
%0000AFB200000001F604FC1000
|
||||
%000008FE82000000F98FC10000
|
||||
%0000003BFFD98789FFF8100000
|
||||
%0000000028BEFFFEFC20000000
|
||||
%0000000000000100DA00000000
|
||||
%0000000000000000DA00000000
|
||||
%0000000000000000DA00000000
|
||||
%0000377200000000DA00000000
|
||||
%001BFFFF60000000E900000000
|
||||
%00AFFFFFF2000000F800000000
|
||||
%02FFFFFFF8000001F700000000
|
||||
%04FFFFFFF9000004F500000000
|
||||
%03FFFFFFF7000008F100000000
|
||||
%00EFFFFFD100000DB000000000
|
||||
%009FFFFB2000006F4000000000
|
||||
%001EF500000003EB0000000000
|
||||
%0004EF7000005ED10000000000
|
||||
%00003CFEA89CFC200000000000
|
||||
%0000005AEFFC60000000000000
|
||||
%%EndPreview
|
||||
%%EndProlog
|
||||
%%Page "G-clef" 1
|
||||
gsave newpath
|
||||
323.814 1248.23 moveto
|
||||
326.682 1249.53 330.958 1249.53 333.793 1248.25 curveto
|
||||
335.974 1247.26 343.655 1239.47 351.798 1229.99 curveto
|
||||
412.814 1158.93 466.992 1038.2 484.002 935.392 curveto
|
||||
490.694 894.941 491.027 858.71 485.088 817.42 curveto
|
||||
474.553 744.178 443.542 671.224 387.772 588.479 curveto
|
||||
368.944 560.543 349.479 534.123 319.294 495.535 curveto
|
||||
308.6 481.863 lineto
|
||||
311.188 473.76 lineto
|
||||
330.55 413.12 351.302 344.734 366.843 290.353 curveto
|
||||
375.193 261.136 lineto
|
||||
378.445 261.008 lineto
|
||||
415.932 259.54 443.484 254.213 472.437 242.837 curveto
|
||||
493.881 234.412 516.114 221.852 533.627 208.268 curveto
|
||||
592.691 162.458 630 92.3926 635.662 16.6484 curveto
|
||||
636.486 5.62305 636.02 -21.3018 634.831 -31.3125 curveto
|
||||
627.282 -94.873 598.324 -150.397 549.945 -194.071 curveto
|
||||
526.864 -214.908 500.275 -230.768 471.169 -241.062 curveto
|
||||
464.443 -243.439 lineto
|
||||
464.471 -245.838 lineto
|
||||
464.486 -247.159 464.823 -260.364 465.223 -275.248 curveto
|
||||
466.694 -330.1 463.972 -400.22 458.898 -438.147 curveto
|
||||
450.219 -503.032 421.728 -563.201 381.092 -602.463 curveto
|
||||
351.034 -631.505 316.152 -648.366 276.736 -652.908 curveto
|
||||
267.123 -654.016 244.929 -653.73 233.462 -652.352 curveto
|
||||
189.636 -647.081 152.445 -631.67 119.074 -604.95 curveto
|
||||
110.915 -598.417 97.4893 -585.221 90.8203 -577.178 curveto
|
||||
62.7783 -543.359 47.373 -503.308 45.9326 -460.474 curveto
|
||||
45.4385 -445.811 46.8252 -435.94 51.1201 -423.539 curveto
|
||||
62.5654 -390.494 92.668 -363.823 129.272 -354.298 curveto
|
||||
165.05 -344.987 197.516 -353.023 221.94 -377.234 curveto
|
||||
231.036 -386.25 237.005 -394.708 242.831 -406.836 curveto
|
||||
249.748 -421.234 253.574 -438.203 253.557 -454.41 curveto
|
||||
253.509 -500.331 219.952 -540.105 174.477 -548.146 curveto
|
||||
159.096 -550.866 143.572 -549.28 128.666 -543.466 curveto
|
||||
124.642 -541.896 lineto
|
||||
127.512 -546.031 lineto
|
||||
142.531 -567.672 166.152 -587.549 190.022 -598.633 curveto
|
||||
208.95 -607.423 227.288 -612.021 249.339 -613.507 curveto
|
||||
318.626 -618.176 377.845 -570.562 406.349 -487.266 curveto
|
||||
417.483 -454.727 421.021 -431.367 424.509 -367.31 curveto
|
||||
425.288 -353.011 425.832 -285.667 425.316 -267.476 curveto
|
||||
424.958 -254.852 424.827 -253.444 424.035 -253.68 curveto
|
||||
422.264 -254.204 404.796 -256.742 397.188 -257.58 curveto
|
||||
363.727 -261.264 328.477 -260.762 297.685 -256.162 curveto
|
||||
271.995 -252.325 241.293 -243.829 217.476 -233.969 curveto
|
||||
184.289 -220.229 151.174 -199.869 123.208 -176.01 curveto
|
||||
112.685 -167.031 94.3369 -148.677 85.1953 -137.982 curveto
|
||||
41.3271 -86.665 13.1162 -24.4209 3.61719 42.0068 curveto
|
||||
0.964844 60.5586 0.331055 70.4521 0.331055 93.2744 curveto
|
||||
0.331055 115.986 0.973633 126.291 3.62402 146.031 curveto
|
||||
13.9482 222.941 47.0889 300.496 106.521 386.824 curveto
|
||||
132.743 424.915 152.491 450.771 214.854 528.666 curveto
|
||||
233.743 552.26 241.412 562.22 241.171 562.845 curveto
|
||||
239.326 567.642 222.74 624.752 217.22 645.314 curveto
|
||||
188.939 750.661 177.104 836.958 178.2 929.823 curveto
|
||||
178.563 960.584 179.932 976.381 184.43 1001.76 curveto
|
||||
198.117 1079 232.71 1150.92 284.515 1209.87 curveto
|
||||
298.129 1225.36 319.617 1246.33 323.814 1248.23 curveto
|
||||
closepath
|
||||
382.273 1105.13 moveto
|
||||
381.161 1107.11 380.093 1108.7 379.879 1108.69 curveto
|
||||
379.306 1108.66 365.711 1099.03 359.427 1094.2 curveto
|
||||
286.423 1038.1 239.173 955.348 228.266 864.498 curveto
|
||||
226.444 849.326 225.909 840.133 225.909 823.98 curveto
|
||||
225.909 807.421 226.723 795.7 229.104 777.949 curveto
|
||||
234.724 736.049 247.697 679.658 266.075 617.255 curveto
|
||||
268.672 608.435 270.943 601.095 271.142 600.882 curveto
|
||||
271.339 600.67 275.709 606.119 280.867 613.01 curveto
|
||||
350.484 706.009 388.812 778.888 407.648 854.079 curveto
|
||||
416.678 890.121 420.688 926.516 419.824 964.554 curveto
|
||||
418.924 1004.13 415.862 1025.06 407.287 1050.22 curveto
|
||||
402.249 1065.01 391.33 1088.97 382.273 1105.13 curveto
|
||||
closepath
|
||||
287.954 413.562 moveto
|
||||
282.94 429.769 278.668 443.228 278.47 443.439 curveto
|
||||
278.105 443.828 271.34 435.502 247.25 405.017 curveto
|
||||
212.793 361.411 190.612 331.469 170.069 300.827 curveto
|
||||
108.605 209.151 78.1973 131.753 70.7666 48.0703 curveto
|
||||
69.5576 34.4541 69.3906 4.89453 70.4727 -4.02441 curveto
|
||||
75.042 -41.6758 90.3545 -76.9072 116.189 -109.206 curveto
|
||||
165.363 -170.686 246.747 -212.827 328.776 -219.286 curveto
|
||||
337.971 -220.01 369.294 -220.003 380.65 -219.274 curveto
|
||||
396.472 -218.259 420.526 -215.413 422.271 -214.35 curveto
|
||||
422.771 -214.046 422.576 -209.316 421.472 -194.983 curveto
|
||||
414.665 -106.63 400.827 -17.1992 378.19 84.7295 curveto
|
||||
371.764 113.672 361.756 155.576 361.102 156.284 curveto
|
||||
360.878 156.527 357.001 156.322 352.48 155.829 curveto
|
||||
292.724 149.306 247.742 117.004 231.903 69.2393 curveto
|
||||
227.31 55.3877 225.637 43.6602 226.179 29.1074 curveto
|
||||
226.831 11.5762 230.701 -3.58594 238.716 -20.0107 curveto
|
||||
252.416 -48.0879 276.626 -71.9375 309.868 -90.1035 curveto
|
||||
316.924 -93.96 318.589 -95.501 320.797 -100.221 curveto
|
||||
322.011 -102.814 322.21 -103.969 322.175 -108.214 curveto
|
||||
322.124 -114.168 320.701 -117.893 316.908 -121.995 curveto
|
||||
313.856 -125.298 310.915 -126.979 306.34 -128.034 curveto
|
||||
303.074 -128.787 302.205 -128.795 298.843 -128.101 curveto
|
||||
290.409 -126.359 267.31 -114.2 251.544 -103.204 curveto
|
||||
232.415 -89.8623 214.086 -71.8945 201.095 -53.749 curveto
|
||||
181.033 -25.7285 168.937 6.56055 165.322 41.7314 curveto
|
||||
164.461 50.1104 164.446 70.6855 165.296 78.9414 curveto
|
||||
168.943 114.388 180.922 147.255 200.336 175.083 curveto
|
||||
213.702 194.241 232.635 212.735 252.426 225.962 curveto
|
||||
274.418 240.661 301.599 251.552 329.107 256.688 curveto
|
||||
331.643 257.161 333.858 257.677 334.005 257.828 curveto
|
||||
334.706 258.549 308.739 346.361 287.954 413.562 curveto
|
||||
closepath
|
||||
413.285 153.626 moveto
|
||||
404.024 155.334 402.809 155.389 403.187 154.079 curveto
|
||||
403.344 153.534 405.087 146.251 407.053 137.928 curveto
|
||||
433.833 24.5312 450.594 -73.8545 459.175 -168.026 curveto
|
||||
460.315 -180.54 461.963 -201.131 461.963 -202.866 curveto
|
||||
461.963 -203.653 462.899 -203.411 467.806 -201.357 curveto
|
||||
488.258 -192.797 505.714 -181.099 521.241 -165.546 curveto
|
||||
550.551 -136.188 567.716 -101.157 573.106 -59.7021 curveto
|
||||
574.268 -50.7715 574.446 -28.2441 573.425 -19.46 curveto
|
||||
568.063 26.6816 548.746 67.3506 517.024 99.2832 curveto
|
||||
488.579 127.919 453.749 146.164 413.285 153.626 curveto
|
||||
closepath
|
||||
fill grestore
|
||||
%%EOF
|
100
Resources/Music/half-notehead.eps
Normal file
100
Resources/Music/half-notehead.eps
Normal file
|
@ -0,0 +1,100 @@
|
|||
%!PS-Adobe-3.0 EPSF-3.0
|
||||
%%BoundingBox: 0.0271721 -135.402 345.619 136.258
|
||||
%%Pages: 0
|
||||
%%Title: Half-notehead from feta
|
||||
%%Creator: FontForge
|
||||
%%Author: Matthias Neeracher
|
||||
%%CreationDate: 15:02 27-12-2005
|
||||
%%EndComments
|
||||
%%BeginPreview: 72 57 4 57
|
||||
%000000000000000000000000000000000000000000000000234567777653100000000000
|
||||
%00000000000000000000000000000000000000001468ACEFFFFFFFFFFFFFFDA500000000
|
||||
%00000000000000000000000000000000000158BEFFFFFFFFFFFFFFFFFFFFFFFFE6000000
|
||||
%0000000000000000000000000000000048CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC20000
|
||||
%000000000000000000000000000015AEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3000
|
||||
%0000000000000000000000000049EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD100
|
||||
%0000000000000000000000016DFFFFFFFFFFFFFFFFFFFFFFFFFFFC842237BFFFFFFFFA00
|
||||
%00000000000000000000018EFFFFFFFFFFFFFFFFFFFFFFFFFFE93000000003DFFFFFFF40
|
||||
%000000000000000000017EFFFFFFFFFFFFFFFFFFFFFFFFFFE71000000000001BFFFFFFB0
|
||||
%0000000000000000006EFFFFFFFFFFFFFFFFFFFFFFFFFFE71000000000000001CFFFFFF1
|
||||
%00000000000000002BFFFFFFFFFFFFFFFFFFFFFFFFFFE81000000000000000003FFFFFF6
|
||||
%0000000000000007FFFFFFFFFFFFFFFFFFFFFFFFFFFA200000000000000000000AFFFFF9
|
||||
%00000000000001BFFFFFFFFFFFFFFFFFFFFFFFFFFC300000000000000000000004FFFFFB
|
||||
%0000000000002CFFFFFFFFFFFFFFFFFFFFFFFFFE60000000000000000000000001FFFFFC
|
||||
%000000000002DFFFFFFFFFFFFFFFFFFFFFFFFF9100000000000000000000000000FFFFFD
|
||||
%00000000002DFFFFFFFFFFFFFFFFFFFFFFFFD40000000000000000000000000000FFFFFD
|
||||
%0000000001DFFFFFFFFFFFFFFFFFFFFFFFF7000000000000000000000000000002FFFFFC
|
||||
%000000000AFFFFFFFFFFFFFFFFFFFFFFFB20000000000000000000000000000006FFFFFA
|
||||
%000000007FFFFFFFFFFFFFFFFFFFFFFE600000000000000000000000000000000BFFFFF8
|
||||
%00000003FFFFFFFFFFFFFFFFFFFFFFA2000000000000000000000000000000004FFFFFF5
|
||||
%0000000CFFFFFFFFFFFFFFFFFFFFE50000000000000000000000000000000001DFFFFFF2
|
||||
%0000006FFFFFFFFFFFFFFFFFFFFA10000000000000000000000000000000000BFFFFFFE0
|
||||
%000001EFFFFFFFFFFFFFFFFFFE500000000000000000000000000000000000AFFFFFFFA0
|
||||
%000007FFFFFFFFFFFFFFFFFFA100000000000000000000000000000000001BFFFFFFFF60
|
||||
%00001EFFFFFFFFFFFFFFFFE5000000000000000000000000000000000001CFFFFFFFFF20
|
||||
%00007FFFFFFFFFFFFFFFFA1000000000000000000000000000000000003DFFFFFFFFFC00
|
||||
%0000DFFFFFFFFFFFFFFE50000000000000000000000000000000000005EFFFFFFFFFF700
|
||||
%0005FFFFFFFFFFFFFFB20000000000000000000000000000000000008FFFFFFFFFFFF200
|
||||
%000BFFFFFFFFFFFFF70000000000000000000000000000000000002CFFFFFFFFFFFFC000
|
||||
%001FFFFFFFFFFFFD30000000000000000000000000000000000005EFFFFFFFFFFFFF6000
|
||||
%007FFFFFFFFFFFB10000000000000000000000000000000000019FFFFFFFFFFFFFFE1000
|
||||
%00CFFFFFFFFFF80000000000000000000000000000000000004DFFFFFFFFFFFFFFF80000
|
||||
%02FFFFFFFFFF60000000000000000000000000000000000018FFFFFFFFFFFFFFFFF20000
|
||||
%06FFFFFFFFE4000000000000000000000000000000000003DFFFFFFFFFFFFFFFFF900000
|
||||
%0AFFFFFFFE3000000000000000000000000000000000018FFFFFFFFFFFFFFFFFFF200000
|
||||
%0EFFFFFFE300000000000000000000000000000000004DFFFFFFFFFFFFFFFFFFF8000000
|
||||
%3FFFFFFF400000000000000000000000000000000019FFFFFFFFFFFFFFFFFFFFE1000000
|
||||
%6FFFFFF70000000000000000000000000000000004DFFFFFFFFFFFFFFFFFFFFF50000000
|
||||
%9FFFFFD0000000000000000000000000000000019FFFFFFFFFFFFFFFFFFFFFFA00000000
|
||||
%BFFFFF600000000000000000000000000000005DFFFFFFFFFFFFFFFFFFFFFFD100000000
|
||||
%DFFFFF2000000000000000000000000000001AFFFFFFFFFFFFFFFFFFFFFFFF3000000000
|
||||
%EFFFFE000000000000000000000000000006EFFFFFFFFFFFFFFFFFFFFFFFF50000000000
|
||||
%FFFFFD0000000000000000000000000003CFFFFFFFFFFFFFFFFFFFFFFFFF600000000000
|
||||
%FFFFFD000000000000000000000000018FFFFFFFFFFFFFFFFFFFFFFFFFF6000000000000
|
||||
%EFFFFF1000000000000000000000005DFFFFFFFFFFFFFFFFFFFFFFFFFE50000000000000
|
||||
%CFFFFF50000000000000000000003BFFFFFFFFFFFFFFFFFFFFFFFFFFD300000000000000
|
||||
%AFFFFFB000000000000000000019FFFFFFFFFFFFFFFFFFFFFFFFFFF81000000000000000
|
||||
%6FFFFFF5000000000000000018EFFFFFFFFFFFFFFFFFFFFFFFFFFC300000000000000000
|
||||
%1FFFFFFE3000000000000017EFFFFFFFFFFFFFFFFFFFFFFFFFFE60000000000000000000
|
||||
%0AFFFFFFE4000000000028EFFFFFFFFFFFFFFFFFFFFFFFFFFE7100000000000000000000
|
||||
%02FFFFFFFF930000015AFFFFFFFFFFFFFFFFFFFFFFFFFFFD710000000000000000000000
|
||||
%008FFFFFFFFFDA9ACFFFFFFFFFFFFFFFFFFFFFFFFFFFFB50000000000000000000000000
|
||||
%000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD72000000000000000000000000000
|
||||
%0001AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC73000000000000000000000000000000
|
||||
%000007EFFFFFFFFFFFFFFFFFFFFFFFFFFFFC951000000000000000000000000000000000
|
||||
%00000018DFFFFFFFFFFFFFFFFFFFFEC97410000000000000000000000000000000000000
|
||||
%00000000037ACDFFFFEEDCB9865310000000000000000000000000000000000000000000
|
||||
%%EndPreview
|
||||
%%EndProlog
|
||||
%%Page "Half-notehead" 1
|
||||
gsave newpath
|
||||
252.205 135.896 moveto
|
||||
298.787 138.354 324.591 128.407 337.745 102.922 curveto
|
||||
349.221 80.6885 348.205 53.418 334.355 11.9629 curveto
|
||||
324.964 -16.1523 313.459 -38.2393 298.606 -56.6699 curveto
|
||||
293.587 -62.8994 282.139 -74.0615 275.909 -78.8008 curveto
|
||||
247.135 -100.69 205.292 -118.225 161.025 -126.943 curveto
|
||||
130.815 -132.894 85.9746 -136.691 65.9316 -134.997 curveto
|
||||
36.3838 -132.499 18.2822 -122.253 7.90332 -102.15 curveto
|
||||
-3.57422 -79.917 -2.55957 -52.6465 11.2891 -11.1904 curveto
|
||||
20.6816 16.9238 32.1855 39.0107 47.0381 57.4424 curveto
|
||||
52.0576 63.6719 63.5059 74.834 69.7354 79.5723 curveto
|
||||
98.5234 101.473 140.353 118.999 184.675 127.734 curveto
|
||||
201.812 131.111 233.021 134.883 252.205 135.896 curveto
|
||||
closepath
|
||||
282.911 108.482 moveto
|
||||
274.69 110.053 267.034 109.229 256.505 105.639 curveto
|
||||
230.479 96.7656 191.951 74.3252 116.869 24.3086 curveto
|
||||
87.376 4.66113 70.0918 -8.08496 55.127 -21.2246 curveto
|
||||
38.4238 -35.8906 31.6455 -45.3428 29.1572 -57.4424 curveto
|
||||
26.1523 -72.0508 30.0352 -85.498 40.2344 -95.8105 curveto
|
||||
46.6074 -102.253 53.6387 -105.972 62.7344 -107.71 curveto
|
||||
70.9668 -109.284 78.6104 -108.457 89.1953 -104.849 curveto
|
||||
115.162 -95.9951 153.749 -73.5166 228.776 -23.5371 curveto
|
||||
258.269 -3.88965 275.554 8.85742 290.519 21.9961 curveto
|
||||
307.222 36.6621 313.999 46.1143 316.487 58.2139 curveto
|
||||
319.492 72.8223 315.609 86.2705 305.41 96.582 curveto
|
||||
299.038 103.025 292.007 106.744 282.911 108.482 curveto
|
||||
closepath
|
||||
fill grestore
|
||||
%%EOF
|
60
Resources/Music/half-rest.eps
Normal file
60
Resources/Music/half-rest.eps
Normal file
|
@ -0,0 +1,60 @@
|
|||
%!PS-Adobe-3.0 EPSF-3.0
|
||||
%%BoundingBox: 0.275391 0.110352 374.587 156.67
|
||||
%%Pages: 0
|
||||
%%Title: half-rest from feta
|
||||
%%Creator: FontForge
|
||||
%%Author: Matthias Neeracher
|
||||
%%CreationDate: 14:58 27-12-2005
|
||||
%%EndComments
|
||||
%%BeginPreview: 72 31 4 31
|
||||
%000000000000000111111111111111111111111111111111111111111100000000000000
|
||||
%9EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
|
||||
%EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC
|
||||
%EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC
|
||||
%9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEE7
|
||||
%%EndPreview
|
||||
%%EndProlog
|
||||
%%Page "half-rest" 1
|
||||
gsave newpath
|
||||
4.4375 155.706 moveto
|
||||
6.2373 156.618 16.0967 156.67 187.431 156.67 curveto
|
||||
358.766 156.67 368.625 156.618 370.425 155.706 curveto
|
||||
371.472 155.174 372.834 154.048 373.456 153.197 curveto
|
||||
374.586 151.655 374.587 151.599 374.587 78.3906 curveto
|
||||
374.587 5.18164 374.586 5.12598 373.456 3.58301 curveto
|
||||
372.834 2.7334 371.472 1.60645 370.425 1.0752 curveto
|
||||
368.625 0.162109 358.766 0.110352 187.431 0.110352 curveto
|
||||
16.0967 0.110352 6.2373 0.162109 4.4375 1.0752 curveto
|
||||
3.39062 1.60645 2.02832 2.7334 1.40527 3.58301 curveto
|
||||
0.276367 5.12598 0.275391 5.18164 0.275391 78.3906 curveto
|
||||
0.275391 151.599 0.276367 151.655 1.40527 153.197 curveto
|
||||
2.02832 154.048 3.39062 155.174 4.4375 155.706 curveto
|
||||
closepath
|
||||
fill grestore
|
||||
%%EOF
|
129
Resources/Music/natural.eps
Normal file
129
Resources/Music/natural.eps
Normal file
|
@ -0,0 +1,129 @@
|
|||
%!PS-Adobe-3.0 EPSF-3.0
|
||||
%%BoundingBox: -6.61523 -379.879 173.098 380.817
|
||||
%%Pages: 0
|
||||
%%Title: Natural from feta
|
||||
%%Creator: FontForge
|
||||
%%Author: Matthias Neeracher
|
||||
%%CreationDate: 15:01 27-12-2005
|
||||
%%EndComments
|
||||
%%BeginPreview: 18 73 4 73
|
||||
%033100000000000000
|
||||
%EFFF50000000000000
|
||||
%FFFF60000000000000
|
||||
%FFFF60000000000000
|
||||
%FFFF60000000000000
|
||||
%FFFF50000000000000
|
||||
%EFFF50000000000000
|
||||
%EFFF50000000000000
|
||||
%EFFF50000000000000
|
||||
%EFFF50000000000000
|
||||
%EFFF50000000000000
|
||||
%EFFF40000000000000
|
||||
%DFFF40000000000000
|
||||
%DFFF40000000000000
|
||||
%DFFF40000000000000
|
||||
%DFFF40000000000000
|
||||
%DFFF4000001468B900
|
||||
%DFFF5479BEFFFFFF60
|
||||
%CFFFFFFFFFFFFFFF70
|
||||
%CFFFFFFFFFFFFFFF70
|
||||
%CFFFFFFFFFFFFFFF70
|
||||
%CFFFFFFFFFFFFFFF70
|
||||
%CFFFFFFFFFFFFFFF70
|
||||
%CFFFFFFFFFFFFFFF80
|
||||
%BFFFFFFFFFFFFFFF80
|
||||
%BFFFFFFFFFFFFFFF80
|
||||
%BFFFFFFFDA853CFF80
|
||||
%BFFF953000000CFF80
|
||||
%BFFF200000000DFF80
|
||||
%AFFF100000000DFF90
|
||||
%AFFF100000000DFF90
|
||||
%AFFF100000000DFF90
|
||||
%AFFF100000000DFF90
|
||||
%AFFF100000000DFF90
|
||||
%AFFF000000000EFFA0
|
||||
%9FFF000000000EFFA0
|
||||
%9FFF000000000EFFA0
|
||||
%9FFF000000000EFFA0
|
||||
%9FFF000000000EFFA0
|
||||
%9FFF000000000EFFA0
|
||||
%8FFE000000000FFFB0
|
||||
%8FFE000000000FFFB0
|
||||
%8FFE000000000FFFB0
|
||||
%8FFE000000000FFFB0
|
||||
%8FFE000000000FFFB0
|
||||
%8FFD000000001FFFB0
|
||||
%7FFD00001368BFFFC0
|
||||
%7FFE68BDFFFFFFFFC0
|
||||
%7FFFFFFFFFFFFFFFC0
|
||||
%7FFFFFFFFFFFFFFFC0
|
||||
%7FFFFFFFFFFFFFFFC0
|
||||
%6FFFFFFFFFFFFFFFD0
|
||||
%6FFFFFFFFFFFFFFFD0
|
||||
%6FFFFFFFFFFFFFFFD0
|
||||
%6FFFFFFFFFFFFFFFD0
|
||||
%6FFFFFFFFFFFEFFFD0
|
||||
%4FFFFFDB86413FFFD0
|
||||
%0575310000003FFFE0
|
||||
%0000000000003FFFE0
|
||||
%0000000000003FFFE0
|
||||
%0000000000003FFFE0
|
||||
%0000000000004FFFE0
|
||||
%0000000000004FFFE0
|
||||
%0000000000004FFFF0
|
||||
%0000000000004FFFF0
|
||||
%0000000000004FFFF0
|
||||
%0000000000004FFFF0
|
||||
%0000000000004FFFF0
|
||||
%0000000000005FFFF0
|
||||
%0000000000005FFFF1
|
||||
%0000000000005FFFF1
|
||||
%0000000000005FFFF1
|
||||
%0000000000003CFFB0
|
||||
%%EndPreview
|
||||
%%EndProlog
|
||||
%%Page "Natural" 1
|
||||
gsave newpath
|
||||
9.20605 380.498 moveto
|
||||
10.6562 380.763 14.7188 380.889 18.1914 380.776 curveto
|
||||
25.083 380.553 31.7686 378.975 36.9902 376.337 curveto
|
||||
39.6914 374.973 lineto
|
||||
39.6914 364.36 lineto
|
||||
39.6914 358.525 39.2822 319.322 38.7812 277.26 curveto
|
||||
38.2812 235.198 38.0332 200.61 38.2305 200.413 curveto
|
||||
38.4277 200.216 63.3135 204.059 93.5781 208.958 curveto
|
||||
123.843 213.858 149.483 217.861 150.606 217.861 curveto
|
||||
156.505 217.861 163.095 213.09 165.302 207.222 curveto
|
||||
166.482 204.079 lineto
|
||||
169.79 -72.96 lineto
|
||||
171.609 -225.331 173.098 -355.445 173.098 -362.101 curveto
|
||||
173.098 -374.201 lineto
|
||||
170.369 -375.579 lineto
|
||||
168.881 -376.331 165.436 -377.621 162.789 -378.418 curveto
|
||||
158.474 -379.718 157.057 -379.879 149.945 -379.879 curveto
|
||||
142.834 -379.879 141.416 -379.718 137.101 -378.418 curveto
|
||||
134.454 -377.621 131.009 -376.331 129.521 -375.579 curveto
|
||||
126.792 -374.201 lineto
|
||||
126.792 -363.589 lineto
|
||||
126.792 -357.753 127.201 -318.55 127.701 -276.488 curveto
|
||||
128.201 -234.427 128.449 -199.839 128.253 -199.642 curveto
|
||||
128.056 -199.444 103.17 -203.286 72.9053 -208.187 curveto
|
||||
42.6406 -213.086 16.999 -217.089 15.877 -217.089 curveto
|
||||
9.97754 -217.089 3.3877 -212.318 1.18164 -206.45 curveto
|
||||
0 -203.308 lineto
|
||||
-3.30762 73.7324 lineto
|
||||
-5.12695 226.103 -6.61523 356.217 -6.61523 362.872 curveto
|
||||
-6.61523 374.973 lineto
|
||||
-3.96875 376.305 lineto
|
||||
-1.02344 377.787 5.18164 379.762 9.20605 380.498 curveto
|
||||
closepath
|
||||
132.139 94.2393 moveto
|
||||
132.421 111.273 132.355 114.215 131.698 114.167 curveto
|
||||
127.839 113.887 37.2266 98.6475 36.9717 98.2363 curveto
|
||||
36.6309 97.6846 34.0137 -112.9 34.3438 -113.23 curveto
|
||||
34.7266 -113.613 129.23 -98.0156 129.538 -97.5195 curveto
|
||||
129.726 -97.2158 130.312 -58.4346 130.844 -11.3564 curveto
|
||||
131.374 35.7217 131.957 83.25 132.139 94.2393 curveto
|
||||
closepath
|
||||
fill grestore
|
||||
%%EOF
|
91
Resources/Music/notecursor.eps
Normal file
91
Resources/Music/notecursor.eps
Normal file
|
@ -0,0 +1,91 @@
|
|||
%!PS-Adobe-3.0 EPSF-3.0
|
||||
%%BoundingBox: 0.0928459 -135.18 329.014 136.045
|
||||
%%Pages: 0
|
||||
%%Title: Quart-notehead from feta
|
||||
%%Creator: FontForge
|
||||
%%Author: Matthias Neeracher
|
||||
%%CreationDate: 15:02 27-12-2005
|
||||
%%EndComments
|
||||
%%BeginPreview: 73 60 4 60
|
||||
%00000000000000000000000000000000000000000001345666543200000000000000000000
|
||||
%00000000000000000000000000000000000000259BEFFFFFFFFFFFFC962000000000000000
|
||||
%0000000000000000000000000000000000049DFFFFFFFFFFFFFFFFFFFFFC60000000000000
|
||||
%0000000000000000000000000000000049EFFFFFFFFFFFFFFFFFFFFFFFFFFE700000000000
|
||||
%0000000000000000000000000000017DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3000000000
|
||||
%00000000000000000000000000028EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF700000000
|
||||
%000000000000000000000000019FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90000000
|
||||
%0000000000000000000000018EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9000000
|
||||
%00000000000000000000005DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF700000
|
||||
%000000000000000000002BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30000
|
||||
%00000000000000000006EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0000
|
||||
%000000000000000001AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4000
|
||||
%00000000000000003DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000
|
||||
%0000000000000006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF200
|
||||
%000000000000008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF600
|
||||
%00000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF900
|
||||
%000000000000AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC00
|
||||
%00000000000AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00
|
||||
%0000000000AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
|
||||
%0000000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
|
||||
%000000007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
|
||||
%00000004FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00
|
||||
%0000001EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC00
|
||||
%000000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA00
|
||||
%000006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF700
|
||||
%00001EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF300
|
||||
%00009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE000
|
||||
%0003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA000
|
||||
%000AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4000
|
||||
%003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0000
|
||||
%009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70000
|
||||
%01EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE10000
|
||||
%06FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000
|
||||
%0BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE100000
|
||||
%1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6000000
|
||||
%4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0000000
|
||||
%8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30000000
|
||||
%AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF700000000
|
||||
%DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000000000
|
||||
%EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1000000000
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE30000000000
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF500000000000
|
||||
%EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5000000000000
|
||||
%DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60000000000000
|
||||
%BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF500000000000000
|
||||
%8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5000000000000000
|
||||
%4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE30000000000000000
|
||||
%0EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC200000000000000000
|
||||
%09FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91000000000000000000
|
||||
%02FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE500000000000000000000
|
||||
%008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2000000000000000000000
|
||||
%001DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE600000000000000000000000
|
||||
%0003EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91000000000000000000000000
|
||||
%00005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB300000000000000000000000000
|
||||
%000004EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB40000000000000000000000000000
|
||||
%0000002CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3000000000000000000000000000000
|
||||
%000000007EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8200000000000000000000000000000000
|
||||
%00000000029EFFFFFFFFFFFFFFFFFFFFFFFFE9400000000000000000000000000000000000
|
||||
%0000000000016BFFFFFFFFFFFFFFFFFFFC8400000000000000000000000000000000000000
|
||||
%00000000000000147ACEFFFFFFEDB963000000000000000000000000000000000000000000
|
||||
%%EndPreview
|
||||
%%EndProlog
|
||||
%%Page "Quart-notehead" 1
|
||||
gsave newpath
|
||||
211.687 135.942 moveto
|
||||
212.746 136.063 219.46 136.08 226.571 135.979 curveto
|
||||
252.095 135.614 271.873 130.749 289.14 120.587 curveto
|
||||
308.601 109.134 321.363 92.2822 326.524 71.2236 curveto
|
||||
335.072 36.3486 321.366 -6.4502 289.15 -45.4795 curveto
|
||||
282.302 -53.7773 267.42 -68.4414 258.324 -75.8555 curveto
|
||||
226.738 -101.601 189.636 -120.576 153.528 -129.453 curveto
|
||||
135.346 -133.924 123.98 -135.257 104.741 -135.177 curveto
|
||||
92.6133 -135.126 88.7939 -134.91 82.249 -133.904 curveto
|
||||
65.6562 -131.354 51.7188 -126.702 39.9668 -119.795 curveto
|
||||
20.5059 -108.355 7.74414 -91.5107 2.58203 -70.4521 curveto
|
||||
-5.96484 -35.5762 7.74121 7.22168 39.9561 46.251 curveto
|
||||
46.8047 54.5488 61.6865 69.2119 70.7832 76.624 curveto
|
||||
110.897 109.314 160.144 130.997 203.693 135.145 curveto
|
||||
207.057 135.465 210.617 135.82 211.687 135.942 curveto
|
||||
closepath
|
||||
1 0 0 setrgbcolor fill grestore
|
||||
%%EOF
|
91
Resources/Music/notehead.eps
Normal file
91
Resources/Music/notehead.eps
Normal file
|
@ -0,0 +1,91 @@
|
|||
%!PS-Adobe-3.0 EPSF-3.0
|
||||
%%BoundingBox: 0.0928459 -135.18 329.014 136.045
|
||||
%%Pages: 0
|
||||
%%Title: Quart-notehead from feta
|
||||
%%Creator: FontForge
|
||||
%%Author: Matthias Neeracher
|
||||
%%CreationDate: 15:02 27-12-2005
|
||||
%%EndComments
|
||||
%%BeginPreview: 73 60 4 60
|
||||
%00000000000000000000000000000000000000000001345666543200000000000000000000
|
||||
%00000000000000000000000000000000000000259BEFFFFFFFFFFFFC962000000000000000
|
||||
%0000000000000000000000000000000000049DFFFFFFFFFFFFFFFFFFFFFC60000000000000
|
||||
%0000000000000000000000000000000049EFFFFFFFFFFFFFFFFFFFFFFFFFFE700000000000
|
||||
%0000000000000000000000000000017DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3000000000
|
||||
%00000000000000000000000000028EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF700000000
|
||||
%000000000000000000000000019FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90000000
|
||||
%0000000000000000000000018EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9000000
|
||||
%00000000000000000000005DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF700000
|
||||
%000000000000000000002BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30000
|
||||
%00000000000000000006EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0000
|
||||
%000000000000000001AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4000
|
||||
%00000000000000003DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000
|
||||
%0000000000000006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF200
|
||||
%000000000000008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF600
|
||||
%00000000000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF900
|
||||
%000000000000AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC00
|
||||
%00000000000AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00
|
||||
%0000000000AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
|
||||
%0000000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
|
||||
%000000007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
|
||||
%00000004FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00
|
||||
%0000001EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC00
|
||||
%000000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA00
|
||||
%000006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF700
|
||||
%00001EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF300
|
||||
%00009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE000
|
||||
%0003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA000
|
||||
%000AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4000
|
||||
%003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0000
|
||||
%009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70000
|
||||
%01EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE10000
|
||||
%06FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000
|
||||
%0BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE100000
|
||||
%1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6000000
|
||||
%4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0000000
|
||||
%8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30000000
|
||||
%AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF700000000
|
||||
%DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000000000
|
||||
%EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1000000000
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE30000000000
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF500000000000
|
||||
%EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5000000000000
|
||||
%DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60000000000000
|
||||
%BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF500000000000000
|
||||
%8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5000000000000000
|
||||
%4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE30000000000000000
|
||||
%0EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC200000000000000000
|
||||
%09FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91000000000000000000
|
||||
%02FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE500000000000000000000
|
||||
%008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2000000000000000000000
|
||||
%001DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE600000000000000000000000
|
||||
%0003EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91000000000000000000000000
|
||||
%00005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB300000000000000000000000000
|
||||
%000004EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB40000000000000000000000000000
|
||||
%0000002CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3000000000000000000000000000000
|
||||
%000000007EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8200000000000000000000000000000000
|
||||
%00000000029EFFFFFFFFFFFFFFFFFFFFFFFFE9400000000000000000000000000000000000
|
||||
%0000000000016BFFFFFFFFFFFFFFFFFFFC8400000000000000000000000000000000000000
|
||||
%00000000000000147ACEFFFFFFEDB963000000000000000000000000000000000000000000
|
||||
%%EndPreview
|
||||
%%EndProlog
|
||||
%%Page "Quart-notehead" 1
|
||||
gsave newpath
|
||||
211.687 135.942 moveto
|
||||
212.746 136.063 219.46 136.08 226.571 135.979 curveto
|
||||
252.095 135.614 271.873 130.749 289.14 120.587 curveto
|
||||
308.601 109.134 321.363 92.2822 326.524 71.2236 curveto
|
||||
335.072 36.3486 321.366 -6.4502 289.15 -45.4795 curveto
|
||||
282.302 -53.7773 267.42 -68.4414 258.324 -75.8555 curveto
|
||||
226.738 -101.601 189.636 -120.576 153.528 -129.453 curveto
|
||||
135.346 -133.924 123.98 -135.257 104.741 -135.177 curveto
|
||||
92.6133 -135.126 88.7939 -134.91 82.249 -133.904 curveto
|
||||
65.6562 -131.354 51.7188 -126.702 39.9668 -119.795 curveto
|
||||
20.5059 -108.355 7.74414 -91.5107 2.58203 -70.4521 curveto
|
||||
-5.96484 -35.5762 7.74121 7.22168 39.9561 46.251 curveto
|
||||
46.8047 54.5488 61.6865 69.2119 70.7832 76.624 curveto
|
||||
110.897 109.314 160.144 130.997 203.693 135.145 curveto
|
||||
207.057 135.465 210.617 135.82 211.687 135.942 curveto
|
||||
closepath
|
||||
fill grestore
|
||||
%%EOF
|
129
Resources/Music/quarter-rest.eps
Normal file
129
Resources/Music/quarter-rest.eps
Normal file
|
@ -0,0 +1,129 @@
|
|||
%!PS-Adobe-3.0 EPSF-3.0
|
||||
%%BoundingBox: -22.2715 -318.973 241.368 395.851
|
||||
%%Pages: 0
|
||||
%%Title: Quarter-rest from feta
|
||||
%%Creator: FontForge
|
||||
%%Author: Matthias Neeracher
|
||||
%%CreationDate: 14:59 27-12-2005
|
||||
%%EndComments
|
||||
%%BeginPreview: 27 73 4 73
|
||||
%0000000012000000000000000000
|
||||
%00000001DF500000000000000000
|
||||
%00000002FFE30000000000000000
|
||||
%000000007FFE2000000000000000
|
||||
%000000000AFFC100000000000000
|
||||
%0000000001CFFB00000000000000
|
||||
%00000000002DFF90000000000000
|
||||
%000000000003FFF6000000000000
|
||||
%0000000000006FFF400000000000
|
||||
%0000000000000CFFE20000000000
|
||||
%00000000000005FFFD1000000000
|
||||
%00000000000000EFFFB000000000
|
||||
%00000000000000BFFFF900000000
|
||||
%000000000000009FFFFF70000000
|
||||
%000000000000008FFFFFF5000000
|
||||
%000000000000009FFFFFFE300000
|
||||
%00000000000000BFFFFFFFD10000
|
||||
%00000000000000EFFFFFFFFC0000
|
||||
%00000000000004FFFFFFFFFFA000
|
||||
%0000000000000BFFFFFFFFFFF700
|
||||
%0000000000004FFFFFFFFFFFFF30
|
||||
%000000000001DFFFFFFFFFFFFF80
|
||||
%00000000001CFFFFFFFFFFFFFF90
|
||||
%0000000002DFFFFFFFFFFFFFFF50
|
||||
%000000004EFFFFFFFFFFFFFFFC00
|
||||
%00000007FFFFFFFFFFFFFFFFE300
|
||||
%0000009FFFFFFFFFFFFFFFFE4000
|
||||
%00001BFFFFFFFFFFFFFFFFE40000
|
||||
%0001CFFFFFFFFFFFFFFFFD200000
|
||||
%000BFFFFFFFFFFFFFFFFB1000000
|
||||
%007FFFFFFFFFFFFFFFF800000000
|
||||
%00EFFFFFFFFFFFFFFF6000000000
|
||||
%03FFFFFFFFFFFFFFF40000000000
|
||||
%02FFFFFFFFFFFFFF600000000000
|
||||
%00BFFFFFFFFFFFFA000000000000
|
||||
%002EFFFFFFFFFFF2000000000000
|
||||
%0004FFFFFFFFFFA0000000000000
|
||||
%00006FFFFFFFFF50000000000000
|
||||
%000008FFFFFFFF20000000000000
|
||||
%000000BFFFFFFF00000000000000
|
||||
%0000001CFFFFFE00000000000000
|
||||
%00000002EFFFFF00000000000000
|
||||
%000000003FFFFF20000000000000
|
||||
%0000000005FFFF60000000000000
|
||||
%00000000008FFFB0000000000000
|
||||
%00000000000AFFF3000000000000
|
||||
%000000000000CFFC000000000000
|
||||
%0000000000001DFF900000000000
|
||||
%06BDCB85200003EFF60000000000
|
||||
%6FFFFFFFFD94004FFF4000000000
|
||||
%DFFFFFFFFFFFD827FFE300000000
|
||||
%FFFFFFFFFFFFFFFACFFD10000000
|
||||
%FFFFFFFFFFFFFFFFFFFFC0000000
|
||||
%FFFFFFFFFFFFFFFFFFFFFA000000
|
||||
%CFFFFFFFFFFFFFFFFFFFFF700000
|
||||
%9FFFFFFFFE843358BFFFFFF50000
|
||||
%5FFFFFFFE2000000017DFFFE3000
|
||||
%1FFFFFFF6000000000007EFFD100
|
||||
%0BFFFFFE00000000000002CFF700
|
||||
%05FFFFFB000000000000001BC200
|
||||
%00EFFFF800000000000000000000
|
||||
%008FFFF700000000000000000000
|
||||
%002FFFF700000000000000000000
|
||||
%0009FFF800000000000000000000
|
||||
%0002FFFA00000000000000000000
|
||||
%00008FFC00000000000000000000
|
||||
%00001EFE00000000000000000000
|
||||
%000006FF40000000000000000000
|
||||
%000000CF80000000000000000000
|
||||
%0000002FE0000000000000000000
|
||||
%00000007F6000000000000000000
|
||||
%00000000BE200000000000000000
|
||||
%000000001C600000000000000000
|
||||
%%EndPreview
|
||||
%%EndProlog
|
||||
%%Page "Quarter-rest" 1
|
||||
gsave newpath
|
||||
64.7188 395.023 moveto
|
||||
68.3018 396.294 71.0898 396.115 74.4766 394.398 curveto
|
||||
77.2422 392.996 82.7334 386.604 151.792 304.41 curveto
|
||||
230.796 210.144 lineto
|
||||
238.839 200.165 241.913 192.106 241.29 182.635 curveto
|
||||
240.211 166.262 228.06 149.227 200.938 126.066 curveto
|
||||
179.438 108.445 lineto
|
||||
151.488 85.8242 146.6 81.292 138.629 70.6172 curveto
|
||||
113.487 36.9473 108.746 -6.28418 126.21 -42.6133 curveto
|
||||
129.625 -49.7168 135.246 -58.2139 141.345 -65.4902 curveto
|
||||
186.797 -119.35 lineto
|
||||
209.146 -145.811 228.081 -168.709 228.918 -170.287 curveto
|
||||
230.902 -174.03 230.926 -177.288 228.997 -181.146 curveto
|
||||
226.542 -186.057 221.224 -189.526 216.152 -189.526 curveto
|
||||
213.085 -189.526 208.965 -187.211 205.36 -183.462 curveto
|
||||
195.787 -173.506 182.084 -164.249 166.759 -157.385 curveto
|
||||
130.815 -141.286 94.4062 -137.67 75.5234 -148.323 curveto
|
||||
71.7686 -150.441 65.3467 -156.891 62.9307 -160.971 curveto
|
||||
55.0303 -174.309 51.2588 -193.439 51.9766 -216.538 curveto
|
||||
53.0391 -250.717 63.5635 -286.143 78.2617 -305.017 curveto
|
||||
82.4688 -310.419 82.9355 -312.01 81.2695 -315.271 curveto
|
||||
79.5781 -318.578 75.4639 -319.932 72.2158 -318.248 curveto
|
||||
69.1846 -316.677 54.4639 -297.299 42.7764 -279.493 curveto
|
||||
10.3896 -230.154 -13.5127 -175.243 -20.7412 -133.572 curveto
|
||||
-22.0645 -125.942 -22.2715 -123.264 -22.2715 -113.727 curveto
|
||||
-22.2715 -101.213 -21.376 -96.1064 -17.9316 -88.9746 curveto
|
||||
-12.7539 -78.2549 -4.2998 -73.3965 10.1982 -72.8066 curveto
|
||||
40.3965 -71.5791 90.6836 -85.0605 138.037 -107.08 curveto
|
||||
143.439 -109.592 lineto
|
||||
139.044 -104.465 lineto
|
||||
20.625 36.2188 lineto
|
||||
2.20703 58.1592 1.8916 58.5664 -0.588867 63.6719 curveto
|
||||
-10.957 85.0088 -0.275391 106.545 36.1084 137.654 curveto
|
||||
57.6074 155.281 lineto
|
||||
85.6123 177.947 90.4434 182.433 98.5352 193.274 curveto
|
||||
126.678 230.981 128.839 281.014 103.933 318.191 curveto
|
||||
101.799 321.377 90.6338 335.198 79.1074 348.925 curveto
|
||||
67.5801 362.651 57.4766 375.134 56.6426 376.682 curveto
|
||||
55.6025 378.61 55.127 380.306 55.127 382.084 curveto
|
||||
55.127 387.236 59.5371 393.186 64.7188 395.023 curveto
|
||||
closepath
|
||||
fill grestore
|
||||
%%EOF
|
184
Resources/Music/sharp.eps
Normal file
184
Resources/Music/sharp.eps
Normal file
|
@ -0,0 +1,184 @@
|
|||
%!PS-Adobe-3.0 EPSF-3.0
|
||||
%%BoundingBox: 0.275391 -374.026 275.358 374.892
|
||||
%%Pages: 0
|
||||
%%Title: Sharp from feta
|
||||
%%Creator: FontForge
|
||||
%%Author: Matthias Neeracher
|
||||
%%CreationDate: 15:01 27-12-2005
|
||||
%%EndComments
|
||||
%%BeginPreview: 27 72 4 72
|
||||
%000000000000000002CB20000000
|
||||
%000000000000000009FF80000000
|
||||
%00000000000000000AFF90000000
|
||||
%00000000000000000AFF90000000
|
||||
%0000008D600000000AFF90000000
|
||||
%000002FFF00000000AFF90000000
|
||||
%000003FFF10000000AFF90000000
|
||||
%000003FFF10000000AFF90000000
|
||||
%000003FFF10000000AFF90000000
|
||||
%000003FFF10000000AFF90000000
|
||||
%000003FFF10000000AFF90000000
|
||||
%000003FFF10000000AFF90000000
|
||||
%000003FFF10000000AFF90000000
|
||||
%000003FFF10000000AFF90000000
|
||||
%000003FFF10000000AFFA005A910
|
||||
%000003FFF10000000AFFB8EFFF60
|
||||
%000003FFF10000000AFFFFFFFF60
|
||||
%000003FFF10000038EFFFFFFFF60
|
||||
%000003FFF10016CFFFFFFFFFFF60
|
||||
%000003FFF139EFFFFFFFFFFFFF60
|
||||
%000003FFFDFFFFFFFFFFFFFFFF60
|
||||
%000005FFFFFFFFFFFFFFFFFFFF60
|
||||
%0017DFFFFFFFFFFFFFFFFFFFFF40
|
||||
%2AFFFFFFFFFFFFFFFFFFFFFFB400
|
||||
%EFFFFFFFFFFFFFFFFFFFFE820000
|
||||
%FFFFFFFFFFFFFFFFFFFFA0000000
|
||||
%FFFFFFFFFFFFFFFFDDFF90000000
|
||||
%FFFFFFFFFFFFFFA40AFF90000000
|
||||
%FFFFFFFFFFFD71000AFF90000000
|
||||
%FFFFFFFFFA4000000AFF90000000
|
||||
%FFFFFFFFF10000000AFF90000000
|
||||
%EFFE96FFF10000000AFF90000000
|
||||
%4A6103FFF10000000AFF90000000
|
||||
%000003FFF10000000AFF90000000
|
||||
%000003FFF10000000AFF90000000
|
||||
%000003FFF10000000AFF90000000
|
||||
%000003FFF10000000AFF90000000
|
||||
%000003FFF10000000AFF90000000
|
||||
%000003FFF10000000AFF90000000
|
||||
%000003FFF10000000AFF90026600
|
||||
%000003FFF10000000AFF94AFFF50
|
||||
%000003FFF10000000AFFFFFFFF60
|
||||
%000003FFF10000005DFFFFFFFF60
|
||||
%000003FFF100028EFFFFFFFFFF60
|
||||
%000003FFF105BFFFFFFFFFFFFF60
|
||||
%000003FFF9EFFFFFFFFFFFFFFF60
|
||||
%000003FFFFFFFFFFFFFFFFFFFF60
|
||||
%00039EFFFFFFFFFFFFFFFFFFFF50
|
||||
%06CFFFFFFFFFFFFFFFFFFFFFE800
|
||||
%CFFFFFFFFFFFFFFFFFFFFFB51000
|
||||
%FFFFFFFFFFFFFFFFFFFFC2000000
|
||||
%FFFFFFFFFFFFFFFFFEFF90000000
|
||||
%FFFFFFFFFFFFFFE82BFF90000000
|
||||
%FFFFFFFFFFFFB5000AFF90000000
|
||||
%FFFFFFFFFD8200000AFF90000000
|
||||
%FFFFFFFFF10000000AFF90000000
|
||||
%FFFFDAFFF10000000AFF90000000
|
||||
%8DA403FFF10000000AFF90000000
|
||||
%000003FFF10000000AFF90000000
|
||||
%000003FFF10000000AFF90000000
|
||||
%000003FFF10000000AFF90000000
|
||||
%000003FFF10000000AFF90000000
|
||||
%000003FFF10000000AFF90000000
|
||||
%000003FFF10000000AFF90000000
|
||||
%000003FFF10000000AFF90000000
|
||||
%000003FFF10000000AFF90000000
|
||||
%000003FFF100000009FF80000000
|
||||
%000003FFF100000003DD20000000
|
||||
%000003FFF1000000000000000000
|
||||
%000003FFF1000000000000000000
|
||||
%000003FFF1000000000000000000
|
||||
%000000AE80000000000000000000
|
||||
%%EndPreview
|
||||
%%EndProlog
|
||||
%%Page "Sharp" 1
|
||||
gsave newpath
|
||||
192.613 374.002 moveto
|
||||
200.331 376.769 209.377 372.878 213.173 365.16 curveto
|
||||
214.719 362.018 lineto
|
||||
214.994 286.715 lineto
|
||||
215.271 211.411 lineto
|
||||
235.392 219.433 lineto
|
||||
255.348 227.387 255.549 227.453 259.923 227.48 curveto
|
||||
263.396 227.502 264.813 227.252 266.593 226.301 curveto
|
||||
270.121 224.415 272.223 222.392 273.866 219.294 curveto
|
||||
275.358 216.482 lineto
|
||||
275.358 179.823 lineto
|
||||
275.358 143.164 lineto
|
||||
273.878 140.353 lineto
|
||||
271.073 135.027 270.287 134.613 241.455 123.262 curveto
|
||||
214.994 112.845 lineto
|
||||
214.994 30.623 lineto
|
||||
214.994 -51.5986 lineto
|
||||
220.369 -49.5039 lineto
|
||||
240.629 -41.4551 lineto
|
||||
255.127 -35.6562 255.627 -35.501 259.923 -35.4736 curveto
|
||||
263.451 -35.4521 264.785 -35.6885 266.593 -36.6543 curveto
|
||||
270.121 -38.5391 272.223 -40.5635 273.866 -43.6602 curveto
|
||||
275.358 -46.4717 lineto
|
||||
275.358 -83.1309 lineto
|
||||
275.358 -119.791 lineto
|
||||
273.849 -122.657 lineto
|
||||
271.072 -127.929 270.287 -128.342 241.455 -139.692 curveto
|
||||
214.994 -150.11 lineto
|
||||
214.856 -234.729 lineto
|
||||
214.719 -319.35 lineto
|
||||
213.543 -321.886 lineto
|
||||
211.856 -325.523 208.751 -328.715 205.182 -330.477 curveto
|
||||
200.717 -332.681 195.094 -332.681 190.629 -330.477 curveto
|
||||
187.06 -328.715 183.954 -325.523 182.267 -321.886 curveto
|
||||
181.092 -319.35 lineto
|
||||
180.815 -241.565 lineto
|
||||
180.54 -163.781 lineto
|
||||
137.707 -180.65 lineto
|
||||
94.873 -197.52 lineto
|
||||
94.708 -279.383 lineto
|
||||
94.542 -361.246 lineto
|
||||
93.3672 -363.781 lineto
|
||||
91.6807 -367.42 88.5742 -370.611 85.0059 -372.373 curveto
|
||||
80.54 -374.577 74.917 -374.577 70.4521 -372.373 curveto
|
||||
66.8828 -370.611 63.7773 -367.42 62.0908 -363.781 curveto
|
||||
60.915 -361.246 lineto
|
||||
60.6396 -286.219 lineto
|
||||
60.3643 -211.19 lineto
|
||||
40.2422 -219.212 lineto
|
||||
20.2871 -227.167 20.085 -227.232 15.7109 -227.26 curveto
|
||||
12.2383 -227.282 10.8203 -227.031 9.04102 -226.08 curveto
|
||||
5.5127 -224.194 3.41113 -222.171 1.76758 -219.074 curveto
|
||||
0.275391 -216.263 lineto
|
||||
0.275391 -179.604 lineto
|
||||
0.275391 -142.943 lineto
|
||||
1.75586 -140.133 lineto
|
||||
4.56055 -134.807 5.34766 -134.393 34.1787 -123.042 curveto
|
||||
60.6396 -112.624 lineto
|
||||
60.6396 -30.4023 lineto
|
||||
60.6396 51.8193 lineto
|
||||
55.2646 49.7246 lineto
|
||||
35.0059 41.6758 lineto
|
||||
20.5068 35.877 20.0068 35.7217 15.7109 35.6943 curveto
|
||||
12.1826 35.6729 10.8486 35.9082 9.04102 36.875 curveto
|
||||
5.5127 38.7598 3.41113 40.7842 1.76758 43.8809 curveto
|
||||
0.275391 46.6924 lineto
|
||||
0.275391 83.3516 lineto
|
||||
0.275391 120.011 lineto
|
||||
1.78516 122.878 lineto
|
||||
4.56152 128.149 5.34766 128.562 34.1787 139.913 curveto
|
||||
60.6396 150.331 lineto
|
||||
60.7773 235.226 lineto
|
||||
60.915 320.121 lineto
|
||||
62.0908 322.657 lineto
|
||||
63.7773 326.296 66.8828 329.486 70.4521 331.248 curveto
|
||||
74.917 333.452 80.54 333.452 85.0059 331.248 curveto
|
||||
88.5742 329.486 91.6807 326.296 93.3672 322.657 curveto
|
||||
94.542 320.121 lineto
|
||||
94.8184 242.062 lineto
|
||||
95.0938 164.002 lineto
|
||||
137.955 180.871 lineto
|
||||
180.815 197.74 lineto
|
||||
180.815 278.831 lineto
|
||||
180.815 367.641 180.642 362.936 184.108 367.695 curveto
|
||||
186.25 370.636 189.085 372.738 192.613 374.002 curveto
|
||||
closepath
|
||||
180.815 17.0615 moveto
|
||||
180.815 62.3213 180.754 99.3262 180.678 99.3105 curveto
|
||||
180.603 99.2959 161.273 91.6758 137.679 82.3594 curveto
|
||||
94.8184 65.4355 lineto
|
||||
94.8184 -16.8408 lineto
|
||||
94.8184 -99.1182 lineto
|
||||
97.2158 -98.1533 lineto
|
||||
140.215 -81.2021 lineto
|
||||
180.815 -65.2148 lineto
|
||||
180.815 17.0615 lineto
|
||||
closepath
|
||||
fill grestore
|
||||
%%EOF
|
132
Resources/Music/sixteenth-flag.eps
Normal file
132
Resources/Music/sixteenth-flag.eps
Normal file
|
@ -0,0 +1,132 @@
|
|||
%!PS-Adobe-3.0 EPSF-3.0
|
||||
%%BoundingBox: -13.7812 -877.784 208.379 0.110352
|
||||
%%Pages: 0
|
||||
%%Title: $16th-Flag from feta
|
||||
%%Creator: FontForge
|
||||
%%Author: Matthias Neeracher
|
||||
%%CreationDate: 22:00 10-1-2006
|
||||
%%EndComments
|
||||
%%BeginPreview: 19 72 4 72
|
||||
%F2000000000000000000
|
||||
%F3000000000000000000
|
||||
%F4000000000000000000
|
||||
%F7000000000000000000
|
||||
%FA000000000000000000
|
||||
%FE000000000000000000
|
||||
%FF300000000000000000
|
||||
%FF800000000000000000
|
||||
%FFE00000000000000000
|
||||
%FFF60000000000000000
|
||||
%FFFD0000000000000000
|
||||
%FFFF6000000000000000
|
||||
%FFFFE100000000000000
|
||||
%FFFFF800000000000000
|
||||
%FFFFFF30000000000000
|
||||
%FFFFFFC0000000000000
|
||||
%FFFFFFF7000000000000
|
||||
%FDFFFFFF300000000000
|
||||
%F3BFFFFFC00000000000
|
||||
%F41BFFFFF80000000000
|
||||
%F601BFFFFF3000000000
|
||||
%F8001CFFFFD100000000
|
||||
%FC0001CFFFF900000000
|
||||
%FF10002DFFFF30000000
|
||||
%FF600003EFFFD0000000
|
||||
%FFC000005FFFF7000000
|
||||
%FFF4000008FFFE100000
|
||||
%FFFB000000CFFF900000
|
||||
%FFFF4000002FFFF20000
|
||||
%FFFFC0000007FFF90000
|
||||
%FFFFF6000000DFFE1000
|
||||
%FFFFFE1000006FFF6000
|
||||
%FFFFFFA000000DFFB000
|
||||
%FFFFFFF5000008FFF100
|
||||
%FFFFFFFE200003FFF400
|
||||
%F6EFFFFFB00000DFF700
|
||||
%F23EFFFFF70000AFF900
|
||||
%F203EFFFFF30008FFA00
|
||||
%F2002EFFFFC0008FFB00
|
||||
%F20002EFFFF8008FFA00
|
||||
%F200003EFFFF40AFF900
|
||||
%10000004FFFFD1DFF700
|
||||
%000000005FFFFAFFF400
|
||||
%0000000008FFFFFFE000
|
||||
%0000000000BFFFFFA000
|
||||
%00000000001EFFFF4000
|
||||
%000000000005FFFE0000
|
||||
%000000000000BFFF4000
|
||||
%0000000000002FFFA000
|
||||
%0000000000000AFFF100
|
||||
%00000000000003FFF600
|
||||
%00000000000000DFFA00
|
||||
%000000000000008FFD00
|
||||
%000000000000004FFF00
|
||||
%000000000000002FFF20
|
||||
%000000000000000FFF30
|
||||
%000000000000000FFF30
|
||||
%000000000000001FFF30
|
||||
%000000000000002FFF20
|
||||
%000000000000003FFF10
|
||||
%000000000000005FFE00
|
||||
%000000000000008FFB00
|
||||
%00000000000000BFF900
|
||||
%00000000000000EFF500
|
||||
%00000000000004FFF200
|
||||
%00000000000008FFD000
|
||||
%0000000000000DFF8000
|
||||
%0000000000004FFF4000
|
||||
%000000000000AFFD0000
|
||||
%000000000002FFF70000
|
||||
%000000000005FFF20000
|
||||
%000000000001BF700000
|
||||
%%EndPreview
|
||||
%%EndProlog
|
||||
%%Page "$16th-Flag" 1
|
||||
gsave newpath
|
||||
-13.7812 -250.165 moveto
|
||||
-13.7812 0.110352 lineto
|
||||
-6.89062 0.110352 lineto
|
||||
0 0.110352 lineto
|
||||
0 -4.13477 lineto
|
||||
0 -14.2363 1.87598 -32.084 4.21777 -44.2666 curveto
|
||||
10.8584 -78.8086 24.5137 -113.23 47.2324 -152.701 curveto
|
||||
58.5977 -172.445 73.8438 -195.811 103.276 -238.589 curveto
|
||||
129.314 -276.902 lineto
|
||||
168.974 -337.101 188.774 -379.863 197.597 -424.366 curveto
|
||||
206.963 -471.609 202.284 -514.225 182.945 -557.828 curveto
|
||||
179.107 -566.482 lineto
|
||||
183.054 -575.193 lineto
|
||||
200.237 -613.12 208.379 -648.584 208.379 -685.502 curveto
|
||||
208.379 -740.415 195.241 -800.827 170.818 -858.214 curveto
|
||||
165.61 -870.452 163.704 -873.047 157.772 -875.966 curveto
|
||||
154.407 -877.622 153.639 -877.784 149.118 -877.784 curveto
|
||||
144.708 -877.784 143.746 -877.59 140.463 -876.036 curveto
|
||||
132.942 -872.479 128.511 -866.263 128.032 -858.6 curveto
|
||||
127.784 -854.631 lineto
|
||||
132.221 -844.873 lineto
|
||||
145.272 -816.172 154.283 -789.526 160.667 -760.75 curveto
|
||||
168.408 -725.854 171.186 -686.117 167.59 -661.687 curveto
|
||||
159.001 -603.339 119.35 -540.584 44.7627 -467.293 curveto
|
||||
34.2334 -456.946 11.0742 -435.187 2.37012 -427.462 curveto
|
||||
0 -425.358 lineto
|
||||
0 -462.899 lineto
|
||||
0 -500.441 lineto
|
||||
-6.89062 -500.441 lineto
|
||||
-13.7812 -500.441 lineto
|
||||
-13.7812 -250.165 lineto
|
||||
closepath
|
||||
33.1094 -245.039 moveto
|
||||
9.2334 -221.389 lineto
|
||||
0 -212.569 lineto
|
||||
0 -216.648 lineto
|
||||
0 -222.91 0.992188 -235.227 2.22363 -244.267 curveto
|
||||
7.60254 -283.727 23.0381 -323.649 50.332 -368.688 curveto
|
||||
63.1426 -389.827 74.4805 -406.67 100.65 -443.439 curveto
|
||||
127.448 -481.092 142.83 -503.48 151.287 -517.145 curveto
|
||||
152.72 -519.46 154.09 -521.39 154.3 -521.39 curveto
|
||||
155.469 -521.39 159.837 -504.024 161.58 -492.447 curveto
|
||||
169.574 -439.372 147.091 -379.327 94.3916 -313.01 curveto
|
||||
77.0576 -291.196 59.9453 -272.216 33.1094 -245.039 curveto
|
||||
closepath
|
||||
fill grestore
|
||||
%%EOF
|
126
Resources/Music/sixteenth-rest.eps
Normal file
126
Resources/Music/sixteenth-rest.eps
Normal file
|
@ -0,0 +1,126 @@
|
|||
%!PS-Adobe-3.0 EPSF-3.0
|
||||
%%BoundingBox: -25.3103 -509.068 299.89 205.14
|
||||
%%Pages: 0
|
||||
%%Title: $16th-rest from feta
|
||||
%%Creator: FontForge
|
||||
%%Author: Matthias Neeracher
|
||||
%%CreationDate: 15:00 27-12-2005
|
||||
%%EndComments
|
||||
%%BeginPreview: 33 73 4 73
|
||||
%0000000000000011000000000000000000
|
||||
%0000000000029EFFE92000000000000000
|
||||
%00000000007FFFFFFFE400000000000000
|
||||
%0000000007FFFFFFFFFE20000000004D70
|
||||
%000000002FFFFFFFFFFF9000000000DFA0
|
||||
%000000009FFFFFFFFFFFE000000007FF60
|
||||
%00000000EFFFFFFFFFFFF30000002EFF20
|
||||
%00000001FFFFFFFFFFFFF7000000CFFD00
|
||||
%00000001FFFFFFFFFFFFFA000009FFF900
|
||||
%00000000EFFFFFFFFFFFFE10007FFFF500
|
||||
%00000000BFFFFFFFFFFFFFB218FFFFF100
|
||||
%000000004FFFFFFFFFFFFFFFFFFFFFC000
|
||||
%000000000AFFFFFFFFFFFFFFFFFFFF8000
|
||||
%0000000001CFFFFFFFFFFFFFFFFFFF4000
|
||||
%000000000019FFFFFFFFFFFFC72CFE0000
|
||||
%00000000000039DFFFFEC951001FFB0000
|
||||
%000000000000000122100000006FF70000
|
||||
%00000000000000000000000000AFF30000
|
||||
%00000000000000000000000000EFE00000
|
||||
%00000000000000000000000004FFA00000
|
||||
%00000000000000000000000009FF600000
|
||||
%0000000000000000000000000EFF200000
|
||||
%0000000000000000000000003FFD000000
|
||||
%0000000000000000000000008FF8000000
|
||||
%000000000000000000000000CFF4000000
|
||||
%000000000000000000000002FFF1000000
|
||||
%00005ACCA600000000000007FFB0000000
|
||||
%002CFFFFFFC200000000000BFF70000000
|
||||
%02EFFFFFFFFD10000000001FFF30000000
|
||||
%0DFFFFFFFFFF90000000006FFE00000000
|
||||
%6FFFFFFFFFFFE000000001DFFA00000000
|
||||
%BFFFFFFFFFFFF400000008FFF600000000
|
||||
%EFFFFFFFFFFFF70000004FFFF200000000
|
||||
%FFFFFFFFFFFFFB000002EFFFD000000000
|
||||
%DFFFFFFFFFFFFE10001DFFFF9000000000
|
||||
%AFFFFFFFFFFFFF9003DFFFFF5000000000
|
||||
%5FFFFFFFFFFFFFFDBFFFFFFF1000000000
|
||||
%0BFFFFFFFFFFFFFFFFFFFFFC0000000000
|
||||
%02DFFFFFFFFFFFFFFFFFFFF80000000000
|
||||
%002CFFFFFFFFFFFFFC78FFF40000000000
|
||||
%00006CFFFFFFFDA6200AFFE00000000000
|
||||
%0000002566531000001EFFB00000000000
|
||||
%0000000000000000005FFF700000000000
|
||||
%0000000000000000009FFF300000000000
|
||||
%000000000000000000EFFE000000000000
|
||||
%000000000000000003FFFA000000000000
|
||||
%000000000000000008FFF6000000000000
|
||||
%00000000000000000DFFF2000000000000
|
||||
%00000000000000002FFFC0000000000000
|
||||
%00000000000000007FFF80000000000000
|
||||
%0000000000000000BFFF40000000000000
|
||||
%0000000000000001FFFF10000000000000
|
||||
%0000000000000005FFFB00000000000000
|
||||
%000000000000000AFFF700000000000000
|
||||
%000000000000000EFFF300000000000000
|
||||
%000000000000004FFFE000000000000000
|
||||
%000000000000009FFFA000000000000000
|
||||
%00000000000000DFFF6000000000000000
|
||||
%00000000000003FFFF2000000000000000
|
||||
%00000000000007FFFD0000000000000000
|
||||
%0000000000000CFFF90000000000000000
|
||||
%0000000000001FFFF50000000000000000
|
||||
%0000000000006FFFF10000000000000000
|
||||
%000000000000AFFFC00000000000000000
|
||||
%000000000001EFFF800000000000000000
|
||||
%000000000005FFFF400000000000000000
|
||||
%000000000009FFFE000000000000000000
|
||||
%00000000000EFFFA000000000000000000
|
||||
%00000000003FFFF6000000000000000000
|
||||
%00000000008FFFF2000000000000000000
|
||||
%0000000000CFFFD0000000000000000000
|
||||
%0000000002FFFF90000000000000000000
|
||||
%0000000001AEFB20000000000000000000
|
||||
%%EndPreview
|
||||
%%EndProlog
|
||||
%%Page "$16th-rest" 1
|
||||
gsave newpath
|
||||
114.774 204.578 moveto
|
||||
137.211 207.497 158.642 198.919 171.662 181.809 curveto
|
||||
178.805 172.422 181.571 164.994 186.589 141.73 curveto
|
||||
190.31 124.477 193.026 117.228 197.726 112.018 curveto
|
||||
201.667 107.647 208.6 104.852 215.49 104.852 curveto
|
||||
222.769 104.852 234.005 114.112 247.929 131.588 curveto
|
||||
258.515 144.873 268 159.235 273.744 170.673 curveto
|
||||
275.737 174.642 277.888 178.43 278.564 179.162 curveto
|
||||
281.901 182.774 288.479 184.102 293.054 182.086 curveto
|
||||
296.361 180.629 297.52 179.604 298.843 176.957 curveto
|
||||
299.89 174.862 lineto
|
||||
208.931 -162.928 lineto
|
||||
131.695 -449.752 117.788 -500.862 116.759 -501.683 curveto
|
||||
114.173 -503.741 108.71 -506.486 104.741 -507.721 curveto
|
||||
98.6602 -509.611 89.1396 -509.5 82.9658 -507.466 curveto
|
||||
77.5078 -505.667 70.3926 -501.307 70.7832 -500 curveto
|
||||
71.6377 -497.134 169.854 -174.219 170.027 -173.704 curveto
|
||||
170.14 -173.372 164.829 -174.927 158.269 -177.148 curveto
|
||||
130.21 -186.648 107.478 -192.138 85.4463 -194.733 curveto
|
||||
74.6973 -196 59.3604 -196.413 52.0947 -195.631 curveto
|
||||
24.9727 -192.713 1.7998 -179.532 -12.2363 -159.041 curveto
|
||||
-35.3066 -125.358 -27.0195 -79.4033 6.11914 -57.2637 curveto
|
||||
17.499 -49.6611 28.8311 -45.9609 42.7236 -45.3135 curveto
|
||||
63.0098 -44.3682 81.4727 -52.8057 93.3857 -68.4678 curveto
|
||||
100.525 -77.8535 103.291 -85.2812 108.309 -108.545 curveto
|
||||
112.029 -125.8 114.756 -133.062 119.481 -138.313 curveto
|
||||
123.618 -142.909 131.478 -145.848 138.147 -145.293 curveto
|
||||
146.84 -144.57 161.318 -132.028 177.899 -110.86 curveto
|
||||
184.377 -102.591 194.13 -87.8271 197.091 -81.8086 curveto
|
||||
199.035 -77.8564 204.52 -60.5293 222.933 -0.165039 curveto
|
||||
235.797 42.0068 246.27 76.498 246.224 76.5439 curveto
|
||||
246.179 76.5889 241.786 75.1445 236.494 73.3447 curveto
|
||||
208.379 63.7803 184.939 58.0605 163.451 55.5186 curveto
|
||||
152.977 54.2793 137.554 53.8721 130.375 54.6445 curveto
|
||||
103.253 57.5635 80.0771 70.7432 66.0361 91.2344 curveto
|
||||
46.3936 119.9 49.1475 158.309 72.6279 183.187 curveto
|
||||
83.3369 194.531 99.1182 202.542 114.774 204.578 curveto
|
||||
closepath
|
||||
fill grestore
|
||||
%%EOF
|
150
Resources/Music/thirtysecondth-flag.eps
Normal file
150
Resources/Music/thirtysecondth-flag.eps
Normal file
|
@ -0,0 +1,150 @@
|
|||
%!PS-Adobe-3.0 EPSF-3.0
|
||||
%%BoundingBox: -13.7812 -1073.48 208.104 0.110352
|
||||
%%Pages: 0
|
||||
%%Title: $32nd-Flag from feta
|
||||
%%Creator: FontForge
|
||||
%%Author: Matthias Neeracher
|
||||
%%CreationDate: 22:00 10-1-2006
|
||||
%%EndComments
|
||||
%%BeginPreview: 15 72 4 72
|
||||
%D000000000000000
|
||||
%F000000000000000
|
||||
%F100000000000000
|
||||
%F400000000000000
|
||||
%F800000000000000
|
||||
%FC00000000000000
|
||||
%FF20000000000000
|
||||
%FF80000000000000
|
||||
%FFE1000000000000
|
||||
%FFF7000000000000
|
||||
%FFFE100000000000
|
||||
%FFFF900000000000
|
||||
%FFFFF30000000000
|
||||
%FFFFFC0000000000
|
||||
%ECFFFF6000000000
|
||||
%E1DFFFE200000000
|
||||
%F12EFFFB00000000
|
||||
%F303EFFF50000000
|
||||
%F7005FFFE1000000
|
||||
%FB0007FFF9000000
|
||||
%FF1000AFFF300000
|
||||
%FF80001DFFB00000
|
||||
%FFE10004FFF40000
|
||||
%FFF700009FFB0000
|
||||
%FFFE20001EFF3000
|
||||
%FFFFB00007FF9000
|
||||
%FFFFF50001EFE000
|
||||
%FFFFFE2000AFF300
|
||||
%FFFFFFB0005FF700
|
||||
%E6FFFFF7001FFA00
|
||||
%F05FFFFF300EFB00
|
||||
%F204EFFFD10DFC00
|
||||
%F4003EFFF90DFC00
|
||||
%F80003EFFF5EFA00
|
||||
%FD00004FFFEFF800
|
||||
%FF400006FFFFF400
|
||||
%FFB000009FFFD000
|
||||
%FFF400000DFFA000
|
||||
%FFFC000003FFF100
|
||||
%FFFF600000AFF700
|
||||
%FFFFE200003FFC00
|
||||
%FFFFFB00000CFF10
|
||||
%FFFFFF700007FF40
|
||||
%FDFFFFF40004FF60
|
||||
%E1CFFFFD1003FF70
|
||||
%E01AFFFFB003FF70
|
||||
%E0009FFFF704FF60
|
||||
%E00008FFFF36FF40
|
||||
%E000008FFFDAFF10
|
||||
%E0000009FFFFFC00
|
||||
%50000000BFFFF700
|
||||
%000000001DFFF100
|
||||
%0000000004FFF300
|
||||
%00000000009FF900
|
||||
%00000000001EFE10
|
||||
%000000000009FF50
|
||||
%000000000004FF80
|
||||
%000000000000EFB0
|
||||
%000000000000CFD0
|
||||
%000000000000BFD0
|
||||
%000000000000CFD0
|
||||
%000000000000DFC0
|
||||
%000000000000EFA0
|
||||
%000000000002FF80
|
||||
%000000000005FF50
|
||||
%000000000009FF20
|
||||
%00000000000DFD00
|
||||
%00000000004FF900
|
||||
%0000000000AFF400
|
||||
%0000000001FFD000
|
||||
%0000000007FF7000
|
||||
%0000000003EC1000
|
||||
%%EndPreview
|
||||
%%EndProlog
|
||||
%%Page "$32nd-Flag" 1
|
||||
gsave newpath
|
||||
-13.7812 -375.303 moveto
|
||||
-13.7812 0.110352 lineto
|
||||
-6.89062 0.110352 lineto
|
||||
0 0.110352 lineto
|
||||
0 -4.16211 lineto
|
||||
0 -6.51172 0.246094 -11.9072 0.546875 -16.1523 curveto
|
||||
3.91797 -63.6836 19.7617 -109.702 52.3623 -166.648 curveto
|
||||
62.9268 -185.103 71.1094 -198.291 94.2588 -234.179 curveto
|
||||
130.033 -289.636 140.997 -307.924 154.907 -335.336 curveto
|
||||
180.196 -385.171 192.393 -430.282 192.393 -473.98 curveto
|
||||
192.393 -498.842 186.658 -526.082 176.354 -550.165 curveto
|
||||
173.595 -556.615 lineto
|
||||
175.478 -560.364 lineto
|
||||
180.77 -570.896 188.113 -589.581 192.117 -602.701 curveto
|
||||
196.112 -615.792 199.262 -630.871 201.042 -645.425 curveto
|
||||
202.401 -656.532 202.399 -682.58 201.038 -694.046 curveto
|
||||
198.003 -719.625 191.387 -744.482 181.303 -768.191 curveto
|
||||
180.06 -771.113 179.176 -773.879 179.327 -774.366 curveto
|
||||
179.479 -774.852 181.46 -779.217 183.73 -784.068 curveto
|
||||
196.357 -811.057 203.659 -835.942 207.102 -863.727 curveto
|
||||
208.446 -874.576 208.436 -903.639 207.082 -918.302 curveto
|
||||
203.087 -961.576 192.347 -1003.75 174.723 -1045.37 curveto
|
||||
166.085 -1065.77 164.352 -1068.45 157.718 -1071.7 curveto
|
||||
154.443 -1073.31 153.583 -1073.48 149.118 -1073.48 curveto
|
||||
144.708 -1073.48 143.746 -1073.29 140.463 -1071.74 curveto
|
||||
132.942 -1068.18 128.512 -1061.96 128.034 -1054.3 curveto
|
||||
127.801 -1050.55 127.919 -1050.01 129.75 -1046.36 curveto
|
||||
139.893 -1026.17 150.522 -998.512 156.766 -976.075 curveto
|
||||
167.367 -937.982 171.746 -893.853 167.626 -866.648 curveto
|
||||
158.104 -803.79 110.419 -739.923 11.5762 -657.644 curveto
|
||||
0.275391 -648.236 lineto
|
||||
0.137695 -699.477 lineto
|
||||
0 -750.717 lineto
|
||||
-6.89062 -750.717 lineto
|
||||
-13.7812 -750.717 lineto
|
||||
-13.7812 -375.303 lineto
|
||||
closepath
|
||||
16.293 -229.823 moveto
|
||||
2.86621 -215.49 lineto
|
||||
-0.0546875 -212.403 lineto
|
||||
0.234375 -223.704 lineto
|
||||
1.08496 -256.876 9.22559 -289.25 25.5439 -324.366 curveto
|
||||
39.5674 -354.543 56.9561 -382.305 94.2236 -434.014 curveto
|
||||
120.287 -470.177 128.677 -482.072 138.35 -496.582 curveto
|
||||
148.126 -511.246 lineto
|
||||
149.603 -505.017 lineto
|
||||
152.34 -493.467 152.922 -487.982 152.922 -473.704 curveto
|
||||
152.922 -452.297 149.909 -435.446 141.932 -412.238 curveto
|
||||
123.879 -359.72 85.291 -303.693 16.293 -229.823 curveto
|
||||
closepath
|
||||
13.5059 -442.136 moveto
|
||||
1.15723 -431.312 lineto
|
||||
-0.165039 -430.154 lineto
|
||||
0.170898 -441.18 lineto
|
||||
1.63477 -489.198 17.2129 -533.241 52.2314 -588.368 curveto
|
||||
63.8203 -606.61 76.7178 -624.697 108.644 -667.476 curveto
|
||||
128.104 -693.55 137.2 -706.161 146.616 -720.121 curveto
|
||||
153.197 -729.879 lineto
|
||||
154.601 -725.413 lineto
|
||||
160.285 -707.325 162.888 -689.856 162.861 -669.956 curveto
|
||||
162.848 -659.096 162.624 -655.303 161.611 -648.787 curveto
|
||||
152.031 -587.135 106.615 -523.766 13.5059 -442.136 curveto
|
||||
closepath
|
||||
fill grestore
|
||||
%%EOF
|
137
Resources/Music/thirtysecondth-rest.eps
Normal file
137
Resources/Music/thirtysecondth-rest.eps
Normal file
|
@ -0,0 +1,137 @@
|
|||
%!PS-Adobe-3.0 EPSF-3.0
|
||||
%%BoundingBox: -53.9761 -508.948 325.523 455.428
|
||||
%%Pages: 0
|
||||
%%Title: $32th-rest from feta
|
||||
%%Creator: FontForge
|
||||
%%Author: Matthias Neeracher
|
||||
%%CreationDate: 15:00 27-12-2005
|
||||
%%EndComments
|
||||
%%BeginPreview: 29 73 4 73
|
||||
%000000000000003430000000000000
|
||||
%0000000000004DFFFD400000000000
|
||||
%000000000006FFFFFFF40000002920
|
||||
%00000000002EFFFFFFFC000000AF50
|
||||
%00000000007FFFFFFFFF100003FF20
|
||||
%0000000000AFFFFFFFFF50000CFD00
|
||||
%0000000000AFFFFFFFFF90007FF900
|
||||
%00000000008FFFFFFFFFE206FFF600
|
||||
%00000000002FFFFFFFFFFECFFFF200
|
||||
%000000000008FFFFFFFFFFFFFFE000
|
||||
%0000000000008FFFFFFFFFFBAFA000
|
||||
%000000000000039DFFEC95109F7000
|
||||
%000000000000000000000000DF3000
|
||||
%000000000000000000000002FE0000
|
||||
%000000000000000000000006FB0000
|
||||
%00000000000000000000000AF70000
|
||||
%00000000000000000000000EF40000
|
||||
%00000000000000000000003FF10000
|
||||
%00000000000000000000007FC00000
|
||||
%0000000027861000000000BF800000
|
||||
%00000019FFFFE500000000EF500000
|
||||
%000000BFFFFFFF30000004FF100000
|
||||
%000005FFFFFFFFA0000009FD000000
|
||||
%00000AFFFFFFFFE000003FF9000000
|
||||
%00000DFFFFFFFFF30001DFF5000000
|
||||
%00000CFFFFFFFFF7000AFFF2000000
|
||||
%000009FFFFFFFFFE31AFFFD0000000
|
||||
%000003FFFFFFFFFFFFFFFFA0000000
|
||||
%0000007FFFFFFFFFFFFFFF60000000
|
||||
%00000006EFFFFFFFFC77FF30000000
|
||||
%0000000017ACBA851009FE00000000
|
||||
%0000000000000000000CFA00000000
|
||||
%0000000000000000001FF700000000
|
||||
%0000000000000000005FF300000000
|
||||
%0000000000000000009FE000000000
|
||||
%000000000000000000DFB000000000
|
||||
%000000000000000002FF8000000000
|
||||
%000000000000000006FF4000000000
|
||||
%0017AB93000000000AFF1000000000
|
||||
%03DFFFFF700000000EFC0000000000
|
||||
%1EFFFFFFF30000004FF80000000000
|
||||
%8FFFFFFFFA000000AFF50000000000
|
||||
%DFFFFFFFFE000005FFF10000000000
|
||||
%EFFFFFFFFF20002EFFD00000000000
|
||||
%DFFFFFFFFF7001DFFF900000000000
|
||||
%AFFFFFFFFFE65DFFFF600000000000
|
||||
%3FFFFFFFFFFFFFFFFF200000000000
|
||||
%06FFFFFFFFFFFFEFFD000000000000
|
||||
%004DFFFFFFFD844FFA000000000000
|
||||
%000047886410008FF6000000000000
|
||||
%00000000000000CFF3000000000000
|
||||
%00000000000001FFE0000000000000
|
||||
%00000000000005FFB0000000000000
|
||||
%00000000000009FF70000000000000
|
||||
%0000000000000DFF40000000000000
|
||||
%0000000000002FFF00000000000000
|
||||
%0000000000006FFB00000000000000
|
||||
%000000000000AFF800000000000000
|
||||
%000000000000DFF400000000000000
|
||||
%000000000002FFF100000000000000
|
||||
%000000000006FFC000000000000000
|
||||
%00000000000AFF8000000000000000
|
||||
%00000000000EFF5000000000000000
|
||||
%00000000003FFF1000000000000000
|
||||
%00000000007FFD0000000000000000
|
||||
%0000000000BFF90000000000000000
|
||||
%0000000000FFF60000000000000000
|
||||
%0000000004FFF20000000000000000
|
||||
%0000000008FFD00000000000000000
|
||||
%000000000CFFA00000000000000000
|
||||
%000000001FFF600000000000000000
|
||||
%000000005FFF200000000000000000
|
||||
%000000004EFB000000000000000000
|
||||
%%EndPreview
|
||||
%%EndProlog
|
||||
%%Page "$32th-rest" 1
|
||||
gsave newpath
|
||||
145.094 454.86 moveto
|
||||
169.625 458.058 192.607 447.59 205.265 427.453 curveto
|
||||
209.79 420.254 212.336 412.789 216.035 395.865 curveto
|
||||
220.325 376.24 222.713 369.107 226.757 363.837 curveto
|
||||
230.666 358.741 236.328 355.884 243.66 355.308 curveto
|
||||
247.85 354.979 248.255 355.053 251.764 356.782 curveto
|
||||
262.682 362.165 283.049 389.195 296.582 416.263 curveto
|
||||
299.173 421.444 302.022 426.693 302.955 428.004 curveto
|
||||
308.197 435.369 319.851 435.006 324.136 427.343 curveto
|
||||
325.523 424.862 lineto
|
||||
215.821 -37.6514 lineto
|
||||
131.747 -392.117 105.86 -500.462 105.01 -501.434 curveto
|
||||
103.343 -503.338 97.7949 -506.277 93.1641 -507.708 curveto
|
||||
89.7529 -508.762 87.8721 -508.979 82.4141 -508.944 curveto
|
||||
74.3662 -508.894 69.1836 -507.421 62.9551 -503.415 curveto
|
||||
59.5918 -501.252 58.9805 -500.637 59.2344 -499.669 curveto
|
||||
86.5078 -395.645 144.823 -172.665 144.774 -172.591 curveto
|
||||
144.737 -172.536 138.644 -174.537 131.202 -177.048 curveto
|
||||
102.646 -186.682 79.8477 -192.129 57.0566 -194.765 curveto
|
||||
46.4717 -195.988 30.6309 -196.391 23.4287 -195.617 curveto
|
||||
-3.69336 -192.708 -26.8662 -179.532 -40.9014 -159.041 curveto
|
||||
-63.9727 -125.358 -55.6855 -79.4033 -22.5469 -57.2637 curveto
|
||||
-11.167 -49.6611 0.165039 -45.9609 14.0576 -45.3135 curveto
|
||||
34.3438 -44.3682 52.8066 -52.8057 64.7197 -68.4678 curveto
|
||||
71.8594 -77.8535 74.6279 -85.2812 79.6562 -108.545 curveto
|
||||
84.458 -130.761 88.3535 -138.583 96.6377 -142.636 curveto
|
||||
105.402 -146.925 112.577 -146.236 120.838 -140.314 curveto
|
||||
133.24 -131.424 151.312 -109.647 163.397 -89.0303 curveto
|
||||
169.687 -78.3018 169.181 -79.9893 190.212 0.441406 curveto
|
||||
201.11 42.1172 210.033 76.4385 210.033 76.6816 curveto
|
||||
210.033 76.9248 204.3 75.1973 197.244 72.8281 curveto
|
||||
159.868 60.2793 128.754 54.1426 102.591 54.1582 curveto
|
||||
71.2236 54.1777 43.4941 67.8662 27.4785 91.2344 curveto
|
||||
4.39453 124.917 12.6719 170.872 45.8105 193.012 curveto
|
||||
57.1904 200.615 68.5225 204.314 82.4141 204.962 curveto
|
||||
102.701 205.908 121.164 197.47 133.077 181.809 curveto
|
||||
140.217 172.422 142.982 164.994 148 141.73 curveto
|
||||
151.721 124.477 154.438 117.228 159.137 112.018 curveto
|
||||
163.078 107.647 170.011 104.852 176.902 104.852 curveto
|
||||
184.717 104.852 198.012 116.373 212.842 135.998 curveto
|
||||
221.34 147.244 230.586 162.146 233.876 169.9 curveto
|
||||
235.28 173.208 275.705 325.966 275.293 326.405 curveto
|
||||
275.208 326.496 269.846 324.788 263.396 322.615 curveto
|
||||
236.604 313.588 214.238 308.18 193.771 305.776 curveto
|
||||
183.241 304.541 167.911 304.144 160.694 304.92 curveto
|
||||
133.572 307.839 110.396 321.019 96.3555 341.511 curveto
|
||||
76.7139 370.177 79.4668 408.584 102.948 433.462 curveto
|
||||
113.656 444.808 129.438 452.82 145.094 454.86 curveto
|
||||
closepath
|
||||
fill grestore
|
||||
%%EOF
|
79
Resources/Music/whole-notehead.eps
Normal file
79
Resources/Music/whole-notehead.eps
Normal file
|
@ -0,0 +1,79 @@
|
|||
%!PS-Adobe-3.0 EPSF-3.0
|
||||
%%BoundingBox: 0.232666 -135.502 500.869 136.306
|
||||
%%Pages: 0
|
||||
%%Title: Whole-notehead from feta
|
||||
%%Creator: FontForge
|
||||
%%Author: Matthias Neeracher
|
||||
%%CreationDate: 15:02 27-12-2005
|
||||
%%EndComments
|
||||
%%BeginPreview: 73 40 4 40
|
||||
%00000000000000000000000000000000011221100000000000000000000000000000000000
|
||||
%0000000000000000000000002579BCEFFFFFFFFFFECB975200000000000000000000000000
|
||||
%0000000000000000000048BEFFFFFFFFFFFFFFFFFFFFFFFFEB840000000000000000000000
|
||||
%000000000000000016AEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB61000000000000000000
|
||||
%000000000000004AFFFFFFFFFFE941001259DFFFFFFFFFFFFFFFFFFFA40000000000000000
|
||||
%0000000000006DFFFFFFFFFFF81000000000038EFFFFFFFFFFFFFFFFFFD600000000000000
|
||||
%00000000005DFFFFFFFFFFFF50000000000000017EFFFFFFFFFFFFFFFFFFD6000000000000
|
||||
%000000003CFFFFFFFFFFFFF70000000000000000019FFFFFFFFFFFFFFFFFFFC30000000000
|
||||
%00000008FFFFFFFFFFFFFFC000000000000000000005EFFFFFFFFFFFFFFFFFFF8000000000
|
||||
%000001BFFFFFFFFFFFFFFF40000000000000000000003EFFFFFFFFFFFFFFFFFFFC20000000
|
||||
%00002DFFFFFFFFFFFFFFFD000000000000000000000002EFFFFFFFFFFFFFFFFFFFE3000000
|
||||
%0002EFFFFFFFFFFFFFFFF90000000000000000000000003FFFFFFFFFFFFFFFFFFFFE300000
|
||||
%001DFFFFFFFFFFFFFFFFF600000000000000000000000007FFFFFFFFFFFFFFFFFFFFE20000
|
||||
%00BFFFFFFFFFFFFFFFFFF300000000000000000000000000CFFFFFFFFFFFFFFFFFFFFB0000
|
||||
%05FFFFFFFFFFFFFFFFFFF1000000000000000000000000004FFFFFFFFFFFFFFFFFFFFF6000
|
||||
%0DFFFFFFFFFFFFFFFFFFF0000000000000000000000000000BFFFFFFFFFFFFFFFFFFFFE100
|
||||
%5FFFFFFFFFFFFFFFFFFFF00000000000000000000000000005FFFFFFFFFFFFFFFFFFFFF600
|
||||
%AFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000EFFFFFFFFFFFFFFFFFFFFB00
|
||||
%DFFFFFFFFFFFFFFFFFFFF10000000000000000000000000000AFFFFFFFFFFFFFFFFFFFFE00
|
||||
%FFFFFFFFFFFFFFFFFFFFF300000000000000000000000000006FFFFFFFFFFFFFFFFFFFFF10
|
||||
%FFFFFFFFFFFFFFFFFFFFF500000000000000000000000000004FFFFFFFFFFFFFFFFFFFFF10
|
||||
%FFFFFFFFFFFFFFFFFFFFF800000000000000000000000000002FFFFFFFFFFFFFFFFFFFFF10
|
||||
%DFFFFFFFFFFFFFFFFFFFFB00000000000000000000000000000FFFFFFFFFFFFFFFFFFFFE00
|
||||
%9FFFFFFFFFFFFFFFFFFFFF10000000000000000000000000000EFFFFFFFFFFFFFFFFFFFA00
|
||||
%4FFFFFFFFFFFFFFFFFFFFF60000000000000000000000000000EFFFFFFFFFFFFFFFFFFF500
|
||||
%0CFFFFFFFFFFFFFFFFFFFFD0000000000000000000000000000FFFFFFFFFFFFFFFFFFFD000
|
||||
%04FFFFFFFFFFFFFFFFFFFFF5000000000000000000000000001FFFFFFFFFFFFFFFFFFF5000
|
||||
%00AFFFFFFFFFFFFFFFFFFFFD100000000000000000000000002FFFFFFFFFFFFFFFFFFB0000
|
||||
%001CFFFFFFFFFFFFFFFFFFFF900000000000000000000000005FFFFFFFFFFFFFFFFFD10000
|
||||
%0002DFFFFFFFFFFFFFFFFFFFF50000000000000000000000008FFFFFFFFFFFFFFFFD200000
|
||||
%00001CFFFFFFFFFFFFFFFFFFFF400000000000000000000000DFFFFFFFFFFFFFFFD2000000
|
||||
%000001AFFFFFFFFFFFFFFFFFFFE40000000000000000000004FFFFFFFFFFFFFFFB10000000
|
||||
%00000006EFFFFFFFFFFFFFFFFFFF700000000000000000000CFFFFFFFFFFFFFF7000000000
|
||||
%000000002AFFFFFFFFFFFFFFFFFFFB2000000000000000007FFFFFFFFFFFFFB20000000000
|
||||
%00000000004CFFFFFFFFFFFFFFFFFFF92000000000000006FFFFFFFFFFFFC4000000000000
|
||||
%0000000000004BFFFFFFFFFFFFFFFFFFFA4000000000019FFFFFFFFFFFB400000000000000
|
||||
%0000000000000028EFFFFFFFFFFFFFFFFFFEA7422236AFFFFFFFFFFE930000000000000000
|
||||
%0000000000000000049DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD940000000000000000000
|
||||
%00000000000000000000269DFFFFFFFFFFFFFFFFFFFFFFFFDA630000000000000000000000
|
||||
%00000000000000000000000013579BCDEEFFFFEEDCB9753100000000000000000000000000
|
||||
%%EndPreview
|
||||
%%EndProlog
|
||||
%%Page "Whole-notehead" 1
|
||||
gsave newpath
|
||||
224.917 135.661 moveto
|
||||
301.103 139.42 369.479 126.709 423.098 98.8203 curveto
|
||||
466.703 76.1396 492.641 48.0254 499.566 15.9316 curveto
|
||||
501.304 7.88281 501.304 -7.11133 499.566 -15.1602 curveto
|
||||
492.641 -47.2539 466.703 -75.3691 423.098 -98.0518 curveto
|
||||
375.417 -122.854 317.145 -135.502 250.551 -135.502 curveto
|
||||
183.958 -135.502 125.686 -122.854 78.0049 -98.0518 curveto
|
||||
34.3994 -75.3691 8.46289 -47.2539 1.53613 -15.1602 curveto
|
||||
-0.201172 -7.11133 -0.202148 7.88281 1.53516 15.9316 curveto
|
||||
7.01465 41.332 24.4766 64.3447 53.1973 84.0186 curveto
|
||||
97.1641 114.135 157.718 132.346 224.917 135.661 curveto
|
||||
closepath
|
||||
235.006 113.17 moveto
|
||||
227.508 114.478 211.912 115.022 205.898 114.187 curveto
|
||||
174.04 109.759 154.887 89.5811 148.322 53.5283 curveto
|
||||
145.854 39.9746 145.495 20.5625 147.441 5.89844 curveto
|
||||
150.953 -20.5625 161.306 -44.6943 177.358 -63.8369 curveto
|
||||
198.284 -88.792 231.367 -106.683 267.751 -112.72 curveto
|
||||
276.847 -114.229 293.288 -114.087 300.938 -112.433 curveto
|
||||
322.878 -107.688 338.285 -94.7295 346.854 -73.8145 curveto
|
||||
355.685 -52.2607 357.477 -19.9561 351.383 7.82812 curveto
|
||||
346.837 28.5557 336.982 48.7793 323.716 64.6084 curveto
|
||||
303.081 89.2285 270.728 106.939 235.006 113.17 curveto
|
||||
closepath
|
||||
fill grestore
|
||||
%%EOF
|
60
Resources/Music/whole-rest.eps
Normal file
60
Resources/Music/whole-rest.eps
Normal file
|
@ -0,0 +1,60 @@
|
|||
%!PS-Adobe-3.0 EPSF-3.0
|
||||
%%BoundingBox: 0.275391 -155.898 374.587 0.661133
|
||||
%%Pages: 0
|
||||
%%Title: whole-rest from feta
|
||||
%%Creator: FontForge
|
||||
%%Author: Matthias Neeracher
|
||||
%%CreationDate: 14:58 27-12-2005
|
||||
%%EndComments
|
||||
%%BeginPreview: 72 31 4 31
|
||||
%000000000000000011111111111111111111111111111111111111110000000000000000
|
||||
%9EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
|
||||
%EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||
%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC
|
||||
%EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC
|
||||
%9EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEE7
|
||||
%%EndPreview
|
||||
%%EndProlog
|
||||
%%Page "whole-rest" 1
|
||||
gsave newpath
|
||||
4.4375 -0.302734 moveto
|
||||
6.2373 0.609375 16.0967 0.661133 187.431 0.661133 curveto
|
||||
358.766 0.661133 368.625 0.609375 370.425 -0.302734 curveto
|
||||
371.472 -0.834961 372.834 -1.96094 373.456 -2.81152 curveto
|
||||
374.586 -4.35352 374.587 -4.41016 374.587 -77.6182 curveto
|
||||
374.587 -150.827 374.586 -150.883 373.456 -152.426 curveto
|
||||
372.834 -153.275 371.472 -154.402 370.425 -154.934 curveto
|
||||
368.625 -155.847 358.766 -155.898 187.431 -155.898 curveto
|
||||
16.0967 -155.898 6.2373 -155.847 4.4375 -154.934 curveto
|
||||
3.39062 -154.402 2.02832 -153.275 1.40527 -152.426 curveto
|
||||
0.276367 -150.883 0.275391 -150.827 0.275391 -77.6182 curveto
|
||||
0.275391 -4.41016 0.276367 -4.35352 1.40527 -2.81152 curveto
|
||||
2.02832 -1.96094 3.39062 -0.834961 4.4375 -0.302734 curveto
|
||||
closepath
|
||||
fill grestore
|
||||
%%EOF
|
26
Sources/VLDocument.h
Normal file
26
Sources/VLDocument.h
Normal file
|
@ -0,0 +1,26 @@
|
|||
//
|
||||
// MyDocument.h
|
||||
// Vocalese
|
||||
//
|
||||
// Created by Matthias Neeracher on 12/17/05.
|
||||
// Copyright __MyCompanyName__ 2005 . All rights reserved.
|
||||
//
|
||||
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import "VLModel.h"
|
||||
|
||||
@interface VLDocument : NSDocument
|
||||
{
|
||||
VLSong * song;
|
||||
}
|
||||
|
||||
- (VLSong *) song;
|
||||
- (NSNumber *) songKey;
|
||||
- (NSNumber *) songTime;
|
||||
- (NSNumber *) songDivisions;
|
||||
|
||||
- (void) setKey:(int)key transpose:(BOOL)transpose;
|
||||
- (void) setTimeNum:(int)num denom:(int)denom;
|
||||
- (void) setDivisions:(int)divisions;
|
||||
@end
|
111
Sources/VLDocument.mm
Normal file
111
Sources/VLDocument.mm
Normal file
|
@ -0,0 +1,111 @@
|
|||
//
|
||||
// MyDocument.m
|
||||
// Vocalese
|
||||
//
|
||||
// Created by Matthias Neeracher on 12/17/05.
|
||||
// Copyright __MyCompanyName__ 2005 . All rights reserved.
|
||||
//
|
||||
|
||||
#import "VLDocument.h"
|
||||
|
||||
@implementation VLDocument
|
||||
|
||||
- (id)init
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
|
||||
// Add your subclass-specific initialization here.
|
||||
// If an error occurs here, send a [self release] message and return nil.
|
||||
|
||||
song = new VLSong;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void) dealloc
|
||||
{
|
||||
delete song;
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (VLSong *) song
|
||||
{
|
||||
return song;
|
||||
}
|
||||
|
||||
- (NSNumber *) songKey
|
||||
{
|
||||
const VLProperties & prop = song->fProperties.front();
|
||||
|
||||
return [NSNumber numberWithInt: (prop.fKey << 8) | (prop.fMode & 0xFF)];
|
||||
}
|
||||
|
||||
- (void) setKey:(int)key transpose:(BOOL)transpose
|
||||
{
|
||||
VLProperties & prop = song->fProperties.front();
|
||||
|
||||
prop.fKey = key >> 8;
|
||||
prop.fMode= key & 0xFF;
|
||||
}
|
||||
|
||||
- (NSNumber *) songTime
|
||||
{
|
||||
const VLProperties & prop = song->fProperties.front();
|
||||
|
||||
return [NSNumber numberWithInt: (prop.fTime.fNum << 8) | prop.fTime.fDenom];
|
||||
}
|
||||
|
||||
- (void) setTimeNum:(int)num denom:(int)denom
|
||||
{
|
||||
VLProperties & prop = song->fProperties.front();
|
||||
|
||||
prop.fTime = VLFraction(num, denom);
|
||||
}
|
||||
|
||||
- (NSNumber *) songDivisions
|
||||
{
|
||||
const VLProperties & prop = song->fProperties.front();
|
||||
|
||||
return [NSNumber numberWithInt: prop.fDivisions];
|
||||
}
|
||||
|
||||
- (void) setDivisions:(int)divisions
|
||||
{
|
||||
VLProperties & prop = song->fProperties.front();
|
||||
|
||||
prop.fDivisions = divisions;
|
||||
}
|
||||
|
||||
- (NSString *)windowNibName
|
||||
{
|
||||
// Override returning the nib file name of the document
|
||||
// If you need to use a subclass of NSWindowController or if your document supports multiple NSWindowControllers, you should remove this method and override -makeWindowControllers instead.
|
||||
return @"VLDocument";
|
||||
}
|
||||
|
||||
- (void)windowControllerDidLoadNib:(NSWindowController *) aController
|
||||
{
|
||||
[super windowControllerDidLoadNib:aController];
|
||||
// Add any code here that needs to be executed once the windowController has loaded the document's window.
|
||||
}
|
||||
|
||||
- (NSData *)dataRepresentationOfType:(NSString *)aType
|
||||
{
|
||||
// Insert code here to write your document from the given data. You can also choose to override -fileWrapperRepresentationOfType: or -writeToFile:ofType: instead.
|
||||
|
||||
// For applications targeted for Tiger or later systems, you should use the new Tiger API -dataOfType:error:. In this case you can also choose to override -writeToURL:ofType:error:, -fileWrapperOfType:error:, or -writeToURL:ofType:forSaveOperation:originalContentsURL:error: instead.
|
||||
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (BOOL)loadDataRepresentation:(NSData *)data ofType:(NSString *)aType
|
||||
{
|
||||
// Insert code here to read your document from the given data. You can also choose to override -loadFileWrapperRepresentation:ofType: or -readFromFile:ofType: instead.
|
||||
|
||||
// For applications targeted for Tiger or later systems, you should use the new Tiger API readFromData:ofType:error:. In this case you can also choose to override -readFromURL:ofType:error: or -readFromFileWrapper:ofType:error: instead.
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
534
Sources/VLModel.cpp
Normal file
534
Sources/VLModel.cpp
Normal file
|
@ -0,0 +1,534 @@
|
|||
/*
|
||||
* VLModel.cpp
|
||||
* Vocalese
|
||||
*
|
||||
* Created by Matthias Neeracher on 12/18/05.
|
||||
* Copyright 2005 __MyCompanyName__. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "VLModel.h"
|
||||
#include <ctype.h>
|
||||
|
||||
VLFraction & VLFraction::Normalize()
|
||||
{
|
||||
//
|
||||
// Divide GCD
|
||||
//
|
||||
if (fNum) {
|
||||
unsigned a = fNum;
|
||||
unsigned b = fDenom;
|
||||
|
||||
while (b) {
|
||||
unsigned c = a % b;
|
||||
a = b;
|
||||
b = c;
|
||||
}
|
||||
|
||||
fNum /= a;
|
||||
fDenom /= a;
|
||||
} else
|
||||
fDenom = 1;
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
VLFraction & VLFraction::operator+=(VLFraction other)
|
||||
{
|
||||
fNum = fNum*other.fDenom + other.fNum*fDenom;
|
||||
fDenom *= other.fDenom;
|
||||
|
||||
return Normalize();
|
||||
}
|
||||
|
||||
VLFraction & VLFraction::operator-=(VLFraction other)
|
||||
{
|
||||
fNum = fNum*other.fDenom - other.fNum*fDenom;
|
||||
fDenom *= other.fDenom;
|
||||
|
||||
return Normalize();
|
||||
}
|
||||
|
||||
VLFraction & VLFraction::operator*=(VLFraction other)
|
||||
{
|
||||
fNum *= other.fNum;
|
||||
fDenom *= other.fDenom;
|
||||
|
||||
return Normalize();
|
||||
}
|
||||
|
||||
VLFraction & VLFraction::operator/=(VLFraction other)
|
||||
{
|
||||
fNum *= other.fDenom;
|
||||
fDenom *= other.fNum;
|
||||
|
||||
return Normalize();
|
||||
}
|
||||
|
||||
VLFraction & VLFraction::operator%=(VLFraction other)
|
||||
{
|
||||
fNum *= other.fDenom;
|
||||
fDenom *= other.fNum;
|
||||
fNum %= fDenom;
|
||||
|
||||
return *this *= other;
|
||||
}
|
||||
|
||||
static const char kScale[] = "c d ef g a b";
|
||||
|
||||
static std::string PitchName(int8_t pitch, bool useSharps)
|
||||
{
|
||||
if (pitch == VLNote::kNoPitch)
|
||||
return "r";
|
||||
pitch %= 12;
|
||||
if (kScale[pitch] != ' ')
|
||||
return static_cast<char>(std::toupper(kScale[pitch])) + std::string();
|
||||
else if (useSharps)
|
||||
return static_cast<char>(std::toupper(kScale[pitch-1])) + std::string("♯");
|
||||
else
|
||||
return static_cast<char>(std::toupper(kScale[pitch+1])) + std::string("♭");
|
||||
}
|
||||
|
||||
VLNote::VLNote(std::string name)
|
||||
{
|
||||
//
|
||||
// Determine key
|
||||
//
|
||||
if (const char * key = strchr(kScale, name[0]))
|
||||
fPitch = key-kScale+kMiddleC;
|
||||
else
|
||||
goto failed;
|
||||
name.erase(0, 1);
|
||||
//
|
||||
// Look for sharp / flat
|
||||
//
|
||||
if (name.size())
|
||||
if (name[0] == '#') {
|
||||
++fPitch;
|
||||
name.erase(0);
|
||||
} else if (name[0] == 'b') {
|
||||
--fPitch;
|
||||
name.erase(0, 1);
|
||||
}
|
||||
if (name == "")
|
||||
return;
|
||||
|
||||
failed:
|
||||
fPitch = kNoPitch; // Failed to parse completely
|
||||
}
|
||||
|
||||
void VLNote::Name(std::string & name, bool useSharps) const
|
||||
{
|
||||
name = PitchName(fPitch, useSharps);
|
||||
}
|
||||
|
||||
struct VLChordModifier {
|
||||
const char * fName;
|
||||
uint32_t fAddSteps;
|
||||
uint32_t fDelSteps;
|
||||
};
|
||||
|
||||
static const VLChordModifier kModifiers[] = {
|
||||
{"b13", VLChord::kmMin7th | VLChord::kmMaj9th | VLChord::km11th | VLChord::kmMin13th, 0},
|
||||
{"13", VLChord::kmMin7th | VLChord::kmMaj9th | VLChord::km11th | VLChord::kmMaj13th, 0},
|
||||
{"#11", VLChord::kmMin7th | VLChord::kmMaj9th | VLChord::kmAug11th, VLChord::km11th},
|
||||
{"11", VLChord::kmMin7th | VLChord::kmMaj9th | VLChord::km11th, 0},
|
||||
{"#9", VLChord::kmMin7th | VLChord::kmAug9th, VLChord::kmMaj9th},
|
||||
{"b9", VLChord::kmMin7th | VLChord::kmMin9th, VLChord::kmMaj9th},
|
||||
{"9", VLChord::kmMin7th | VLChord::kmMaj9th, 0},
|
||||
{"7", VLChord::kmMin7th, 0},
|
||||
{"maj", VLChord::kmMaj7th, VLChord::kmMin7th},
|
||||
{"6", VLChord::kmDim7th, 0},
|
||||
{"#5", VLChord::kmAug5th, VLChord::km5th},
|
||||
{"aug", VLChord::kmAug5th, VLChord::km5th},
|
||||
{"+", VLChord::kmAug5th, VLChord::km5th},
|
||||
{"b5", VLChord::kmDim5th, VLChord::km5th},
|
||||
{"sus4", VLChord::km4th, VLChord::kmMaj3rd},
|
||||
{"sus2", VLChord::kmMaj2nd, VLChord::kmMaj3rd},
|
||||
{"sus", VLChord::km4th, VLChord::kmMaj3rd},
|
||||
{"4", VLChord::km4th, VLChord::kmMaj3rd},
|
||||
{"2", VLChord::kmMaj2nd, VLChord::kmMaj3rd},
|
||||
{NULL, 0, 0}
|
||||
};
|
||||
|
||||
static const char * kStepNames[] = {
|
||||
"", "", "sus2", "", "", "sus", "♭5", "", "+", "♭7", "7", "♯7", "",
|
||||
"♭9", "9", "♯9", "", "11", "♯11", "", "♭9", "13"
|
||||
};
|
||||
|
||||
VLChord::VLChord(std::string name)
|
||||
{
|
||||
size_t root;
|
||||
//
|
||||
// Determine key
|
||||
//
|
||||
if (const char * key = strchr(kScale, name[0]))
|
||||
fPitch = key-kScale+kMiddleC;
|
||||
else
|
||||
goto failed;
|
||||
name.erase(0, 1);
|
||||
//
|
||||
// Look for sharp / flat
|
||||
//
|
||||
if (name.size())
|
||||
if (name[0] == '#') {
|
||||
++fPitch;
|
||||
name.erase(0);
|
||||
} else if (name[0] == 'b') {
|
||||
--fPitch;
|
||||
name.erase(0, 1);
|
||||
}
|
||||
//
|
||||
// Root
|
||||
//
|
||||
fRootPitch = kNoPitch;
|
||||
if ((root = name.find('/')) != std::string::npos) {
|
||||
if (root+1 >= name.size())
|
||||
goto failed;
|
||||
if (const char * key = strchr(kScale, name[root+1]))
|
||||
fRootPitch = key-kScale+kMiddleC-12;
|
||||
else
|
||||
goto failed;
|
||||
if (root+2 < name.size()) {
|
||||
switch (name[root+2]) {
|
||||
case 'b':
|
||||
--fRootPitch;
|
||||
break;
|
||||
case '#':
|
||||
++fRootPitch;
|
||||
break;
|
||||
default:
|
||||
goto failed;
|
||||
}
|
||||
name.erase(root, 3);
|
||||
} else
|
||||
name.erase(root, 2);
|
||||
}
|
||||
//
|
||||
// Apply modifiers
|
||||
//
|
||||
fSteps = kmUnison | kmMaj3rd | km5th;
|
||||
|
||||
for (const VLChordModifier * mod = kModifiers; mod->fName && name.size() && name != "dim" && name != "m" && name != "-"; ++mod) {
|
||||
size_t pos = name.find(mod->fName);
|
||||
if (pos != std::string::npos) {
|
||||
name.erase(pos, strlen(mod->fName));
|
||||
fSteps &= ~mod->fDelSteps;
|
||||
fSteps |= mod->fAddSteps;
|
||||
}
|
||||
}
|
||||
if (name == "m" || name == "-") {
|
||||
fSteps = (fSteps & ~kmMaj3rd) | kmMin3rd;
|
||||
name.erase(0, 1);
|
||||
} else if (name == "dim") {
|
||||
uint32_t steps = fSteps & (kmMaj3rd | km5th | kmMin7th);
|
||||
fSteps ^= steps;
|
||||
fSteps |= steps >> 1; // Diminish 3rd, 5th, and 7th, if present
|
||||
name.erase(0, 3);
|
||||
}
|
||||
if (name == "")
|
||||
return; // Success
|
||||
failed:
|
||||
fPitch = kNoPitch;
|
||||
}
|
||||
|
||||
void VLChord::Name(std::string & base, std::string & ext, std::string & root, bool useSharps) const
|
||||
{
|
||||
base = PitchName(fPitch, useSharps);
|
||||
ext = "";
|
||||
root = "";
|
||||
|
||||
uint32_t steps = fSteps & ~(kmUnison | km5th);
|
||||
//
|
||||
// m / dim
|
||||
//
|
||||
if (steps & kmMin3rd)
|
||||
if (steps & (kmDim5th|kmDim7th)
|
||||
&& !(steps & (km5th|kmMin7th|kmMaj7th|kmMin9th|kmMaj9th|km11th|kmAug11th|kmMin13th|kmMaj13th))
|
||||
) {
|
||||
ext += "dim";
|
||||
steps|= (steps & kmDim7th) << 1;
|
||||
steps&= ~(kmMin3rd|kmDim5th|kmDim7th);
|
||||
} else {
|
||||
base += "m";
|
||||
steps&= ~kmMin3rd;
|
||||
}
|
||||
//
|
||||
// Maj
|
||||
//
|
||||
if (steps & kmMaj7th) {
|
||||
ext += "Maj";
|
||||
steps&= ~kmMaj7th;
|
||||
}
|
||||
//
|
||||
// Other extensions. Only the highest unaltered extension is listed.
|
||||
//
|
||||
if (uint32_t unaltered = steps & (kmMin7th | kmMaj9th | km11th | kmMaj13th)) {
|
||||
steps &= ~unaltered;
|
||||
|
||||
for (int step = kMaj13th; step > kDim7th; --step)
|
||||
if (unaltered & (1 << step)) {
|
||||
ext += kStepNames[step];
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (int step = kMin2nd; steps; ++step)
|
||||
if (steps & (1 << step)) {
|
||||
ext += kStepNames[step];
|
||||
steps &= ~(1 << step);
|
||||
}
|
||||
//
|
||||
// Root
|
||||
//
|
||||
if (fRootPitch != kNoPitch)
|
||||
root = PitchName(fRootPitch, useSharps);
|
||||
}
|
||||
|
||||
static VLFraction MaxNote(VLFraction d)
|
||||
{
|
||||
if (d >= 1)
|
||||
return 1;
|
||||
if (d.fNum == 1 && !(d.fDenom & (d.fDenom-1))) // Power of 2
|
||||
return d;
|
||||
|
||||
VLFraction note(1,2);
|
||||
VLFraction triplet(1,3);
|
||||
|
||||
for (;;) {
|
||||
if (d >= note)
|
||||
return note;
|
||||
else if (d >= triplet)
|
||||
return triplet;
|
||||
note /= 2;
|
||||
triplet /= 2;
|
||||
}
|
||||
}
|
||||
|
||||
static void TrimNote(VLFraction at, VLFraction & d, VLFraction grid)
|
||||
{
|
||||
if (at < grid && d > grid-at)
|
||||
d = MaxNote(grid-at);
|
||||
}
|
||||
|
||||
void VLProperties::PartialNote(VLFraction at, VLFraction totalDuration,
|
||||
VLFraction * noteDuration) const
|
||||
{
|
||||
const VLFraction kBeat(1, fTime.fDenom);
|
||||
|
||||
at %= fTime;
|
||||
*noteDuration = MaxNote(std::min(MaxNote(totalDuration), fTime-at)); // Don't extend past measure
|
||||
|
||||
if (at.fDenom > kBeat.fDenom) { // Break up notes not starting on beat
|
||||
// Don't extend past "middle" of measure
|
||||
if (fTime.fNum & 1) // Odd timecode, round up (most 5/4 seems to be 3+2, not 2+3)
|
||||
TrimNote(at, *noteDuration, VLFraction((fTime.fNum+1)/2, fTime.fDenom));
|
||||
else
|
||||
TrimNote(at, *noteDuration, fTime / 2);
|
||||
at %= kBeat;
|
||||
if (at == 2*kBeat/3)
|
||||
TrimNote(0, *noteDuration, kBeat); // Allow syncopated beats in swing
|
||||
else
|
||||
TrimNote(at, *noteDuration, kBeat);// Don't let other notes span beats
|
||||
}
|
||||
if (!(noteDuration->fDenom % 3) && *noteDuration != totalDuration && ((at+*noteDuration)%kBeat) > 0)
|
||||
*noteDuration *= VLFraction(3,4); // avoid frivolous triplets
|
||||
}
|
||||
|
||||
VLMeasure::VLMeasure()
|
||||
: fProperties(0)
|
||||
{
|
||||
}
|
||||
|
||||
VLSong::VLSong()
|
||||
{
|
||||
const VLFraction fourFour(4,4);
|
||||
VLProperties defaultProperties = {fourFour, 0, 1, 3};
|
||||
|
||||
fProperties.push_back(defaultProperties);
|
||||
fMeasures.resize(33); // Leadin, AABA
|
||||
|
||||
VLNote rest = VLRest(1);
|
||||
VLChord rchord;
|
||||
rchord.fDuration = 1;
|
||||
|
||||
for (int i=0; i<33; ++i) {
|
||||
fMeasures[i].fProperties = &fProperties.front();
|
||||
fMeasures[i].fChords.push_back(rchord);
|
||||
fMeasures[i].fMelody.push_back(rest);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Deal with chords - a bit simpler
|
||||
//
|
||||
void VLSong::AddChord(VLChord chord, size_t measure, VLFraction at)
|
||||
{
|
||||
VLChordList::iterator i = fMeasures[measure].fChords.begin();
|
||||
VLFraction t(0);
|
||||
|
||||
for (;;) {
|
||||
VLFraction tEnd = t+i->fDuration;
|
||||
if (tEnd > at) {
|
||||
if (t == at) {
|
||||
//
|
||||
// Exact match, replace current
|
||||
//
|
||||
chord.fDuration = i->fDuration;
|
||||
*i = chord;
|
||||
} else {
|
||||
//
|
||||
// Overlap, split current
|
||||
//
|
||||
chord.fDuration = tEnd-at;
|
||||
i->fDuration = at-t;
|
||||
fMeasures[measure].fChords.insert(++i, chord);
|
||||
}
|
||||
break; // Exit here
|
||||
}
|
||||
t = tEnd;
|
||||
++i;
|
||||
}
|
||||
}
|
||||
|
||||
void VLSong::DelChord(size_t measure, VLFraction at)
|
||||
{
|
||||
VLChordList::iterator i = fMeasures[measure].fChords.begin();
|
||||
VLFraction t(0);
|
||||
|
||||
for (;;) {
|
||||
if (t == at) {
|
||||
//
|
||||
// Found it. Extend previous or make rest
|
||||
//
|
||||
if (i != fMeasures[measure].fChords.begin()) {
|
||||
//
|
||||
// Extend previous
|
||||
//
|
||||
VLChordList::iterator j = i;
|
||||
--j;
|
||||
j->fDuration += i->fDuration;
|
||||
fMeasures[measure].fChords.erase(i);
|
||||
} else {
|
||||
//
|
||||
// Turn into rest
|
||||
//
|
||||
i->fPitch = VLNote::kNoPitch;
|
||||
}
|
||||
break;
|
||||
}
|
||||
VLFraction tEnd = t+i->fDuration;
|
||||
if (tEnd > at)
|
||||
break; // Past the point, quit
|
||||
t = tEnd;
|
||||
++i;
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t & FirstTie(VLMeasure & measure)
|
||||
{
|
||||
VLNoteList::iterator i = measure.fMelody.begin();
|
||||
return i->fTied;
|
||||
}
|
||||
|
||||
uint8_t & LastTie(VLMeasure & measure)
|
||||
{
|
||||
VLNoteList::iterator i = measure.fMelody.end();
|
||||
--i;
|
||||
return i->fTied;
|
||||
}
|
||||
|
||||
//
|
||||
// Dealing with notes is similar, but we also have to handle ties
|
||||
//
|
||||
void VLSong::AddNote(VLNote note, size_t measure, VLFraction at)
|
||||
{
|
||||
VLNoteList::iterator i = fMeasures[measure].fMelody.begin();
|
||||
VLFraction t(0);
|
||||
|
||||
for (;;) {
|
||||
VLFraction tEnd = t+i->fDuration;
|
||||
if (tEnd > at) {
|
||||
if (t == at) {
|
||||
//
|
||||
// Exact match, replace current
|
||||
//
|
||||
if (i->fTied) {
|
||||
//
|
||||
// Break ties
|
||||
//
|
||||
if (i->fTied & VLNote::kTiedWithPrev)
|
||||
LastTie(fMeasures[measure-1]) &= ~VLNote::kTiedWithNext;
|
||||
if (i->fTied & VLNote::kTiedWithNext)
|
||||
FirstTie(fMeasures[measure+1]) &= ~VLNote::kTiedWithPrev;
|
||||
}
|
||||
note.fDuration = i->fDuration;
|
||||
*i = note;
|
||||
} else {
|
||||
//
|
||||
// Overlap, split current
|
||||
//
|
||||
if (i->fTied & VLNote::kTiedWithPrev)
|
||||
LastTie(fMeasures[measure-1]) &= ~VLNote::kTiedWithNext;
|
||||
note.fDuration = tEnd-at;
|
||||
i->fDuration = at-t;
|
||||
i = fMeasures[measure].fMelody.insert(++i, note);
|
||||
}
|
||||
break; // Exit here
|
||||
}
|
||||
t = tEnd;
|
||||
++i;
|
||||
}
|
||||
i->fTied = 0;
|
||||
if (note.fTied & VLNote::kTiedWithPrev) // kTiedWithNext is NEVER user set
|
||||
if (measure && i == fMeasures[measure].fMelody.begin()) {
|
||||
VLNoteList::iterator j = fMeasures[measure-1].fMelody.end();
|
||||
--j;
|
||||
if (j->fPitch == i->fPitch) {
|
||||
j->fTied |= VLNote::kTiedWithNext;
|
||||
i->fTied |= VLNote::kTiedWithPrev;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void VLSong::DelNote(size_t measure, VLFraction at)
|
||||
{
|
||||
VLNoteList::iterator i = fMeasures[measure].fMelody.begin();
|
||||
VLFraction t(0);
|
||||
|
||||
for (;;) {
|
||||
if (t == at) {
|
||||
//
|
||||
// Found it. Break ties.
|
||||
//
|
||||
if (i->fTied & VLNote::kTiedWithNext)
|
||||
FirstTie(fMeasures[measure+1]) &= ~VLNote::kTiedWithPrev;
|
||||
if (i->fTied & VLNote::kTiedWithPrev)
|
||||
LastTie(fMeasures[measure-1]) &= ~VLNote::kTiedWithNext;
|
||||
//
|
||||
// Extend previous or make rest
|
||||
//
|
||||
if (i != fMeasures[measure].fMelody.begin()) {
|
||||
//
|
||||
// Extend previous
|
||||
//
|
||||
VLNoteList::iterator j = i;
|
||||
--j;
|
||||
j->fDuration += i->fDuration;
|
||||
fMeasures[measure].fMelody.erase(i);
|
||||
} else {
|
||||
//
|
||||
// Turn into rest
|
||||
//
|
||||
i->fPitch = VLNote::kNoPitch;
|
||||
i->fTied = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
VLFraction tEnd = t+i->fDuration;
|
||||
if (tEnd > at)
|
||||
break; // Past the point, quit
|
||||
t = tEnd;
|
||||
++i;
|
||||
}
|
||||
}
|
||||
|
219
Sources/VLModel.h
Normal file
219
Sources/VLModel.h
Normal file
|
@ -0,0 +1,219 @@
|
|||
/*
|
||||
* VLModel.h
|
||||
* Vocalese
|
||||
*
|
||||
* Created by Matthias Neeracher on 12/18/05.
|
||||
* Copyright 2005 __MyCompanyName__. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <list>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include <inttypes.h>
|
||||
|
||||
struct VLFract {
|
||||
uint16_t fNum; // Numerator
|
||||
uint16_t fDenom; // Denominator
|
||||
};
|
||||
|
||||
struct VLFraction : VLFract {
|
||||
VLFraction(uint16_t num = 0, uint16_t denom = 1, bool norm=false)
|
||||
{ fNum = num; fDenom = denom; if (norm) Normalize(); }
|
||||
VLFraction(VLFract f) : VLFract(f) {}
|
||||
|
||||
VLFraction & operator+=(VLFraction other);
|
||||
VLFraction & operator-=(VLFraction other);
|
||||
VLFraction & operator*=(VLFraction other);
|
||||
VLFraction & operator/=(VLFraction other);
|
||||
VLFraction & operator%=(VLFraction other);
|
||||
private:
|
||||
VLFraction & Normalize();
|
||||
};
|
||||
|
||||
inline VLFraction operator+(VLFraction one, VLFraction other)
|
||||
{
|
||||
return one += other;
|
||||
}
|
||||
|
||||
inline VLFraction operator-(VLFraction one, VLFraction other)
|
||||
{
|
||||
return one -= other;
|
||||
}
|
||||
|
||||
inline VLFraction operator*(VLFraction one, VLFraction other)
|
||||
{
|
||||
return one *= other;
|
||||
}
|
||||
|
||||
inline VLFraction operator/(VLFraction one, VLFraction other)
|
||||
{
|
||||
return one /= other;
|
||||
}
|
||||
|
||||
inline VLFraction operator%(VLFraction one, VLFraction other)
|
||||
{
|
||||
return one %= other;
|
||||
}
|
||||
|
||||
inline bool operator==(VLFraction one, VLFraction other)
|
||||
{
|
||||
return one.fNum*other.fDenom == other.fNum*one.fDenom;
|
||||
}
|
||||
|
||||
inline bool operator!=(VLFraction one, VLFraction other)
|
||||
{
|
||||
return one.fNum*other.fDenom != other.fNum*one.fDenom;
|
||||
}
|
||||
|
||||
inline bool operator<(VLFraction one, VLFraction other)
|
||||
{
|
||||
return one.fNum*other.fDenom < other.fNum*one.fDenom;
|
||||
}
|
||||
|
||||
inline bool operator>(VLFraction one, VLFraction other)
|
||||
{
|
||||
return one.fNum*other.fDenom > other.fNum*one.fDenom;
|
||||
}
|
||||
|
||||
inline bool operator<=(VLFraction one, VLFraction other)
|
||||
{
|
||||
return one.fNum*other.fDenom <= other.fNum*one.fDenom;
|
||||
}
|
||||
|
||||
inline bool operator>=(VLFraction one, VLFraction other)
|
||||
{
|
||||
return one.fNum*other.fDenom >= other.fNum*one.fDenom;
|
||||
}
|
||||
|
||||
struct VLNote {
|
||||
VLFraction fDuration;
|
||||
int8_t fPitch; // Semitones
|
||||
enum {
|
||||
kNoPitch = -128,
|
||||
kMiddleC = 60
|
||||
};
|
||||
//
|
||||
// We only allow ties BETWEEN measures. Within measures, we just store
|
||||
// a combined note length.
|
||||
//
|
||||
uint8_t fTied; // Tied with note in adjacent measure
|
||||
enum {
|
||||
kNotTied = 0,
|
||||
kTiedWithNext = 1,
|
||||
kTiedWithPrev = 2
|
||||
};
|
||||
VLNote() : fPitch(kNoPitch) {}
|
||||
VLNote(VLFraction dur, int8_t pitch)
|
||||
: fDuration(dur), fPitch(pitch), fTied(kNotTied)
|
||||
{}
|
||||
VLNote(std::string name);
|
||||
|
||||
void Name(std::string & name, bool useSharps = false) const;
|
||||
};
|
||||
|
||||
struct VLRest : VLNote {
|
||||
VLRest(VLFraction duration) : VLNote(duration, kNoPitch) {}
|
||||
};
|
||||
|
||||
struct VLChord : VLNote {
|
||||
uint32_t fSteps; // Notes in chord, listed in semitones
|
||||
enum {
|
||||
kUnison = 0,
|
||||
kMin2nd,
|
||||
kMaj2nd,
|
||||
kMin3rd,
|
||||
kMaj3rd,
|
||||
k4th,
|
||||
kDim5th,
|
||||
k5th,
|
||||
kAug5th,
|
||||
kDim7th,
|
||||
kMin7th,
|
||||
kMaj7th,
|
||||
kOctave,
|
||||
kMin9th,
|
||||
kMaj9th,
|
||||
kAug9th,
|
||||
kDim11th,
|
||||
k11th,
|
||||
kAug11th,
|
||||
kDim13th,
|
||||
kMin13th,
|
||||
kMaj13th,
|
||||
|
||||
kmUnison = (1 << kUnison),
|
||||
kmMin2nd = (1 << kMin2nd),
|
||||
kmMaj2nd = (1 << kMaj2nd),
|
||||
kmMin3rd = (1 << kMin3rd),
|
||||
kmMaj3rd = (1 << kMaj3rd),
|
||||
km4th = (1 << k4th),
|
||||
kmDim5th = (1 << kDim5th),
|
||||
km5th = (1 << k5th),
|
||||
kmAug5th = (1 << kAug5th),
|
||||
kmDim7th = (1 << kDim7th),
|
||||
kmMin7th = (1 << kMin7th),
|
||||
kmMaj7th = (1 << kMaj7th),
|
||||
kmOctave = (1 << kOctave),
|
||||
kmMin9th = (1 << kMin9th),
|
||||
kmMaj9th = (1 << kMaj9th),
|
||||
kmAug9th = (1 << kAug9th),
|
||||
kmDim11th = (1 << kDim11th),
|
||||
km11th = (1 << k11th),
|
||||
kmAug11th = (1 << kAug11th),
|
||||
kmDim13th = (1 << kDim13th),
|
||||
kmMin13th = (1 << kMin13th),
|
||||
kmMaj13th = (1 << kMaj13th)
|
||||
};
|
||||
int8_t fRootPitch; // kNoPitch == no root
|
||||
|
||||
VLChord() {}
|
||||
VLChord(std::string name);
|
||||
void Name(std::string & base, std::string & ext, std::string & root, bool useSharps = false) const;
|
||||
};
|
||||
|
||||
struct VLProperties {
|
||||
VLFraction fTime; // Time (non-normalized)
|
||||
int8_t fKey; // Circle of fifths from C, >0 sharps, <0 flats
|
||||
int8_t fMode; // 1 = major -1 = minor
|
||||
int8_t fDivisions; // Number of divisions per quarter note
|
||||
|
||||
//
|
||||
// Subdivide a note and adjust for swing
|
||||
//
|
||||
void PartialNote(VLFraction at, VLFraction totalDuration, VLFraction * noteDuration) const;
|
||||
};
|
||||
|
||||
struct VLSyllable {
|
||||
std::string fText;
|
||||
bool fHyphen; // Followed by hyphen
|
||||
};
|
||||
|
||||
typedef std::list<VLChord> VLChordList;
|
||||
typedef std::list<VLNote> VLNoteList;
|
||||
typedef std::list<VLSyllable> VLSyllList;
|
||||
|
||||
struct VLMeasure {
|
||||
VLProperties * fProperties;
|
||||
VLChordList fChords;
|
||||
VLNoteList fMelody;
|
||||
VLSyllList fLyrics;
|
||||
|
||||
VLMeasure();
|
||||
};
|
||||
|
||||
struct VLSong {
|
||||
VLSong();
|
||||
|
||||
std::list<VLProperties> fProperties;
|
||||
std::vector<VLMeasure> fMeasures;
|
||||
|
||||
void AddChord(VLChord chord, size_t measure, VLFraction at);
|
||||
void AddNote(VLNote note, size_t measure, VLFraction at);
|
||||
void DelChord(size_t measure, VLFraction at);
|
||||
void DelNote(size_t measure, VLFraction at);
|
||||
};
|
||||
|
||||
// Local Variables:
|
||||
// mode:C++
|
||||
// End:
|
75
Sources/VLSheetView.h
Normal file
75
Sources/VLSheetView.h
Normal file
|
@ -0,0 +1,75 @@
|
|||
//
|
||||
// VLSheetView.h
|
||||
// Vocalese
|
||||
//
|
||||
// Created by Matthias Neeracher on 12/17/05.
|
||||
// Copyright 2005 __MyCompanyName__. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
#import "VLModel.h"
|
||||
|
||||
@class VLDocument;
|
||||
|
||||
enum VLMusicElement {
|
||||
kMusicGClef,
|
||||
kMusicFlat,
|
||||
kMusicSharp,
|
||||
kMusicNatural,
|
||||
kMusicWholeNote,
|
||||
kMusicHalfNote,
|
||||
kMusicNote,
|
||||
kMusicWholeRest,
|
||||
kMusicHalfRest,
|
||||
kMusicQuarterRest,
|
||||
kMusicEighthRest,
|
||||
kMusicSixteenthRest,
|
||||
kMusicThirtysecondthRest,
|
||||
kMusicEighthFlag,
|
||||
kMusicSixteenthFlag,
|
||||
kMusicThirtysecondthFlag,
|
||||
kMusicNoteCursor,
|
||||
kMusicElements
|
||||
};
|
||||
|
||||
@interface VLSheetView : NSView {
|
||||
BOOL needsRecalc;
|
||||
float clefKeyW;
|
||||
float measureW;
|
||||
int groups;
|
||||
int quarterBeats;
|
||||
int divPerGroup;
|
||||
int firstMeasure;
|
||||
int lastMeasure;
|
||||
int visibleMeasures;
|
||||
NSImageRep * noteCursorCache;
|
||||
NSPoint noteCursorLocation;
|
||||
NSPoint lastNoteCenter;
|
||||
NSRect noteRect;
|
||||
NSTrackingRectTag noteRectTracker;
|
||||
int noteCursorMeasure;
|
||||
VLFract noteCursorAt;
|
||||
int noteCursorPitch;
|
||||
|
||||
IBOutlet id chords;
|
||||
}
|
||||
|
||||
- (IBAction) setKey:(id)sender;
|
||||
- (IBAction) setTime:(id)sender;
|
||||
- (IBAction) setDivisions:(id)sender;
|
||||
|
||||
- (void) setFirstMeasure: (NSNumber *)measure;
|
||||
|
||||
- (VLDocument *) document;
|
||||
- (VLSong *) song;
|
||||
- (NSImage *) musicElement:(VLMusicElement)elt;
|
||||
|
||||
- (float) noteYWithPitch:(int)pitch;
|
||||
- (float) noteXInMeasure:(int)measure at:(VLFraction)at;
|
||||
|
||||
@end
|
||||
|
||||
// Local Variables:
|
||||
// mode:ObjC
|
||||
// End:
|
314
Sources/VLSheetView.mm
Normal file
314
Sources/VLSheetView.mm
Normal file
|
@ -0,0 +1,314 @@
|
|||
//
|
||||
// VLSheetView.mm
|
||||
// Vocalese
|
||||
//
|
||||
// Created by Matthias Neeracher on 12/17/05.
|
||||
// Copyright 2005 __MyCompanyName__. All rights reserved.
|
||||
//
|
||||
|
||||
#import "VLSheetView.h"
|
||||
#import "VLSheetViewInternal.h"
|
||||
#import "VLSheetViewChords.h"
|
||||
#import "VLSheetViewNotes.h"
|
||||
|
||||
#import "VLDocument.h"
|
||||
|
||||
#include <cmath>
|
||||
|
||||
@implementation VLSheetView
|
||||
|
||||
static NSImage ** sMusic;
|
||||
|
||||
static NSString * sElementNames[kMusicElements] = {
|
||||
@"g-clef",
|
||||
@"flat",
|
||||
@"sharp",
|
||||
@"natural",
|
||||
@"whole-notehead",
|
||||
@"half-notehead",
|
||||
@"notehead",
|
||||
@"whole-rest",
|
||||
@"half-rest",
|
||||
@"quarter-rest",
|
||||
@"eighth-rest",
|
||||
@"sixteenth-rest",
|
||||
@"thirtysecondth-rest",
|
||||
@"eighth-flag",
|
||||
@"sixteenth-flag",
|
||||
@"thirtysecondth-flag",
|
||||
@"notecursor"
|
||||
};
|
||||
|
||||
static float sSharpPos[] = {
|
||||
kLineY+4.0f*kLineH, // F#
|
||||
kLineY+2.5f*kLineH, // C#
|
||||
kLineY+4.5f*kLineH, // G#
|
||||
kLineY+3.0f*kLineH, // D#
|
||||
kLineY+1.5f*kLineH, // A#
|
||||
kLineY+3.5f*kLineH, // E#
|
||||
kLineY+2.0f*kLineH, // B#
|
||||
};
|
||||
|
||||
static float sFlatPos[] = {
|
||||
kLineY+2.0f*kLineH, // Bb
|
||||
kLineY+3.5f*kLineH, // Eb
|
||||
kLineY+1.5f*kLineH, // Ab
|
||||
kLineY+3.0f*kLineH, // Db
|
||||
kLineY+1.0f*kLineH, // Gb
|
||||
kLineY+2.5f*kLineH, // Cb
|
||||
kLineY+0.5f*kLineH, // Fb
|
||||
};
|
||||
|
||||
- (id)initWithFrame:(NSRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
if (!sMusic) {
|
||||
NSBundle * b = [NSBundle mainBundle];
|
||||
sMusic = new NSImage * [kMusicElements];
|
||||
for (int i=0; i<kMusicElements; ++i) {
|
||||
NSString * name =
|
||||
[b pathForResource:sElementNames[i] ofType:@"eps"
|
||||
inDirectory:@"Music"];
|
||||
sMusic[i] = [[NSImage alloc] initWithContentsOfFile: name];
|
||||
NSSize sz = [sMusic[i] size];
|
||||
sz.width *= kImgScale;
|
||||
sz.height*= kImgScale;
|
||||
[sMusic[i] setScalesWhenResized:YES];
|
||||
[sMusic[i] setSize:sz];
|
||||
}
|
||||
}
|
||||
needsRecalc = YES;
|
||||
firstMeasure = 0;
|
||||
noteRectTracker = 0;
|
||||
noteCursorCache = nil;
|
||||
noteCursorMeasure = -1;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (VLDocument *) document
|
||||
{
|
||||
return [[[self window] windowController] document];
|
||||
}
|
||||
|
||||
- (VLSong *) song
|
||||
{
|
||||
return [[self document] song];
|
||||
}
|
||||
|
||||
- (NSImage *) musicElement:(VLMusicElement)elt
|
||||
{
|
||||
return sMusic[elt];
|
||||
}
|
||||
|
||||
- (float) noteYWithPitch:(int)pitch
|
||||
{
|
||||
int semi = pitch % 12;
|
||||
int octave = (pitch / 12) - 5;
|
||||
bool useSharps = [self song]->fProperties.front().fKey >= 0;
|
||||
|
||||
float y = kLineY+octave*3.5f*kLineH;
|
||||
float sharp = useSharps ? 0.0f : 0.5f*kLineH;
|
||||
|
||||
switch (semi) {
|
||||
case 0: // C
|
||||
return y-1.0f*kLineH;
|
||||
case 1: // C# / Db
|
||||
return y-1.0f*kLineH+sharp;
|
||||
case 2: // D
|
||||
return y-0.5f*kLineH;
|
||||
case 3: // D# / Eb
|
||||
return y-0.5f*kLineH+sharp;
|
||||
case 4: // E
|
||||
return y;
|
||||
case 5: // F
|
||||
return y+0.5f*kLineH;
|
||||
case 6: // F# / Gb
|
||||
return y+0.5f*kLineH+sharp;
|
||||
case 7: // G
|
||||
return y+1.0f*kLineH;
|
||||
case 8: // G# / Ab
|
||||
return y+1.0f*kLineH+sharp;
|
||||
case 9: // A
|
||||
return y+1.5f*kLineH;
|
||||
case 10: // A# / Bb
|
||||
return y+1.5f*kLineH+sharp;
|
||||
case 11: // B
|
||||
default:
|
||||
return y+2.0f*kLineH;
|
||||
}
|
||||
}
|
||||
|
||||
- (float) noteXInMeasure:(int)measure at:(VLFraction)at
|
||||
{
|
||||
const VLProperties & prop = [self song]->fProperties.front();
|
||||
const float mx = clefKeyW+(measure-firstMeasure)*measureW;
|
||||
|
||||
at /= prop.fTime / (4 * prop.fDivisions);
|
||||
int div = at.fNum / at.fDenom;
|
||||
|
||||
return mx + (div + (div / divPerGroup) + 1)*kNoteW;
|
||||
}
|
||||
|
||||
- (void) recalculateDimensions
|
||||
{
|
||||
needsRecalc = NO;
|
||||
|
||||
const VLSong * song = [self song];
|
||||
const VLProperties & prop = song->fProperties.front();
|
||||
|
||||
groups = prop.fTime.fNum / std::max(prop.fTime.fDenom / 4, 1);
|
||||
quarterBeats = (prop.fTime.fNum*4) / prop.fTime.fDenom;
|
||||
divPerGroup = prop.fDivisions * (quarterBeats / groups);
|
||||
clefKeyW = kClefX+kClefW+(std::labs(prop.fKey)+1)*kKeyW;
|
||||
measureW = groups*(divPerGroup+1)*kNoteW;
|
||||
visibleMeasures = (int)std::floor(([self bounds].size.width - clefKeyW)
|
||||
/ measureW);
|
||||
[self setValue:
|
||||
[NSNumber numberWithInt:
|
||||
std::max((int)song->fMeasures.size()-visibleMeasures, 0)]
|
||||
forKey: @"lastMeasure"];
|
||||
if (firstMeasure > lastMeasure)
|
||||
[self setValue: [NSNumber numberWithInt:lastMeasure]
|
||||
forKey: @"firstMeasure"];
|
||||
|
||||
[self setupChords];
|
||||
|
||||
noteRect = NSMakeRect(clefKeyW, kLineY-kMaxLedgers*kLineH,
|
||||
visibleMeasures*measureW,
|
||||
(4.0f+2.0f*kMaxLedgers)*kLineH);
|
||||
NSPoint mouse =
|
||||
[self convertPoint:[[self window] mouseLocationOutsideOfEventStream]
|
||||
fromView: nil];
|
||||
BOOL inNoteRect = [self mouse:mouse inRect:noteRect];
|
||||
|
||||
[self removeTrackingRect:noteRectTracker];
|
||||
noteRectTracker = [self addTrackingRect:noteRect owner:self
|
||||
userData:nil assumeInside:inNoteRect];
|
||||
[[self window] setAcceptsMouseMovedEvents:inNoteRect];
|
||||
[[self window] makeFirstResponder:self];
|
||||
}
|
||||
|
||||
- (void)drawRect:(NSRect)rect
|
||||
{
|
||||
const VLSong * song = [self song];
|
||||
const VLProperties & prop = song->fProperties.front();
|
||||
|
||||
NSBezierPath * bz = [NSBezierPath bezierPath];
|
||||
|
||||
//
|
||||
// Draw lines
|
||||
//
|
||||
[bz setLineWidth:0.0];
|
||||
if (needsRecalc)
|
||||
[self recalculateDimensions];
|
||||
for (int line = 0; line<5; ++line) {
|
||||
const float x0 = kLineX;
|
||||
const float xx = x0 + clefKeyW + visibleMeasures*measureW;
|
||||
const float y = kLineY+line*kLineH;
|
||||
[bz moveToPoint: NSMakePoint(x0, y)];
|
||||
[bz lineToPoint: NSMakePoint(xx, y)];
|
||||
}
|
||||
[bz stroke];
|
||||
[bz removeAllPoints];
|
||||
//
|
||||
// Draw measure lines
|
||||
//
|
||||
[bz setLineWidth:2.0];
|
||||
for (int measure = 0; measure<=visibleMeasures; ++measure) {
|
||||
const float x = clefKeyW+measure*measureW;
|
||||
const float yy = kLineY+4.0f*kLineH;
|
||||
[bz moveToPoint: NSMakePoint(x, kLineY)];
|
||||
[bz lineToPoint: NSMakePoint(x, yy)];
|
||||
}
|
||||
[bz stroke];
|
||||
[bz removeAllPoints];
|
||||
|
||||
//
|
||||
// Draw division lines
|
||||
//
|
||||
[bz setLineWidth:0.0];
|
||||
[[NSColor colorWithDeviceWhite:0.8f alpha:1.0f] set];
|
||||
for (int measure = 0; measure<visibleMeasures; ++measure) {
|
||||
const float mx = clefKeyW+measure*measureW;
|
||||
const float y0 = kLineY-2.0f*kLineH;
|
||||
const float yy = kLineY+6.0f*kLineH;
|
||||
for (int group = 0; group < groups; ++group) {
|
||||
for (int div = 0; div < divPerGroup; ++div) {
|
||||
const float x = mx+(group*(divPerGroup+1)+div+1)*kNoteW;
|
||||
[bz moveToPoint: NSMakePoint(x, y0)];
|
||||
[bz lineToPoint: NSMakePoint(x, yy)];
|
||||
}
|
||||
}
|
||||
}
|
||||
[bz stroke];
|
||||
|
||||
//
|
||||
// Draw clef
|
||||
//
|
||||
[[self musicElement:kMusicGClef]
|
||||
compositeToPoint:NSMakePoint(kClefX, kClefY)
|
||||
operation: NSCompositeSourceOver];
|
||||
//
|
||||
// Draw key (sharps & flats)
|
||||
//
|
||||
if (prop.fKey > 0) {
|
||||
float x = kClefX+kClefW;
|
||||
for (int i=0; i<prop.fKey; ++i) {
|
||||
[[self musicElement:kMusicSharp] compositeToPoint:
|
||||
NSMakePoint(x, sSharpPos[i]+kSharpY)
|
||||
operation: NSCompositeSourceOver];
|
||||
x += kAccW;
|
||||
}
|
||||
} else if (prop.fKey < 0) {
|
||||
float x = kClefX+kClefW;
|
||||
for (int i=0; -i>prop.fKey; ++i) {
|
||||
[[self musicElement: kMusicFlat] compositeToPoint:
|
||||
NSMakePoint(x, sFlatPos[i]+kFlatY)
|
||||
operation: NSCompositeSourceOver];
|
||||
x += kAccW;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Draw notes
|
||||
//
|
||||
[self drawNotes];
|
||||
}
|
||||
|
||||
- (IBAction) setKey:(id)sender
|
||||
{
|
||||
int key = [[sender selectedItem] tag];
|
||||
[[self document] setKey: key transpose: YES];
|
||||
needsRecalc = YES;
|
||||
[self setNeedsDisplay: YES];
|
||||
}
|
||||
|
||||
- (IBAction) setTime:(id)sender
|
||||
{
|
||||
int time = [[sender selectedItem] tag];
|
||||
|
||||
[[self document] setTimeNum: time >> 8 denom: time & 0xFF];
|
||||
needsRecalc = YES;
|
||||
[self setNeedsDisplay: YES];
|
||||
}
|
||||
|
||||
- (IBAction) setDivisions:(id)sender
|
||||
{
|
||||
int div = [[sender selectedItem] tag];
|
||||
|
||||
[[self document] setDivisions: div];
|
||||
needsRecalc = YES;
|
||||
[self setNeedsDisplay: YES];
|
||||
}
|
||||
|
||||
- (void) setFirstMeasure: (NSNumber *)measure
|
||||
{
|
||||
firstMeasure = [measure intValue];
|
||||
|
||||
[self setupChords];
|
||||
[self setNeedsDisplay: YES];
|
||||
}
|
||||
|
||||
@end
|
15
Sources/VLSheetViewChords.h
Normal file
15
Sources/VLSheetViewChords.h
Normal file
|
@ -0,0 +1,15 @@
|
|||
//
|
||||
// VLSheetViewChords.h
|
||||
// Vocalese
|
||||
//
|
||||
// Created by Matthias Neeracher on 1/4/06.
|
||||
// Copyright 2006 __MyCompanyName__. All rights reserved.
|
||||
//
|
||||
|
||||
@interface VLSheetView (Chords)
|
||||
|
||||
- (IBAction) editChord:(id)sender;
|
||||
|
||||
- (void) setupChords;
|
||||
|
||||
@end
|
176
Sources/VLSheetViewChords.mm
Normal file
176
Sources/VLSheetViewChords.mm
Normal file
|
@ -0,0 +1,176 @@
|
|||
//
|
||||
// VLSheetViewChords.mm
|
||||
// Vocalese
|
||||
//
|
||||
// Created by Matthias Neeracher on 1/4/06.
|
||||
// Copyright 2006 __MyCompanyName__. All rights reserved.
|
||||
//
|
||||
|
||||
#import "VLSheetView.h"
|
||||
#import "VLSheetViewChords.h"
|
||||
#import "VLSheetViewInternal.h"
|
||||
|
||||
#import "VLModel.h"
|
||||
#import "VLSoundOut.h"
|
||||
|
||||
@implementation VLSheetView (Chords)
|
||||
|
||||
- (NSAttributedString *) attributedStringWithCppString:(const std::string &)s
|
||||
attributes:(NSDictionary *)a
|
||||
{
|
||||
return [[[NSAttributedString alloc]
|
||||
initWithString:[NSString stringWithUTF8String:s.c_str()]
|
||||
attributes: a]
|
||||
autorelease];
|
||||
}
|
||||
|
||||
- (NSAttributedString *) stringWithChord:(const VLChord &)chord
|
||||
{
|
||||
const VLSong * song = [self song];
|
||||
const VLProperties & prop = song->fProperties.front();
|
||||
|
||||
static NSDictionary * sBigFont = nil;
|
||||
static NSDictionary * sSuperFont = nil;
|
||||
if (!sBigFont)
|
||||
sBigFont =
|
||||
[[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
[NSFont fontWithName: @"Helvetica" size: 14],
|
||||
NSFontAttributeName,
|
||||
nil];
|
||||
if (!sSuperFont)
|
||||
sSuperFont =
|
||||
[[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
[NSFont fontWithName: @"Helvetica" size: 12],
|
||||
NSFontAttributeName,
|
||||
[NSNumber numberWithInt: 1],
|
||||
NSSuperscriptAttributeName,
|
||||
nil];
|
||||
|
||||
std::string name, ext, root;
|
||||
if (chord.fPitch != VLNote::kNoPitch)
|
||||
chord.Name(name, ext, root, prop.fKey > 0);
|
||||
|
||||
NSMutableAttributedString * s =
|
||||
[[[NSMutableAttributedString alloc] init] autorelease];
|
||||
[s appendAttributedString:
|
||||
[self attributedStringWithCppString: name
|
||||
attributes: sBigFont]];
|
||||
[s appendAttributedString:
|
||||
[self attributedStringWithCppString: ext.size() ? ext : " "
|
||||
attributes: sSuperFont]];
|
||||
if (root.size())
|
||||
[s appendAttributedString:
|
||||
[self attributedStringWithCppString: "/" + root
|
||||
attributes: sBigFont]];
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
- (void) setupChords
|
||||
{
|
||||
const VLSong * song = [self song];
|
||||
const VLProperties & prop = song->fProperties.front();
|
||||
NSView * chordView = [chords contentView];
|
||||
|
||||
//
|
||||
// Delete old list of chord boxes
|
||||
//
|
||||
for (NSEnumerator * e = [[chordView subviews] objectEnumerator];
|
||||
NSView * subview = [e nextObject];
|
||||
)
|
||||
[subview removeFromSuperview];
|
||||
|
||||
//
|
||||
// Build new list
|
||||
//
|
||||
NSView * prevKeyView = nil;
|
||||
NSFont * chordFont = [NSFont controlContentFontOfSize: 14];
|
||||
int beatsPerGroup = quarterBeats / groups;
|
||||
for (int m = 0; m<visibleMeasures; ++m) {
|
||||
const float x0 = clefKeyW+m*measureW;
|
||||
int measure = firstMeasure+m;
|
||||
VLChordList::const_iterator cCur = song->fMeasures[measure].fChords.begin();
|
||||
VLChordList::const_iterator cEnd = song->fMeasures[measure].fChords.end();
|
||||
VLFraction at(0);
|
||||
for (int beat = 0; beat<quarterBeats; ++beat) {
|
||||
const float x = x0+kNoteW*(beat*prop.fDivisions+(beat / beatsPerGroup)+0.5f);
|
||||
NSRect f = NSMakeRect(x, 0, kChordW, kChordH);
|
||||
NSTextField * chord = [[NSTextField alloc] initWithFrame: f];
|
||||
[chordView addSubview: chord];
|
||||
[prevKeyView setNextKeyView: chord];
|
||||
prevKeyView = chord;
|
||||
[chord setBordered: NO];
|
||||
[chord setBezeled: NO];
|
||||
[chord setDrawsBackground: NO];
|
||||
[chord setTarget: self];
|
||||
[chord setAction: @selector(editChord:)];
|
||||
[[chord cell] setSendsActionOnEndEditing: YES];
|
||||
[chord setTag: (measure << 8) | beat];
|
||||
[chord setFont: chordFont];
|
||||
while (cCur != cEnd && at < VLFraction(beat, 4))
|
||||
at += (cCur++)->fDuration;
|
||||
if (cCur != cEnd && at == VLFraction(beat, 4) && cCur->fPitch != VLNote::kNoPitch)
|
||||
[chord setAttributedStringValue: [self stringWithChord:*cCur]];
|
||||
[chord release];
|
||||
}
|
||||
}
|
||||
[chords setNeedsDisplay: YES];
|
||||
}
|
||||
|
||||
|
||||
- (IBAction) editChord:(id)sender
|
||||
{
|
||||
VLSong * song = [self song];
|
||||
|
||||
std::string chordName =
|
||||
(const char *)[[[sender stringValue] lowercaseString] UTF8String];
|
||||
//
|
||||
// Normalize # and b
|
||||
//
|
||||
for (;;) {
|
||||
size_t found;
|
||||
|
||||
found = chordName.find("\xE2\x99\xAF", 0, 3);
|
||||
if (found != std::string::npos) {
|
||||
chordName.replace(found, 3, 1, '#');
|
||||
continue;
|
||||
}
|
||||
found = chordName.find("\xE2\x99\xAD", 0, 3);
|
||||
if (found != std::string::npos) {
|
||||
chordName.replace(found, 3, 1, 'b');
|
||||
continue;
|
||||
}
|
||||
found = chordName.find(" ", 0, 1);
|
||||
if (found != std::string::npos) {
|
||||
chordName.erase(found);
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
//
|
||||
// Check for valid chord
|
||||
//
|
||||
VLChord chord(chordName);
|
||||
if (!chordName.size()) {
|
||||
[sender setTextColor: [NSColor blackColor]];
|
||||
} else if (chord.fPitch == VLChord::kNoPitch) {
|
||||
if (chordName.size()) {
|
||||
NSBeep();
|
||||
[sender setTextColor: [NSColor redColor]];
|
||||
}
|
||||
int tag = [sender tag];
|
||||
song->DelChord(tag >> 8, VLFraction(tag & 0xFF, 4));
|
||||
} else {
|
||||
NSAttributedString * s = [self stringWithChord:chord];
|
||||
[sender setAttributedStringValue: s];
|
||||
[sender setTextColor: [NSColor blackColor]];
|
||||
NSSize sz = [sender frame].size;
|
||||
sz.width = [s size].width+10.0;
|
||||
[sender setFrameSize: sz];
|
||||
VLSoundOut::Instance()->PlayChord(chord);
|
||||
int tag = [sender tag];
|
||||
song->AddChord(chord, tag >> 8, VLFraction(tag & 0xFF, 4));
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
31
Sources/VLSheetViewInternal.h
Normal file
31
Sources/VLSheetViewInternal.h
Normal file
|
@ -0,0 +1,31 @@
|
|||
//
|
||||
// VLSheetViewInternal.h
|
||||
// Vocalese
|
||||
//
|
||||
// Created by Matthias Neeracher on 1/4/06.
|
||||
// Copyright 2006 __MyCompanyName__. All rights reserved.
|
||||
//
|
||||
|
||||
const float kLineX = 5;
|
||||
const float kLineY = 90.5;
|
||||
const float kLineH = 10;
|
||||
const float kClefX = 20.5f;
|
||||
const float kClefY = 75.0f;
|
||||
const float kClefW = 30.0f;
|
||||
const float kNoteW = 12.0f;
|
||||
const float kKeyW = 10.0f;
|
||||
const float kAccW = 10.0f;
|
||||
const float kSharpY =-15.0f;
|
||||
const float kFlatY = -7.0f;
|
||||
const float kImgScale = 0.04f;
|
||||
const float kChordW = 40.0f;
|
||||
const float kChordH = 25.0f;
|
||||
const float kNoteX = 7.0f;
|
||||
const float kNoteY = 5.0f;
|
||||
const float kStemX = 0.0f;
|
||||
const float kStemY = 1.0f;
|
||||
const float kStemH = 30.0f;
|
||||
const float kWholeRestY = 20.0f;
|
||||
const float kHalfRestY = 15.0f;
|
||||
const float kTieDepth = 10.0f;
|
||||
const int kMaxLedgers = 3;
|
23
Sources/VLSheetViewNotes.h
Normal file
23
Sources/VLSheetViewNotes.h
Normal file
|
@ -0,0 +1,23 @@
|
|||
//
|
||||
// VLSheetViewNotes.h
|
||||
// Vocalese
|
||||
//
|
||||
// Created by Matthias Neeracher on 1/4/06.
|
||||
// Copyright 2006 __MyCompanyName__. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
@interface VLSheetView (Notes)
|
||||
|
||||
- (void) mouseMoved:(NSEvent *)event;
|
||||
- (void) mouseDown:(NSEvent *)event;
|
||||
- (void) mouseEntered:(NSEvent *)event;
|
||||
- (void) mouseExited:(NSEvent *)event;
|
||||
|
||||
- (void) drawNotes;
|
||||
|
||||
- (void) setNoteCursorMeasure:(int)measure at:(VLFraction)at pitch:(int)pitch;
|
||||
- (void) hideNoteCursor;
|
||||
|
||||
@end
|
326
Sources/VLSheetViewNotes.mm
Normal file
326
Sources/VLSheetViewNotes.mm
Normal file
|
@ -0,0 +1,326 @@
|
|||
//
|
||||
// VLSheetViewNotes.mm
|
||||
// Vocalese
|
||||
//
|
||||
// Created by Matthias Neeracher on 1/4/06.
|
||||
// Copyright 2006 __MyCompanyName__. All rights reserved.
|
||||
//
|
||||
|
||||
#import "VLSheetView.h"
|
||||
#import "VLSheetViewNotes.h"
|
||||
#import "VLSheetViewInternal.h"
|
||||
#import "VLSoundOut.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
@implementation VLSheetView (Notes)
|
||||
|
||||
static int sSemiToPitch[] = {
|
||||
53, // F
|
||||
55, 57, // A
|
||||
59, 60, // Middle C
|
||||
62, 64, // E
|
||||
65, 67, // G
|
||||
69, 71, // B
|
||||
72, 74, // D
|
||||
76, 77, // F
|
||||
79, 81, // A
|
||||
83, 84, // C
|
||||
86, 88 // E
|
||||
};
|
||||
|
||||
- (void) mouseMoved:(NSEvent *)event
|
||||
{
|
||||
if ([event modifierFlags] & NSAlphaShiftKeyMask)
|
||||
return; // Keyboard mode, ignore mouse
|
||||
const VLProperties & prop = [self song]->fProperties.front();
|
||||
NSPoint loc = [event locationInWindow];
|
||||
loc = [self convertPoint:loc fromView:nil];
|
||||
|
||||
loc.x -= noteRect.origin.x;
|
||||
int measure = static_cast<int>(loc.x / measureW)+firstMeasure;
|
||||
loc.x -= (measure-firstMeasure)*measureW;
|
||||
int group = static_cast<int>(loc.x / ((divPerGroup+1)*kNoteW));
|
||||
loc.x -= group*(divPerGroup+1)*kNoteW;
|
||||
int div = static_cast<int>(roundf(loc.x / kNoteW))-1;
|
||||
div = std::min(std::max(div, 0), divPerGroup-1);
|
||||
VLFraction at(div+group*divPerGroup, 4*prop.fDivisions);
|
||||
|
||||
loc.y -= noteRect.origin.y;
|
||||
int semi = static_cast<int>(roundf(loc.y / (0.5f*kLineH)));
|
||||
int pitch = sSemiToPitch[semi];
|
||||
|
||||
[self setNoteCursorMeasure:measure at:at pitch:pitch];
|
||||
}
|
||||
|
||||
- (void) addNoteAtCursor:(BOOL)isRest
|
||||
{
|
||||
if (noteCursorMeasure > -1) {
|
||||
VLNote newNote(1, !isRest ? noteCursorPitch : VLNote::kNoPitch);
|
||||
|
||||
[self song]->AddNote(newNote, noteCursorMeasure, noteCursorAt);
|
||||
|
||||
[self setNeedsDisplay:YES];
|
||||
|
||||
VLSoundOut::Instance()->PlayNote(newNote);
|
||||
}
|
||||
}
|
||||
|
||||
- (void) mouseDown:(NSEvent *)event
|
||||
{
|
||||
[self mouseMoved:event];
|
||||
[self addNoteAtCursor: ([event modifierFlags] & NSShiftKeyMask) != 0];
|
||||
}
|
||||
|
||||
- (void) mouseEntered:(NSEvent *)event
|
||||
{
|
||||
[[self window] setAcceptsMouseMovedEvents:YES];
|
||||
[self mouseMoved:event];
|
||||
}
|
||||
|
||||
- (void) mouseExited:(NSEvent *)event
|
||||
{
|
||||
[[self window] setAcceptsMouseMovedEvents:NO];
|
||||
if (!([event modifierFlags] & NSAlphaShiftKeyMask))
|
||||
[self hideNoteCursor];
|
||||
}
|
||||
|
||||
- (void) startKeyboardCursor
|
||||
{
|
||||
if (noteCursorMeasure < 0) {
|
||||
noteCursorMeasure = firstMeasure;
|
||||
noteCursorPitch = VLNote::kMiddleC;
|
||||
noteCursorAt = VLFraction(0);
|
||||
}
|
||||
}
|
||||
|
||||
- (void) keyDown:(NSEvent *)event
|
||||
{
|
||||
NSString * k = [event charactersIgnoringModifiers];
|
||||
|
||||
switch ([k characterAtIndex:0]) {
|
||||
case '\r':
|
||||
[self startKeyboardCursor];
|
||||
[self addNoteAtCursor];
|
||||
break;
|
||||
case ' ':
|
||||
[self startKeyboardCursor];
|
||||
VLSoundOut::Instance()->PlayNote(VLNote(1, noteCursorPitch));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
- (void) hideNoteCursor
|
||||
{
|
||||
noteCursorMeasure = -1;
|
||||
[self setNeedsDisplay:YES];
|
||||
}
|
||||
|
||||
- (void) drawNoteCursor
|
||||
{
|
||||
NSPoint note =
|
||||
NSMakePoint([self noteXInMeasure:noteCursorMeasure at:noteCursorAt],
|
||||
[self noteYWithPitch:noteCursorPitch]);
|
||||
NSRect noteCursorRect =
|
||||
NSMakeRect(note.x-kNoteX, note.y-kNoteY, 2.0f*kNoteX, 2.0f*kNoteY);
|
||||
[[self musicElement:kMusicNoteCursor]
|
||||
compositeToPoint:NSMakePoint(note.x-kNoteX, note.y-kNoteY)
|
||||
operation: NSCompositeSourceOver];
|
||||
}
|
||||
|
||||
- (void) drawNote:(VLFraction)dur at:(NSPoint)p tied:(BOOL)tied
|
||||
{
|
||||
NSPoint s = p;
|
||||
NSPoint c = p;
|
||||
p.x -= kNoteX;
|
||||
p.y -= kNoteY;
|
||||
s.x += kNoteX+kStemX;
|
||||
s.y += kStemY;
|
||||
//
|
||||
// Draw note head
|
||||
//
|
||||
NSImage * head;
|
||||
switch (dur.fDenom) {
|
||||
case 1:
|
||||
head = [self musicElement:kMusicWholeNote];
|
||||
break;
|
||||
case 2:
|
||||
head = [self musicElement:kMusicHalfNote];
|
||||
s.x -= 1.0f;
|
||||
break;
|
||||
default:
|
||||
head = [self musicElement:kMusicNote];
|
||||
s.x -= 2.0f;
|
||||
break;
|
||||
}
|
||||
[head compositeToPoint:p
|
||||
operation: NSCompositePlusDarker];
|
||||
//
|
||||
// Draw stem
|
||||
//
|
||||
//
|
||||
//
|
||||
if (dur.fDenom > 1) {
|
||||
NSBezierPath * bz = [NSBezierPath bezierPath];
|
||||
NSPoint s1 = NSMakePoint(s.x, s.y+kStemH);
|
||||
NSImage * flag = nil;
|
||||
switch (dur.fDenom) {
|
||||
case 8:
|
||||
flag = [self musicElement:kMusicEighthFlag];
|
||||
break;
|
||||
case 16:
|
||||
flag = [self musicElement:kMusicSixteenthFlag];
|
||||
s1.y += 5.0f;
|
||||
break;
|
||||
case 32:
|
||||
flag = [self musicElement:kMusicThirtysecondthFlag];
|
||||
s1.y += 13.0f;
|
||||
break;
|
||||
}
|
||||
[[NSColor blackColor] set];
|
||||
[bz setLineWidth:2.0f];
|
||||
[bz moveToPoint:s];
|
||||
[bz lineToPoint:s1];
|
||||
[bz stroke];
|
||||
if (flag)
|
||||
[flag compositeToPoint:s
|
||||
operation: NSCompositePlusDarker];
|
||||
}
|
||||
//
|
||||
// Draw tie
|
||||
//
|
||||
if (tied) {
|
||||
NSPoint mid =
|
||||
NSMakePoint(0.5f*(lastNoteCenter.x+c.x),
|
||||
0.5f*(lastNoteCenter.y+c.y));
|
||||
NSPoint dir = NSMakePoint(c.y-mid.y, c.x-mid.x);
|
||||
float n = dir.x*dir.x+dir.y*dir.y;
|
||||
float r = (kTieDepth*kTieDepth+n) / (2.0f*kTieDepth);
|
||||
float l = (r-kTieDepth) / sqrtf(n);
|
||||
mid.x += dir.x*l;
|
||||
mid.y += dir.y*l;
|
||||
float a1 = atan2(lastNoteCenter.y-mid.y, lastNoteCenter.x-mid.x);
|
||||
float a2 = atan2(c.y-mid.y, c.x-mid.x);
|
||||
NSBezierPath * bz = [NSBezierPath bezierPath];
|
||||
[bz appendBezierPathWithArcWithCenter:mid radius:r
|
||||
startAngle:a1*180.0f/M_PI endAngle:a2*180.0f/M_PI];
|
||||
[bz stroke];
|
||||
}
|
||||
lastNoteCenter = c;
|
||||
}
|
||||
|
||||
- (void) drawRest:(VLFraction)dur at:(NSPoint)p
|
||||
{
|
||||
//
|
||||
// Draw rest
|
||||
//
|
||||
NSImage * head = nil;
|
||||
switch (dur.fDenom) {
|
||||
case 1:
|
||||
head = [self musicElement:kMusicWholeRest];
|
||||
p.y += kWholeRestY;
|
||||
break;
|
||||
case 2:
|
||||
head = [self musicElement:kMusicHalfRest];
|
||||
p.y += kHalfRestY;
|
||||
break;
|
||||
case 4:
|
||||
head = [self musicElement:kMusicQuarterRest];
|
||||
p.x -= kNoteX;
|
||||
break;
|
||||
case 8:
|
||||
head = [self musicElement:kMusicEighthRest];
|
||||
p.x -= kNoteX;
|
||||
break;
|
||||
case 16:
|
||||
head = [self musicElement:kMusicSixteenthRest];
|
||||
p.x -= kNoteX;
|
||||
break;
|
||||
case 32:
|
||||
head = [self musicElement:kMusicThirtysecondthRest];
|
||||
p.x -= kNoteX;
|
||||
break;
|
||||
}
|
||||
[head compositeToPoint:p
|
||||
operation: NSCompositeSourceOver];
|
||||
}
|
||||
|
||||
- (void) drawNotes
|
||||
{
|
||||
const VLSong * song = [self song];
|
||||
const VLProperties & prop = song->fProperties.front();
|
||||
BOOL swing= !(prop.fDivisions % 3); // In swing mode?
|
||||
VLFraction swung(3, prop.fDivisions*8, true); // Which notes to swing
|
||||
VLFraction swingGrid(2*swung); // Alignment of swing notes
|
||||
|
||||
for (int m = 0; m<visibleMeasures; ++m) {
|
||||
int measIdx = m+firstMeasure;
|
||||
const VLMeasure measure = song->fMeasures[measIdx];
|
||||
const VLNoteList & melody = measure.fMelody;
|
||||
VLFraction at(0);
|
||||
for (VLNoteList::const_iterator note = melody.begin();
|
||||
note != melody.end();
|
||||
++note
|
||||
) {
|
||||
VLFraction dur = note->fDuration;
|
||||
BOOL first = !m || !note->fTied;
|
||||
int pitch = note->fPitch;
|
||||
while (dur > 0) {
|
||||
VLFraction partialDur; // Actual value of note drawn
|
||||
measure.fProperties->PartialNote(at, dur, &partialDur);
|
||||
|
||||
BOOL triplet = !(partialDur.fDenom % 3);
|
||||
VLFraction noteDur(1); // Visual value of note
|
||||
|
||||
if (triplet) {
|
||||
if (swing) { // Swing 8ths / 16ths are written as straight 8ths
|
||||
if (partialDur == 4*swung/3 && (at % swingGrid) == 0) {
|
||||
noteDur = swung;
|
||||
triplet = NO;
|
||||
} else if (partialDur == 2*swung/3 && ((at+partialDur) % swingGrid) == 0) {
|
||||
noteDur = swung;
|
||||
triplet = NO;
|
||||
} else {
|
||||
noteDur = 4*partialDur/3;
|
||||
}
|
||||
} else {
|
||||
noteDur = 4*partialDur/3;
|
||||
}
|
||||
} else {
|
||||
noteDur = partialDur;
|
||||
}
|
||||
if (pitch != VLNote::kNoPitch)
|
||||
[self drawNote:noteDur
|
||||
at: NSMakePoint(
|
||||
[self noteXInMeasure:measIdx at:at],
|
||||
[self noteYWithPitch:pitch])
|
||||
tied:!first];
|
||||
else
|
||||
[self drawRest:noteDur
|
||||
at: NSMakePoint(
|
||||
[self noteXInMeasure:measIdx at:at],
|
||||
[self noteYWithPitch:65])];
|
||||
dur -= partialDur;
|
||||
at += partialDur;
|
||||
first = NO;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (noteCursorMeasure > -1)
|
||||
[self drawNoteCursor];
|
||||
}
|
||||
|
||||
- (void) setNoteCursorMeasure:(int)measure at:(VLFraction)at pitch:(int)pitch
|
||||
{
|
||||
if (measure != noteCursorMeasure || at != noteCursorAt
|
||||
|| pitch != noteCursorPitch
|
||||
) {
|
||||
noteCursorMeasure = measure;
|
||||
noteCursorAt = at;
|
||||
noteCursorPitch = pitch;
|
||||
|
||||
[self setNeedsDisplay:YES];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
159
Sources/VLSoundOut.cpp
Normal file
159
Sources/VLSoundOut.cpp
Normal file
|
@ -0,0 +1,159 @@
|
|||
/*
|
||||
* VLSoundOut.cpp
|
||||
* Vocalese
|
||||
*
|
||||
* Created by Matthias Neeracher on 12/18/05.
|
||||
* Copyright 2005 __MyCompanyName__. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "VLSoundOut.h"
|
||||
|
||||
#include <AudioUnit/AudioUnit.h>
|
||||
#include <AudioToolbox/AudioToolbox.h>
|
||||
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
const int kMidiChannelInUse = 0;
|
||||
|
||||
enum {
|
||||
kMidiMessage_ControlChange = 0xB,
|
||||
kMidiMessage_ProgramChange = 0xC,
|
||||
kMidiMessage_BankMSBControl = 0,
|
||||
kMidiMessage_BankLSBControl = 32,
|
||||
kMidiMessage_NoteOn = 0x9,
|
||||
kMidiMessage_NoteOff = 0x8
|
||||
};
|
||||
|
||||
class VLAUSoundOut : public VLSoundOut {
|
||||
public:
|
||||
VLAUSoundOut();
|
||||
|
||||
virtual void PlayNote(const VLNote & note);
|
||||
virtual void PlayChord(const VLChord & chord);
|
||||
|
||||
virtual ~VLAUSoundOut();
|
||||
private:
|
||||
AUGraph fGraph;
|
||||
AudioUnit fSynth;
|
||||
bool fRunning;
|
||||
|
||||
void Run();
|
||||
void Stop();
|
||||
void Play(const int8_t * note, size_t numNotes = 1);
|
||||
};
|
||||
|
||||
static std::auto_ptr<VLSoundOut> sSoundOut;
|
||||
|
||||
VLSoundOut * VLSoundOut::Instance()
|
||||
{
|
||||
if (!sSoundOut.get())
|
||||
sSoundOut.reset(new VLAUSoundOut);
|
||||
|
||||
return sSoundOut.get();
|
||||
}
|
||||
|
||||
VLSoundOut::~VLSoundOut()
|
||||
{
|
||||
}
|
||||
|
||||
VLAUSoundOut::VLAUSoundOut()
|
||||
: fRunning(false)
|
||||
{
|
||||
AUNode synthNode, limiterNode, outNode;
|
||||
ComponentDescription cd;
|
||||
|
||||
cd.componentManufacturer = kAudioUnitManufacturer_Apple;
|
||||
cd.componentFlags = 0;
|
||||
cd.componentFlagsMask = 0;
|
||||
|
||||
NewAUGraph(&fGraph);
|
||||
|
||||
cd.componentType = kAudioUnitType_MusicDevice;
|
||||
cd.componentSubType = kAudioUnitSubType_DLSSynth;
|
||||
|
||||
AUGraphNewNode(fGraph, &cd, 0, NULL, &synthNode);
|
||||
|
||||
cd.componentType = kAudioUnitType_Effect;
|
||||
cd.componentSubType = kAudioUnitSubType_PeakLimiter;
|
||||
|
||||
AUGraphNewNode (fGraph, &cd, 0, NULL, &limiterNode);
|
||||
|
||||
cd.componentType = kAudioUnitType_Output;
|
||||
cd.componentSubType = kAudioUnitSubType_DefaultOutput;
|
||||
|
||||
AUGraphNewNode(fGraph, &cd, 0, NULL, &outNode);
|
||||
|
||||
AUGraphOpen(fGraph);
|
||||
AUGraphConnectNodeInput(fGraph, synthNode, 0, limiterNode, 0);
|
||||
AUGraphConnectNodeInput(fGraph, limiterNode, 0, outNode, 0);
|
||||
AUGraphGetNodeInfo(fGraph, synthNode, 0, 0, 0, &fSynth);
|
||||
|
||||
AUGraphInitialize(fGraph);
|
||||
|
||||
MusicDeviceMIDIEvent(fSynth,
|
||||
kMidiMessage_ControlChange << 4 | kMidiChannelInUse,
|
||||
kMidiMessage_BankMSBControl, 0,
|
||||
0/*sample offset*/);
|
||||
MusicDeviceMIDIEvent(fSynth,
|
||||
kMidiMessage_ProgramChange << 4 | kMidiChannelInUse,
|
||||
0/*prog change num*/, 0,
|
||||
0/*sample offset*/);
|
||||
}
|
||||
|
||||
VLAUSoundOut::~VLAUSoundOut()
|
||||
{
|
||||
Stop();
|
||||
DisposeAUGraph(fGraph);
|
||||
}
|
||||
|
||||
void VLAUSoundOut::Run()
|
||||
{
|
||||
if (!fRunning) {
|
||||
AUGraphStart(fGraph);
|
||||
fRunning = true;
|
||||
}
|
||||
}
|
||||
|
||||
void VLAUSoundOut::Stop()
|
||||
{
|
||||
if (fRunning) {
|
||||
AUGraphStop(fGraph);
|
||||
fRunning = false;
|
||||
}
|
||||
}
|
||||
|
||||
void VLAUSoundOut::PlayNote(const VLNote & note)
|
||||
{
|
||||
Play(¬e.fPitch);
|
||||
}
|
||||
|
||||
void VLAUSoundOut::PlayChord(const VLChord & chord)
|
||||
{
|
||||
std::vector<int8_t> notes;
|
||||
|
||||
for (int i = 0; i < 32; ++i)
|
||||
if (chord.fSteps & (1 << i))
|
||||
notes.push_back(chord.fPitch+i);
|
||||
if (chord.fRootPitch != VLNote::kNoPitch)
|
||||
notes.push_back(chord.fRootPitch);
|
||||
Play(¬es[0], notes.size());
|
||||
}
|
||||
|
||||
void VLAUSoundOut::Play(const int8_t * note, size_t numNotes)
|
||||
{
|
||||
Run();
|
||||
|
||||
const UInt32 kNoteOn = kMidiMessage_NoteOn << 4 | kMidiChannelInUse;
|
||||
const UInt32 kNoteOff = kMidiMessage_NoteOff << 4 | kMidiChannelInUse;
|
||||
const UInt32 kNoteVelocity= 127;
|
||||
|
||||
for (size_t i = 0; i<numNotes; ++i)
|
||||
MusicDeviceMIDIEvent(fSynth, kNoteOn, note[i], kNoteVelocity, 0);
|
||||
|
||||
usleep (500 * 1000);
|
||||
|
||||
for (size_t i = 0; i<numNotes; ++i)
|
||||
MusicDeviceMIDIEvent(fSynth, kNoteOff, note[i], kNoteVelocity, 0);
|
||||
}
|
24
Sources/VLSoundOut.h
Normal file
24
Sources/VLSoundOut.h
Normal file
|
@ -0,0 +1,24 @@
|
|||
/*
|
||||
* VLSoundOut.h
|
||||
* Vocalese
|
||||
*
|
||||
* Created by Matthias Neeracher on 12/18/05.
|
||||
* Copyright 2005 __MyCompanyName__. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "VLModel.h"
|
||||
|
||||
class VLSoundOut {
|
||||
public:
|
||||
static VLSoundOut * Instance();
|
||||
|
||||
virtual void PlayNote(const VLNote & note) = 0;
|
||||
virtual void PlayChord(const VLChord & chord) = 0;
|
||||
|
||||
virtual ~VLSoundOut();
|
||||
};
|
||||
|
||||
// Local Variables:
|
||||
// mode:C++
|
||||
// End:
|
7
Sources/Vocalese_Prefix.pch
Normal file
7
Sources/Vocalese_Prefix.pch
Normal file
|
@ -0,0 +1,7 @@
|
|||
//
|
||||
// Prefix header for all source files of the 'Vocalese' target in the 'Vocalese' project
|
||||
//
|
||||
|
||||
#ifdef __OBJC__
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#endif
|
14
Sources/main.m
Normal file
14
Sources/main.m
Normal file
|
@ -0,0 +1,14 @@
|
|||
//
|
||||
// main.m
|
||||
// Vocalese
|
||||
//
|
||||
// Created by Matthias Neeracher on 12/17/05.
|
||||
// Copyright __MyCompanyName__ 2005 . All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
return NSApplicationMain(argc, (const char **) argv);
|
||||
}
|
31
Tests/TVLChord.cpp
Normal file
31
Tests/TVLChord.cpp
Normal file
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
* TVLChord.cpp
|
||||
* Vocalese
|
||||
*
|
||||
* Created by Matthias Neeracher on 12/19/05.
|
||||
* Copyright 2005 __MyCompanyName__. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "VLModel.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
int main(int, char *const [])
|
||||
{
|
||||
std::string chordName;
|
||||
|
||||
while (std::cin >> chordName) {
|
||||
VLChord chord(chordName);
|
||||
|
||||
std::string baseS, extS, rootS, baseF, extF, rootF;
|
||||
|
||||
chord.Name(baseS, extS, rootS, true);
|
||||
chord.Name(baseF, extF, rootF, false);
|
||||
|
||||
std::cout << baseS << "[" << extS << "]" << rootS << " "
|
||||
<< baseF << "[" << extF << "]" << rootF
|
||||
<< std::endl;
|
||||
}
|
||||
exit(0);
|
||||
}
|
145
Tests/TVLEdit.cpp
Normal file
145
Tests/TVLEdit.cpp
Normal file
|
@ -0,0 +1,145 @@
|
|||
/*
|
||||
* TVLEdit.cpp
|
||||
* Vocalese
|
||||
*
|
||||
* Created by Matthias Neeracher on 12/19/05.
|
||||
* Copyright 2005 __MyCompanyName__. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "VLModel.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
std::istream & operator>>(std::istream & s, VLFraction & f)
|
||||
{
|
||||
int num, n, d;
|
||||
char c;
|
||||
|
||||
s >> num >> c;
|
||||
if (c == '.') {
|
||||
s >> n >> c >> d;
|
||||
|
||||
f = num + VLFraction(n, d);
|
||||
} else {
|
||||
s >> d;
|
||||
|
||||
f = VLFraction(num, d);
|
||||
}
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
std::ostream & operator<<(std::ostream & s, VLFraction f)
|
||||
{
|
||||
int whole = f.fNum / f.fDenom;
|
||||
|
||||
if (whole) {
|
||||
s << whole;
|
||||
f -= whole;
|
||||
if (f.fNum)
|
||||
s << int(f.fNum) << '/' << int(f.fDenom);
|
||||
} else if (f.fNum) {
|
||||
s << int(f.fNum) << '/' << int(f.fDenom);
|
||||
} else {
|
||||
s << '0';
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
void PrintName(const VLNote & note)
|
||||
{
|
||||
std::string name;
|
||||
note.Name(name, false);
|
||||
std::cout << name;
|
||||
}
|
||||
|
||||
void PrintName(const VLChord & chord)
|
||||
{
|
||||
if (chord.fPitch == VLNote::kNoPitch) {
|
||||
std::cout << 's';
|
||||
} else {
|
||||
std::string base,ext,root;
|
||||
chord.Name(base, ext, root, false);
|
||||
std::cout << base << '[' << ext << ']' << root;
|
||||
}
|
||||
}
|
||||
|
||||
template <class C> class Printer {
|
||||
VLProperties * fProp;
|
||||
VLFraction fAt;
|
||||
public:
|
||||
Printer(VLProperties * prop) : fProp(prop) {}
|
||||
|
||||
void operator()(const C& obj) {
|
||||
PrintName(obj);
|
||||
|
||||
std::cout << '@';
|
||||
for (VLFraction d = obj.fDuration; d > 0; ) {
|
||||
VLFraction p;
|
||||
fProp->PartialNote(fAt, d, &p);
|
||||
if (d < obj.fDuration)
|
||||
std::cout << '+';
|
||||
std::cout << p;
|
||||
d -= p;
|
||||
fAt += p;
|
||||
}
|
||||
std::cout << ' ';
|
||||
}
|
||||
};
|
||||
|
||||
void PrintMeasure(const VLMeasure & measure)
|
||||
{
|
||||
std::for_each(measure.fChords.begin(), measure.fChords.end(),
|
||||
Printer<VLChord>(measure.fProperties));
|
||||
std::cout << std::endl;
|
||||
std::for_each(measure.fMelody.begin(), measure.fMelody.end(),
|
||||
Printer<VLNote>(measure.fProperties));
|
||||
std::cout << std::endl << std::endl;
|
||||
}
|
||||
|
||||
void PrintSong(const VLSong & song)
|
||||
{
|
||||
std::for_each(song.fMeasures.begin(), song.fMeasures.end(), PrintMeasure);
|
||||
}
|
||||
|
||||
int main(int, char *const [])
|
||||
{
|
||||
VLSong song;
|
||||
|
||||
song.fMeasures.resize(4);
|
||||
|
||||
char command;
|
||||
while (std::cin >> command) {
|
||||
int measure;
|
||||
VLFraction at;
|
||||
std::string name;
|
||||
switch (command) {
|
||||
case '+':
|
||||
std::cin >> name >> measure >> at;
|
||||
song.AddNote(name, measure, at);
|
||||
|
||||
PrintSong(song);
|
||||
break;
|
||||
case '-':
|
||||
std::cin >> measure >> at;
|
||||
song.DelNote(measure, at);
|
||||
|
||||
PrintSong(song);
|
||||
break;
|
||||
case '&':
|
||||
std::cin >> name >> measure >> at;
|
||||
song.AddChord(name, measure, at);
|
||||
|
||||
PrintSong(song);
|
||||
break;
|
||||
case '^':
|
||||
std::cin >> measure >> at;
|
||||
song.DelChord(measure, at);
|
||||
|
||||
PrintSong(song);
|
||||
break;
|
||||
}
|
||||
}
|
||||
exit(0);
|
||||
}
|
28
Tests/TVLSoundOut.cpp
Normal file
28
Tests/TVLSoundOut.cpp
Normal file
|
@ -0,0 +1,28 @@
|
|||
/*
|
||||
* TVLSoundOut.cpp
|
||||
* Vocalese
|
||||
*
|
||||
* Created by Matthias Neeracher on 12/19/05.
|
||||
* Copyright 2005 __MyCompanyName__. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "VLSoundOut.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
int main(int, char *const [])
|
||||
{
|
||||
std::string chordName;
|
||||
VLSoundOut * soundOut = VLSoundOut::Instance();
|
||||
|
||||
while (std::cin >> chordName) {
|
||||
VLChord chord(chordName);
|
||||
|
||||
soundOut->PlayNote(chord);
|
||||
usleep(250*1000);
|
||||
soundOut->PlayChord(chord);
|
||||
}
|
||||
|
||||
exit(0);
|
||||
}
|
1342
Vocalese.xcodeproj/neeri.mode1
Normal file
1342
Vocalese.xcodeproj/neeri.mode1
Normal file
File diff suppressed because it is too large
Load Diff
1435
Vocalese.xcodeproj/neeri.mode1v3
Normal file
1435
Vocalese.xcodeproj/neeri.mode1v3
Normal file
File diff suppressed because it is too large
Load Diff
346
Vocalese.xcodeproj/neeri.pbxuser
Normal file
346
Vocalese.xcodeproj/neeri.pbxuser
Normal file
|
@ -0,0 +1,346 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
2A37F4A9FDCFA73011CA2CEA /* Project object */ = {
|
||||
activeBuildConfigurationName = Development;
|
||||
activeExecutable = 954D740509540691007D9571 /* Vocalese */;
|
||||
activeTarget = 8D15AC270486D014006FF6A4 /* Vocalese */;
|
||||
addToTargets = (
|
||||
8D15AC270486D014006FF6A4 /* Vocalese */,
|
||||
);
|
||||
breakpoints = (
|
||||
95B66671096E64FD00FE18C9 /* VLSheetViewNotes.mm:21 */,
|
||||
);
|
||||
codeSenseManager = 954D7414095406B2007D9571 /* Code sense */;
|
||||
executables = (
|
||||
954D740509540691007D9571 /* Vocalese */,
|
||||
955E595D0957C0FC0045FDA5 /* TVLChord */,
|
||||
952CBB99095FD19D00434E43 /* TVLSoundOut */,
|
||||
959408A1096922CA007CCCF8 /* TVLEdit */,
|
||||
);
|
||||
perUserDictionary = {
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = 1;
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
243,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
20,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
PBXFileDataSource_Target_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
200,
|
||||
63,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXTargetDataSource_PrimaryAttribute,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 179531674;
|
||||
PBXWorkspaceStateSaveDate = 179531674;
|
||||
};
|
||||
sourceControlManager = 954D7413095406B2007D9571 /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
2A37F4ACFDCFA73011CA2CEA /* VLDocument.mm */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1748, 1568}}";
|
||||
sepNavSelRange = "{539, 0}";
|
||||
sepNavVisRect = "{{0, 440}, {818, 338}}";
|
||||
sepNavWindowFrame = "{{171, 76}, {763, 649}}";
|
||||
};
|
||||
};
|
||||
2A37F4AEFDCFA73011CA2CEA /* VLDocument.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {724, 520}}";
|
||||
sepNavSelRange = "{347, 0}";
|
||||
sepNavVisRect = "{{0, 0}, {724, 520}}";
|
||||
sepNavWindowFrame = "{{15, 92}, {763, 649}}";
|
||||
};
|
||||
};
|
||||
2A37F4BAFDCFA73011CA2CEA /* English */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {724, 535}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRect = "{{0, 0}, {724, 535}}";
|
||||
sepNavWindowFrame = "{{61, 50}, {763, 649}}";
|
||||
};
|
||||
};
|
||||
8D15AC270486D014006FF6A4 /* Vocalese */ = {
|
||||
activeExec = 0;
|
||||
executables = (
|
||||
954D740509540691007D9571 /* Vocalese */,
|
||||
);
|
||||
};
|
||||
952CBB97095FD19D00434E43 /* TVLSoundOut */ = {
|
||||
activeExec = 0;
|
||||
executables = (
|
||||
952CBB99095FD19D00434E43 /* TVLSoundOut */,
|
||||
);
|
||||
};
|
||||
952CBB99095FD19D00434E43 /* TVLSoundOut */ = {
|
||||
isa = PBXExecutable;
|
||||
activeArgIndex = 2147483647;
|
||||
activeArgIndices = (
|
||||
);
|
||||
argumentStrings = (
|
||||
);
|
||||
autoAttachOnCrash = 1;
|
||||
breakpointsEnabled = 1;
|
||||
configStateDict = {
|
||||
};
|
||||
customDataFormattersEnabled = 1;
|
||||
debuggerPlugin = GDBDebugging;
|
||||
disassemblyDisplayState = 0;
|
||||
dylibVariantSuffix = "";
|
||||
enableDebugStr = 1;
|
||||
environmentEntries = (
|
||||
);
|
||||
executableSystemSymbolLevel = 0;
|
||||
executableUserSymbolLevel = 0;
|
||||
libgmallocEnabled = 0;
|
||||
name = TVLSoundOut;
|
||||
sourceDirectories = (
|
||||
);
|
||||
};
|
||||
952CBB9A095FD1CA00434E43 /* VLSoundOut.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {724, 2030}}";
|
||||
sepNavSelRange = "{548, 0}";
|
||||
sepNavVisRect = "{{0, 1510}, {724, 520}}";
|
||||
sepNavWindowFrame = "{{107, 8}, {763, 649}}";
|
||||
};
|
||||
};
|
||||
952CBB9E095FD1D900434E43 /* TVLSoundOut.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {944, 392}}";
|
||||
sepNavSelRange = "{166, 0}";
|
||||
sepNavVisRect = "{{0, 0}, {944, 214}}";
|
||||
};
|
||||
};
|
||||
952DCD76096BBB11001C2316 /* VLSheetViewChords.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {724, 520}}";
|
||||
sepNavSelRange = "{150, 0}";
|
||||
sepNavVisRect = "{{0, 0}, {724, 520}}";
|
||||
sepNavWindowFrame = "{{15, 92}, {763, 649}}";
|
||||
};
|
||||
};
|
||||
954D740509540691007D9571 /* Vocalese */ = {
|
||||
isa = PBXExecutable;
|
||||
activeArgIndex = 2147483647;
|
||||
activeArgIndices = (
|
||||
);
|
||||
argumentStrings = (
|
||||
);
|
||||
autoAttachOnCrash = 1;
|
||||
breakpointsEnabled = 1;
|
||||
configStateDict = {
|
||||
};
|
||||
customDataFormattersEnabled = 1;
|
||||
debuggerPlugin = GDBDebugging;
|
||||
disassemblyDisplayState = 0;
|
||||
dylibVariantSuffix = "";
|
||||
enableDebugStr = 1;
|
||||
environmentEntries = (
|
||||
);
|
||||
executableSystemSymbolLevel = 0;
|
||||
executableUserSymbolLevel = 0;
|
||||
libgmallocEnabled = 0;
|
||||
name = Vocalese;
|
||||
savedGlobals = {
|
||||
};
|
||||
sourceDirectories = (
|
||||
);
|
||||
variableFormatDictionary = {
|
||||
};
|
||||
};
|
||||
954D7413095406B2007D9571 /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
};
|
||||
scmType = "";
|
||||
};
|
||||
954D7414095406B2007D9571 /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
955E58E3095658AB0045FDA5 /* VLModel.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {704, 3080}}";
|
||||
sepNavSelRange = "{2267, 0}";
|
||||
sepNavVisRect = "{{0, 558}, {704, 497}}";
|
||||
sepNavWindowFrame = "{{203, 40}, {763, 649}}";
|
||||
};
|
||||
};
|
||||
955E58E4095658AB0045FDA5 /* VLModel.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {704, 4564}}";
|
||||
sepNavSelRange = "{9472, 29}";
|
||||
sepNavVisRect = "{{0, 2375}, {704, 497}}";
|
||||
sepNavWindowFrame = "{{256, 62}, {763, 649}}";
|
||||
};
|
||||
};
|
||||
955E595B0957C0FC0045FDA5 /* TVLChord */ = {
|
||||
activeExec = 0;
|
||||
executables = (
|
||||
955E595D0957C0FC0045FDA5 /* TVLChord */,
|
||||
);
|
||||
};
|
||||
955E595D0957C0FC0045FDA5 /* TVLChord */ = {
|
||||
isa = PBXExecutable;
|
||||
activeArgIndex = 2147483647;
|
||||
activeArgIndices = (
|
||||
);
|
||||
argumentStrings = (
|
||||
);
|
||||
autoAttachOnCrash = 1;
|
||||
breakpointsEnabled = 1;
|
||||
configStateDict = {
|
||||
};
|
||||
customDataFormattersEnabled = 1;
|
||||
debuggerPlugin = GDBDebugging;
|
||||
disassemblyDisplayState = 0;
|
||||
enableDebugStr = 1;
|
||||
environmentEntries = (
|
||||
);
|
||||
executableSystemSymbolLevel = 0;
|
||||
executableUserSymbolLevel = 0;
|
||||
libgmallocEnabled = 0;
|
||||
name = TVLChord;
|
||||
sourceDirectories = (
|
||||
);
|
||||
};
|
||||
955E59600957C1400045FDA5 /* TVLChord.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {724, 520}}";
|
||||
sepNavSelRange = "{557, 0}";
|
||||
sepNavVisRect = "{{0, 0}, {724, 520}}";
|
||||
sepNavWindowFrame = "{{84, 29}, {763, 649}}";
|
||||
};
|
||||
};
|
||||
9594089F096922CA007CCCF8 /* TVLEdit */ = {
|
||||
activeExec = 0;
|
||||
executables = (
|
||||
959408A1096922CA007CCCF8 /* TVLEdit */,
|
||||
);
|
||||
};
|
||||
959408A1096922CA007CCCF8 /* TVLEdit */ = {
|
||||
isa = PBXExecutable;
|
||||
activeArgIndex = 2147483647;
|
||||
activeArgIndices = (
|
||||
);
|
||||
argumentStrings = (
|
||||
);
|
||||
autoAttachOnCrash = 1;
|
||||
breakpointsEnabled = 1;
|
||||
configStateDict = {
|
||||
};
|
||||
customDataFormattersEnabled = 1;
|
||||
debuggerPlugin = GDBDebugging;
|
||||
disassemblyDisplayState = 0;
|
||||
dylibVariantSuffix = "";
|
||||
enableDebugStr = 1;
|
||||
environmentEntries = (
|
||||
);
|
||||
executableSystemSymbolLevel = 0;
|
||||
executableUserSymbolLevel = 0;
|
||||
libgmallocEnabled = 0;
|
||||
name = TVLEdit;
|
||||
sourceDirectories = (
|
||||
);
|
||||
};
|
||||
959408AC096922EA007CCCF8 /* TVLEdit.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {704, 2044}}";
|
||||
sepNavSelRange = "{1445, 0}";
|
||||
sepNavVisRect = "{{0, 298}, {704, 497}}";
|
||||
sepNavWindowFrame = "{{120, 85}, {763, 649}}";
|
||||
};
|
||||
};
|
||||
95B66653096BC6A100FE18C9 /* VLSheetViewInternal.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {724, 520}}";
|
||||
sepNavSelRange = "{792, 0}";
|
||||
sepNavVisRect = "{{0, 0}, {724, 520}}";
|
||||
sepNavWindowFrame = "{{15, 92}, {763, 649}}";
|
||||
};
|
||||
};
|
||||
95B66656096BCA1F00FE18C9 /* VLSheetViewNotes.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {704, 520}}";
|
||||
sepNavSelRange = "{181, 0}";
|
||||
sepNavVisRect = "{{0, 0}, {704, 520}}";
|
||||
sepNavWindowFrame = "{{15, 92}, {763, 649}}";
|
||||
};
|
||||
};
|
||||
95B66657096BCA1F00FE18C9 /* VLSheetViewNotes.mm */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {704, 3976}}";
|
||||
sepNavSelRange = "{5055, 0}";
|
||||
sepNavVisRect = "{{0, 2576}, {704, 497}}";
|
||||
sepNavWindowFrame = "{{38, 71}, {763, 649}}";
|
||||
};
|
||||
};
|
||||
95B66671096E64FD00FE18C9 /* VLSheetViewNotes.mm:21 */ = {
|
||||
isa = PBXFileBreakpoint;
|
||||
actions = (
|
||||
);
|
||||
breakpointStyle = 0;
|
||||
continueAfterActions = 0;
|
||||
countType = 0;
|
||||
delayBeforeContinue = 0;
|
||||
fileReference = 95B66657096BCA1F00FE18C9 /* VLSheetViewNotes.mm */;
|
||||
functionName = "-restoreCursorLocation";
|
||||
hitCount = 0;
|
||||
ignoreCount = 0;
|
||||
lineNumber = 21;
|
||||
modificationTime = 179531977.512253;
|
||||
state = 2;
|
||||
};
|
||||
95BDA15709540BF1009F9D65 /* VLSheetView.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {704, 1064}}";
|
||||
sepNavSelRange = "{890, 0}";
|
||||
sepNavVisRect = "{{0, 434}, {704, 497}}";
|
||||
sepNavWindowFrame = "{{242, 97}, {763, 649}}";
|
||||
};
|
||||
};
|
||||
95BDA15809540BF1009F9D65 /* VLSheetView.mm */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {704, 4410}}";
|
||||
sepNavSelRange = "{3053, 0}";
|
||||
sepNavVisRect = "{{0, 0}, {704, 497}}";
|
||||
sepNavWindowFrame = "{{164, 35}, {763, 649}}";
|
||||
};
|
||||
};
|
||||
}
|
734
Vocalese.xcodeproj/project.pbxproj
Normal file
734
Vocalese.xcodeproj/project.pbxproj
Normal file
|
@ -0,0 +1,734 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 42;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
8D15AC2C0486D014006FF6A4 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B9FDCFA73011CA2CEA /* Credits.rtf */; };
|
||||
8D15AC2D0486D014006FF6A4 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B6FDCFA73011CA2CEA /* MainMenu.nib */; };
|
||||
8D15AC2E0486D014006FF6A4 /* VLDocument.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B4FDCFA73011CA2CEA /* VLDocument.nib */; };
|
||||
8D15AC2F0486D014006FF6A4 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165FFE840EACC02AAC07 /* InfoPlist.strings */; };
|
||||
8D15AC310486D014006FF6A4 /* VLDocument.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4ACFDCFA73011CA2CEA /* VLDocument.mm */; settings = {ATTRIBUTES = (); }; };
|
||||
8D15AC320486D014006FF6A4 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4B0FDCFA73011CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
|
||||
8D15AC340486D014006FF6A4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */; };
|
||||
952CBB9C095FD1CA00434E43 /* VLSoundOut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 952CBB9A095FD1CA00434E43 /* VLSoundOut.cpp */; };
|
||||
952CBB9D095FD1CA00434E43 /* VLSoundOut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 952CBB9A095FD1CA00434E43 /* VLSoundOut.cpp */; };
|
||||
952CBB9F095FD1D900434E43 /* TVLSoundOut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 952CBB9E095FD1D900434E43 /* TVLSoundOut.cpp */; };
|
||||
952CBBB4095FD34F00434E43 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 952CBBB2095FD34F00434E43 /* AudioToolbox.framework */; };
|
||||
952CBBB5095FD34F00434E43 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 952CBBB3095FD34F00434E43 /* AudioUnit.framework */; };
|
||||
952CBBB6095FD37300434E43 /* VLModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 955E58E4095658AB0045FDA5 /* VLModel.cpp */; };
|
||||
952DCD78096BBB11001C2316 /* VLSheetViewChords.mm in Sources */ = {isa = PBXBuildFile; fileRef = 952DCD77096BBB11001C2316 /* VLSheetViewChords.mm */; };
|
||||
955E58E5095658AB0045FDA5 /* VLModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 955E58E4095658AB0045FDA5 /* VLModel.cpp */; };
|
||||
955E59610957C1400045FDA5 /* TVLChord.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 955E59600957C1400045FDA5 /* TVLChord.cpp */; };
|
||||
955E59640957C15A0045FDA5 /* VLModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 955E58E4095658AB0045FDA5 /* VLModel.cpp */; };
|
||||
95932B91096527700008B0DB /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 952CBBB3095FD34F00434E43 /* AudioUnit.framework */; };
|
||||
95932B92096527710008B0DB /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 952CBBB2095FD34F00434E43 /* AudioToolbox.framework */; };
|
||||
959408AD096922EA007CCCF8 /* TVLEdit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 959408AC096922EA007CCCF8 /* TVLEdit.cpp */; };
|
||||
959408AE096922F7007CCCF8 /* VLModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 955E58E4095658AB0045FDA5 /* VLModel.cpp */; };
|
||||
95B3E1A70960E58B000E9C0D /* Music in Resources */ = {isa = PBXBuildFile; fileRef = 95B3E1980960E58B000E9C0D /* Music */; };
|
||||
95B66658096BCA1F00FE18C9 /* VLSheetViewNotes.mm in Sources */ = {isa = PBXBuildFile; fileRef = 95B66657096BCA1F00FE18C9 /* VLSheetViewNotes.mm */; };
|
||||
95BDA15909540BF1009F9D65 /* VLSheetView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 95BDA15809540BF1009F9D65 /* VLSheetView.mm */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
089C1660FE840EACC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
|
||||
13E42FBA07B3F13500E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
|
||||
2A37F4ACFDCFA73011CA2CEA /* VLDocument.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = VLDocument.mm; path = Sources/VLDocument.mm; sourceTree = "<group>"; };
|
||||
2A37F4AEFDCFA73011CA2CEA /* VLDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLDocument.h; path = Sources/VLDocument.h; sourceTree = "<group>"; };
|
||||
2A37F4B0FDCFA73011CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = Sources/main.m; sourceTree = "<group>"; };
|
||||
2A37F4B5FDCFA73011CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/VLDocument.nib; sourceTree = "<group>"; };
|
||||
2A37F4B7FDCFA73011CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MainMenu.nib; sourceTree = "<group>"; };
|
||||
2A37F4BAFDCFA73011CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = English; path = English.lproj/Credits.rtf; sourceTree = "<group>"; };
|
||||
2A37F4C4FDCFA73011CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
|
||||
2A37F4C5FDCFA73011CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
|
||||
32DBCF750370BD2300C91783 /* Vocalese_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Vocalese_Prefix.pch; path = Sources/Vocalese_Prefix.pch; sourceTree = "<group>"; };
|
||||
8D15AC360486D014006FF6A4 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = Info.plist; path = Resources/Info.plist; sourceTree = "<group>"; };
|
||||
8D15AC370486D014006FF6A4 /* Vocalese.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Vocalese.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
952CBB98095FD19D00434E43 /* TVLSoundOut */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = TVLSoundOut; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
952CBB9A095FD1CA00434E43 /* VLSoundOut.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = VLSoundOut.cpp; path = Sources/VLSoundOut.cpp; sourceTree = "<group>"; };
|
||||
952CBB9B095FD1CA00434E43 /* VLSoundOut.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = VLSoundOut.h; path = Sources/VLSoundOut.h; sourceTree = "<group>"; };
|
||||
952CBB9E095FD1D900434E43 /* TVLSoundOut.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = TVLSoundOut.cpp; path = Tests/TVLSoundOut.cpp; sourceTree = "<group>"; };
|
||||
952CBBB2095FD34F00434E43 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; };
|
||||
952CBBB3095FD34F00434E43 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = "<absolute>"; };
|
||||
952DCD76096BBB11001C2316 /* VLSheetViewChords.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLSheetViewChords.h; path = Sources/VLSheetViewChords.h; sourceTree = "<group>"; };
|
||||
952DCD77096BBB11001C2316 /* VLSheetViewChords.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = VLSheetViewChords.mm; path = Sources/VLSheetViewChords.mm; sourceTree = "<group>"; };
|
||||
955E58E3095658AB0045FDA5 /* VLModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLModel.h; path = Sources/VLModel.h; sourceTree = "<group>"; };
|
||||
955E58E4095658AB0045FDA5 /* VLModel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = VLModel.cpp; path = Sources/VLModel.cpp; sourceTree = "<group>"; };
|
||||
955E595C0957C0FC0045FDA5 /* TVLChord */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = TVLChord; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
955E59600957C1400045FDA5 /* TVLChord.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = TVLChord.cpp; path = Tests/TVLChord.cpp; sourceTree = "<group>"; };
|
||||
959408A0096922CA007CCCF8 /* TVLEdit */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = TVLEdit; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
959408AC096922EA007CCCF8 /* TVLEdit.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = TVLEdit.cpp; path = Tests/TVLEdit.cpp; sourceTree = "<group>"; };
|
||||
95B3E1980960E58B000E9C0D /* Music */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Music; path = Resources/Music; sourceTree = "<group>"; };
|
||||
95B66653096BC6A100FE18C9 /* VLSheetViewInternal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = VLSheetViewInternal.h; path = Sources/VLSheetViewInternal.h; sourceTree = "<group>"; };
|
||||
95B66656096BCA1F00FE18C9 /* VLSheetViewNotes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLSheetViewNotes.h; path = Sources/VLSheetViewNotes.h; sourceTree = "<group>"; };
|
||||
95B66657096BCA1F00FE18C9 /* VLSheetViewNotes.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = VLSheetViewNotes.mm; path = Sources/VLSheetViewNotes.mm; sourceTree = "<group>"; };
|
||||
95BDA15709540BF1009F9D65 /* VLSheetView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLSheetView.h; path = Sources/VLSheetView.h; sourceTree = "<group>"; };
|
||||
95BDA15809540BF1009F9D65 /* VLSheetView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = VLSheetView.mm; path = Sources/VLSheetView.mm; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
8D15AC330486D014006FF6A4 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8D15AC340486D014006FF6A4 /* Cocoa.framework in Frameworks */,
|
||||
95932B91096527700008B0DB /* AudioUnit.framework in Frameworks */,
|
||||
95932B92096527710008B0DB /* AudioToolbox.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
952CBB96095FD19D00434E43 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
952CBBB4095FD34F00434E43 /* AudioToolbox.framework in Frameworks */,
|
||||
952CBBB5095FD34F00434E43 /* AudioUnit.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
955E595A0957C0FC0045FDA5 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
9594089E096922CA007CCCF8 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
1058C7A6FEA54F5311CA2CBB /* Linked Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */,
|
||||
952CBBB2095FD34F00434E43 /* AudioToolbox.framework */,
|
||||
952CBBB3095FD34F00434E43 /* AudioUnit.framework */,
|
||||
);
|
||||
name = "Linked Frameworks";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
1058C7A8FEA54F5311CA2CBB /* Other Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
2A37F4C4FDCFA73011CA2CEA /* AppKit.framework */,
|
||||
13E42FBA07B3F13500E4EEF1 /* CoreData.framework */,
|
||||
2A37F4C5FDCFA73011CA2CEA /* Foundation.framework */,
|
||||
);
|
||||
name = "Other Frameworks";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
19C28FB0FE9D524F11CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D15AC370486D014006FF6A4 /* Vocalese.app */,
|
||||
955E595C0957C0FC0045FDA5 /* TVLChord */,
|
||||
952CBB98095FD19D00434E43 /* TVLSoundOut */,
|
||||
959408A0096922CA007CCCF8 /* TVLEdit */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
2A37F4AAFDCFA73011CA2CEA /* Vocalese */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
2A37F4ABFDCFA73011CA2CEA /* Classes */,
|
||||
2A37F4AFFDCFA73011CA2CEA /* Other Sources */,
|
||||
955E59560957C0C50045FDA5 /* Tests */,
|
||||
2A37F4B8FDCFA73011CA2CEA /* Resources */,
|
||||
2A37F4C3FDCFA73011CA2CEA /* Frameworks */,
|
||||
19C28FB0FE9D524F11CA2CBB /* Products */,
|
||||
);
|
||||
name = Vocalese;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
2A37F4ABFDCFA73011CA2CEA /* Classes */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
952CBB9A095FD1CA00434E43 /* VLSoundOut.cpp */,
|
||||
952CBB9B095FD1CA00434E43 /* VLSoundOut.h */,
|
||||
2A37F4AEFDCFA73011CA2CEA /* VLDocument.h */,
|
||||
2A37F4ACFDCFA73011CA2CEA /* VLDocument.mm */,
|
||||
955E58E3095658AB0045FDA5 /* VLModel.h */,
|
||||
955E58E4095658AB0045FDA5 /* VLModel.cpp */,
|
||||
95BDA15709540BF1009F9D65 /* VLSheetView.h */,
|
||||
95BDA15809540BF1009F9D65 /* VLSheetView.mm */,
|
||||
95B66653096BC6A100FE18C9 /* VLSheetViewInternal.h */,
|
||||
952DCD76096BBB11001C2316 /* VLSheetViewChords.h */,
|
||||
952DCD77096BBB11001C2316 /* VLSheetViewChords.mm */,
|
||||
95B66656096BCA1F00FE18C9 /* VLSheetViewNotes.h */,
|
||||
95B66657096BCA1F00FE18C9 /* VLSheetViewNotes.mm */,
|
||||
);
|
||||
name = Classes;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
2A37F4AFFDCFA73011CA2CEA /* Other Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
32DBCF750370BD2300C91783 /* Vocalese_Prefix.pch */,
|
||||
2A37F4B0FDCFA73011CA2CEA /* main.m */,
|
||||
);
|
||||
name = "Other Sources";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
2A37F4B8FDCFA73011CA2CEA /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
95B3E1980960E58B000E9C0D /* Music */,
|
||||
2A37F4B9FDCFA73011CA2CEA /* Credits.rtf */,
|
||||
2A37F4B6FDCFA73011CA2CEA /* MainMenu.nib */,
|
||||
2A37F4B4FDCFA73011CA2CEA /* VLDocument.nib */,
|
||||
8D15AC360486D014006FF6A4 /* Info.plist */,
|
||||
089C165FFE840EACC02AAC07 /* InfoPlist.strings */,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
2A37F4C3FDCFA73011CA2CEA /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
1058C7A6FEA54F5311CA2CBB /* Linked Frameworks */,
|
||||
1058C7A8FEA54F5311CA2CBB /* Other Frameworks */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
955E59560957C0C50045FDA5 /* Tests */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
959408AC096922EA007CCCF8 /* TVLEdit.cpp */,
|
||||
952CBB9E095FD1D900434E43 /* TVLSoundOut.cpp */,
|
||||
955E59600957C1400045FDA5 /* TVLChord.cpp */,
|
||||
);
|
||||
name = Tests;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
8D15AC270486D014006FF6A4 /* Vocalese */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 95D7BF780AA699C600D5E02C /* Build configuration list for PBXNativeTarget "Vocalese" */;
|
||||
buildPhases = (
|
||||
8D15AC2B0486D014006FF6A4 /* Resources */,
|
||||
8D15AC300486D014006FF6A4 /* Sources */,
|
||||
8D15AC330486D014006FF6A4 /* Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = Vocalese;
|
||||
productInstallPath = "$(HOME)/Applications";
|
||||
productName = Vocalese;
|
||||
productReference = 8D15AC370486D014006FF6A4 /* Vocalese.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
952CBB97095FD19D00434E43 /* TVLSoundOut */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 95D7BF800AA699C600D5E02C /* Build configuration list for PBXNativeTarget "TVLSoundOut" */;
|
||||
buildPhases = (
|
||||
952CBB95095FD19D00434E43 /* Sources */,
|
||||
952CBB96095FD19D00434E43 /* Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = TVLSoundOut;
|
||||
productName = TVLSoundOut;
|
||||
productReference = 952CBB98095FD19D00434E43 /* TVLSoundOut */;
|
||||
productType = "com.apple.product-type.tool";
|
||||
};
|
||||
955E595B0957C0FC0045FDA5 /* TVLChord */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 95D7BF7C0AA699C600D5E02C /* Build configuration list for PBXNativeTarget "TVLChord" */;
|
||||
buildPhases = (
|
||||
955E59590957C0FC0045FDA5 /* Sources */,
|
||||
955E595A0957C0FC0045FDA5 /* Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = TVLChord;
|
||||
productName = TVLChord;
|
||||
productReference = 955E595C0957C0FC0045FDA5 /* TVLChord */;
|
||||
productType = "com.apple.product-type.tool";
|
||||
};
|
||||
9594089F096922CA007CCCF8 /* TVLEdit */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 95D7BF840AA699C600D5E02C /* Build configuration list for PBXNativeTarget "TVLEdit" */;
|
||||
buildPhases = (
|
||||
9594089D096922CA007CCCF8 /* Sources */,
|
||||
9594089E096922CA007CCCF8 /* Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = TVLEdit;
|
||||
productName = TVLEdit;
|
||||
productReference = 959408A0096922CA007CCCF8 /* TVLEdit */;
|
||||
productType = "com.apple.product-type.tool";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
2A37F4A9FDCFA73011CA2CEA /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
buildConfigurationList = 95D7BF740AA699C600D5E02C /* Build configuration list for PBXProject "Vocalese" */;
|
||||
compatibilityVersion = "Xcode 2.4";
|
||||
hasScannedForEncodings = 1;
|
||||
mainGroup = 2A37F4AAFDCFA73011CA2CEA /* Vocalese */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
shouldCheckCompatibility = 1;
|
||||
targets = (
|
||||
8D15AC270486D014006FF6A4 /* Vocalese */,
|
||||
955E595B0957C0FC0045FDA5 /* TVLChord */,
|
||||
952CBB97095FD19D00434E43 /* TVLSoundOut */,
|
||||
9594089F096922CA007CCCF8 /* TVLEdit */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
8D15AC2B0486D014006FF6A4 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8D15AC2C0486D014006FF6A4 /* Credits.rtf in Resources */,
|
||||
8D15AC2D0486D014006FF6A4 /* MainMenu.nib in Resources */,
|
||||
8D15AC2E0486D014006FF6A4 /* VLDocument.nib in Resources */,
|
||||
8D15AC2F0486D014006FF6A4 /* InfoPlist.strings in Resources */,
|
||||
95B3E1A70960E58B000E9C0D /* Music in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
8D15AC300486D014006FF6A4 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8D15AC310486D014006FF6A4 /* VLDocument.mm in Sources */,
|
||||
8D15AC320486D014006FF6A4 /* main.m in Sources */,
|
||||
95BDA15909540BF1009F9D65 /* VLSheetView.mm in Sources */,
|
||||
955E58E5095658AB0045FDA5 /* VLModel.cpp in Sources */,
|
||||
952CBB9D095FD1CA00434E43 /* VLSoundOut.cpp in Sources */,
|
||||
952DCD78096BBB11001C2316 /* VLSheetViewChords.mm in Sources */,
|
||||
95B66658096BCA1F00FE18C9 /* VLSheetViewNotes.mm in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
952CBB95095FD19D00434E43 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
952CBB9C095FD1CA00434E43 /* VLSoundOut.cpp in Sources */,
|
||||
952CBB9F095FD1D900434E43 /* TVLSoundOut.cpp in Sources */,
|
||||
952CBBB6095FD37300434E43 /* VLModel.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
955E59590957C0FC0045FDA5 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
955E59610957C1400045FDA5 /* TVLChord.cpp in Sources */,
|
||||
955E59640957C15A0045FDA5 /* VLModel.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
9594089D096922CA007CCCF8 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
959408AD096922EA007CCCF8 /* TVLEdit.cpp in Sources */,
|
||||
959408AE096922F7007CCCF8 /* VLModel.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
089C165FFE840EACC02AAC07 /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
089C1660FE840EACC02AAC07 /* English */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
2A37F4B4FDCFA73011CA2CEA /* VLDocument.nib */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
2A37F4B5FDCFA73011CA2CEA /* English */,
|
||||
);
|
||||
name = VLDocument.nib;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
2A37F4B6FDCFA73011CA2CEA /* MainMenu.nib */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
2A37F4B7FDCFA73011CA2CEA /* English */,
|
||||
);
|
||||
name = MainMenu.nib;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
2A37F4B9FDCFA73011CA2CEA /* Credits.rtf */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
2A37F4BAFDCFA73011CA2CEA /* English */,
|
||||
);
|
||||
name = Credits.rtf;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
95D7BF750AA699C600D5E02C /* Development */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
};
|
||||
name = Development;
|
||||
};
|
||||
95D7BF760AA699C600D5E02C /* Deployment */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
};
|
||||
name = Deployment;
|
||||
};
|
||||
95D7BF770AA699C600D5E02C /* Default */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
};
|
||||
name = Default;
|
||||
};
|
||||
95D7BF790AA699C600D5E02C /* Development */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = NO;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = YES;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = Sources/Vocalese_Prefix.pch;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "$(HOME)/Applications";
|
||||
PREBINDING = NO;
|
||||
PRODUCT_NAME = Vocalese;
|
||||
WRAPPER_EXTENSION = app;
|
||||
ZERO_LINK = YES;
|
||||
};
|
||||
name = Development;
|
||||
};
|
||||
95D7BF7A0AA699C600D5E02C /* Deployment */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = YES;
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = NO;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = Sources/Vocalese_Prefix.pch;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "$(HOME)/Applications";
|
||||
PREBINDING = NO;
|
||||
PRODUCT_NAME = Vocalese;
|
||||
WRAPPER_EXTENSION = app;
|
||||
ZERO_LINK = NO;
|
||||
};
|
||||
name = Deployment;
|
||||
};
|
||||
95D7BF7B0AA699C600D5E02C /* Default */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = Sources/Vocalese_Prefix.pch;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "$(HOME)/Applications";
|
||||
PRODUCT_NAME = Vocalese;
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
name = Default;
|
||||
};
|
||||
95D7BF7D0AA699C600D5E02C /* Development */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = NO;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = YES;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||
GCC_MODEL_TUNING = G5;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
INSTALL_PATH = "$(HOME)/bin";
|
||||
OTHER_CFLAGS = "";
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_REZFLAGS = "";
|
||||
PREBINDING = NO;
|
||||
PRODUCT_NAME = TVLChord;
|
||||
SECTORDER_FLAGS = "";
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
ZERO_LINK = YES;
|
||||
};
|
||||
name = Development;
|
||||
};
|
||||
95D7BF7E0AA699C600D5E02C /* Deployment */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = YES;
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = NO;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||
GCC_MODEL_TUNING = G5;
|
||||
INSTALL_PATH = "$(HOME)/bin";
|
||||
OTHER_CFLAGS = "";
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_REZFLAGS = "";
|
||||
PREBINDING = NO;
|
||||
PRODUCT_NAME = TVLChord;
|
||||
SECTORDER_FLAGS = "";
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
ZERO_LINK = NO;
|
||||
};
|
||||
name = Deployment;
|
||||
};
|
||||
95D7BF7F0AA699C600D5E02C /* Default */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||
GCC_MODEL_TUNING = G5;
|
||||
INSTALL_PATH = "$(HOME)/bin";
|
||||
OTHER_CFLAGS = "";
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_REZFLAGS = "";
|
||||
PREBINDING = NO;
|
||||
PRODUCT_NAME = TVLChord;
|
||||
SECTORDER_FLAGS = "";
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
};
|
||||
name = Default;
|
||||
};
|
||||
95D7BF810AA699C600D5E02C /* Development */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = NO;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = YES;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||
GCC_MODEL_TUNING = G5;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
INSTALL_PATH = "$(HOME)/bin";
|
||||
OTHER_CFLAGS = "";
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_REZFLAGS = "";
|
||||
PREBINDING = NO;
|
||||
PRODUCT_NAME = TVLSoundOut;
|
||||
SECTORDER_FLAGS = "";
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
ZERO_LINK = YES;
|
||||
};
|
||||
name = Development;
|
||||
};
|
||||
95D7BF820AA699C600D5E02C /* Deployment */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = YES;
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = NO;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||
GCC_MODEL_TUNING = G5;
|
||||
INSTALL_PATH = "$(HOME)/bin";
|
||||
OTHER_CFLAGS = "";
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_REZFLAGS = "";
|
||||
PREBINDING = NO;
|
||||
PRODUCT_NAME = TVLSoundOut;
|
||||
SECTORDER_FLAGS = "";
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
ZERO_LINK = NO;
|
||||
};
|
||||
name = Deployment;
|
||||
};
|
||||
95D7BF830AA699C600D5E02C /* Default */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||
GCC_MODEL_TUNING = G5;
|
||||
INSTALL_PATH = "$(HOME)/bin";
|
||||
OTHER_CFLAGS = "";
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_REZFLAGS = "";
|
||||
PREBINDING = NO;
|
||||
PRODUCT_NAME = TVLSoundOut;
|
||||
SECTORDER_FLAGS = "";
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
};
|
||||
name = Default;
|
||||
};
|
||||
95D7BF850AA699C600D5E02C /* Development */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = NO;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = YES;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||
GCC_MODEL_TUNING = G5;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
INSTALL_PATH = "$(HOME)/bin";
|
||||
OTHER_CFLAGS = "";
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_REZFLAGS = "";
|
||||
PREBINDING = NO;
|
||||
PRODUCT_NAME = TVLEdit;
|
||||
SECTORDER_FLAGS = "";
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
ZERO_LINK = YES;
|
||||
};
|
||||
name = Development;
|
||||
};
|
||||
95D7BF860AA699C600D5E02C /* Deployment */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = YES;
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = NO;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||
GCC_MODEL_TUNING = G5;
|
||||
INSTALL_PATH = "$(HOME)/bin";
|
||||
OTHER_CFLAGS = "";
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_REZFLAGS = "";
|
||||
PREBINDING = NO;
|
||||
PRODUCT_NAME = TVLEdit;
|
||||
SECTORDER_FLAGS = "";
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
ZERO_LINK = NO;
|
||||
};
|
||||
name = Deployment;
|
||||
};
|
||||
95D7BF870AA699C600D5E02C /* Default */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||
GCC_MODEL_TUNING = G5;
|
||||
INSTALL_PATH = "$(HOME)/bin";
|
||||
OTHER_CFLAGS = "";
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_REZFLAGS = "";
|
||||
PREBINDING = NO;
|
||||
PRODUCT_NAME = TVLEdit;
|
||||
SECTORDER_FLAGS = "";
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
};
|
||||
name = Default;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
95D7BF740AA699C600D5E02C /* Build configuration list for PBXProject "Vocalese" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
95D7BF750AA699C600D5E02C /* Development */,
|
||||
95D7BF760AA699C600D5E02C /* Deployment */,
|
||||
95D7BF770AA699C600D5E02C /* Default */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Default;
|
||||
};
|
||||
95D7BF780AA699C600D5E02C /* Build configuration list for PBXNativeTarget "Vocalese" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
95D7BF790AA699C600D5E02C /* Development */,
|
||||
95D7BF7A0AA699C600D5E02C /* Deployment */,
|
||||
95D7BF7B0AA699C600D5E02C /* Default */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Default;
|
||||
};
|
||||
95D7BF7C0AA699C600D5E02C /* Build configuration list for PBXNativeTarget "TVLChord" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
95D7BF7D0AA699C600D5E02C /* Development */,
|
||||
95D7BF7E0AA699C600D5E02C /* Deployment */,
|
||||
95D7BF7F0AA699C600D5E02C /* Default */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Default;
|
||||
};
|
||||
95D7BF800AA699C600D5E02C /* Build configuration list for PBXNativeTarget "TVLSoundOut" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
95D7BF810AA699C600D5E02C /* Development */,
|
||||
95D7BF820AA699C600D5E02C /* Deployment */,
|
||||
95D7BF830AA699C600D5E02C /* Default */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Default;
|
||||
};
|
||||
95D7BF840AA699C600D5E02C /* Build configuration list for PBXNativeTarget "TVLEdit" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
95D7BF850AA699C600D5E02C /* Development */,
|
||||
95D7BF860AA699C600D5E02C /* Deployment */,
|
||||
95D7BF870AA699C600D5E02C /* Default */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Default;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 2A37F4A9FDCFA73011CA2CEA /* Project object */;
|
||||
}
|
Loading…
Reference in New Issue
Block a user