Add online help

This commit is contained in:
Matthias Neeracher 2007-04-30 05:56:35 +00:00
parent 35300f3344
commit d7c0a34e4f
15 changed files with 3964 additions and 55 deletions

View File

@ -1,28 +0,0 @@
{
IBClasses = (
{
ACTIONS = {
editRepeat = id;
editRepeatEnding = id;
insertJumpToCoda = id;
insertStartCoda = id;
zoomIn = id;
zoomOut = id;
zoomToActualSize = id;
zoomToFit = id;
zoomToFitWidth = id;
};
CLASS = FirstResponder;
LANGUAGE = ObjC;
SUPERCLASS = NSObject;
},
{
ACTIONS = {playNewPitch = id; selectLilypondPath = id; };
CLASS = VLAppController;
LANGUAGE = ObjC;
OUTLETS = {lilypondPath = id; };
SUPERCLASS = NSObject;
}
);
IBVersion = 1;
}

3672
English.lproj/MainMenu.nib/designable.nib generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IBDocumentLocation</key>
<string>86 70 356 240 0 0 1280 778 </string>
<key>IBEditorPositions</key>
<dict>
<key>29</key>
<string>320 324 349 44 0 0 1280 778 </string>
</dict>
<key>IBFramework Version</key>
<string>455.0</string>
<key>IBOpenObjects</key>
<array>
<integer>29</integer>
<integer>217</integer>
</array>
<key>IBSystem Version</key>
<string>9A343</string>
</dict>
</plist>

Binary file not shown.

39
Resources/Help/about.html Normal file
View File

@ -0,0 +1,39 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
<html>
<head>
<title>About VocalEasel</title>
</head>
<body>
<center><h1>About VocalEasel</h1></center>
<p>VocalEasel is a program to edit for vocal jazz lead sheets and generate and
play accompaniments. It is designed to be:</p>
<ul type="circle">
<li>Free to use and redistribute to others.</li>
<li>Easy to use.</li>
<li>Powerful enough to produce adequate results for most common song.</li>
<li>Open, i.e.
<ul type="disc">
<li>You can obtain and change the source code to adapt
VocalEasel to your needs (or hire somebody to do so).</li>
<li>VocalEasel tries to produce standard formats like MIDI, PDF, and
MusicXML whenever possible, to give you the freedom to interchange files
with other software.</li>
</ul>
</li>
</ul>
<p>VocalEasel was written and designed by Matthias Neeracher
&nbsp;&lt;<a href="mailto:neeracher@mac.com">neeracher@mac.com</a>&gt;</p>
<p>For producing printable lead sheets, VocalEasel relies on the
<a href="http://www.lilypond.org">LilyPond</a> system written by
Han-Wen Nienhuys&nbsp&lt;<a href="mailto:hanwen@xs4all.nl">hanwen@xs4all.nl</a>&gt;, Jan Nieuwenhuizen&nbsp;&lt;<a href="mailto:janneke@gnu.org">janneke@gnu.org</a>&gt;,
and others.</p>
<p>For producing MIDI accompaniments, VocalEasel relies on the
<a href="http://www.mellowood.ca/mma">MMA</a> Musical Midi Accompaniment system
written by Robert van der Poel&nbsp;&lt;<a href="mailto:bob@mellowood.ca">bob@mellowood.ca</a>&gt;.</p>
</body>
</html>

28
Resources/Help/bugs.html Normal file
View File

@ -0,0 +1,28 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html> <head>
<title>VocalEasel: Known Bugs</title>
</head>
<body>
<h1>Bugs</h1>
<h2>Reporting Bugs</h2>
<p>VocalEasel is still very new software and therefore contains a
considerable number of bugs.</p>
<ul>
<li>To report incorrect behavior, select <i>Report Bug...</i> in the <i>Help</i> menu.</li>
<li>To request a currently missing feature, select <i>Request Feature...</i> in the <i>Help</i> menu.</li>
</ul>
<h2>Known Bugs</h2>
<ul>
<li>Meters other than 4/4 don't work yet.</li>
<li>Changing meter or divisions in an existing song does not convert the
song properly.</li>
<li>Selecting a groove that does not match the song (A 5/4 groove for a 4/4 song) results in an error.</li>
</ul>
</body> </html>

