mirror of
https://github.com/microtherion/VocalEasel.git
synced 2024-12-22 11:14:00 +00:00
Switch to multi-line layout
This commit is contained in:
parent
7daabcb8b0
commit
925f3d1b28
6
English.lproj/VLDocument.nib/info.nib
generated
6
English.lproj/VLDocument.nib/info.nib
generated
|
@ -3,14 +3,14 @@
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
<key>IBDocumentLocation</key>
|
<key>IBDocumentLocation</key>
|
||||||
<string>44 14 356 240 0 0 1024 746 </string>
|
<string>36 103 356 240 0 0 1024 746 </string>
|
||||||
<key>IBFramework Version</key>
|
<key>IBFramework Version</key>
|
||||||
<string>451.0</string>
|
<string>452.0</string>
|
||||||
<key>IBOpenObjects</key>
|
<key>IBOpenObjects</key>
|
||||||
<array>
|
<array>
|
||||||
<integer>5</integer>
|
<integer>5</integer>
|
||||||
</array>
|
</array>
|
||||||
<key>IBSystem Version</key>
|
<key>IBSystem Version</key>
|
||||||
<string>9A255</string>
|
<string>9A274</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|
BIN
English.lproj/VLDocument.nib/keyedobjects.nib
generated
BIN
English.lproj/VLDocument.nib/keyedobjects.nib
generated
Binary file not shown.
|
@ -354,13 +354,13 @@ VLSong::VLSong()
|
||||||
VLProperties defaultProperties = {fourFour, 0, 1, 3};
|
VLProperties defaultProperties = {fourFour, 0, 1, 3};
|
||||||
|
|
||||||
fProperties.push_back(defaultProperties);
|
fProperties.push_back(defaultProperties);
|
||||||
fMeasures.resize(33); // Leadin, AABA
|
fMeasures.resize(32); // Leadin, AABA
|
||||||
|
|
||||||
VLNote rest = VLRest(1);
|
VLNote rest = VLRest(1);
|
||||||
VLChord rchord;
|
VLChord rchord;
|
||||||
rchord.fDuration = 1;
|
rchord.fDuration = 1;
|
||||||
|
|
||||||
for (int i=0; i<33; ++i) {
|
for (int i=0; i<32; ++i) {
|
||||||
fMeasures[i].fProperties = &fProperties.front();
|
fMeasures[i].fProperties = &fProperties.front();
|
||||||
fMeasures[i].fChords.push_back(rchord);
|
fMeasures[i].fChords.push_back(rchord);
|
||||||
fMeasures[i].fMelody.push_back(rest);
|
fMeasures[i].fMelody.push_back(rest);
|
||||||
|
|
|
@ -212,6 +212,8 @@ struct VLSong {
|
||||||
void AddNote(VLNote note, size_t measure, VLFraction at);
|
void AddNote(VLNote note, size_t measure, VLFraction at);
|
||||||
void DelChord(size_t measure, VLFraction at);
|
void DelChord(size_t measure, VLFraction at);
|
||||||
void DelNote(size_t measure, VLFraction at);
|
void DelNote(size_t measure, VLFraction at);
|
||||||
|
|
||||||
|
size_t CountMeasures() const { return fMeasures.size(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
// Local Variables:
|
// Local Variables:
|
||||||
|
|
|
@ -38,12 +38,15 @@ enum VLMusicElement {
|
||||||
BOOL showFieldEditor;
|
BOOL showFieldEditor;
|
||||||
float clefKeyW;
|
float clefKeyW;
|
||||||
float measureW;
|
float measureW;
|
||||||
|
float lineH;
|
||||||
int groups;
|
int groups;
|
||||||
int quarterBeats;
|
int quarterBeats;
|
||||||
int divPerGroup;
|
int divPerGroup;
|
||||||
int firstMeasure;
|
int firstMeasure;
|
||||||
int lastMeasure;
|
int lastMeasure;
|
||||||
int visibleMeasures;
|
int measuresPerSystem;
|
||||||
|
int numSystems;
|
||||||
|
float displayScale;
|
||||||
NSImageRep * noteCursorCache;
|
NSImageRep * noteCursorCache;
|
||||||
NSPoint noteCursorLocation;
|
NSPoint noteCursorLocation;
|
||||||
NSPoint lastNoteCenter;
|
NSPoint lastNoteCenter;
|
||||||
|
@ -70,6 +73,7 @@ enum VLMusicElement {
|
||||||
- (VLSong *) song;
|
- (VLSong *) song;
|
||||||
- (NSImage *) musicElement:(VLMusicElement)elt;
|
- (NSImage *) musicElement:(VLMusicElement)elt;
|
||||||
|
|
||||||
|
- (float) systemY:(int)system;
|
||||||
- (float) noteYWithPitch:(int)pitch;
|
- (float) noteYWithPitch:(int)pitch;
|
||||||
- (float) noteXInMeasure:(int)measure at:(VLFraction)at;
|
- (float) noteXInMeasure:(int)measure at:(VLFraction)at;
|
||||||
|
|
||||||
|
|
|
@ -40,23 +40,23 @@ static NSString * sElementNames[kMusicElements] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static float sSharpPos[] = {
|
static float sSharpPos[] = {
|
||||||
kLineY+4.0f*kLineH, // F#
|
4.0f*kLineH, // F#
|
||||||
kLineY+2.5f*kLineH, // C#
|
2.5f*kLineH, // C#
|
||||||
kLineY+4.5f*kLineH, // G#
|
4.5f*kLineH, // G#
|
||||||
kLineY+3.0f*kLineH, // D#
|
3.0f*kLineH, // D#
|
||||||
kLineY+1.5f*kLineH, // A#
|
1.5f*kLineH, // A#
|
||||||
kLineY+3.5f*kLineH, // E#
|
3.5f*kLineH, // E#
|
||||||
kLineY+2.0f*kLineH, // B#
|
2.0f*kLineH, // B#
|
||||||
};
|
};
|
||||||
|
|
||||||
static float sFlatPos[] = {
|
static float sFlatPos[] = {
|
||||||
kLineY+2.0f*kLineH, // Bb
|
2.0f*kLineH, // Bb
|
||||||
kLineY+3.5f*kLineH, // Eb
|
3.5f*kLineH, // Eb
|
||||||
kLineY+1.5f*kLineH, // Ab
|
1.5f*kLineH, // Ab
|
||||||
kLineY+3.0f*kLineH, // Db
|
3.0f*kLineH, // Db
|
||||||
kLineY+1.0f*kLineH, // Gb
|
1.0f*kLineH, // Gb
|
||||||
kLineY+2.5f*kLineH, // Cb
|
2.5f*kLineH, // Cb
|
||||||
kLineY+0.5f*kLineH, // Fb
|
0.5f*kLineH, // Fb
|
||||||
};
|
};
|
||||||
|
|
||||||
- (id)initWithFrame:(NSRect)frame
|
- (id)initWithFrame:(NSRect)frame
|
||||||
|
@ -80,6 +80,7 @@ static float sFlatPos[] = {
|
||||||
}
|
}
|
||||||
needsRecalc = YES;
|
needsRecalc = YES;
|
||||||
showFieldEditor = NO;
|
showFieldEditor = NO;
|
||||||
|
displayScale = 1.0f;
|
||||||
firstMeasure = 0;
|
firstMeasure = 0;
|
||||||
noteRectTracker = 0;
|
noteRectTracker = 0;
|
||||||
noteCursorCache = nil;
|
noteCursorCache = nil;
|
||||||
|
@ -103,13 +104,20 @@ static float sFlatPos[] = {
|
||||||
return sMusic[elt];
|
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
|
- (float) noteYWithPitch:(int)pitch
|
||||||
{
|
{
|
||||||
int semi = pitch % 12;
|
int semi = pitch % 12;
|
||||||
int octave = (pitch / 12) - 5;
|
int octave = (pitch / 12) - 5;
|
||||||
bool useSharps = [self song]->fProperties.front().fKey >= 0;
|
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;
|
float sharp = useSharps ? 0.0f : 0.5f*kLineH;
|
||||||
|
|
||||||
switch (semi) {
|
switch (semi) {
|
||||||
|
@ -156,6 +164,10 @@ static float sFlatPos[] = {
|
||||||
{
|
{
|
||||||
needsRecalc = NO;
|
needsRecalc = NO;
|
||||||
|
|
||||||
|
NSSize contentSz = [[self enclosingScrollView] contentSize];
|
||||||
|
contentSz.width /= displayScale;
|
||||||
|
contentSz.height/= displayScale;
|
||||||
|
|
||||||
const VLSong * song = [self song];
|
const VLSong * song = [self song];
|
||||||
const VLProperties & prop = song->fProperties.front();
|
const VLProperties & prop = song->fProperties.front();
|
||||||
|
|
||||||
|
@ -164,18 +176,12 @@ static float sFlatPos[] = {
|
||||||
divPerGroup = prop.fDivisions * (quarterBeats / groups);
|
divPerGroup = prop.fDivisions * (quarterBeats / groups);
|
||||||
clefKeyW = kClefX+kClefW+(std::labs(prop.fKey)+1)*kKeyW;
|
clefKeyW = kClefX+kClefW+(std::labs(prop.fKey)+1)*kKeyW;
|
||||||
measureW = groups*(divPerGroup+1)*kNoteW;
|
measureW = groups*(divPerGroup+1)*kNoteW;
|
||||||
visibleMeasures = (int)std::floor(([self bounds].size.width - clefKeyW)
|
measuresPerSystem =
|
||||||
/ measureW);
|
(int)std::floor((contentSz.width - clefKeyW) / measureW);
|
||||||
[self setValue:
|
numSystems = (song->CountMeasures()+measuresPerSystem-1)/measuresPerSystem;
|
||||||
[NSNumber numberWithInt:
|
contentSz.height = numSystems*kSystemH;
|
||||||
std::max((int)song->fMeasures.size()-visibleMeasures, 0)]
|
|
||||||
forKey: @"lastMeasure"];
|
|
||||||
if (firstMeasure > lastMeasure)
|
|
||||||
[self setValue: [NSNumber numberWithInt:lastMeasure]
|
|
||||||
forKey: @"firstMeasure"];
|
|
||||||
|
|
||||||
[self setupChords];
|
|
||||||
|
|
||||||
|
#if 0
|
||||||
noteRect = NSMakeRect(clefKeyW, kLineY-kMaxLedgers*kLineH,
|
noteRect = NSMakeRect(clefKeyW, kLineY-kMaxLedgers*kLineH,
|
||||||
visibleMeasures*measureW,
|
visibleMeasures*measureW,
|
||||||
(4.0f+2.0f*kMaxLedgers)*kLineH);
|
(4.0f+2.0f*kMaxLedgers)*kLineH);
|
||||||
|
@ -188,11 +194,27 @@ static float sFlatPos[] = {
|
||||||
noteRectTracker = [self addTrackingRect:noteRect owner:self
|
noteRectTracker = [self addTrackingRect:noteRect owner:self
|
||||||
userData:nil assumeInside:inNoteRect];
|
userData:nil assumeInside:inNoteRect];
|
||||||
[[self window] setAcceptsMouseMovedEvents:inNoteRect];
|
[[self window] setAcceptsMouseMovedEvents:inNoteRect];
|
||||||
|
#endif
|
||||||
|
|
||||||
[[self window] makeFirstResponder:self];
|
[[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
|
- (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 VLSong * song = [self song];
|
||||||
const VLProperties & prop = song->fProperties.front();
|
const VLProperties & prop = song->fProperties.front();
|
||||||
|
|
||||||
|
@ -204,12 +226,15 @@ static float sFlatPos[] = {
|
||||||
[bz setLineWidth:0.0];
|
[bz setLineWidth:0.0];
|
||||||
if (needsRecalc)
|
if (needsRecalc)
|
||||||
[self recalculateDimensions];
|
[self recalculateDimensions];
|
||||||
for (int line = 0; line<5; ++line) {
|
for (int system = 0; system<numSystems; ++system) {
|
||||||
const float x0 = kLineX;
|
float kLineY = [self systemY:system];
|
||||||
const float xx = x0 + clefKeyW + visibleMeasures*measureW;
|
for (int line = 0; line<5; ++line) {
|
||||||
const float y = kLineY+line*kLineH;
|
const float x0 = kLineX;
|
||||||
[bz moveToPoint: NSMakePoint(x0, y)];
|
const float xx = x0 + clefKeyW + measuresPerSystem*measureW;
|
||||||
[bz lineToPoint: NSMakePoint(xx, y)];
|
const float y = kLineY+line*kLineH;
|
||||||
|
[bz moveToPoint: NSMakePoint(x0, y)];
|
||||||
|
[bz lineToPoint: NSMakePoint(xx, y)];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
[bz stroke];
|
[bz stroke];
|
||||||
[bz removeAllPoints];
|
[bz removeAllPoints];
|
||||||
|
@ -217,11 +242,14 @@ static float sFlatPos[] = {
|
||||||
// Draw measure lines
|
// Draw measure lines
|
||||||
//
|
//
|
||||||
[bz setLineWidth:2.0];
|
[bz setLineWidth:2.0];
|
||||||
for (int measure = 0; measure<=visibleMeasures; ++measure) {
|
for (int system = 0; system<numSystems; ++system) {
|
||||||
const float x = clefKeyW+measure*measureW;
|
float kLineY = [self systemY:system];
|
||||||
const float yy = kLineY+4.0f*kLineH;
|
for (int measure = 0; measure<=measuresPerSystem; ++measure) {
|
||||||
[bz moveToPoint: NSMakePoint(x, kLineY)];
|
const float x = clefKeyW+measure*measureW;
|
||||||
[bz lineToPoint: NSMakePoint(x, yy)];
|
const float yy = kLineY+4.0f*kLineH;
|
||||||
|
[bz moveToPoint: NSMakePoint(x, kLineY)];
|
||||||
|
[bz lineToPoint: NSMakePoint(x, yy)];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
[bz stroke];
|
[bz stroke];
|
||||||
[bz removeAllPoints];
|
[bz removeAllPoints];
|
||||||
|
@ -231,44 +259,56 @@ static float sFlatPos[] = {
|
||||||
//
|
//
|
||||||
[bz setLineWidth:0.0];
|
[bz setLineWidth:0.0];
|
||||||
[[NSColor colorWithDeviceWhite:0.8f alpha:1.0f] set];
|
[[NSColor colorWithDeviceWhite:0.8f alpha:1.0f] set];
|
||||||
for (int measure = 0; measure<visibleMeasures; ++measure) {
|
for (int system = 0; system<numSystems; ++system) {
|
||||||
const float mx = clefKeyW+measure*measureW;
|
float kLineY = [self systemY:system];
|
||||||
const float y0 = kLineY-2.0f*kLineH;
|
for (int measure = 0; measure<measuresPerSystem; ++measure) {
|
||||||
const float yy = kLineY+6.0f*kLineH;
|
const float mx = clefKeyW+measure*measureW;
|
||||||
for (int group = 0; group < groups; ++group) {
|
const float y0 = kLineY-2.0f*kLineH;
|
||||||
for (int div = 0; div < divPerGroup; ++div) {
|
const float yy = kLineY+6.0f*kLineH;
|
||||||
const float x = mx+(group*(divPerGroup+1)+div+1)*kNoteW;
|
for (int group = 0; group < groups; ++group) {
|
||||||
[bz moveToPoint: NSMakePoint(x, y0)];
|
for (int div = 0; div < divPerGroup; ++div) {
|
||||||
[bz lineToPoint: NSMakePoint(x, yy)];
|
const float x = mx+(group*(divPerGroup+1)+div+1)*kNoteW;
|
||||||
|
[bz moveToPoint: NSMakePoint(x, y0)];
|
||||||
|
[bz lineToPoint: NSMakePoint(x, yy)];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[bz stroke];
|
[bz stroke];
|
||||||
|
|
||||||
//
|
for (int system = 0; system<numSystems; ++system) {
|
||||||
// Draw clef
|
float kLineY = [self systemY:system];
|
||||||
//
|
//
|
||||||
[[self musicElement:kMusicGClef]
|
// Draw clef
|
||||||
compositeToPoint:NSMakePoint(kClefX, kClefY)
|
//
|
||||||
operation: NSCompositeSourceOver];
|
[[self musicElement:kMusicGClef]
|
||||||
//
|
compositeToPoint: NSMakePoint(kClefX, kLineY+kClefY)
|
||||||
// Draw key (sharps & flats)
|
operation: NSCompositeSourceOver];
|
||||||
//
|
//
|
||||||
if (prop.fKey > 0) {
|
// Draw measure #
|
||||||
float x = kClefX+kClefW;
|
//
|
||||||
for (int i=0; i<prop.fKey; ++i) {
|
[[NSString stringWithFormat:@"%d", system*measuresPerSystem+1]
|
||||||
[[self musicElement:kMusicSharp] compositeToPoint:
|
drawAtPoint: NSMakePoint(kMeasNoX, kLineY+kMeasNoY)
|
||||||
NSMakePoint(x, sSharpPos[i]+kSharpY)
|
withAttributes: sMeasNoFont];
|
||||||
operation: NSCompositeSourceOver];
|
//
|
||||||
x += kAccW;
|
// Draw key (sharps & flats)
|
||||||
}
|
//
|
||||||
} else if (prop.fKey < 0) {
|
if (prop.fKey > 0) {
|
||||||
float x = kClefX+kClefW;
|
float x = kClefX+kClefW;
|
||||||
for (int i=0; -i>prop.fKey; ++i) {
|
for (int i=0; i<prop.fKey; ++i) {
|
||||||
[[self musicElement: kMusicFlat] compositeToPoint:
|
[[self musicElement:kMusicSharp]
|
||||||
NSMakePoint(x, sFlatPos[i]+kFlatY)
|
compositeToPoint: NSMakePoint(x, kLineY+sSharpPos[i]+kSharpY)
|
||||||
operation: NSCompositeSourceOver];
|
operation: NSCompositeSourceOver];
|
||||||
x += kAccW;
|
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, kLineY+sFlatPos[i]+kFlatY)
|
||||||
|
operation: NSCompositeSourceOver];
|
||||||
|
x += kAccW;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -68,6 +68,7 @@
|
||||||
|
|
||||||
- (void) setupChords
|
- (void) setupChords
|
||||||
{
|
{
|
||||||
|
#if 0
|
||||||
const VLSong * song = [self song];
|
const VLSong * song = [self song];
|
||||||
const VLProperties & prop = song->fProperties.front();
|
const VLProperties & prop = song->fProperties.front();
|
||||||
NSView * chordView = [chords contentView];
|
NSView * chordView = [chords contentView];
|
||||||
|
@ -110,6 +111,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[chords setNeedsDisplay: YES];
|
[chords setNeedsDisplay: YES];
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction) editChord:(id)sender
|
- (IBAction) editChord:(id)sender
|
||||||
|
|
|
@ -7,11 +7,14 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
const float kLineX = 5;
|
const float kLineX = 5;
|
||||||
const float kLineY = 90.5;
|
|
||||||
const float kLineH = 10;
|
const float kLineH = 10;
|
||||||
|
const float kSystemH = 15.0f*kLineH;
|
||||||
|
const float kSystemY = 3.0f*kLineH;
|
||||||
const float kClefX = 20.5f;
|
const float kClefX = 20.5f;
|
||||||
const float kClefY = 75.0f;
|
const float kClefY =-15.0f;
|
||||||
const float kClefW = 30.0f;
|
const float kClefW = 30.0f;
|
||||||
|
const float kMeasNoX = 10.0f;
|
||||||
|
const float kMeasNoY = 4.5f*kLineH;
|
||||||
const float kNoteW = 12.0f;
|
const float kNoteW = 12.0f;
|
||||||
const float kKeyW = 10.0f;
|
const float kKeyW = 10.0f;
|
||||||
const float kAccW = 10.0f;
|
const float kAccW = 10.0f;
|
||||||
|
|
|
@ -253,56 +253,61 @@ static int sSemiToPitch[] = {
|
||||||
VLFraction swung(3, prop.fDivisions*8, true); // Which notes to swing
|
VLFraction swung(3, prop.fDivisions*8, true); // Which notes to swing
|
||||||
VLFraction swingGrid(2*swung); // Alignment of swing notes
|
VLFraction swingGrid(2*swung); // Alignment of swing notes
|
||||||
|
|
||||||
for (int m = 0; m<visibleMeasures; ++m) {
|
for (int system = 0; system<numSystems; ++system) {
|
||||||
int measIdx = m+firstMeasure;
|
float kLineY = [self systemY:system];
|
||||||
const VLMeasure measure = song->fMeasures[measIdx];
|
for (int m = 0; m<measuresPerSystem; ++m) {
|
||||||
const VLNoteList & melody = measure.fMelody;
|
int measIdx = m+system*measuresPerSystem;
|
||||||
VLFraction at(0);
|
if (measIdx >= song->CountMeasures())
|
||||||
for (VLNoteList::const_iterator note = melody.begin();
|
break;
|
||||||
note != melody.end();
|
const VLMeasure measure = song->fMeasures[measIdx];
|
||||||
++note
|
const VLNoteList & melody = measure.fMelody;
|
||||||
) {
|
VLFraction at(0);
|
||||||
VLFraction dur = note->fDuration;
|
for (VLNoteList::const_iterator note = melody.begin();
|
||||||
BOOL first = !m || !note->fTied;
|
note != melody.end();
|
||||||
int pitch = note->fPitch;
|
++note
|
||||||
while (dur > 0) {
|
) {
|
||||||
VLFraction partialDur; // Actual value of note drawn
|
VLFraction dur = note->fDuration;
|
||||||
measure.fProperties->PartialNote(at, dur, &partialDur);
|
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);
|
BOOL triplet = !(partialDur.fDenom % 3);
|
||||||
VLFraction noteDur(1); // Visual value of note
|
VLFraction noteDur(1); // Visual value of note
|
||||||
|
|
||||||
if (triplet) {
|
if (triplet) {
|
||||||
if (swing) { // Swing 8ths / 16ths are written as straight 8ths
|
if (swing) { // Swing 8ths / 16ths are written as straight 8ths
|
||||||
if (partialDur == 4*swung/3 && (at % swingGrid) == 0) {
|
if (partialDur == 4*swung/3 && (at % swingGrid) == 0) {
|
||||||
noteDur = swung;
|
noteDur = swung;
|
||||||
triplet = NO;
|
triplet = NO;
|
||||||
} else if (partialDur == 2*swung/3 && ((at+partialDur) % swingGrid) == 0) {
|
} else if (partialDur == 2*swung/3 && ((at+partialDur) % swingGrid) == 0) {
|
||||||
noteDur = swung;
|
noteDur = swung;
|
||||||
triplet = NO;
|
triplet = NO;
|
||||||
|
} else {
|
||||||
|
noteDur = 4*partialDur/3;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
noteDur = 4*partialDur/3;
|
noteDur = 4*partialDur/3;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
noteDur = 4*partialDur/3;
|
noteDur = partialDur;
|
||||||
}
|
}
|
||||||
} else {
|
if (pitch != VLNote::kNoPitch)
|
||||||
noteDur = partialDur;
|
[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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -196,120 +196,15 @@
|
||||||
<array/>
|
<array/>
|
||||||
<key>OpenEditors</key>
|
<key>OpenEditors</key>
|
||||||
<array>
|
<array>
|
||||||
<dict>
|
|
||||||
<key>Content</key>
|
|
||||||
<dict>
|
|
||||||
<key>PBXProjectModuleGUID</key>
|
|
||||||
<string>95D1F8310AB694EC00EE6AC8</string>
|
|
||||||
<key>PBXProjectModuleLabel</key>
|
|
||||||
<string>VLSheetView.mm</string>
|
|
||||||
<key>PBXSplitModuleInNavigatorKey</key>
|
|
||||||
<dict>
|
|
||||||
<key>Split0</key>
|
|
||||||
<dict>
|
|
||||||
<key>PBXProjectModuleGUID</key>
|
|
||||||
<string>95D1F8320AB694EC00EE6AC8</string>
|
|
||||||
<key>PBXProjectModuleLabel</key>
|
|
||||||
<string>VLSheetView.mm</string>
|
|
||||||
<key>_historyCapacity</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>bookmark</key>
|
|
||||||
<string>95D1F8BD0AB69F2F00EE6AC8</string>
|
|
||||||
<key>history</key>
|
|
||||||
<array>
|
|
||||||
<string>95D1F82B0AB693AE00EE6AC8</string>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
<key>SplitCount</key>
|
|
||||||
<string>1</string>
|
|
||||||
</dict>
|
|
||||||
<key>StatusBarVisibility</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>Geometry</key>
|
|
||||||
<dict>
|
|
||||||
<key>Frame</key>
|
|
||||||
<string>{{0, 20}, {763, 552}}</string>
|
|
||||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
|
||||||
<false/>
|
|
||||||
<key>RubberWindowFrame</key>
|
|
||||||
<string>164 91 763 593 0 0 1024 746 </string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Content</key>
|
|
||||||
<dict>
|
|
||||||
<key>PBXProjectModuleGUID</key>
|
|
||||||
<string>95D1F8130AB6908400EE6AC8</string>
|
|
||||||
<key>PBXProjectModuleLabel</key>
|
|
||||||
<string>VLSheetViewChords.h</string>
|
|
||||||
<key>PBXSplitModuleInNavigatorKey</key>
|
|
||||||
<dict>
|
|
||||||
<key>Split0</key>
|
|
||||||
<dict>
|
|
||||||
<key>PBXProjectModuleGUID</key>
|
|
||||||
<string>95D1F8140AB6908400EE6AC8</string>
|
|
||||||
<key>PBXProjectModuleLabel</key>
|
|
||||||
<string>VLSheetViewChords.h</string>
|
|
||||||
<key>_historyCapacity</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>bookmark</key>
|
|
||||||
<string>95D1F8BE0AB69F2F00EE6AC8</string>
|
|
||||||
<key>history</key>
|
|
||||||
<array>
|
|
||||||
<string>95D1F86A0AB6970400EE6AC8</string>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
<key>SplitCount</key>
|
|
||||||
<string>1</string>
|
|
||||||
</dict>
|
|
||||||
<key>StatusBarVisibility</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>Geometry</key>
|
|
||||||
<dict>
|
|
||||||
<key>Frame</key>
|
|
||||||
<string>{{0, 20}, {763, 552}}</string>
|
|
||||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
|
||||||
<false/>
|
|
||||||
<key>RubberWindowFrame</key>
|
|
||||||
<string>186 75 763 593 0 0 1024 746 </string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
<dict>
|
||||||
<key>Content</key>
|
<key>Content</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>PBXProjectModuleGUID</key>
|
<key>PBXProjectModuleGUID</key>
|
||||||
<string>95D1F82E0AB694EC00EE6AC8</string>
|
<string>95D1F82E0AB694EC00EE6AC8</string>
|
||||||
<key>PBXProjectModuleLabel</key>
|
<key>PBXProjectModuleLabel</key>
|
||||||
<string>VLSheetView.mm</string>
|
<string><No Editor></string>
|
||||||
<key>PBXSplitModuleInNavigatorKey</key>
|
<key>PBXSplitModuleInNavigatorKey</key>
|
||||||
<dict>
|
<dict/>
|
||||||
<key>Split0</key>
|
|
||||||
<dict>
|
|
||||||
<key>PBXProjectModuleGUID</key>
|
|
||||||
<string>95D1F82F0AB694EC00EE6AC8</string>
|
|
||||||
<key>PBXProjectModuleLabel</key>
|
|
||||||
<string>VLSheetView.mm</string>
|
|
||||||
<key>_historyCapacity</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>bookmark</key>
|
|
||||||
<string>95D1F8BF0AB69F2F00EE6AC8</string>
|
|
||||||
<key>history</key>
|
|
||||||
<array>
|
|
||||||
<string>95D1F8530AB6967E00EE6AC8</string>
|
|
||||||
<string>95D1F8540AB6967E00EE6AC8</string>
|
|
||||||
</array>
|
|
||||||
<key>prevStack</key>
|
|
||||||
<array>
|
|
||||||
<string>95D1F84C0AB6960700EE6AC8</string>
|
|
||||||
<string>95D1F8550AB6967E00EE6AC8</string>
|
|
||||||
<string>95D1F8560AB6967E00EE6AC8</string>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
<key>SplitCount</key>
|
|
||||||
<string>1</string>
|
|
||||||
</dict>
|
|
||||||
<key>StatusBarVisibility</key>
|
<key>StatusBarVisibility</key>
|
||||||
<true/>
|
<true/>
|
||||||
</dict>
|
</dict>
|
||||||
|
@ -329,27 +224,9 @@
|
||||||
<key>PBXProjectModuleGUID</key>
|
<key>PBXProjectModuleGUID</key>
|
||||||
<string>95D1F7FE0AB68C8C00EE6AC8</string>
|
<string>95D1F7FE0AB68C8C00EE6AC8</string>
|
||||||
<key>PBXProjectModuleLabel</key>
|
<key>PBXProjectModuleLabel</key>
|
||||||
<string>VLSheetView.h</string>
|
<string><No Editor></string>
|
||||||
<key>PBXSplitModuleInNavigatorKey</key>
|
<key>PBXSplitModuleInNavigatorKey</key>
|
||||||
<dict>
|
<dict/>
|
||||||
<key>Split0</key>
|
|
||||||
<dict>
|
|
||||||
<key>PBXProjectModuleGUID</key>
|
|
||||||
<string>95D1F7FF0AB68C8C00EE6AC8</string>
|
|
||||||
<key>PBXProjectModuleLabel</key>
|
|
||||||
<string>VLSheetView.h</string>
|
|
||||||
<key>_historyCapacity</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>bookmark</key>
|
|
||||||
<string>95D1F8C00AB69F2F00EE6AC8</string>
|
|
||||||
<key>history</key>
|
|
||||||
<array>
|
|
||||||
<string>95D1F80B0AB68D3B00EE6AC8</string>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
<key>SplitCount</key>
|
|
||||||
<string>1</string>
|
|
||||||
</dict>
|
|
||||||
<key>StatusBarVisibility</key>
|
<key>StatusBarVisibility</key>
|
||||||
<true/>
|
<true/>
|
||||||
</dict>
|
</dict>
|
||||||
|
@ -363,6 +240,50 @@
|
||||||
<string>242 153 763 593 0 0 1024 746 </string>
|
<string>242 153 763 593 0 0 1024 746 </string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>Content</key>
|
||||||
|
<dict>
|
||||||
|
<key>PBXProjectModuleGUID</key>
|
||||||
|
<string>95D1F8130AB6908400EE6AC8</string>
|
||||||
|
<key>PBXProjectModuleLabel</key>
|
||||||
|
<string><No Editor></string>
|
||||||
|
<key>PBXSplitModuleInNavigatorKey</key>
|
||||||
|
<dict/>
|
||||||
|
<key>StatusBarVisibility</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>Geometry</key>
|
||||||
|
<dict>
|
||||||
|
<key>Frame</key>
|
||||||
|
<string>{{0, 20}, {763, 552}}</string>
|
||||||
|
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||||
|
<false/>
|
||||||
|
<key>RubberWindowFrame</key>
|
||||||
|
<string>186 75 763 593 0 0 1024 746 </string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>Content</key>
|
||||||
|
<dict>
|
||||||
|
<key>PBXProjectModuleGUID</key>
|
||||||
|
<string>95D1F8850AB69B6700EE6AC8</string>
|
||||||
|
<key>PBXProjectModuleLabel</key>
|
||||||
|
<string><No Editor></string>
|
||||||
|
<key>PBXSplitModuleInNavigatorKey</key>
|
||||||
|
<dict/>
|
||||||
|
<key>StatusBarVisibility</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>Geometry</key>
|
||||||
|
<dict>
|
||||||
|
<key>Frame</key>
|
||||||
|
<string>{{0, 20}, {763, 552}}</string>
|
||||||
|
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||||
|
<false/>
|
||||||
|
<key>RubberWindowFrame</key>
|
||||||
|
<string>168 116 763 593 0 0 1024 746 </string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>Content</key>
|
<key>Content</key>
|
||||||
<dict>
|
<dict>
|
||||||
|
@ -389,7 +310,7 @@
|
||||||
<key>Content</key>
|
<key>Content</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>PBXProjectModuleGUID</key>
|
<key>PBXProjectModuleGUID</key>
|
||||||
<string>95D1F8850AB69B6700EE6AC8</string>
|
<string>95D1F8310AB694EC00EE6AC8</string>
|
||||||
<key>PBXProjectModuleLabel</key>
|
<key>PBXProjectModuleLabel</key>
|
||||||
<string><No Editor></string>
|
<string><No Editor></string>
|
||||||
<key>PBXSplitModuleInNavigatorKey</key>
|
<key>PBXSplitModuleInNavigatorKey</key>
|
||||||
|
@ -404,7 +325,95 @@
|
||||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>RubberWindowFrame</key>
|
<key>RubberWindowFrame</key>
|
||||||
<string>168 116 763 593 0 0 1024 746 </string>
|
<string>164 91 763 593 0 0 1024 746 </string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>Content</key>
|
||||||
|
<dict>
|
||||||
|
<key>PBXProjectModuleGUID</key>
|
||||||
|
<string>95B042FA0ACE431A00236B52</string>
|
||||||
|
<key>PBXProjectModuleLabel</key>
|
||||||
|
<string><No Editor></string>
|
||||||
|
<key>PBXSplitModuleInNavigatorKey</key>
|
||||||
|
<dict/>
|
||||||
|
<key>StatusBarVisibility</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>Geometry</key>
|
||||||
|
<dict>
|
||||||
|
<key>Frame</key>
|
||||||
|
<string>{{0, 20}, {763, 552}}</string>
|
||||||
|
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||||
|
<false/>
|
||||||
|
<key>RubberWindowFrame</key>
|
||||||
|
<string>242 153 763 593 0 0 1024 746 </string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>Content</key>
|
||||||
|
<dict>
|
||||||
|
<key>PBXProjectModuleGUID</key>
|
||||||
|
<string>95B042F70ACE431A00236B52</string>
|
||||||
|
<key>PBXProjectModuleLabel</key>
|
||||||
|
<string><No Editor></string>
|
||||||
|
<key>PBXSplitModuleInNavigatorKey</key>
|
||||||
|
<dict/>
|
||||||
|
<key>StatusBarVisibility</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>Geometry</key>
|
||||||
|
<dict>
|
||||||
|
<key>Frame</key>
|
||||||
|
<string>{{0, 20}, {763, 552}}</string>
|
||||||
|
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||||
|
<false/>
|
||||||
|
<key>RubberWindowFrame</key>
|
||||||
|
<string>164 91 763 593 0 0 1024 746 </string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>Content</key>
|
||||||
|
<dict>
|
||||||
|
<key>PBXProjectModuleGUID</key>
|
||||||
|
<string>95B042FB0ACE431A00236B52</string>
|
||||||
|
<key>PBXProjectModuleLabel</key>
|
||||||
|
<string><No Editor></string>
|
||||||
|
<key>PBXSplitModuleInNavigatorKey</key>
|
||||||
|
<dict/>
|
||||||
|
<key>StatusBarVisibility</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>Geometry</key>
|
||||||
|
<dict>
|
||||||
|
<key>Frame</key>
|
||||||
|
<string>{{0, 20}, {763, 552}}</string>
|
||||||
|
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||||
|
<false/>
|
||||||
|
<key>RubberWindowFrame</key>
|
||||||
|
<string>242 153 763 593 0 0 1024 746 </string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>Content</key>
|
||||||
|
<dict>
|
||||||
|
<key>PBXProjectModuleGUID</key>
|
||||||
|
<string>95B042FC0ACE431A00236B52</string>
|
||||||
|
<key>PBXProjectModuleLabel</key>
|
||||||
|
<string><No Editor></string>
|
||||||
|
<key>PBXSplitModuleInNavigatorKey</key>
|
||||||
|
<dict/>
|
||||||
|
<key>StatusBarVisibility</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>Geometry</key>
|
||||||
|
<dict>
|
||||||
|
<key>Frame</key>
|
||||||
|
<string>{{0, 20}, {763, 552}}</string>
|
||||||
|
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||||
|
<false/>
|
||||||
|
<key>RubberWindowFrame</key>
|
||||||
|
<string>15 148 763 593 0 0 1024 746 </string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
|
@ -488,13 +497,13 @@
|
||||||
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
|
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
|
||||||
<array>
|
<array>
|
||||||
<array>
|
<array>
|
||||||
<integer>6</integer>
|
<integer>10</integer>
|
||||||
<integer>1</integer>
|
<integer>1</integer>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
</array>
|
</array>
|
||||||
</array>
|
</array>
|
||||||
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
|
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
|
||||||
<string>{{0, 5}, {186, 338}}</string>
|
<string>{{0, 0}, {186, 338}}</string>
|
||||||
</dict>
|
</dict>
|
||||||
<key>PBXTopSmartGroupGIDs</key>
|
<key>PBXTopSmartGroupGIDs</key>
|
||||||
<array/>
|
<array/>
|
||||||
|
@ -513,7 +522,7 @@
|
||||||
<real>186</real>
|
<real>186</real>
|
||||||
</array>
|
</array>
|
||||||
<key>RubberWindowFrame</key>
|
<key>RubberWindowFrame</key>
|
||||||
<string>167 327 690 397 0 0 1024 746 </string>
|
<string>167 326 690 397 0 0 1024 746 </string>
|
||||||
</dict>
|
</dict>
|
||||||
<key>Module</key>
|
<key>Module</key>
|
||||||
<string>PBXSmartGroupTreeModule</string>
|
<string>PBXSmartGroupTreeModule</string>
|
||||||
|
@ -550,7 +559,7 @@
|
||||||
<key>Frame</key>
|
<key>Frame</key>
|
||||||
<string>{{0, 0}, {482, 0}}</string>
|
<string>{{0, 0}, {482, 0}}</string>
|
||||||
<key>RubberWindowFrame</key>
|
<key>RubberWindowFrame</key>
|
||||||
<string>167 327 690 397 0 0 1024 746 </string>
|
<string>167 326 690 397 0 0 1024 746 </string>
|
||||||
</dict>
|
</dict>
|
||||||
<key>Module</key>
|
<key>Module</key>
|
||||||
<string>PBXNavigatorGroup</string>
|
<string>PBXNavigatorGroup</string>
|
||||||
|
@ -570,7 +579,7 @@
|
||||||
<key>Frame</key>
|
<key>Frame</key>
|
||||||
<string>{{0, 5}, {482, 351}}</string>
|
<string>{{0, 5}, {482, 351}}</string>
|
||||||
<key>RubberWindowFrame</key>
|
<key>RubberWindowFrame</key>
|
||||||
<string>167 327 690 397 0 0 1024 746 </string>
|
<string>167 326 690 397 0 0 1024 746 </string>
|
||||||
</dict>
|
</dict>
|
||||||
<key>Module</key>
|
<key>Module</key>
|
||||||
<string>XCDetailModule</string>
|
<string>XCDetailModule</string>
|
||||||
|
@ -594,9 +603,9 @@
|
||||||
</array>
|
</array>
|
||||||
<key>TableOfContents</key>
|
<key>TableOfContents</key>
|
||||||
<array>
|
<array>
|
||||||
<string>95D1F7F00AB6821400EE6AC8</string>
|
<string>95B042DA0ACE37CB00236B52</string>
|
||||||
<string>1CE0B1FE06471DED0097A5F4</string>
|
<string>1CE0B1FE06471DED0097A5F4</string>
|
||||||
<string>95D1F7F10AB6821400EE6AC8</string>
|
<string>95B042DB0ACE37CB00236B52</string>
|
||||||
<string>1CE0B20306471E060097A5F4</string>
|
<string>1CE0B20306471E060097A5F4</string>
|
||||||
<string>1CE0B20506471E060097A5F4</string>
|
<string>1CE0B20506471E060097A5F4</string>
|
||||||
</array>
|
</array>
|
||||||
|
@ -730,22 +739,27 @@
|
||||||
<integer>5</integer>
|
<integer>5</integer>
|
||||||
<key>WindowOrderList</key>
|
<key>WindowOrderList</key>
|
||||||
<array>
|
<array>
|
||||||
<string>95D1F8850AB69B6700EE6AC8</string>
|
<string>95B043090ACE46F000236B52</string>
|
||||||
<string>95D1F8660AB6970400EE6AC8</string>
|
<string>95B042FC0ACE431A00236B52</string>
|
||||||
<string>95D1F8240AB6930D00EE6AC8</string>
|
<string>95B042FB0ACE431A00236B52</string>
|
||||||
<string>95D1F8250AB6930D00EE6AC8</string>
|
<string>95B042F70ACE431A00236B52</string>
|
||||||
<string>95D1F8260AB6930D00EE6AC8</string>
|
<string>95B042FA0ACE431A00236B52</string>
|
||||||
|
<string>95B042E40ACE37CB00236B52</string>
|
||||||
|
<string>95B042E50ACE37CB00236B52</string>
|
||||||
|
<string>95B042E60ACE37CB00236B52</string>
|
||||||
<string>95D7BFC80AA6C1A500D5E02C</string>
|
<string>95D7BFC80AA6C1A500D5E02C</string>
|
||||||
<string>95D7BFC00AA6C1A500D5E02C</string>
|
<string>95D1F8310AB694EC00EE6AC8</string>
|
||||||
<string>1CD10A99069EF8BA00B06720</string>
|
<string>95D1F8660AB6970400EE6AC8</string>
|
||||||
|
<string>95D1F8850AB69B6700EE6AC8</string>
|
||||||
|
<string>95D1F8130AB6908400EE6AC8</string>
|
||||||
<string>95D1F7FE0AB68C8C00EE6AC8</string>
|
<string>95D1F7FE0AB68C8C00EE6AC8</string>
|
||||||
<string>95D1F82E0AB694EC00EE6AC8</string>
|
<string>95D1F82E0AB694EC00EE6AC8</string>
|
||||||
<string>95D1F8130AB6908400EE6AC8</string>
|
<string>95D7BFC00AA6C1A500D5E02C</string>
|
||||||
<string>95D1F8310AB694EC00EE6AC8</string>
|
<string>/Development/Vocalese/Vocalese.xcodeproj</string>
|
||||||
<string>/Users/neeri/Development/Vocalese/Vocalese.xcodeproj</string>
|
<string>1CD10A99069EF8BA00B06720</string>
|
||||||
</array>
|
</array>
|
||||||
<key>WindowString</key>
|
<key>WindowString</key>
|
||||||
<string>167 327 690 397 0 0 1024 746 </string>
|
<string>167 326 690 397 0 0 1024 746 </string>
|
||||||
<key>WindowToolsV3</key>
|
<key>WindowToolsV3</key>
|
||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
|
@ -761,12 +775,14 @@
|
||||||
<key>Dock</key>
|
<key>Dock</key>
|
||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
|
<key>BecomeActive</key>
|
||||||
|
<true/>
|
||||||
<key>ContentConfiguration</key>
|
<key>ContentConfiguration</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>PBXProjectModuleGUID</key>
|
<key>PBXProjectModuleGUID</key>
|
||||||
<string>1CD0528F0623707200166675</string>
|
<string>1CD0528F0623707200166675</string>
|
||||||
<key>PBXProjectModuleLabel</key>
|
<key>PBXProjectModuleLabel</key>
|
||||||
<string>VLSheetViewChords.mm</string>
|
<string>new_allocator.h</string>
|
||||||
<key>StatusBarVisibility</key>
|
<key>StatusBarVisibility</key>
|
||||||
<true/>
|
<true/>
|
||||||
</dict>
|
</dict>
|
||||||
|
@ -783,8 +799,6 @@
|
||||||
<string>293pt</string>
|
<string>293pt</string>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>BecomeActive</key>
|
|
||||||
<true/>
|
|
||||||
<key>ContentConfiguration</key>
|
<key>ContentConfiguration</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>PBXProjectModuleGUID</key>
|
<key>PBXProjectModuleGUID</key>
|
||||||
|
@ -824,7 +838,7 @@
|
||||||
<key>TableOfContents</key>
|
<key>TableOfContents</key>
|
||||||
<array>
|
<array>
|
||||||
<string>95D7BFC00AA6C1A500D5E02C</string>
|
<string>95D7BFC00AA6C1A500D5E02C</string>
|
||||||
<string>95D1F8220AB6930D00EE6AC8</string>
|
<string>95B042DC0ACE37CB00236B52</string>
|
||||||
<string>1CD0528F0623707200166675</string>
|
<string>1CD0528F0623707200166675</string>
|
||||||
<string>XCMainBuildResultsModuleGUID</string>
|
<string>XCMainBuildResultsModuleGUID</string>
|
||||||
</array>
|
</array>
|
||||||
|
@ -835,7 +849,7 @@
|
||||||
<key>WindowToolGUID</key>
|
<key>WindowToolGUID</key>
|
||||||
<string>95D7BFC00AA6C1A500D5E02C</string>
|
<string>95D7BFC00AA6C1A500D5E02C</string>
|
||||||
<key>WindowToolIsVisible</key>
|
<key>WindowToolIsVisible</key>
|
||||||
<false/>
|
<true/>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>FirstTimeWindowDisplayed</key>
|
<key>FirstTimeWindowDisplayed</key>
|
||||||
|
@ -866,8 +880,8 @@
|
||||||
<string>yes</string>
|
<string>yes</string>
|
||||||
<key>sizes</key>
|
<key>sizes</key>
|
||||||
<array>
|
<array>
|
||||||
<string>{{0, 0}, {308, 200}}</string>
|
<string>{{0, 0}, {308, 203}}</string>
|
||||||
<string>{{308, 0}, {386, 200}}</string>
|
<string>{{308, 0}, {386, 203}}</string>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
<key>VerticalSplitView</key>
|
<key>VerticalSplitView</key>
|
||||||
|
@ -882,8 +896,8 @@
|
||||||
<string>yes</string>
|
<string>yes</string>
|
||||||
<key>sizes</key>
|
<key>sizes</key>
|
||||||
<array>
|
<array>
|
||||||
<string>{{0, 0}, {694, 200}}</string>
|
<string>{{0, 0}, {694, 203}}</string>
|
||||||
<string>{{0, 200}, {694, 181}}</string>
|
<string>{{0, 203}, {694, 178}}</string>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
|
@ -916,7 +930,7 @@
|
||||||
<real>156</real>
|
<real>156</real>
|
||||||
</array>
|
</array>
|
||||||
<key>Frame</key>
|
<key>Frame</key>
|
||||||
<string>{{308, 0}, {386, 200}}</string>
|
<string>{{308, 0}, {386, 203}}</string>
|
||||||
<key>RubberWindowFrame</key>
|
<key>RubberWindowFrame</key>
|
||||||
<string>254 208 694 422 0 0 1024 746 </string>
|
<string>254 208 694 422 0 0 1024 746 </string>
|
||||||
</dict>
|
</dict>
|
||||||
|
@ -944,13 +958,13 @@
|
||||||
<key>TableOfContents</key>
|
<key>TableOfContents</key>
|
||||||
<array>
|
<array>
|
||||||
<string>1CD10A99069EF8BA00B06720</string>
|
<string>1CD10A99069EF8BA00B06720</string>
|
||||||
<string>95D1F7F20AB6821400EE6AC8</string>
|
<string>95B042DD0ACE37CB00236B52</string>
|
||||||
<string>1C162984064C10D400B95A72</string>
|
<string>1C162984064C10D400B95A72</string>
|
||||||
<string>95D1F7F30AB6821400EE6AC8</string>
|
<string>95B042DE0ACE37CB00236B52</string>
|
||||||
<string>95D1F7F40AB6821400EE6AC8</string>
|
<string>95B042DF0ACE37CB00236B52</string>
|
||||||
<string>95D1F7F50AB6821400EE6AC8</string>
|
<string>95B042E00ACE37CB00236B52</string>
|
||||||
<string>95D1F7F60AB6821400EE6AC8</string>
|
<string>95B042E10ACE37CB00236B52</string>
|
||||||
<string>95D1F7F70AB6821400EE6AC8</string>
|
<string>95B042E20ACE37CB00236B52</string>
|
||||||
</array>
|
</array>
|
||||||
<key>ToolbarConfiguration</key>
|
<key>ToolbarConfiguration</key>
|
||||||
<string>xcode.toolbar.config.debugV3</string>
|
<string>xcode.toolbar.config.debugV3</string>
|
||||||
|
@ -959,7 +973,7 @@
|
||||||
<key>WindowToolGUID</key>
|
<key>WindowToolGUID</key>
|
||||||
<string>1CD10A99069EF8BA00B06720</string>
|
<string>1CD10A99069EF8BA00B06720</string>
|
||||||
<key>WindowToolIsVisible</key>
|
<key>WindowToolIsVisible</key>
|
||||||
<false/>
|
<true/>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>Identifier</key>
|
<key>Identifier</key>
|
||||||
|
@ -1112,7 +1126,7 @@
|
||||||
<key>TableOfContents</key>
|
<key>TableOfContents</key>
|
||||||
<array>
|
<array>
|
||||||
<string>95D7BFC80AA6C1A500D5E02C</string>
|
<string>95D7BFC80AA6C1A500D5E02C</string>
|
||||||
<string>95D1F8230AB6930D00EE6AC8</string>
|
<string>95B042E30ACE37CB00236B52</string>
|
||||||
<string>1C78EAAC065D492600B07095</string>
|
<string>1C78EAAC065D492600B07095</string>
|
||||||
</array>
|
</array>
|
||||||
<key>WindowString</key>
|
<key>WindowString</key>
|
||||||
|
|
|
@ -62,22 +62,13 @@
|
||||||
PBXFileDataSource_Warnings_ColumnID,
|
PBXFileDataSource_Warnings_ColumnID,
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
PBXPerProjectTemplateStateSaveDate = 179733005;
|
PBXPerProjectTemplateStateSaveDate = 181286523;
|
||||||
PBXWorkspaceStateSaveDate = 179733005;
|
PBXWorkspaceStateSaveDate = 181286523;
|
||||||
};
|
};
|
||||||
perUserProjectItems = {
|
perUserProjectItems = {
|
||||||
95D1F80B0AB68D3B00EE6AC8 /* PBXTextBookmark */ = 95D1F80B0AB68D3B00EE6AC8 /* PBXTextBookmark */;
|
95B042F40ACE42E800236B52 /* PBXBookmark */ = 95B042F40ACE42E800236B52 /* PBXBookmark */;
|
||||||
95D1F82B0AB693AE00EE6AC8 /* PBXBookmark */ = 95D1F82B0AB693AE00EE6AC8 /* PBXBookmark */;
|
95B042F90ACE431A00236B52 /* PBXTextBookmark */ = 95B042F90ACE431A00236B52 /* PBXTextBookmark */;
|
||||||
95D1F84C0AB6960700EE6AC8 /* PBXTextBookmark */ = 95D1F84C0AB6960700EE6AC8 /* PBXTextBookmark */;
|
95B043000ACE435E00236B52 /* PBXTextBookmark */ = 95B043000ACE435E00236B52 /* 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 */;
|
|
||||||
};
|
};
|
||||||
sourceControlManager = 954D7413095406B2007D9571 /* Source Control */;
|
sourceControlManager = 954D7413095406B2007D9571 /* Source Control */;
|
||||||
userBuildSettings = {
|
userBuildSettings = {
|
||||||
|
@ -169,9 +160,9 @@
|
||||||
};
|
};
|
||||||
952DCD77096BBB11001C2316 /* VLSheetViewChords.mm */ = {
|
952DCD77096BBB11001C2316 /* VLSheetViewChords.mm */ = {
|
||||||
uiCtxt = {
|
uiCtxt = {
|
||||||
sepNavIntBoundsRect = "{{0, 0}, {703, 2100}}";
|
sepNavIntBoundsRect = "{{0, 0}, {703, 2268}}";
|
||||||
sepNavSelRange = "{4592, 34}";
|
sepNavSelRange = "{3383, 0}";
|
||||||
sepNavVisRect = "{{0, 1837}, {703, 261}}";
|
sepNavVisRect = "{{0, 1151}, {703, 261}}";
|
||||||
sepNavWindowFrame = "{{15, 92}, {763, 649}}";
|
sepNavWindowFrame = "{{15, 92}, {763, 649}}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -218,17 +209,17 @@
|
||||||
};
|
};
|
||||||
955E58E3095658AB0045FDA5 /* VLModel.h */ = {
|
955E58E3095658AB0045FDA5 /* VLModel.h */ = {
|
||||||
uiCtxt = {
|
uiCtxt = {
|
||||||
sepNavIntBoundsRect = "{{0, 0}, {704, 3080}}";
|
sepNavIntBoundsRect = "{{0, 0}, {644, 2170}}";
|
||||||
sepNavSelRange = "{2773, 0}";
|
sepNavSelRange = "{4342, 0}";
|
||||||
sepNavVisRect = "{{0, 1807}, {704, 497}}";
|
sepNavVisRect = "{{0, 1726}, {633, 146}}";
|
||||||
sepNavWindowFrame = "{{203, 40}, {763, 649}}";
|
sepNavWindowFrame = "{{203, 40}, {763, 649}}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
955E58E4095658AB0045FDA5 /* VLModel.cpp */ = {
|
955E58E4095658AB0045FDA5 /* VLModel.cpp */ = {
|
||||||
uiCtxt = {
|
uiCtxt = {
|
||||||
sepNavIntBoundsRect = "{{0, 0}, {704, 3976}}";
|
sepNavIntBoundsRect = "{{0, 0}, {806, 6118}}";
|
||||||
sepNavSelRange = "{4436, 0}";
|
sepNavSelRange = "{10226, 0}";
|
||||||
sepNavVisRect = "{{0, 2758}, {704, 497}}";
|
sepNavVisRect = "{{0, 4813}, {704, 497}}";
|
||||||
sepNavWindowFrame = "{{256, 62}, {763, 649}}";
|
sepNavWindowFrame = "{{256, 62}, {763, 649}}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -309,11 +300,35 @@
|
||||||
sepNavWindowFrame = "{{120, 85}, {763, 649}}";
|
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 */ = {
|
95B66653096BC6A100FE18C9 /* VLSheetViewInternal.h */ = {
|
||||||
uiCtxt = {
|
uiCtxt = {
|
||||||
sepNavIntBoundsRect = "{{0, 0}, {724, 520}}";
|
sepNavIntBoundsRect = "{{0, 0}, {704, 497}}";
|
||||||
sepNavSelRange = "{792, 0}";
|
sepNavSelRange = "{422, 0}";
|
||||||
sepNavVisRect = "{{0, 0}, {724, 520}}";
|
sepNavVisRect = "{{0, 0}, {704, 497}}";
|
||||||
sepNavWindowFrame = "{{15, 92}, {763, 649}}";
|
sepNavWindowFrame = "{{15, 92}, {763, 649}}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -327,9 +342,9 @@
|
||||||
};
|
};
|
||||||
95B66657096BCA1F00FE18C9 /* VLSheetViewNotes.mm */ = {
|
95B66657096BCA1F00FE18C9 /* VLSheetViewNotes.mm */ = {
|
||||||
uiCtxt = {
|
uiCtxt = {
|
||||||
sepNavIntBoundsRect = "{{0, 0}, {704, 3976}}";
|
sepNavIntBoundsRect = "{{0, 0}, {703, 2660}}";
|
||||||
sepNavSelRange = "{5055, 0}";
|
sepNavSelRange = "{8068, 0}";
|
||||||
sepNavVisRect = "{{0, 2576}, {704, 497}}";
|
sepNavVisRect = "{{0, 1965}, {703, 238}}";
|
||||||
sepNavWindowFrame = "{{38, 71}, {763, 649}}";
|
sepNavWindowFrame = "{{38, 71}, {763, 649}}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -346,134 +361,23 @@
|
||||||
hitCount = 0;
|
hitCount = 0;
|
||||||
ignoreCount = 0;
|
ignoreCount = 0;
|
||||||
lineNumber = 21;
|
lineNumber = 21;
|
||||||
modificationTime = 179740227.391068;
|
modificationTime = 181290725.024457;
|
||||||
state = 2;
|
state = 2;
|
||||||
};
|
};
|
||||||
95BDA15709540BF1009F9D65 /* VLSheetView.h */ = {
|
95BDA15709540BF1009F9D65 /* VLSheetView.h */ = {
|
||||||
uiCtxt = {
|
uiCtxt = {
|
||||||
sepNavIntBoundsRect = "{{0, 0}, {704, 1134}}";
|
sepNavIntBoundsRect = "{{0, 0}, {704, 1190}}";
|
||||||
sepNavSelRange = "{1065, 16}";
|
sepNavSelRange = "{848, 0}";
|
||||||
sepNavVisRect = "{{0, 472}, {704, 520}}";
|
sepNavVisRect = "{{0, 313}, {704, 497}}";
|
||||||
sepNavWindowFrame = "{{242, 97}, {763, 649}}";
|
sepNavWindowFrame = "{{242, 97}, {763, 649}}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
95BDA15809540BF1009F9D65 /* VLSheetView.mm */ = {
|
95BDA15809540BF1009F9D65 /* VLSheetView.mm */ = {
|
||||||
uiCtxt = {
|
uiCtxt = {
|
||||||
sepNavIntBoundsRect = "{{0, 0}, {704, 3626}}";
|
sepNavIntBoundsRect = "{{0, 0}, {704, 5208}}";
|
||||||
sepNavSelRange = "{7591, 0}";
|
sepNavSelRange = "{3996, 0}";
|
||||||
sepNavVisRect = "{{0, 3106}, {704, 520}}";
|
sepNavVisRect = "{{0, 2269}, {704, 497}}";
|
||||||
sepNavWindowFrame = "{{164, 35}, {763, 649}}";
|
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;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user