mirror of
https://github.com/microtherion/VocalEasel.git
synced 2024-12-22 03:04:00 +00:00
Add online help
This commit is contained in:
parent
35300f3344
commit
d7c0a34e4f
28
English.lproj/MainMenu.nib/classes.nib
generated
28
English.lproj/MainMenu.nib/classes.nib
generated
|
@ -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
3672
English.lproj/MainMenu.nib/designable.nib
generated
Normal file
File diff suppressed because it is too large
Load Diff
22
English.lproj/MainMenu.nib/info.nib
generated
22
English.lproj/MainMenu.nib/info.nib
generated
|
@ -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>
|
BIN
English.lproj/MainMenu.nib/keyedobjects.nib
generated
BIN
English.lproj/MainMenu.nib/keyedobjects.nib
generated
Binary file not shown.
39
Resources/Help/about.html
Normal file
39
Resources/Help/about.html
Normal 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
|
||||
<<a href="mailto:neeracher@mac.com">neeracher@mac.com</a>></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 <<a href="mailto:hanwen@xs4all.nl">hanwen@xs4all.nl</a>>, Jan Nieuwenhuizen <<a href="mailto:janneke@gnu.org">janneke@gnu.org</a>>,
|
||||
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 <<a href="mailto:bob@mellowood.ca">bob@mellowood.ca</a>>.</p>
|
||||
</body>
|
||||
</html>
|
28
Resources/Help/bugs.html
Normal file
28
Resources/Help/bugs.html
Normal 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
115
Resources/Help/edit.html
Normal 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→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→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→Jump to Coda</i> to specify where the jump to the coda
|
||||
occurs and then select another bar line and use <i>Repeats→Start
|
||||
Coda</i> to specify where the coda starts.</li>
|
||||
</ul>
|
||||
|
||||
</body>
|
||||
</html>
|
24
Resources/Help/index.html
Normal file
24
Resources/Help/index.html
Normal 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
31
Resources/Help/play.html
Normal 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
22
Resources/Help/print.html
Normal 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
BIN
Resources/Help/vlapp.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
|
@ -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>
|
||||
|
|
|
@ -19,7 +19,8 @@
|
|||
|
||||
- (IBAction) playNewPitch:(id)sender;
|
||||
- (IBAction) selectLilypondPath:(id)sender;
|
||||
|
||||
- (IBAction) goToHelpURL:(id)sender;
|
||||
|
||||
@end
|
||||
|
||||
// Local Variables:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue
Block a user