@item pktrace, [OPTIONAL], needed for generating PostScript Type1
-fonts. Get it from
- @uref{http://www.cs.uu.nl/~hanwen/public/software/pktrace-0.1.tar.gz}
+fonts. Get it from @uref{http://www.cs.uu.nl/~hanwen/pktrace/}
@item autotrace-0.27a, [OPTIONAL], needed for generating PostScript Type1
-fonts. You must apply the patch included pktrace-0.1 first.
-@uref{http://autotrace.sourceforge.net}.
+fonts. @uref{http://autotrace.sourceforge.net}.
@item MetaPost [OPTIONAL] needed for generating PostScript Type3 fonts. Please
note that tetex-0.4pl8 (included with Red Hat 5.x) does not include
files. Correcting the quantization mistakes of the human player takes a
lot of time.
-Hackers who know about signal processing are invited to write a more
-robust midi2ly.
+Hackers who know about signal processing are invited to write a more
+robust midi2ly. midi2ly is written in Python, using a module written in
+C to parse the MIDI files.
+
@subsection Invoking midi2ly
@end table
-Report bugs to @email{bug-lilypond@@gnu.org}.
-
-
-Written by @email{Jan Nieuwenhuizen, janneke@@gnu.org}.
-
-
@node etf2ly
@section etf2ly
@refbugs
-Known: articulation scripts are buggy. Empty measures confuse etf2ly.
-
-Written by @email{Han-Wen Nienhuys,hanwen@@cs.uu.nl}.
+The list of articulation scripts is incomplete. Empty measures confuse
+etf2ly.
-Report bugs to @email{bug-lilypond@@gnu.org}.
@node abc2ly
@section abc2ly
abc2ly ignores the ABC beaming.
-Written by @email{Han-Wen Nienhuys,hanwen@@cs.uu.nl}.
-@c How about Laura? /MB
-
-Report bugs to @email{bug-lilypond@@gnu.org}.
-
@node pmx2ly
@section pmx2ly
PMX is a MusiXTeX preprocessor written by Don Simons, see
@uref{http://icking-music-archive.sunsite.dk/Misc/Music/musixtex/software/pmx/}.
-Report bugs to @email{bug-lilypond@@gnu.org}.
@subsection Invoking pmx2ly
version information
@end table
-Report bugs to @email{bug-lilypond@@gnu.org}.
-
-Written by @email{Han-Wen Nienhuys,hanwen@@cs.uu.nl}.
-
@node musedata2ly
@section musedata2ly
@var{REFFILE}
@end table
-Report bugs to @email{bug-lilypond@@gnu.org}.
-
-Written by @email{Han-Wen Nienhuys,hanwen@@cs.uu.nl}.
-
@node mup2ly
@section mup2ly
Currently, only plain notes (pitches, durations), voices and staves are
converted.
-Written by @email{Jan Nieuwenhuizen,janneke@@gnu.org}, based on pmx2ly.
-
-Report bugs to @email{bug-lilypond@@gnu.org}.
-
@lilypond[]
\score {
\notes \relative c'' {
- a\breve \autoBeamOff
+ a\breve \autoBeamOff
a1 a2 a4 a8 a16 a32 a64 a64
r\longa r\breve
r1 r2 r4 r8 r16 r32 r64 r64
\property Staff.clefOctavation = @var{extra transposition of clefname}
@end example
+
Any change in these properties creates a clef (A @internalsref{Clef} grob).
Supported clef-names include
@end table
By adding @code{_8} or @code{^8} to the clef name, the clef is
-transposed one octave down or up, respectively.
+transposed one octave down or up, respectively. Note that you have to
+enclose @var{clefname} in quotes if you use underscores or digits in the
+name. For example,
+@example
+ \clef "G_8"
+@end example
Supported associated glyphs (for @code{Staff.clefGlyph}) are:
and none of us use it. Don't complain to us that installing LilyPond is
too difficult; rather, if you know something about your Windows, send us
code that works better (see @uref{compiling.html,compiling}).
+Nevertheless, detailed bug reports are appreciated; before you send a
+report, make sure to read the section on bugreports below.
-@section Windows binary setup
-
-Apart from LilyPond itself, you need Cygwin, GUILE, Python and a TeX
-installation, but all this software be installed by running setup.exe:
-
-@table @asis
-@item LilyPond
-Download and run
-@c let's do http, so that people read the README
-@uref{http://www.lilypond.org/gnu-windows/setup.exe, setup.exe}
-to install LilyPond.
-This will install the minimal set of cygwin tools needed to run
-LilyPond. Make sure to install in the default place, @file{c:/cygwin},
-and install everything.
+@section Windows binary setup
-As of version 1.3.150, you also have the option to install MiKTeX and
-GSView from this installer, which is recommended. If you choose to
-install these by hand (see below), make sure to install them
-@strong{before} you install LilyPond, otherwise your LilyPond setup will
-be broken.
-If you already have cygwin installed, don't worry: nothing will be
-installed twice. To expand on this minimal set, click
-@uref{http://sources.redhat.com/cygwin/setup.exe,here}, or visit a
-Cygwin @uref{http://sources.redhat.com/cygwin/mirrors.html,mirror site}.
-@end table
+All the software you need is installed by downloading and running
+@uref{http://www.lilypond.org/gnu-windows/setup.exe, setup.exe}. You
+will be asked some questions. If you are unsure just click "Next". Do
+not change the default install directory @file{c:/cygwin}.
+This installs LilyPond, and Cygwin, GUILE, Python, MiKTeX and GSView If
+you already have some of that software under @file{c:/cygwin}, then
+don't worry: nothing will be installed twice.
-@section Windows running setup
+If you want to install any of this software by hand, do this
+@strong{before} you run @file{setup.exe}, otherwise your LilyPond setup
+will not work.
-If you're lucky, after running @file{setup.exe} you're all set up.
+@section Testing LilyPond
-Open a LilyPond shell (or any bash shell), and type
+Open a LilyPond shell (To open a a lilypond shell, click the "GNU
+LilyPond" icon), and type
@quotation
@example
@end example
@end quotation
-If you don't see something similar to
+You should see something similar to
@quotation
@example
@end example
@end quotation
-you should try adding @file{/usr/lilypond-x.y.z/bin} to your @var{PATH},
-do:
+Then, prepare a file called @file{foo.ly}, by issuing
+@example
+notepad foo.ly
+@end example
+Enter the following into the file
+@example
+
+\score @{ \notes @{ c4 ( ) c4 @} @}
+
+@end example
+Close the file and save it. Run the following command a few times until
+it says @code{PS output to `foo.ps', DVI output to `foo.dvi'}.
+@example
+
+ly2dvi -P foo
+
+@end example
+You can now view the file using the following command
+@example
+
+gsview32 foo.ps
+
+@end example
+
+If this works, then you can head to the
+@uref{../../user/out-www/lilypond/Tutorial.html,Tutorial} to start using
+LilyPond.
+
+
+@section Removing LilyPond
+
+Start @file{setup.exe}, click Next, select "Install from Local
+Directory". Then click next until you reach "Select packages to
+install". Click "View". Now, for every package, click on the recycle
+icon until it says "Uninstall". Then, click Next.
+
+(If you find this too tedious, you can also simply remove
+@file{c:/cygwin}. This also removes the @file{/home/} directories under
+cygwin (i.e. @file{C:\CYGWIN\HOME}, so make sure that you bring
+important files in safety first.)
+
+@section Troubleshooting
+
+
+@unnumberedsubsec invoking lilypond --help doesn't work
+
+Open the shell, and try adding @file{/usr/lilypond-x.y.z/bin} to your
+@var{PATH}, do:
@quotation
@example
PATH=/usr/lilypond-1.4.2/bin:$PATH
@end example
@end quotation
-and try again.
-
-
-@subsection Trouble
+Now, invoke @file{lilypond --help}
For problems and solutions see
@uref{http://lilypond.org/wiki?TroubleshootingWindows,Troubleshooting
Windows}
+
+
+@ignore
@subsection Additional software
LilyPond needs a number of software packages to be really useful. These
@uref{ftp://ftp.cs.wisc.edu/ghost/ghostgum,ftp.cs.wisc.edu}.
or visit the
@uref{http://www.cs.wisc.edu/~ghost/,Ghostscript, Ghostview and GSview site}.
-
@end table
-
-
[TODO:
]
-
-@ignore
-
guile -v
Guile 1.4.1
@end ignore
+@ignore
+@c irrelevant.
+
+If you want to install more of cygwnTo expand on this minimal set,
+@section If you already have MikTeX, GSView or
+If you already have cygwin installed, don't worry: nothing will be
+installed twice. To expand on this minimal set, click
+@uref{http://sources.redhat.com/cygwin/setup.exe,here}, or visit a
+Cygwin @uref{http://sources.redhat.com/cygwin/mirrors.html,mirror site}.
+
+
+This will install the minimal set of cygwin tools needed to run
+LilyPond. Make sure to install in the default place, @file{c:/cygwin},
+and install everything.
+@end ignore
break long notes and automatically tie them into the next measure.",
/* creats*/ "NoteHead Dots",
/* acks */ "",
-/* reads */ "",
+/* reads */ "easyPlay centralCPosition measurePosition measureLength",
/* write */ "");
return SCM_UNDEFINED;
}
}
- else if (SCM_CONSP (src))
+ else if (ly_pair_p (src)) // SCM_CONSP (src)) // huh?
{
SCM oldcar =ly_car (src);
/*
// todo: junk this. We should make real modules iso. just loading files.
prepend_load_path (p + "/scm/");
+
+#if GUILE_MINOR_VERSION >= 5
SCM last_mod = scm_current_module ();
scm_set_current_module (scm_c_resolve_module ("guile"));
+#endif
init_cxx_function_smobs ();
for (int i=scm_init_funcs_->size () ; i--;)
if (verbose_global_b)
progress_indication ("\n");
read_lily_scm_file ("lily.scm");
+
+#if GUILE_MINOR_VERSION >= 5
scm_set_current_module (last_mod);
+#endif
}
unsigned int ly_scm_hash (SCM s)
/* descr */ "Generate one or more noteheads from Music of type Note_req.",
/* creats*/ "NoteHead Dots",
/* acks */ "",
-/* reads */ "",
+/* reads */ "easyPlay centralCPosition",
/* write */ "");
void
Paper_outputter::output_scheme (SCM scm)
{
- scm_apply_2 (output_func_, scm, file_, SCM_EOL);
+ gh_call2 (output_func_, scm, file_);
}
void
for (int i=0; i < texts_.size (); i++)
{
Item *ti = texts_[i];
- Side_position_interface::add_staff_support (ti);
+ if (!to_boolean (get_property ("scriptHorizontal")))
+ Side_position_interface::add_staff_support (ti);
typeset_grob (ti);
}
texts_.clear ();
(define-module (scm ascii-script)
- :export (as-output-expression)
- :no-backtrace
)
(define this-module (current-module))
-(define (as-output-expression expr port)
+(define-public (as-output-expression expr port)
(display (eval expr this-module) port)
)
-
(use-modules (scm tex)
(scm ps)
(scm pysk)
(scm ascii-script)
+ (scm sketch)
)
(define output-alist
("scm" . ,write)
("as" . ,as-output-expression)
("pysk" . ,pysk-output-expression)
+ ("sketch" . ,sketch-output-expression)
))
-
-
(define (find-dumper format )
(let*
((d (assoc format output-alist)))
"sketch.scm"
"pdf.scm"
"pdftex.scm"
- "ascii-script.scm"
"c++.scm"
"grob-property-description.scm"
"translator-property-description.scm"
+1
(define-module (scm ps)
- :export (ps-output-expression)
- :no-backtrace
)
(define this-module (current-module))
-(define (ps-output-expression expr port)
- (display (eval expr this-module) port)
- )
+(debug-enable 'backtrace)
+
+(if (or (equal? (minor-version) "4")
+ (equal? (minor-version) "3.4"))
+ (define-public (ps-output-expression expr port)
+ (display (eval-in-module expr this-module) port )
+ )
+
+ (define-public (ps-output-expression expr port)
+ (display (eval expr this-module) port )
+ )
+ )
(use-modules
(guile)
- (guile-user))
+)
(define-module (scm pysk)
- :export (pysk-output-expression)
- :no-backtrace
)
(use-modules (scm ps)
(ice-9 regex)
(ice-9 string-fun)
- (guile-user)
(guile)
)
(define this-module (current-module))
-(define (pysk-output-expression expr port)
+(define-public (pysk-output-expression expr port)
(display (pythonify expr) port )
)
;;; Han-Wen Nienhuys <hanwen@cs.uu.nl>
-(define-module (scm tex)
- :export (tex-output-expression)
- :no-backtrace
- )
-
+(define-module (scm tex) )
+(debug-enable 'backtrace)
(use-modules (scm ps)
(ice-9 regex)
(ice-9 string-fun)
(ice-9 format)
- (guile-user)
(guile)
)
(embedded-ps (list 'bracket arch_angle arch_width arch_height height arch_thick thick)))
(define (dashed-slur thick dash l)
- (embedded-ps (list 'dashed-slur thick dash l)))
+ (embedded-ps (list 'dashed-slur thick dash `(quote ,l))))
(define (hairpin thick w sh eh)
(embedded-ps (list 'hairpin thick w sh eh))
""
)
-
(define (embedded-ps expr)
(let
((os (open-output-string)))
;;
;; need to do something to make this really safe.
;;
-(define (output-tex-string s)
+(define-public (output-tex-string s)
(if security-paranoia
(if use-regex
(regexp-substitute/global #f "\\\\" s 'pre "$\\backslash$" 'post)
; no-origin not yet supported by Xdvi
(define (no-origin) "")
-(define (tex-output-expression expr port)
- (display (eval expr this-module) port )
+(define my-eval-in-module eval)
+
+(if (or (equal? (minor-version) "4")
+ (equal? (minor-version) "3.4"))
+ (begin
+ (set! my-eval-in-module eval-in-module)
+
+ ))
+
+(define-public (tex-output-expression expr port)
+ (display (my-eval-in-module expr this-module) port )
)
+
This program converts ABC music files (see
http://www.gre.ac.uk/~c.walshaw/abc2mtex/abc.txt) To LilyPond input.
+
+
+Report bugs to bug-gnu-music@gnu.org
+
+Written by Han-Wen Nienhuys <hanwen@cs.uu.nl>, Laura Conrad
+<lconrad@laymusic.org>, Roy Rankin <Roy.Rankin@@alcatel.com.au>
"""
def print_version ():
#!@PYTHON@
# info mostly taken from looking at files. See also
-# http://www.cs.uu.nl/~hanwen/lily-devel/etf.html
+# http://lilypond.org/wiki/?EnigmaTransportFormat
# This supports
#
# * dynamics
# * empty measures (eg. twopt03.etf from freenote)
#
-#
+
program_name = 'etf2ly'
version = '@TOPLEVEL_VERSION@'