115
Resources/Help/edit.html Normal file
View File

@ -0,0 +1,115 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>VocalEasel: Entering Music</title>
</head>
<body>
<h1>Entering Music</h1>
<h2>Song Setup</h2>
Start by entering some information applying to the entire song:
<ul type="circle">
<li>Enter the <i>title</i>, <i>composer</i>, and, if applicable, the <i>lyricist</i> of the song in the appropriate text fields.</li>
<li>Choose the <i>key</i> of your song from the popup menu. Major and minor keys are ordered by the number of accidentals (flats or sharps) in the key. Generally, jazz musicians will prefer flats to sharps, and a small number of accidentals, in key signatures of lead sheets.</li>
<li>Choose the <i>meter</i> of your song. <b>Right now, only 4/4 is supported</b></li>
<li>Choose the <i>subdivisions</i> of your song. Generally, you should choose
3 (swing 8ths) for swing tunes and 2 (straight 8ths) for latin tunes.</li>
<li>The <i>tempo</i> and <i>groove</i> settings are only used when
<a href="play.html">playing</a> the song.
</ul>
<h2>Entering Chords</h2>
Now you're ready to enter the harmonic structure of the song:
<ul type="circle">
<li>Click in the light blue region above one of the musical systems. A text field will appear in the upper right corner of the window.</li>
<li>Enter the name of your chord, e.g.
<ul type="disc">
<li>"d" or "D" (capitalization is ignored) for a D major chord.</li>
<li>"dm" for a D minor chord.</li>
<li>"dm7" for a D minor chord with added dominant 7th.</li>
<li>"dmaj7" for a D major chord with added major 7th.</li>
<li>"dm7b5" for a half diminished chord.</li>
<li>"d7#5" for a D major chord with a dominant 7th and an augmented 5th.</li>
</ul></li>
<li>Use the TAB key to advance by a quarter note, Shift-TAB to go back by a quarter note.</li>
</li>
</ul>
<h2>Entering the Melody</h2>
Next, enter the melody:
<ul type="circle">
<li>Click to place a note.
<ul type="disc">
<li>Each vertical gray line in a measure represents
one subdivision of a quarter note (an 8th if you selected 2
subdivisions, and an 8th triplet if you selected 3 subdivisions).</li>
<li>To place swing 8ths, click on the first and third subdivision of
a group of 3. The middle subdivision is only used in triplets.</li>
</ul></li>
<li>By default, the pitch of a note is determined by the key signature,
i.e., if the key signature is F major and you click on the middle line of
the system, you get a B flat. To change this:
<ul>
<li>Hold down the option (alt) key while clicking to add a flat to the note.</li>
<li>Hold down the command (apple) key to add a sharp.</li>
<li>Hold down both option and command to cancel a flat or a sharp in the
key signature.</li>
</ul>
with these modifiers, clicking on the middle line of the system in F major
results in a pitch of B flat, C (B sharp), and B natural, respectively.</li>
<li>To specify a rest, press the 'R' key before clicking.</li>
<li>To delete a note or a rest, press the 'K' key before clicking. If the
first note in a measure is deleted, it is replaced with a rest. If any other
note or rest is deleted, the previous note or rest is extended.</li>
<li>To extend the duration of a note across the next note or measure, hold
down the shift key while clicking the note.</li>
<li>By default, you can enter notes as low as the A below middle C and as
high as the high C. To change that range, click the <i>Display</i> icon at
the top right to change the number of top or bottom ledger lines.</li>
</ul>
<h2>Entering Lyrics</h2>
Finally, you may choose to enter lyrics:
<ul>
<li>Click below a note in the light blue region below the musical system.
A text field will appear in the upper right corner of the window.</li>
<li>Enter one or several words of lyrics.</li>
<li>To separate syllables, use dashes (e.g. "em-brace-a-ble")</li>
<li>To place two words on the same note, use an underscore ("and_a").</li>
<li>Use the TAB key to advance to the next note, Shift-TAB to retreat to the preceding note.</li>
<li>By default, you can enter two lines of lyrics. To change that, click the
<i>Display</i> icon at the top right to change the number of lyrics lines.</li>
</ul>
<h2>Editing the Song</h2>
<ul>
<li>Click on a bar line to select an insertion point.</li>
<li>Click on a bar line and drag to select one or several measures.</li>
<li>Use the <i>Cut</i>, <i>Copy</i>, <i>Paste</i>, or <i>Delete</i> menu
items to manipulate the selection.</li>
</ul>
<h2>Repeats / Coda</h2>
<ul>
<li>To repeat a section of the song, select it and use the <i>Repeats&rarr;Repeat...</i> menu item to specify the number of repeats.</li>
<li>To specify alternate endings, select measures at the end of a repeat and
use <i>Repeats&rarr;Endings...</i> to specify when to use the endings.</li>
<li>To specify a coda the last time through a song, select a bar line and use
<i>Repeats&rarr;Jump to Coda</i> to specify where the jump to the coda
occurs and then select another bar line and use <i>Repeats&rarr;Start
Coda</i> to specify where the coda starts.</li>
</ul>
</body>
</html>

