diff --git a/English.lproj/VLDocument.nib/info.nib b/English.lproj/VLDocument.nib/info.nib index b2f609d..470d47e 100644 --- a/English.lproj/VLDocument.nib/info.nib +++ b/English.lproj/VLDocument.nib/info.nib @@ -3,14 +3,14 @@ IBDocumentLocation - 44 14 356 240 0 0 1024 746 + 36 103 356 240 0 0 1024 746 IBFramework Version - 451.0 + 452.0 IBOpenObjects 5 IBSystem Version - 9A255 + 9A274 diff --git a/English.lproj/VLDocument.nib/keyedobjects.nib b/English.lproj/VLDocument.nib/keyedobjects.nib index a512b0d..ce23cee 100644 Binary files a/English.lproj/VLDocument.nib/keyedobjects.nib and b/English.lproj/VLDocument.nib/keyedobjects.nib differ diff --git a/Sources/VLModel.cpp b/Sources/VLModel.cpp index 1bd377d..d8755a5 100644 --- a/Sources/VLModel.cpp +++ b/Sources/VLModel.cpp @@ -354,13 +354,13 @@ VLSong::VLSong() VLProperties defaultProperties = {fourFour, 0, 1, 3}; fProperties.push_back(defaultProperties); - fMeasures.resize(33); // Leadin, AABA + fMeasures.resize(32); // Leadin, AABA VLNote rest = VLRest(1); VLChord rchord; rchord.fDuration = 1; - for (int i=0; i<33; ++i) { + for (int i=0; i<32; ++i) { fMeasures[i].fProperties = &fProperties.front(); fMeasures[i].fChords.push_back(rchord); fMeasures[i].fMelody.push_back(rest); diff --git a/Sources/VLModel.h b/Sources/VLModel.h index 5a47496..1bf0aaf 100644 --- a/Sources/VLModel.h +++ b/Sources/VLModel.h @@ -212,6 +212,8 @@ struct VLSong { void AddNote(VLNote note, size_t measure, VLFraction at); void DelChord(size_t measure, VLFraction at); void DelNote(size_t measure, VLFraction at); + + size_t CountMeasures() const { return fMeasures.size(); } }; // Local Variables: diff --git a/Sources/VLSheetView.h b/Sources/VLSheetView.h index fd29a9b..f6d4af3 100644 --- a/Sources/VLSheetView.h +++ b/Sources/VLSheetView.h @@ -38,12 +38,15 @@ enum VLMusicElement { BOOL showFieldEditor; float clefKeyW; float measureW; + float lineH; int groups; int quarterBeats; int divPerGroup; int firstMeasure; int lastMeasure; - int visibleMeasures; + int measuresPerSystem; + int numSystems; + float displayScale; NSImageRep * noteCursorCache; NSPoint noteCursorLocation; NSPoint lastNoteCenter; @@ -70,6 +73,7 @@ enum VLMusicElement { - (VLSong *) song; - (NSImage *) musicElement:(VLMusicElement)elt; +- (float) systemY:(int)system; - (float) noteYWithPitch:(int)pitch; - (float) noteXInMeasure:(int)measure at:(VLFraction)at; diff --git a/Sources/VLSheetView.mm b/Sources/VLSheetView.mm index 25b70c7..63910b6 100644 --- a/Sources/VLSheetView.mm +++ b/Sources/VLSheetView.mm @@ -40,23 +40,23 @@ static NSString * sElementNames[kMusicElements] = { }; 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# + 4.0f*kLineH, // F# + 2.5f*kLineH, // C# + 4.5f*kLineH, // G# + 3.0f*kLineH, // D# + 1.5f*kLineH, // A# + 3.5f*kLineH, // E# + 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 + 2.0f*kLineH, // Bb + 3.5f*kLineH, // Eb + 1.5f*kLineH, // Ab + 3.0f*kLineH, // Db + 1.0f*kLineH, // Gb + 2.5f*kLineH, // Cb + 0.5f*kLineH, // Fb }; - (id)initWithFrame:(NSRect)frame @@ -80,6 +80,7 @@ static float sFlatPos[] = { } needsRecalc = YES; showFieldEditor = NO; + displayScale = 1.0f; firstMeasure = 0; noteRectTracker = 0; noteCursorCache = nil; @@ -103,13 +104,20 @@ static float sFlatPos[] = { return sMusic[elt]; } +- (float) systemY:(int)system +{ + NSRect b = [self bounds]; + + return kSystemY+b.origin.y+b.size.height-(system+1)*kSystemH; +} + - (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 y = octave*3.5f*kLineH; float sharp = useSharps ? 0.0f : 0.5f*kLineH; switch (semi) { @@ -156,6 +164,10 @@ static float sFlatPos[] = { { needsRecalc = NO; + NSSize contentSz = [[self enclosingScrollView] contentSize]; + contentSz.width /= displayScale; + contentSz.height/= displayScale; + const VLSong * song = [self song]; const VLProperties & prop = song->fProperties.front(); @@ -164,18 +176,12 @@ static float sFlatPos[] = { 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]; + measuresPerSystem = + (int)std::floor((contentSz.width - clefKeyW) / measureW); + numSystems = (song->CountMeasures()+measuresPerSystem-1)/measuresPerSystem; + contentSz.height = numSystems*kSystemH; +#if 0 noteRect = NSMakeRect(clefKeyW, kLineY-kMaxLedgers*kLineH, visibleMeasures*measureW, (4.0f+2.0f*kMaxLedgers)*kLineH); @@ -188,11 +194,27 @@ static float sFlatPos[] = { noteRectTracker = [self addTrackingRect:noteRect owner:self userData:nil assumeInside:inNoteRect]; [[self window] setAcceptsMouseMovedEvents:inNoteRect]; +#endif + [[self window] makeFirstResponder:self]; + + NSSize frameSz = {contentSz.width * displayScale, contentSz.height * displayScale}; + + [self setFrameSize:frameSz]; + [self setBoundsSize:contentSz]; + [self setNeedsDisplay:YES]; } - (void)drawRect:(NSRect)rect { + static NSDictionary * sMeasNoFont = nil; + if (!sMeasNoFont) + sMeasNoFont = + [[NSDictionary alloc] initWithObjectsAndKeys: + [NSFont fontWithName: @"Helvetica" size: 10], + NSFontAttributeName, + nil]; + const VLSong * song = [self song]; const VLProperties & prop = song->fProperties.front(); @@ -204,12 +226,15 @@ static float sFlatPos[] = { [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)]; + for (int system = 0; system 0) { - float x = kClefX+kClefW; - for (int i=0; iprop.fKey; ++i) { - [[self musicElement: kMusicFlat] compositeToPoint: - NSMakePoint(x, sFlatPos[i]+kFlatY) - operation: NSCompositeSourceOver]; - x += kAccW; + for (int system = 0; system 0) { + float x = kClefX+kClefW; + for (int i=0; iprop.fKey; ++i) { + [[self musicElement: kMusicFlat] + compositeToPoint: NSMakePoint(x, kLineY+sFlatPos[i]+kFlatY) + operation: NSCompositeSourceOver]; + x += kAccW; + } } } diff --git a/Sources/VLSheetViewChords.mm b/Sources/VLSheetViewChords.mm index 660c8e8..2fa53e5 100644 --- a/Sources/VLSheetViewChords.mm +++ b/Sources/VLSheetViewChords.mm @@ -68,6 +68,7 @@ - (void) setupChords { +#if 0 const VLSong * song = [self song]; const VLProperties & prop = song->fProperties.front(); NSView * chordView = [chords contentView]; @@ -110,6 +111,7 @@ } } [chords setNeedsDisplay: YES]; +#endif } - (IBAction) editChord:(id)sender diff --git a/Sources/VLSheetViewInternal.h b/Sources/VLSheetViewInternal.h index fda03bc..30265ae 100644 --- a/Sources/VLSheetViewInternal.h +++ b/Sources/VLSheetViewInternal.h @@ -7,11 +7,14 @@ // const float kLineX = 5; -const float kLineY = 90.5; const float kLineH = 10; +const float kSystemH = 15.0f*kLineH; +const float kSystemY = 3.0f*kLineH; const float kClefX = 20.5f; -const float kClefY = 75.0f; +const float kClefY =-15.0f; const float kClefW = 30.0f; +const float kMeasNoX = 10.0f; +const float kMeasNoY = 4.5f*kLineH; const float kNoteW = 12.0f; const float kKeyW = 10.0f; const float kAccW = 10.0f; diff --git a/Sources/VLSheetViewNotes.mm b/Sources/VLSheetViewNotes.mm index 1c278e4..7724ef0 100644 --- a/Sources/VLSheetViewNotes.mm +++ b/Sources/VLSheetViewNotes.mm @@ -253,56 +253,61 @@ static int sSemiToPitch[] = { VLFraction swung(3, prop.fDivisions*8, true); // Which notes to swing VLFraction swingGrid(2*swung); // Alignment of swing notes - for (int m = 0; mfMeasures[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); + for (int system = 0; system= song->CountMeasures()) + break; + 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 + 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; + 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 = 4*partialDur/3; + noteDur = partialDur; } - } else { - noteDur = partialDur; + if (pitch != VLNote::kNoPitch) + [self drawNote:noteDur + at: NSMakePoint( + [self noteXInMeasure:m at:at], + kLineY+[self noteYWithPitch:pitch]) + tied:!first]; + else + [self drawRest:noteDur + at: NSMakePoint( + [self noteXInMeasure:m at:at], + kLineY+[self noteYWithPitch:65])]; + dur -= partialDur; + at += partialDur; + first = NO; } - 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; } } } diff --git a/Vocalese.xcodeproj/neeri.mode1v3 b/Vocalese.xcodeproj/neeri.mode1v3 index a281dd8..20fb974 100644 --- a/Vocalese.xcodeproj/neeri.mode1v3 +++ b/Vocalese.xcodeproj/neeri.mode1v3 @@ -196,120 +196,15 @@ OpenEditors - - Content - - PBXProjectModuleGUID - 95D1F8310AB694EC00EE6AC8 - PBXProjectModuleLabel - VLSheetView.mm - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 95D1F8320AB694EC00EE6AC8 - PBXProjectModuleLabel - VLSheetView.mm - _historyCapacity - 0 - bookmark - 95D1F8BD0AB69F2F00EE6AC8 - history - - 95D1F82B0AB693AE00EE6AC8 - - - SplitCount - 1 - - StatusBarVisibility - - - Geometry - - Frame - {{0, 20}, {763, 552}} - PBXModuleWindowStatusBarHidden2 - - RubberWindowFrame - 164 91 763 593 0 0 1024 746 - - - - Content - - PBXProjectModuleGUID - 95D1F8130AB6908400EE6AC8 - PBXProjectModuleLabel - VLSheetViewChords.h - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 95D1F8140AB6908400EE6AC8 - PBXProjectModuleLabel - VLSheetViewChords.h - _historyCapacity - 0 - bookmark - 95D1F8BE0AB69F2F00EE6AC8 - history - - 95D1F86A0AB6970400EE6AC8 - - - SplitCount - 1 - - StatusBarVisibility - - - Geometry - - Frame - {{0, 20}, {763, 552}} - PBXModuleWindowStatusBarHidden2 - - RubberWindowFrame - 186 75 763 593 0 0 1024 746 - - Content PBXProjectModuleGUID 95D1F82E0AB694EC00EE6AC8 PBXProjectModuleLabel - VLSheetView.mm + <No Editor> PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 95D1F82F0AB694EC00EE6AC8 - PBXProjectModuleLabel - VLSheetView.mm - _historyCapacity - 0 - bookmark - 95D1F8BF0AB69F2F00EE6AC8 - history - - 95D1F8530AB6967E00EE6AC8 - 95D1F8540AB6967E00EE6AC8 - - prevStack - - 95D1F84C0AB6960700EE6AC8 - 95D1F8550AB6967E00EE6AC8 - 95D1F8560AB6967E00EE6AC8 - - - SplitCount - 1 - + StatusBarVisibility @@ -329,27 +224,9 @@ PBXProjectModuleGUID 95D1F7FE0AB68C8C00EE6AC8 PBXProjectModuleLabel - VLSheetView.h + <No Editor> PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 95D1F7FF0AB68C8C00EE6AC8 - PBXProjectModuleLabel - VLSheetView.h - _historyCapacity - 0 - bookmark - 95D1F8C00AB69F2F00EE6AC8 - history - - 95D1F80B0AB68D3B00EE6AC8 - - - SplitCount - 1 - + StatusBarVisibility @@ -363,6 +240,50 @@ 242 153 763 593 0 0 1024 746 + + Content + + PBXProjectModuleGUID + 95D1F8130AB6908400EE6AC8 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {763, 552}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 186 75 763 593 0 0 1024 746 + + + + Content + + PBXProjectModuleGUID + 95D1F8850AB69B6700EE6AC8 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {763, 552}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 168 116 763 593 0 0 1024 746 + + Content @@ -389,7 +310,7 @@ Content PBXProjectModuleGUID - 95D1F8850AB69B6700EE6AC8 + 95D1F8310AB694EC00EE6AC8 PBXProjectModuleLabel <No Editor> PBXSplitModuleInNavigatorKey @@ -404,7 +325,95 @@ PBXModuleWindowStatusBarHidden2 RubberWindowFrame - 168 116 763 593 0 0 1024 746 + 164 91 763 593 0 0 1024 746 + + + + Content + + PBXProjectModuleGUID + 95B042FA0ACE431A00236B52 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {763, 552}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 242 153 763 593 0 0 1024 746 + + + + Content + + PBXProjectModuleGUID + 95B042F70ACE431A00236B52 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {763, 552}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 164 91 763 593 0 0 1024 746 + + + + Content + + PBXProjectModuleGUID + 95B042FB0ACE431A00236B52 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {763, 552}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 242 153 763 593 0 0 1024 746 + + + + Content + + PBXProjectModuleGUID + 95B042FC0ACE431A00236B52 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {763, 552}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 15 148 763 593 0 0 1024 746 @@ -488,13 +497,13 @@ PBXSmartGroupTreeModuleOutlineStateSelectionKey - 6 + 10 1 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 5}, {186, 338}} + {{0, 0}, {186, 338}} PBXTopSmartGroupGIDs @@ -513,7 +522,7 @@ 186 RubberWindowFrame - 167 327 690 397 0 0 1024 746 + 167 326 690 397 0 0 1024 746 Module PBXSmartGroupTreeModule @@ -550,7 +559,7 @@ Frame {{0, 0}, {482, 0}} RubberWindowFrame - 167 327 690 397 0 0 1024 746 + 167 326 690 397 0 0 1024 746 Module PBXNavigatorGroup @@ -570,7 +579,7 @@ Frame {{0, 5}, {482, 351}} RubberWindowFrame - 167 327 690 397 0 0 1024 746 + 167 326 690 397 0 0 1024 746 Module XCDetailModule @@ -594,9 +603,9 @@ TableOfContents - 95D1F7F00AB6821400EE6AC8 + 95B042DA0ACE37CB00236B52 1CE0B1FE06471DED0097A5F4 - 95D1F7F10AB6821400EE6AC8 + 95B042DB0ACE37CB00236B52 1CE0B20306471E060097A5F4 1CE0B20506471E060097A5F4 @@ -730,22 +739,27 @@ 5 WindowOrderList - 95D1F8850AB69B6700EE6AC8 - 95D1F8660AB6970400EE6AC8 - 95D1F8240AB6930D00EE6AC8 - 95D1F8250AB6930D00EE6AC8 - 95D1F8260AB6930D00EE6AC8 + 95B043090ACE46F000236B52 + 95B042FC0ACE431A00236B52 + 95B042FB0ACE431A00236B52 + 95B042F70ACE431A00236B52 + 95B042FA0ACE431A00236B52 + 95B042E40ACE37CB00236B52 + 95B042E50ACE37CB00236B52 + 95B042E60ACE37CB00236B52 95D7BFC80AA6C1A500D5E02C - 95D7BFC00AA6C1A500D5E02C - 1CD10A99069EF8BA00B06720 + 95D1F8310AB694EC00EE6AC8 + 95D1F8660AB6970400EE6AC8 + 95D1F8850AB69B6700EE6AC8 + 95D1F8130AB6908400EE6AC8 95D1F7FE0AB68C8C00EE6AC8 95D1F82E0AB694EC00EE6AC8 - 95D1F8130AB6908400EE6AC8 - 95D1F8310AB694EC00EE6AC8 - /Users/neeri/Development/Vocalese/Vocalese.xcodeproj + 95D7BFC00AA6C1A500D5E02C + /Development/Vocalese/Vocalese.xcodeproj + 1CD10A99069EF8BA00B06720 WindowString - 167 327 690 397 0 0 1024 746 + 167 326 690 397 0 0 1024 746 WindowToolsV3 @@ -761,12 +775,14 @@ Dock + BecomeActive + ContentConfiguration PBXProjectModuleGUID 1CD0528F0623707200166675 PBXProjectModuleLabel - VLSheetViewChords.mm + new_allocator.h StatusBarVisibility @@ -783,8 +799,6 @@ 293pt - BecomeActive - ContentConfiguration PBXProjectModuleGUID @@ -824,7 +838,7 @@ TableOfContents 95D7BFC00AA6C1A500D5E02C - 95D1F8220AB6930D00EE6AC8 + 95B042DC0ACE37CB00236B52 1CD0528F0623707200166675 XCMainBuildResultsModuleGUID @@ -835,7 +849,7 @@ WindowToolGUID 95D7BFC00AA6C1A500D5E02C WindowToolIsVisible - + FirstTimeWindowDisplayed @@ -866,8 +880,8 @@ yes sizes - {{0, 0}, {308, 200}} - {{308, 0}, {386, 200}} + {{0, 0}, {308, 203}} + {{308, 0}, {386, 203}} VerticalSplitView @@ -882,8 +896,8 @@ yes sizes - {{0, 0}, {694, 200}} - {{0, 200}, {694, 181}} + {{0, 0}, {694, 203}} + {{0, 203}, {694, 178}} @@ -916,7 +930,7 @@ 156 Frame - {{308, 0}, {386, 200}} + {{308, 0}, {386, 203}} RubberWindowFrame 254 208 694 422 0 0 1024 746 @@ -944,13 +958,13 @@ TableOfContents 1CD10A99069EF8BA00B06720 - 95D1F7F20AB6821400EE6AC8 + 95B042DD0ACE37CB00236B52 1C162984064C10D400B95A72 - 95D1F7F30AB6821400EE6AC8 - 95D1F7F40AB6821400EE6AC8 - 95D1F7F50AB6821400EE6AC8 - 95D1F7F60AB6821400EE6AC8 - 95D1F7F70AB6821400EE6AC8 + 95B042DE0ACE37CB00236B52 + 95B042DF0ACE37CB00236B52 + 95B042E00ACE37CB00236B52 + 95B042E10ACE37CB00236B52 + 95B042E20ACE37CB00236B52 ToolbarConfiguration xcode.toolbar.config.debugV3 @@ -959,7 +973,7 @@ WindowToolGUID 1CD10A99069EF8BA00B06720 WindowToolIsVisible - + Identifier @@ -1112,7 +1126,7 @@ TableOfContents 95D7BFC80AA6C1A500D5E02C - 95D1F8230AB6930D00EE6AC8 + 95B042E30ACE37CB00236B52 1C78EAAC065D492600B07095 WindowString diff --git a/Vocalese.xcodeproj/neeri.pbxuser b/Vocalese.xcodeproj/neeri.pbxuser index 62b256e..64ec5ca 100644 --- a/Vocalese.xcodeproj/neeri.pbxuser +++ b/Vocalese.xcodeproj/neeri.pbxuser @@ -62,22 +62,13 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 179733005; - PBXWorkspaceStateSaveDate = 179733005; + PBXPerProjectTemplateStateSaveDate = 181286523; + PBXWorkspaceStateSaveDate = 181286523; }; perUserProjectItems = { - 95D1F80B0AB68D3B00EE6AC8 /* PBXTextBookmark */ = 95D1F80B0AB68D3B00EE6AC8 /* PBXTextBookmark */; - 95D1F82B0AB693AE00EE6AC8 /* PBXBookmark */ = 95D1F82B0AB693AE00EE6AC8 /* PBXBookmark */; - 95D1F84C0AB6960700EE6AC8 /* PBXTextBookmark */ = 95D1F84C0AB6960700EE6AC8 /* PBXTextBookmark */; - 95D1F8530AB6967E00EE6AC8 /* PBXTextBookmark */ = 95D1F8530AB6967E00EE6AC8 /* PBXTextBookmark */; - 95D1F8540AB6967E00EE6AC8 /* PBXTextBookmark */ = 95D1F8540AB6967E00EE6AC8 /* PBXTextBookmark */; - 95D1F8550AB6967E00EE6AC8 /* PBXTextBookmark */ = 95D1F8550AB6967E00EE6AC8 /* PBXTextBookmark */; - 95D1F8560AB6967E00EE6AC8 /* PBXTextBookmark */ = 95D1F8560AB6967E00EE6AC8 /* PBXTextBookmark */; - 95D1F86A0AB6970400EE6AC8 /* PBXTextBookmark */ = 95D1F86A0AB6970400EE6AC8 /* PBXTextBookmark */; - 95D1F8BD0AB69F2F00EE6AC8 /* PBXTextBookmark */ = 95D1F8BD0AB69F2F00EE6AC8 /* PBXTextBookmark */; - 95D1F8BE0AB69F2F00EE6AC8 /* PBXTextBookmark */ = 95D1F8BE0AB69F2F00EE6AC8 /* PBXTextBookmark */; - 95D1F8BF0AB69F2F00EE6AC8 /* PBXTextBookmark */ = 95D1F8BF0AB69F2F00EE6AC8 /* PBXTextBookmark */; - 95D1F8C00AB69F2F00EE6AC8 /* PBXTextBookmark */ = 95D1F8C00AB69F2F00EE6AC8 /* PBXTextBookmark */; + 95B042F40ACE42E800236B52 /* PBXBookmark */ = 95B042F40ACE42E800236B52 /* PBXBookmark */; + 95B042F90ACE431A00236B52 /* PBXTextBookmark */ = 95B042F90ACE431A00236B52 /* PBXTextBookmark */; + 95B043000ACE435E00236B52 /* PBXTextBookmark */ = 95B043000ACE435E00236B52 /* PBXTextBookmark */; }; sourceControlManager = 954D7413095406B2007D9571 /* Source Control */; userBuildSettings = { @@ -169,9 +160,9 @@ }; 952DCD77096BBB11001C2316 /* VLSheetViewChords.mm */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {703, 2100}}"; - sepNavSelRange = "{4592, 34}"; - sepNavVisRect = "{{0, 1837}, {703, 261}}"; + sepNavIntBoundsRect = "{{0, 0}, {703, 2268}}"; + sepNavSelRange = "{3383, 0}"; + sepNavVisRect = "{{0, 1151}, {703, 261}}"; sepNavWindowFrame = "{{15, 92}, {763, 649}}"; }; }; @@ -218,17 +209,17 @@ }; 955E58E3095658AB0045FDA5 /* VLModel.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {704, 3080}}"; - sepNavSelRange = "{2773, 0}"; - sepNavVisRect = "{{0, 1807}, {704, 497}}"; + sepNavIntBoundsRect = "{{0, 0}, {644, 2170}}"; + sepNavSelRange = "{4342, 0}"; + sepNavVisRect = "{{0, 1726}, {633, 146}}"; sepNavWindowFrame = "{{203, 40}, {763, 649}}"; }; }; 955E58E4095658AB0045FDA5 /* VLModel.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {704, 3976}}"; - sepNavSelRange = "{4436, 0}"; - sepNavVisRect = "{{0, 2758}, {704, 497}}"; + sepNavIntBoundsRect = "{{0, 0}, {806, 6118}}"; + sepNavSelRange = "{10226, 0}"; + sepNavVisRect = "{{0, 4813}, {704, 497}}"; sepNavWindowFrame = "{{256, 62}, {763, 649}}"; }; }; @@ -309,11 +300,35 @@ sepNavWindowFrame = "{{120, 85}, {763, 649}}"; }; }; + 95B042F40ACE42E800236B52 /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = 95BDA15809540BF1009F9D65 /* VLSheetView.mm */; + }; + 95B042F90ACE431A00236B52 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 95BDA15809540BF1009F9D65 /* VLSheetView.mm */; + name = "VLSheetView.mm: 244"; + rLen = 0; + rLoc = 5713; + rType = 0; + vrLen = 966; + vrLoc = 5150; + }; + 95B043000ACE435E00236B52 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 95BDA15809540BF1009F9D65 /* VLSheetView.mm */; + name = "VLSheetView.mm: 181"; + rLen = 0; + rLoc = 3996; + rType = 0; + vrLen = 1309; + vrLoc = 3259; + }; 95B66653096BC6A100FE18C9 /* VLSheetViewInternal.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {724, 520}}"; - sepNavSelRange = "{792, 0}"; - sepNavVisRect = "{{0, 0}, {724, 520}}"; + sepNavIntBoundsRect = "{{0, 0}, {704, 497}}"; + sepNavSelRange = "{422, 0}"; + sepNavVisRect = "{{0, 0}, {704, 497}}"; sepNavWindowFrame = "{{15, 92}, {763, 649}}"; }; }; @@ -327,9 +342,9 @@ }; 95B66657096BCA1F00FE18C9 /* VLSheetViewNotes.mm */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {704, 3976}}"; - sepNavSelRange = "{5055, 0}"; - sepNavVisRect = "{{0, 2576}, {704, 497}}"; + sepNavIntBoundsRect = "{{0, 0}, {703, 2660}}"; + sepNavSelRange = "{8068, 0}"; + sepNavVisRect = "{{0, 1965}, {703, 238}}"; sepNavWindowFrame = "{{38, 71}, {763, 649}}"; }; }; @@ -346,134 +361,23 @@ hitCount = 0; ignoreCount = 0; lineNumber = 21; - modificationTime = 179740227.391068; + modificationTime = 181290725.024457; state = 2; }; 95BDA15709540BF1009F9D65 /* VLSheetView.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {704, 1134}}"; - sepNavSelRange = "{1065, 16}"; - sepNavVisRect = "{{0, 472}, {704, 520}}"; + sepNavIntBoundsRect = "{{0, 0}, {704, 1190}}"; + sepNavSelRange = "{848, 0}"; + sepNavVisRect = "{{0, 313}, {704, 497}}"; sepNavWindowFrame = "{{242, 97}, {763, 649}}"; }; }; 95BDA15809540BF1009F9D65 /* VLSheetView.mm */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {704, 3626}}"; - sepNavSelRange = "{7591, 0}"; - sepNavVisRect = "{{0, 3106}, {704, 520}}"; + sepNavIntBoundsRect = "{{0, 0}, {704, 5208}}"; + sepNavSelRange = "{3996, 0}"; + sepNavVisRect = "{{0, 2269}, {704, 497}}"; sepNavWindowFrame = "{{164, 35}, {763, 649}}"; }; }; - 95D1F80B0AB68D3B00EE6AC8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 95BDA15709540BF1009F9D65 /* VLSheetView.h */; - name = "VLSheetView.h: 57"; - rLen = 0; - rLoc = 1134; - rType = 0; - vrLen = 829; - vrLoc = 672; - }; - 95D1F82B0AB693AE00EE6AC8 /* PBXBookmark */ = { - isa = PBXBookmark; - fRef = 95BDA15809540BF1009F9D65 /* VLSheetView.mm */; - }; - 95D1F84C0AB6960700EE6AC8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 952DCD77096BBB11001C2316 /* VLSheetViewChords.mm */; - name = "VLSheetViewChords.mm: 164"; - rLen = 0; - rLoc = 4620; - rType = 0; - vrLen = 839; - vrLoc = 3237; - }; - 95D1F8530AB6967E00EE6AC8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 952DCD77096BBB11001C2316 /* VLSheetViewChords.mm */; - name = "VLSheetViewChords.mm: 116"; - rLen = 0; - rLoc = 3410; - rType = 0; - vrLen = 971; - vrLoc = 2859; - }; - 95D1F8540AB6967E00EE6AC8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 95BDA15809540BF1009F9D65 /* VLSheetView.mm */; - rLen = 0; - rLoc = 326; - rType = 1; - }; - 95D1F8550AB6967E00EE6AC8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 95BDA15809540BF1009F9D65 /* VLSheetView.mm */; - name = "VLSheetView.mm: 317"; - rLen = 0; - rLoc = 7520; - rType = 0; - vrLen = 758; - vrLoc = 7108; - }; - 95D1F8560AB6967E00EE6AC8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 952DCD77096BBB11001C2316 /* VLSheetViewChords.mm */; - name = "VLSheetViewChords.mm: 116"; - rLen = 0; - rLoc = 3410; - rType = 0; - vrLen = 971; - vrLoc = 2859; - }; - 95D1F86A0AB6970400EE6AC8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 952DCD76096BBB11001C2316 /* VLSheetViewChords.h */; - name = "VLSheetViewChords.h: 11"; - rLen = 35; - rLoc = 184; - rType = 0; - vrLen = 290; - vrLoc = 0; - }; - 95D1F8BD0AB69F2F00EE6AC8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 95BDA15809540BF1009F9D65 /* VLSheetView.mm */; - name = "VLSheetView.mm: 318"; - rLen = 0; - rLoc = 7591; - rType = 0; - vrLen = 766; - vrLoc = 7108; - }; - 95D1F8BE0AB69F2F00EE6AC8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 952DCD76096BBB11001C2316 /* VLSheetViewChords.h */; - name = "VLSheetViewChords.h: 11"; - rLen = 35; - rLoc = 184; - rType = 0; - vrLen = 290; - vrLoc = 0; - }; - 95D1F8BF0AB69F2F00EE6AC8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 95BDA15809540BF1009F9D65 /* VLSheetView.mm */; - name = "VLSheetView.mm: 327"; - rLen = 0; - rLoc = 7785; - rType = 0; - vrLen = 786; - vrLoc = 7088; - }; - 95D1F8C00AB69F2F00EE6AC8 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 95BDA15709540BF1009F9D65 /* VLSheetView.h */; - name = "VLSheetView.h: 55"; - rLen = 16; - rLoc = 1065; - rType = 0; - vrLen = 925; - vrLoc = 566; - }; }