Imported into SVN

This commit is contained in:
Matthias Neeracher 2006-09-11 02:49:56 +00:00
commit 2cd57a8869
51 changed files with 8309 additions and 0 deletions

29
English.lproj/Credits.rtf Normal file
View 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\
}

Binary file not shown.

4
English.lproj/MainMenu.nib/classes.nib generated Normal file
View File

@ -0,0 +1,4 @@
{
IBClasses = ({CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; });
IBVersion = 1;
}

21
English.lproj/MainMenu.nib/info.nib generated Normal file
View 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>

Binary file not shown.

15
English.lproj/VLDocument.nib/classes.nib generated Normal file
View 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
View 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>

Binary file not shown.

View 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
View 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>

Binary file not shown.

51
Resources/Info.plist Normal file
View 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>

View 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

View 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
View 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
View 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

View 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

View 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
View 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

View 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

View 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

View 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
View 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

View 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

View 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

View 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

View 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

View 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

View 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
View 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
View 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
View 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
View 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
View 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
View 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

View 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

View 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

View 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;

View 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
View 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
View 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(&note.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(&notes[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
View 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:

View 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
View 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
View 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
View 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
View 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);
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View 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}}";
};
};
}

View 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 */;
}