From 54ae06ae818dead368f92eb3ceeae1e25fa82337 Mon Sep 17 00:00:00 2001 From: Matthias Neeracher Date: Sun, 21 Jan 2007 11:34:56 +0000 Subject: [PATCH] UI for codas --- English.lproj/MainMenu.nib/classes.nib | 2 + English.lproj/MainMenu.nib/info.nib | 6 +- English.lproj/MainMenu.nib/keyedobjects.nib | Bin 23744 -> 24149 bytes Resources/Music/coda.eps | 168 ++++++++++++++++++++ Sources/VLSheetView.h | 1 + Sources/VLSheetView.mm | 29 ++-- Sources/VLSheetViewInternal.h | 2 + Sources/VLSheetViewSelection.mm | 45 ++++++ Vocalese.xcodeproj/project.pbxproj | 20 --- 9 files changed, 240 insertions(+), 33 deletions(-) create mode 100644 Resources/Music/coda.eps diff --git a/English.lproj/MainMenu.nib/classes.nib b/English.lproj/MainMenu.nib/classes.nib index 8bb0c8d..dec6a3b 100644 --- a/English.lproj/MainMenu.nib/classes.nib +++ b/English.lproj/MainMenu.nib/classes.nib @@ -4,6 +4,8 @@ ACTIONS = { editRepeat = id; editRepeatEnding = id; + insertJumpToCoda = id; + insertStartCoda = id; zoomIn = id; zoomOut = id; zoomToActualSize = id; diff --git a/English.lproj/MainMenu.nib/info.nib b/English.lproj/MainMenu.nib/info.nib index 250a48c..f008202 100644 --- a/English.lproj/MainMenu.nib/info.nib +++ b/English.lproj/MainMenu.nib/info.nib @@ -10,13 +10,13 @@ 320 324 349 44 0 0 1280 778 IBFramework Version - 454.0 + 455.0 IBOpenObjects - 217 29 + 217 IBSystem Version - 9A321 + 9A343 diff --git a/English.lproj/MainMenu.nib/keyedobjects.nib b/English.lproj/MainMenu.nib/keyedobjects.nib index 9cf7ecb65d073c20dc57914e6801f4663c123b20..256ee2a3cdfca78bdc75f30f0f9ad0994ba68830 100644 GIT binary patch literal 24149 zcmb`v2YeJ&_cwm;otfR8Nt;dYJ*2lyPd0VQ?$QYfp_h;>ArP`5g&vqoS5bObx`LvB zCl!#JM2GXNKRDz7CCwc@eL7UJsXb0MfUO>Ci9`q7=1sz1M zqSw%I^bUF-eSprObLbOv8C^qPqU-1z^gX(benY>bKhQmNA9Gm1PS_QD;s6|q!*Do` z!f`ki>u?6n#U*a6PMuuxEv40qwr{4g)O)qH{waS3Af^DSi%&~!SnGWcqv|n zm*Z7<9o~$$;H~&+{4Cy!U&Qoa!DT1lOkdwX3~T7 zAr)jGsU(BQFfxWzlNvIPSV<$9L|Vx#GKb71^T>Si2w6s!lNDqQ*+e#zE#ztP0@+RW zkeA3|@+vt(j*?^KJ#vDaBxlGu@)0>tE|5#)I{AuxP5vT(lYbb*FpLu;G7(HPlgMN; z#Y_n^fGKB&GQ*gW%s8fw8P7B@jZ7;unVH74G4q(mn8nNrW+k(Md6L=2Y-e^c&%^ag z%wgtL<`nY*bC$Wte9C;me92sAzGl8*zGZ%7eq!!0cbPw#znKRtVVzl#^=AFqFgBbm zV2fD;+m9`0E7*bTV0HvMmaS#$SS#Diwy>@240a|vi=E9%EM@1g^VtRLa&|Slp54Gc z$v(wyXP;)DVV`B6XJ2Obvj>#xBkVEuIQ+cJe!!lARv#+QK4q`6*PzXp(DzC9d-iAc z7W*6fJA04A9LK3RHRr^+a~_;0=gWm~p&YFV$~@O zQRk?;tNW-c)q~VS)T7mP>hbDkb&Gnkdb)asx=sDHCQLH|9oCG}jMh|X#%L^>ahf{K zc+Gfrl4gQtB3ez(X&N+EO_QcoGet91Gfgv7)25lFku-BP^EC4{i=h2un#FMUark*c zvqZC0vrMyGvqG~{vqrNX?rhL()NJ96{7wD`{zv{N{%8Icf1Ce>zr+8^|Hl8$|H0qo z|K#uSfAN3w|M2(u2LckXKm2YC$9Lf*?2v&Vq~JD!2)vpcUK&55ZIL61)W; z!B_BOb%MVTAOs3QLa-1bgbHCoxDX*k3Q%fbVocAkP~u7F31(RArWbjJMuuD$P0NRALNVtkUt7QfhY(C zqYxB|!caJhK#?d4bwkl82F0Q{6ps=r`<4%|T3ae3tLv+pn@995?`JdQV6~eS^KFpt zTbe7Y>RT=HbAz>^0W3Y3_~v1K%llSMv^2|Y;j^&`E~Z$UCdjR9z2qlD0kf_~X#@|H z4mPk+qF>+g;_7Nkb93F8y8617Y3l7Pr?Y!FId>(?clN|zNEmK?I@;^z+ZEXFA+xWCyNQ9E7D3&PxP2wqjQ&LgLK(a~P>GWm`GF3lp>*IPskx=8uAx?9 zVR*%j;8v@vWI>)onJ5coqnyFES+Fz@wS8y+jBO|f<)S=gF8Z{#RDlS}6_mk!%R4^U z1YyI;M+I9^0m>T*jI=hlSSQ*a+W07zSP*BA5`(qcTGcUSGM5I_9hJgtC0T7MAZa$+ z5KYLu4Vh67lm{}h^I&Ni2n<+SY(0CS-qP(oq8{}@eNjKuAC;j2s2o+Gfv6GiPSt!4cM zU6wobXt7Lerr3?*gA~6?@u9(e>Kf`M)=jsRO_T?kgq}supCP`Lq?W@V^~`nyY_ zq=iu^9N07%;0)s|)e|OGHBGQ-*IxAEHuNIeC+j#YbDPfEVPNP{58rbnc|ekBcq%<* zR+Rylw^X%QY~Y8`;jQQ}$^&uPM`B-)N9Bd!(P(KJYi*h+52&i8wF$NH-~3VI-=Pkvj;?ENI$m6u%DB z)7LV^!BB>pE%l9Mg?5?zDX~ME$62SycO6*x8~p<;#7T)=uz*pg_%RDCB(#e^-eC=3 zHP&FT`oP9|iov>X7;31uR5gXlD%4IKyT}vbRW08iV5zn=v~;&tw@!q=&A9-D-P)Ib z0CvY7utK|Anp^4`6mt*E5h+

xw;Zv<~~&B!vBey;Mo3NC-Ax@>D5H6bIp89HOwd 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 OUtzuNul;uq{C@z!#5%wL literal 23744 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 diff --git a/Resources/Music/coda.eps b/Resources/Music/coda.eps new file mode 100644 index 0000000..d846daa --- /dev/null +++ b/Resources/Music/coda.eps @@ -0,0 +1,168 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: -267.25 -351 267.25 351.081 +%%Pages: 0 +%%Title: scripts.coda from feta26 +%%Creator: FontForge +%%Author: Matthias Neeracher +%%CreationDate: 21:46 20-1-2007 +%%EndComments +%%BeginPreview: 56 74 4 74 +%00000000000000000000000000011000000000000000000000000000 +%000000000000000000000000002EE200000000000000000000000000 +%000000000000000000000000005FF500000000000000000000000000 +%000000000000000000000000005FF500000000000000000000000000 +%000000000000000000000000005FF500000000000000000000000000 +%000000000000000000000000005FF500000000000000000000000000 +%000000000000000000000000005FF500000000000000000000000000 +%000000000000000000000000005FF500000000000000000000000000 +%000000000000000000000000005FF500000000000000000000000000 +%000000000000000000000000005FF500000000000000000000000000 +%000000000000000000000000005FF500000000000000000000000000 +%00000000000000000000000158BFFB84000000000000000000000000 +%00000000000000000000029EFFFFFFFFE92000000000000000000000 +%000000000000000000008FFFFFFFFFFFFFF700000000000000000000 +%0000000000000000001CFFFFA47FF64AFFFFB1000000000000000000 +%000000000000000001DFFFE4006FF5004EFFFD100000000000000000 +%00000000000000001CFFFE30005FF50003EFFFC10000000000000000 +%0000000000000000AFFFF600005FF500006FFFFA0000000000000000 +%0000000000000005FFFFD000005FF500000CFFFF5000000000000000 +%000000000000001EFFFF6000005FF5000006FFFFE100000000000000 +%000000000000008FFFFF1000005FF5000001EFFFF800000000000000 +%00000000000001EFFFFB0000005FF5000000BFFFFE10000000000000 +%00000000000007FFFFF70000005FF50000007FFFFF70000000000000 +%0000000000000DFFFFF40000005FF50000004FFFFFD0000000000000 +%0000000000003FFFFFF20000005FF50000001FFFFFF3000000000000 +%0000000000008FFFFFF00000005FF50000000EFFFFF8000000000000 +%000000000000CFFFFFD00000005FF50000000CFFFFFC000000000000 +%000000000001FFFFFFB00000005FF50000000BFFFFFF100000000000 +%000000000005FFFFFFA00000005FF50000000AFFFFFF500000000000 +%000000000008FFFFFF900000005FF500000009FFFFFF800000000000 +%00000000000AFFFFFF800000005FF500000008FFFFFFA00000000000 +%00000000000CFFFFFF700000005FF500000007FFFFFFC00000000000 +%00000000000EFFFFFF700000005FF500000007FFFFFFE00000000000 +%00000000001FFFFFFF600000005FF500000006FFFFFFF10000000000 +%00000000002FFFFFFF600000005FF500000006FFFFFFF20000000000 +%03555555558FFFFFFF955555559FF955555559FFFFFFF75555555530 +%6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +%6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +%03555555558FFFFFFF955555559FF955555559FFFFFFF85555555530 +%00000000002FFFFFFF600000005FF500000006FFFFFFF20000000000 +%00000000001FFFFFFF600000005FF500000006FFFFFFF00000000000 +%00000000000EFFFFFF600000005FF500000007FFFFFFE00000000000 +%00000000000CFFFFFF700000005FF500000007FFFFFFC00000000000 +%00000000000AFFFFFF800000005FF500000008FFFFFFA00000000000 +%000000000008FFFFFF800000005FF500000009FFFFFF700000000000 +%000000000005FFFFFF900000005FF50000000AFFFFFF400000000000 +%000000000001FFFFFFB00000005FF50000000BFFFFFF100000000000 +%000000000000CFFFFFC00000005FF50000000CFFFFFC000000000000 +%0000000000008FFFFFE00000005FF50000000EFFFFF8000000000000 +%0000000000003FFFFFF10000005FF50000001FFFFFF3000000000000 +%0000000000000DFFFFF40000005FF50000004FFFFFD0000000000000 +%00000000000007FFFFF70000005FF50000007FFFFF70000000000000 +%00000000000001EFFFFB0000005FF5000000BFFFFE10000000000000 +%000000000000008FFFFE1000005FF5000001EFFFF800000000000000 +%000000000000001EFFFF6000005FF5000006FFFFE100000000000000 +%0000000000000005FFFFC000005FF500000CFFFF5000000000000000 +%0000000000000000AFFFF600005FF500006FFFFA0000000000000000 +%00000000000000001CFFFE30005FF50003EFFFC10000000000000000 +%000000000000000001DFFFE4005FF5004EFFFD100000000000000000 +%0000000000000000001CFFFF936FF64AFFFFC1000000000000000000 +%000000000000000000008FFFFFFFFFFFFFF800000000000000000000 +%00000000000000000000029EFFFFFFFFE92000000000000000000000 +%00000000000000000000000048BFFB85100000000000000000000000 +%000000000000000000000000005FF500000000000000000000000000 +%000000000000000000000000005FF500000000000000000000000000 +%000000000000000000000000005FF500000000000000000000000000 +%000000000000000000000000005FF500000000000000000000000000 +%000000000000000000000000005FF500000000000000000000000000 +%000000000000000000000000005FF500000000000000000000000000 +%000000000000000000000000005FF500000000000000000000000000 +%000000000000000000000000005FF500000000000000000000000000 +%000000000000000000000000005FF500000000000000000000000000 +%000000000000000000000000002EE200000000000000000000000000 +%00000000000000000000000000011000000000000000000000000000 +%%EndPreview +%%EndProlog +%%Page "scripts.coda" 1 +gsave newpath + -7 349 moveto + -1 353 7 351 11 345 curveto + 13 342 13 339 13 295 curveto + 13 249 lineto + 19 249 lineto + 32 247 51 241 65 233 curveto + 121 202 159 125 166 29 curveto + 167 21 167 14 167 14 curveto + 167 13 187 13 212 13 curveto + 262 13 261 13 265 7 curveto + 268 3 268 -3 265 -7 curveto + 261 -13 262 -13 212 -13 curveto + 187 -13 167 -13 167 -14 curveto + 167 -14 167 -21 166 -28 curveto + 158 -133 115 -214 51 -240 curveto + 42 -244 27 -248 19 -249 curveto + 13 -249 lineto + 13 -295 lineto + 13 -339 13 -342 11 -345 curveto + 6 -353 -6 -353 -11 -345 curveto + -13 -342 -13 -339 -13 -295 curveto + -13 -249 lineto + -19 -249 lineto + -32 -247 -51 -241 -65 -233 curveto + -121 -202 -159 -125 -166 -28 curveto + -167 -21 -167 -14 -167 -14 curveto + -167 -13 -187 -13 -212 -13 curveto + -262 -13 -261 -13 -265 -7 curveto + -268 -3 -268 3 -265 7 curveto + -261 13 -262 13 -212 13 curveto + -187 13 -167 13 -167 14 curveto + -167 14 -167 21 -166 29 curveto + -158 133 -115 214 -51 240 curveto + -42 244 -27 248 -19 249 curveto + -13 249 lineto + -13 295 lineto + -13 346 -13 345 -7 349 curveto + closepath + -13 118 moveto + -13 217 -13 223 -15 223 curveto + -18 223 -32 218 -37 216 curveto + -66 199 -83 162 -89 99 curveto + -91 81 -93 46 -93 27 curveto + -93 13 lineto + -53 13 lineto + -13 13 lineto + -13 118 lineto + closepath + 26 220 moveto + 23 221 19 222 17 223 curveto + 13 223 lineto + 13 118 lineto + 13 13 lineto + 53 13 lineto + 93 13 lineto + 93 40 lineto + 91 120 82 163 62 193 curveto + 53 206 40 216 26 220 curveto + closepath + -13 -118 moveto + -13 -13 lineto + -53 -13 lineto + -93 -13 lineto + -93 -40 lineto + -92 -72 -91 -89 -88 -111 curveto + -80 -179 -56 -215 -17 -223 curveto + -13 -223 lineto + -13 -118 lineto + closepath + 93 -40 moveto + 93 -13 lineto + 53 -13 lineto + 13 -13 lineto + 13 -118 lineto + 13 -223 lineto + 17 -223 lineto + 56 -215 80 -179 88 -111 curveto + 91 -89 92 -72 93 -40 curveto + closepath +fill grestore +%%EOF diff --git a/Sources/VLSheetView.h b/Sources/VLSheetView.h index c6ae350..75d34e8 100644 --- a/Sources/VLSheetView.h +++ b/Sources/VLSheetView.h @@ -36,6 +36,7 @@ enum VLMusicElement { kMusicNaturalCursor, kMusicRestCursor, kMusicKillCursor, + kMusicCoda, kMusicElements }; diff --git a/Sources/VLSheetView.mm b/Sources/VLSheetView.mm index 522aff4..75e016a 100644 --- a/Sources/VLSheetView.mm +++ b/Sources/VLSheetView.mm @@ -42,7 +42,8 @@ static NSString * sElementNames[kMusicElements] = { @"sharpcursor", @"naturalcursor", @"restcursor", - @"killcursor" + @"killcursor", + @"coda" }; static float sSharpPos[] = { @@ -407,6 +408,10 @@ VLMusicElement sSemi2Accidental[12][12] = { [bz removeAllPoints]; [bz setLineWidth:2.0]; } + if (song->fGoToCoda == m || song->fCoda == m) + [[self musicElement:kMusicCoda] + compositeToPoint: NSMakePoint(x+kCodaX, yy+kCodaY) + operation: NSCompositeSourceOver]; } } @@ -518,15 +523,19 @@ VLMusicElement sSemi2Accidental[12][12] = { - (IBAction) setKey:(id)sender { - [[NSAlert alertWithMessageText:@"Transpose Song?" - defaultButton:@"Transpose" - alternateButton:@"Cancel" - otherButton:@"Change Key" - informativeTextWithFormat: - @"Do you want to transpose the song into the new key?"] - beginSheetModalForWindow:[self window] - modalDelegate:self didEndSelector:@selector(setKey:returnCode:contextInfo:) - contextInfo:sender]; + if ([self song]->IsNonEmpty()) + [[NSAlert alertWithMessageText:@"Transpose Song?" + defaultButton:@"Transpose" + alternateButton:@"Cancel" + otherButton:@"Change Key" + informativeTextWithFormat: + @"Do you want to transpose the song into the new key?"] + beginSheetModalForWindow:[self window] + modalDelegate:self + didEndSelector:@selector(setKey:returnCode:contextInfo:) + contextInfo:sender]; + else + [self setKey:nil returnCode:NSAlertOtherReturn contextInfo:sender]; } - (void)setKey:(NSAlert *)alert returnCode:(int)returnCode contextInfo:(id)sender diff --git a/Sources/VLSheetViewInternal.h b/Sources/VLSheetViewInternal.h index da5bc62..4a51d29 100644 --- a/Sources/VLSheetViewInternal.h +++ b/Sources/VLSheetViewInternal.h @@ -39,4 +39,6 @@ const float kStemH = 30.0f; const float kWholeRestY = 20.0f; const float kHalfRestY = 15.0f; const float kTieDepth = 10.0f; +const float kCodaX =-10.0f; +const float kCodaY = 5.0f; const int kMaxLedgers = 3; diff --git a/Sources/VLSheetViewSelection.mm b/Sources/VLSheetViewSelection.mm index 65b035c..843df58 100644 --- a/Sources/VLSheetViewSelection.mm +++ b/Sources/VLSheetViewSelection.mm @@ -59,6 +59,27 @@ static VLSong sPasteboard; fCursorRegion = kRegionMeasure; } +- (BOOL)validateMenuItem:(id) item +{ + SEL action = [item action]; + if (action == @selector(insertJumpToCoda:)) + if (fSelStart == fSelEnd) { + [item setState:[self song]->fGoToCoda==fSelStart]; + + return YES; + } else + return NO; + else if (action == @selector(insertStartCoda:)) + if (fSelStart == fSelEnd) { + [item setState:[self song]->fCoda==fSelStart]; + + return YES; + } else + return NO; + else + return [self validateUserInterfaceItem:item]; +} + - (BOOL)validateUserInterfaceItem:(id) item { SEL action = [item action]; @@ -215,4 +236,28 @@ static VLSong sPasteboard; fVolta &= ~mask; } +- (IBAction)insertJumpToCoda:(id)sender +{ + [[self document] willChangeSong]; + VLSong * song = [self song]; + if (song->fGoToCoda == fSelStart) + song->fGoToCoda = -1; + else + song->fGoToCoda = fSelStart; + [self setNeedsDisplay:YES]; + [[self document] didChangeSong]; +} + +- (IBAction)insertStartCoda:(id)sender +{ + [[self document] willChangeSong]; + VLSong * song = [self song]; + if (song->fCoda == fSelStart) + song->fCoda = -1; + else + song->fCoda = fSelStart; + [self setNeedsDisplay:YES]; + [[self document] didChangeSong]; +} + @end diff --git a/Vocalese.xcodeproj/project.pbxproj b/Vocalese.xcodeproj/project.pbxproj index 00c7293..76d0110 100644 --- a/Vocalese.xcodeproj/project.pbxproj +++ b/Vocalese.xcodeproj/project.pbxproj @@ -13,15 +13,9 @@ 8D15AC320486D014006FF6A4 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4B0FDCFA73011CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; 8D15AC340486D014006FF6A4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */; }; 95009B280B0ECF9000EB33A4 /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 95009B220B0ECF9000EB33A4 /* AUOutputBL.cpp */; }; - 95009B290B0ECF9000EB33A4 /* AUOutputBL.h in Copy MMA Library */ = {isa = PBXBuildFile; fileRef = 95009B230B0ECF9000EB33A4 /* AUOutputBL.h */; }; 95009B2A0B0ECF9000EB33A4 /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 95009B240B0ECF9000EB33A4 /* CAAudioFileFormats.cpp */; }; - 95009B2B0B0ECF9000EB33A4 /* CAAudioFileFormats.h in Copy MMA Library */ = {isa = PBXBuildFile; fileRef = 95009B250B0ECF9000EB33A4 /* CAAudioFileFormats.h */; }; 95009B2C0B0ECF9000EB33A4 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 95009B260B0ECF9000EB33A4 /* CAStreamBasicDescription.cpp */; }; - 95009B2D0B0ECF9000EB33A4 /* CAStreamBasicDescription.h in Copy MMA Library */ = {isa = PBXBuildFile; fileRef = 95009B270B0ECF9000EB33A4 /* CAStreamBasicDescription.h */; }; 95009B500B0ED0BB00EB33A4 /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 95009B4E0B0ED0BB00EB33A4 /* CADebugMacros.cpp */; }; - 95009B510B0ED0BB00EB33A4 /* CADebugMacros.h in Copy MMA Library */ = {isa = PBXBuildFile; fileRef = 95009B4F0B0ED0BB00EB33A4 /* CADebugMacros.h */; }; - 95009B640B0ED18700EB33A4 /* CAConditionalMacros.h in Copy MMA Library */ = {isa = PBXBuildFile; fileRef = 95009B620B0ED18700EB33A4 /* CAConditionalMacros.h */; }; - 95009B650B0ED18700EB33A4 /* CAMath.h in Copy MMA Library */ = {isa = PBXBuildFile; fileRef = 95009B630B0ED18700EB33A4 /* CAMath.h */; }; 95009B7E0B0EDC7400EB33A4 /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 95009B220B0ECF9000EB33A4 /* AUOutputBL.cpp */; }; 95009B7F0B0EDC7900EB33A4 /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 95009B240B0ECF9000EB33A4 /* CAAudioFileFormats.cpp */; }; 95009B800B0EDC7B00EB33A4 /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 95009B4E0B0ED0BB00EB33A4 /* CADebugMacros.cpp */; }; @@ -39,9 +33,7 @@ 95498DBD0AE3812F006B5F81 /* VLSoundSched.mm in Sources */ = {isa = PBXBuildFile; fileRef = 95498DBC0AE3812F006B5F81 /* VLSoundSched.mm */; }; 954BBD860AEDDE5300BBFD5F /* VLAppController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 954BBD850AEDDE5300BBFD5F /* VLAppController.mm */; }; 954BBD9A0AEDE81500BBFD5F /* VLPitchTransformer.mm in Sources */ = {isa = PBXBuildFile; fileRef = 954BBD990AEDE81500BBFD5F /* VLPitchTransformer.mm */; }; - 954DD4B90B444B220056C504 /* VLSheetViewSelection.h in Copy MMA Library */ = {isa = PBXBuildFile; fileRef = 954DD4B70B444B220056C504 /* VLSheetViewSelection.h */; }; 954DD4E60B44E67F0056C504 /* VLSheetViewSelection.mm in Sources */ = {isa = PBXBuildFile; fileRef = 954DD4E50B44E67F0056C504 /* VLSheetViewSelection.mm */; }; - 955CBA4E0B2366DD001CF4A1 /* VLKeyValueUndo.h in Copy MMA Library */ = {isa = PBXBuildFile; fileRef = 955CBA4C0B2366DD001CF4A1 /* VLKeyValueUndo.h */; }; 955CBA4F0B2366DD001CF4A1 /* VLKeyValueUndo.mm in Sources */ = {isa = PBXBuildFile; fileRef = 955CBA4D0B2366DD001CF4A1 /* VLKeyValueUndo.mm */; }; 955E58E5095658AB0045FDA5 /* VLModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 955E58E4095658AB0045FDA5 /* VLModel.cpp */; }; 955E59610957C1400045FDA5 /* TVLChord.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 955E59600957C1400045FDA5 /* TVLChord.cpp */; }; @@ -72,9 +64,7 @@ 95E04DAB0AEB4886006F30A0 /* VLXMLDocument.mm in Sources */ = {isa = PBXBuildFile; fileRef = 95F5F50E0ADCC433003980B2 /* VLXMLDocument.mm */; }; 95E04DC70AEB4B57006F30A0 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */; }; 95E04DCE0AEB4D9B006F30A0 /* Templates in Resources */ = {isa = PBXBuildFile; fileRef = 95E04DCA0AEB4D9B006F30A0 /* Templates */; }; - 95E299BF0B2006F5001977D2 /* VLSheetViewLyrics.h in Copy MMA Library */ = {isa = PBXBuildFile; fileRef = 95E299BD0B2006F5001977D2 /* VLSheetViewLyrics.h */; }; 95E299C00B2006F5001977D2 /* VLSheetViewLyrics.mm in Sources */ = {isa = PBXBuildFile; fileRef = 95E299BE0B2006F5001977D2 /* VLSheetViewLyrics.mm */; }; - 95EDA5AA0B06DE46004D8D6E /* VLMIDIDocument.h in Copy MMA Library */ = {isa = PBXBuildFile; fileRef = 95EDA5A80B06DE46004D8D6E /* VLMIDIDocument.h */; }; 95EDA5AB0B06DE47004D8D6E /* VLMIDIDocument.mm in Sources */ = {isa = PBXBuildFile; fileRef = 95EDA5A90B06DE46004D8D6E /* VLMIDIDocument.mm */; }; 95F5F50F0ADCC433003980B2 /* VLXMLDocument.mm in Sources */ = {isa = PBXBuildFile; fileRef = 95F5F50E0ADCC433003980B2 /* VLXMLDocument.mm */; }; 95F5F5340ADCCFBB003980B2 /* DTD in Resources */ = {isa = PBXBuildFile; fileRef = 95F5F51E0ADCCFBB003980B2 /* DTD */; }; @@ -103,16 +93,6 @@ 95C461FE0B04432700649F92 /* MMA in Copy MMA Library */, 95C461C40B043E8900649F92 /* includes in Copy MMA Library */, 95C461C50B043E8900649F92 /* lib in Copy MMA Library */, - 95EDA5AA0B06DE46004D8D6E /* VLMIDIDocument.h in Copy MMA Library */, - 95009B290B0ECF9000EB33A4 /* AUOutputBL.h in Copy MMA Library */, - 95009B2B0B0ECF9000EB33A4 /* CAAudioFileFormats.h in Copy MMA Library */, - 95009B2D0B0ECF9000EB33A4 /* CAStreamBasicDescription.h in Copy MMA Library */, - 95009B510B0ED0BB00EB33A4 /* CADebugMacros.h in Copy MMA Library */, - 95009B640B0ED18700EB33A4 /* CAConditionalMacros.h in Copy MMA Library */, - 95009B650B0ED18700EB33A4 /* CAMath.h in Copy MMA Library */, - 95E299BF0B2006F5001977D2 /* VLSheetViewLyrics.h in Copy MMA Library */, - 955CBA4E0B2366DD001CF4A1 /* VLKeyValueUndo.h in Copy MMA Library */, - 954DD4B90B444B220056C504 /* VLSheetViewSelection.h in Copy MMA Library */, ); name = "Copy MMA Library"; runOnlyForDeploymentPostprocessing = 0;