24
Resources/Help/index.html Normal file
View File

@ -0,0 +1,24 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
<html>
<head>
<title>Welcome to VocalEasel</title>
<meta name="AppleTitle" content="VocalEasel Help">
</head>
<body>
<center>
<H1>Welcome to VocalEasel</H1>
<a href="http://vocaleasel.sf.net">http://vocaleasel.sf.net</a>
<img src="vlapp.png" alt="VocalEasel Application Icon" align="left">
</center>
<ul type="circle">
<li><a href="about.html">About VocalEasel</a></li>
<li><a href="edit.html">Entering Music</a></li>
<li><a href="print.html">Printing Music</a></li>
<li><a href="play.html">Playing Music</a></li>
<li><a href="bugs.html">Known Bugs</a></li>
</ul>
</body>
</html>

31
Resources/Help/play.html Normal file
View File

@ -0,0 +1,31 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html> <head>
<title>VocalEasel: Playing Music</title>
</head>
<body>
<h1>Playing Music</h1>
VocalEasel uses the MMA Musical MIDI Accompaniment system to
automatically generate accompaniments for rehearsal.
<blockquote><strong>
While I find automatic accompaniments a very valuable rehearsal tool, make
sure you don't train yourself too much into one particular style of
accompaniment. Your live piano player will NOT care to hear "But that's
how VocalEasel played it!"
</strong></blockquote>
<ul>
<li>Click the <i>Play</i> icon to start the accompaniment.</li>
<li>Click the <i>Stop</i> icon to stop the accompaniment.</li>
<li>Change the tempo using the <i>Tempo</i> control.</li>
<li>Change the accompaniment style using the <i>Groove</i> popup menu.
<i>Swing</i> and <i>Bossa Nova</i> are present, the <i>Select...</i> menu
item will bring up a large number of other styles to choose from. <b>Currently, not all styles will work for all meters</b>.</li>
<li>To save your MIDI accompaniment for use in another program, e.g.
GarageBand, use the <i>Save a Copy As...</i> menu item and choose
<i>MIDI</i> from the <i>File Format</i> popup menu.
</ul>
</body> </html>

22
Resources/Help/print.html Normal file
View File

@ -0,0 +1,22 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html> <head>
<title>VocalEasel: Printing Music</title>
</head>
<body>
<h1>Printing Music</h1>
While the VocalEasel editing window does not look very nice,
VocalEasel uses the LilyPond system to produce beautiful PDF and print output:
<ul>
<li>To print, use the <i>Print</i> menu item.</li>
<li>To preview the print output, click the <i>Preview</i> icon.</li>
<li>To save a song as a PDF file, use the <i>Save As...</i> menu item and
select <i>PDF</i> from the <i>File Format</i> popup menu.
</ul>
All of these tasks need to run LilyPond to create the output format, a process
which can take up to a minute or so.
</body> </html>

BIN
Resources/Help/vlapp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -27,10 +27,11 @@
<string>VLDocument</string>
<key>NSExportableAs</key>
<array>
<string>VLLilypondType</string>
<string>VLMusicXMLType</string>
<string>VLMMAType</string>
<string>VLPDFType</string>
<string>VLMIDIType</string>
<string>VLMusicXMLType</string>
<string>VLLilypondType</string>
<string>VLMMAType</string>
</array>
<key>NSPersistentStoreTypeKey</key>
<string>XML</string>
@ -140,5 +141,9 @@
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
</dict>
<key>CFBundleHelpBookFolder</key>
<string>Help</string>
<key>CFBundleHelpBookName</key>
<string>VocalEasel Help</string>
</dict>
</plist>

View File

@ -19,6 +19,7 @@
- (IBAction) playNewPitch:(id)sender;
- (IBAction) selectLilypondPath:(id)sender;
- (IBAction) goToHelpURL:(id)sender;
@end

View File

@ -281,4 +281,22 @@
}
}
- (IBAction) goToHelpURL:(id)sender
{
NSString * helpString;
switch ([sender tag]) {
case 0:
helpString = @"http://vocaleasel.sf.net";
break;
case 1:
helpString = @"http://sourceforge.net/tracker/?func=add&group_id=195076&atid=951989";
break;
case 2:
helpString = @"http://sourceforge.net/tracker/?func=add&group_id=195076&atid=951992";
break;
}
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:helpString]];
}
@end

View File

@ -24,6 +24,7 @@
95049CF30BDC32EB0015EE6E /* installLilypond.scpt in Resources */ = {isa = PBXBuildFile; fileRef = 95049CF20BDC32CD0015EE6E /* installLilypond.scpt */; };
95049D020BDC436A0015EE6E /* installPython.scpt in Resources */ = {isa = PBXBuildFile; fileRef = 95049D010BDC43510015EE6E /* installPython.scpt */; };
950795E10B4A34D9008911A6 /* stop.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 950795E00B4A34D9008911A6 /* stop.tiff */; };
9524DAFB0BE569C50002AC03 /* Help in Resources */ = {isa = PBXBuildFile; fileRef = 9524DAF70BE569C50002AC03 /* Help */; };
952CBB9C095FD1CA00434E43 /* VLSoundOut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 952CBB9A095FD1CA00434E43 /* VLSoundOut.cpp */; };
952CBB9D095FD1CA00434E43 /* VLSoundOut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 952CBB9A095FD1CA00434E43 /* VLSoundOut.cpp */; };
952CBB9F095FD1D900434E43 /* TVLSoundOut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 952CBB9E095FD1D900434E43 /* TVLSoundOut.cpp */; };
@ -148,6 +149,7 @@
95049CF20BDC32CD0015EE6E /* installLilypond.scpt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.scpt; name = installLilypond.scpt; path = Resources/installLilypond.scpt; sourceTree = "<group>"; };
95049D010BDC43510015EE6E /* installPython.scpt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.scpt; name = installPython.scpt; path = Resources/installPython.scpt; sourceTree = "<group>"; };
950795E00B4A34D9008911A6 /* stop.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = stop.tiff; path = Resources/stop.tiff; sourceTree = "<group>"; };
9524DAF70BE569C50002AC03 /* Help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Help; path = Resources/Help; sourceTree = "<group>"; };
952CBB98095FD19D00434E43 /* TVLSoundOut */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = TVLSoundOut; sourceTree = BUILT_PRODUCTS_DIR; };
952CBB9A095FD1CA00434E43 /* VLSoundOut.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = VLSoundOut.cpp; path = Sources/VLSoundOut.cpp; sourceTree = "<group>"; };
952CBB9B095FD1CA00434E43 /* VLSoundOut.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = VLSoundOut.h; path = Sources/VLSoundOut.h; sourceTree = "<group>"; };
@ -389,6 +391,7 @@
2A37F4B8FDCFA73011CA2CEA /* Resources */ = {
isa = PBXGroup;
children = (
9524DAF70BE569C50002AC03 /* Help */,
95049CF20BDC32CD0015EE6E /* installLilypond.scpt */,
95049D010BDC43510015EE6E /* installPython.scpt */,
954DD4DF0B44E61E0056C504 /* VLDocument.nib */,
@ -611,6 +614,7 @@
950795E10B4A34D9008911A6 /* stop.tiff in Resources */,
9599ED960B73185800A6A2F7 /* VLGroove.nib in Resources */,
9530A7020BD9E16700635FEC /* display.tiff in Resources */,
9524DAFB0BE569C50002AC03 /* Help in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};