summaryrefslogtreecommitdiff
path: root/muse/doc
diff options
context:
space:
mode:
Diffstat (limited to 'muse/doc')
-rw-r--r--muse/doc/README.CVS3
-rw-r--r--muse/doc/README.de69
-rw-r--r--muse/doc/README.instruments108
-rw-r--r--muse/doc/README.ladspaguis63
-rw-r--r--muse/doc/README.realtime37
-rw-r--r--muse/doc/README.shortcuts159
-rw-r--r--muse/doc/README.softsynth86
-rw-r--r--muse/doc/README.translate62
-rw-r--r--muse/doc/dimpl/dimpl.pdfbin0 -> 166457 bytes
-rw-r--r--muse/doc/dimpl/dimpl.tex773
-rw-r--r--muse/doc/man/de/man-de.tex173
-rw-r--r--muse/doc/man/en/man-en.tex302
-rw-r--r--muse/doc/man/fdl.tex510
-rw-r--r--muse/doc/man/gpl.tex318
-rw-r--r--muse/doc/man/titlelogo.jpgbin0 -> 15896 bytes
15 files changed, 2663 insertions, 0 deletions
diff --git a/muse/doc/README.CVS b/muse/doc/README.CVS
new file mode 100644
index 00000000..43d973c5
--- /dev/null
+++ b/muse/doc/README.CVS
@@ -0,0 +1,3 @@
+
+To compile a cvs tree, inspect ./autogen.sh and then run it
+
diff --git a/muse/doc/README.de b/muse/doc/README.de
new file mode 100644
index 00000000..b6b03c5a
--- /dev/null
+++ b/muse/doc/README.de
@@ -0,0 +1,69 @@
+====================================================================
+ MusE --- Linux (Midi) Music Editor
+====================================================================
+
+Guten Tag!
+dies ist MusE, der Open Source MIDI/Audio Sequencer.
+
+MusE steht unter der GNU General Public Licence (GPL).
+Für Einzelheiten siehe COPYING.
+
+,-----------------------------------------------------------------.
+| HINWEIS |
+|-----------------------------------------------------------------|
+| Viel Teile des Codes von MusE sind EXPERIMENTELL und können |
+| zu Programmabstürzen und wer weiß was sonst noch allem |
+| führen. |
+| SIE BENUTZEN DIESE SOFTWARE AUF EIGENES RISIKO! |
+`-----------------------------------------------------------------'
+
+ =============================
+ Voraussetzungen
+ =============================
+
+ - qt 3.2.0 oder neuer
+ ftp://ftp.trolltech.com/qt/source
+ Bitte mit "-thread" option compilieren.
+
+ - libsndfile 1.0.1 (aktuell ist 1.0.4)
+ http://www.zip.com.au/~erikd/libsndfile/
+
+ - JACK
+ http://jackit.sourceforge.net/
+ download:
+ http://jackit.sourceforge.net/download/
+
+ - fluidsynth-1.0.3 (the synti formerly known as "iiwusynth") von
+ http://savannah.nongnu.org/download/fluid
+
+ - Linux Kernel mit rtc (RealTimeClock) Treiber (device /dev/rtc)
+ ("low latency patches" für minimales timing-jitter wären fein)
+
+ - ALSA von http://www.alsa-project.org/
+ Version 0.9.x oder neuer
+
+ - gcc 3.x.x
+ (es muß der gleiche Compiler wie der zum compilieren der
+ QT-Libraries verwendet werden)
+
+ - natürlich: eine Soundkarte und/oder irgendwelche Midi Geräte
+
+ =============================
+ Kompilierung
+ =============================
+
+ - download source von http://lmuse.sourceforge.net/
+ - untar source:
+ tar xvofj muse-current-tar.bz2 </code>
+ - konfigurieren:
+ run "configure"
+ - kompilieren:
+ run "make all"
+ - installieren
+ als root, run "make install"
+ - Test
+
+====================================================================
+Aktuelle(re) Infos gibt es auf der MusE Homepage
+http://lmuse.sourceforge.net/
+
diff --git a/muse/doc/README.instruments b/muse/doc/README.instruments
new file mode 100644
index 00000000..a2693b4e
--- /dev/null
+++ b/muse/doc/README.instruments
@@ -0,0 +1,108 @@
+================================================
+ MusE loadable Midi Instrument Definitions
+ (as of 10.09.2003) MusE 0.7.0
+================================================
+
+ - File Extension ".idf"
+ - searched in Subdirectory "instruments"
+ (/usr/share/muse/instruments on my system)
+
+ All found instrument definitions are presented by MusE
+ in Config->MidiPorts in Pulldown in column "Instrument".
+
+-------------------------------------------------
+ Example of Instrument Definition File:
+-------------------------------------------------
+
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="GM">
+ <Init>
+ ...MusE event list which initializes instrument
+ </Init>
+ <PatchGroup name="Piano">
+ <Patch name="Grand Piano" prog="0"/>
+ <Patch name="Bright Piano" prog="1"/>
+ ...
+ </PatchGroup>
+ <PatchGroup name="Bass">
+ <Patch name="Acoustic Bass" prog="32"/>
+ <Patch name="Fingered Bass" prog="33"/>
+ </PatchGroup>
+ ...
+ <Controller name="Brightness">
+ <n>0x4a</n>
+ <min>0</min>
+ <max>127</max>
+ <init>0</init>
+ </Controller>
+ ...
+ </MidiInstrument>
+ </muse>
+
+-------------------------------------------------
+ Notes
+-------------------------------------------------
+
+ (1) PatchGroups are not mandatory; its valid to write:
+
+ <MidiInstrument name="GM">
+ <Patch name="Grand Piano" prog="0"/>
+ <Patch name="Bright Piano" prog="1"/>
+ <Patch name="Acoustic Bass" prog="32"/>
+ <Patch name="Fingered Bass" prog="33"/>
+ ...
+ </MidiInstrument>
+
+ (2) An "Instrument Definition File" can define more than on
+ Instrument, but it is recommended to use one file for
+ one instrument
+
+ (3) the "prog" parameter in a "Patch" is mandatory. Missing
+ "hbank" or "lbank" are treated as "don't care".
+ Missing "drum" is treated as drum="0".
+
+ A XG-Patch looks like:
+ <Patch name="Electro" drum="1" hbank="127" lbank="0" prog="24"/>
+
+ (5) A patch can be associated with a "mode" with one of
+
+ 1 - GM
+ 2 - GS
+ 4 - XG
+
+ Example:
+ <Patch name="Electro" mode="4" drum="1" hbank="127" lbank="0" prog="24"/>
+
+ Mode id's can be ore'd together for patches which are valid
+ for more than one mode:
+
+ <Patch name="Grand Piano" mode=7" hbank="0" lbank="0" prog="0"/>
+
+ (4) example for MusE event (Sysex "XG-On"):
+
+ <event tick="0" type="5" datalen="7">
+ 43 10 4c 00 00 7e 00
+ </event>
+
+ (5) <Init> ... </Init> part can be omitted
+
+
+ (6) Controller have the following porperties:
+
+ name: arbitrary unique (short) string describing the controller
+ n: controller number, defines also the controller type:
+ values from 0x0 - 0x7f are 7Bit controller
+ values from 0x1000 - 0x1ffff are 14 bit controller with
+ MSB/LSB value pairs
+ values from 0x20000 - 0x2ffff are RPN's
+ values from 0x30000 - 0x3ffff are NRPN's
+
+ min: minimum value for controller
+ max: maximum value for controller
+ init: reset value for controller; when controller value is
+ undefined after instrument reset, use the ''undefined''
+ value 0x10000
+
+ the min/max/init values can be ommited
+
diff --git a/muse/doc/README.ladspaguis b/muse/doc/README.ladspaguis
new file mode 100644
index 00000000..5c77be26
--- /dev/null
+++ b/muse/doc/README.ladspaguis
@@ -0,0 +1,63 @@
+MusE can create LADSPA GUI's (graphical user interfaces) from
+Qt designer *.ui files at runtime.
+This allows a user to create or modify customized LADSPA guis without
+recompiling MusE.
+
+======================
+ Installation
+=====================
+
+Copy the file muse/awl/libawlplugin.so and muse/awl/libawlplugin_debug.so
+into a directory were Qt (designer) can find it.
+
+Example:
+ if you installed Qt in /usr/qt4:
+ su -c "cp -af awlplugin.so /usr/qt4/plugins/designer"
+Check:
+ After starting the Qt designer you see all MusE specific widgets
+ in the widget box titled "MusE Awl Widgets".
+ If you cannot find any MusE widgets, designer did not find the
+ muse shared libs.
+ The MusE shared libs must have a signature qt designer understands.
+ If the signature is wrong, qt designer silently ignores the libs.
+
+======================
+ Environment
+======================
+
+Naming:
+ The Qt designer files are named after the LADSPA plugin ID.
+ Example: the "freeverb" plugin has the id "1050". A gui for
+ freeverb has to be named "1050.ui".
+ The plugin ID is shown in the MusE plugin browser.
+
+Path:
+ MusE looks for *ui files at (museglobalshare)/plugins/.
+ If you installed MusE at "/usr" (configured with --prefix=/usr)
+ MusE looks at "/usr/share/muse/plugins" for *ui files.
+
+======================
+ Creating *.ui file
+======================
+
+The association between LADSPA plugin parameters and Qt-Widgets is
+done by name. All input widgets which manipulate a LADSPA parameter
+must have a name starting with the letter "P".
+The "id" property of every widget must be set to the parameter index
+of the plugin,
+One parameter can be manipulated with more than one widgets.
+
+ Example:
+ A "Slider" widget which manipulates the 3th parameter of a
+ plugin has the name "Pslider" and the "id" property has a
+ value of "3".
+
+Supported Widgets:
+ "AwlSlider" slider for float values
+ "AwlFloatEntry" entry for float values
+ "AwlCheckbox" to manipulate a on/off LADSPA parameter
+ "AwlComboBox" select from a list of named values; sets
+ integer LADSPA values
+
+(for more hints please look at the example *.ui files)
+
diff --git a/muse/doc/README.realtime b/muse/doc/README.realtime
new file mode 100644
index 00000000..1d7b3e31
--- /dev/null
+++ b/muse/doc/README.realtime
@@ -0,0 +1,37 @@
+For reliable operation MusE needs "realtime priviledges".
+
+Kernel >= 2.6.12
+ - load the set_rtlimits utility from:
+ http://www.physics.adelaide.edu.au/~jwoithe
+ - compile & install
+
+ - create an audio group (if you dont have one already):
+ groupadd audio
+
+ - add yourself to the audio group
+
+ - create an entry in "/etc/set_rtlimits.conf":
+
+ @audio /home/ws/projects/muse/muse/muse/muse -1 90
+
+ - start MusE with
+ set_rtlimits -r 60 /usr/local/bin/muse
+
+
+========================================================
+ Low Latency
+========================================================
+
+ Start JACK with a realtime priority of 60 (option -P60).
+ This should be higher than all (Realtime) system processes
+ if you run a realtime kernel (with Ingo Molnars realtime
+ patches). The JACK default priority is 10 which is too low.
+
+ MusE must be started with a higher priority than jack.
+ This allows the MusE midi thread to interrupt all
+ audio threads. This is important to get a midi timing
+ which is of higher resolution than the audio segment
+ time. The default priority of 70 for MusE should do.
+
+
+
diff --git a/muse/doc/README.shortcuts b/muse/doc/README.shortcuts
new file mode 100644
index 00000000..48de30f3
--- /dev/null
+++ b/muse/doc/README.shortcuts
@@ -0,0 +1,159 @@
+From: Frank Neumann
+Subject: [MusE] Keyboard shortcut list
+
+Hi all,
+while reading some MusE source code during the last weeks, I made a list
+of all keyboard shortcuts I found in there. I thought other might find
+this useful, so I am posting this here. There are some "?" spots in
+there where I am not perfectly sure if something is correct or really
+works the way it should, so comments or corrections are welcome. A few
+keys are also result of my first ever cvs commit to Muse :-).
+
+Frank
+
+2004-04-xx:
+ Also changed Ctrl+Shift+A to Select None.
+
+2004-01-08:
+ Changed Ctrl+A to Select All in Arranger for the sake of uniformity. (ML)
+
+2003-10-26:
+ Added Alt+L shortcut in drumeditor to set fixed length on drumnotes
+ according to drummap (Mathias Lundgren)
+ 2003-10-19:
+ In Arranger, Part Canvas:
+ added Alt+P shortcut in to move locators to part boundaries
+ Crsr Up / Crsr Down to move to nearest part on track above/below
+ in current window.
+
+04.01.2003:
+ - (ws) added new Delete keys in pianoroll and drumedit
+
+<cut here>
+
+Shortcut keys in Muse, as of 0.6.0pre5:
+
+Arranger:
+=========
+Undo: Ctrl-Z
+Redo: Ctrl-Y
+New: Ctrl-N
+Open: Ctrl-O
+Save: Ctrl-S
+Open PianoRoll Editor: Ctrl-E
+Open Score Editor: Ctrl-R
+
+Open Recent: Ctrl-S (? collides with "Save"?)
+Config Printer: Ctrl-P
+Quit: Ctrl-Q
+
+Cut: Ctrl-X
+Copy: Ctrl-C
+Paste: Ctrl-V
+Delete Track: Delete
+Add Track: Ctrl-J
+Select all: Ctrl-A
+Deselect All Parts: Ctrl-B
+Open Drums Editor: Ctrl-D
+Open List Editor: Ctrl-L
+Open Graphical Mastertrack Editor: Ctrl-M
+Open List Mastertrack Editor: Shift-Ctrl-M
+Open MIDI Transform Editor: Ctrl-T
+Open Transport Panel: F11
+Open Bigtime Window: F12
+Open Help Browser: F1
+Start "What's This" Mode: Shift-F1
+Toggle Metronome Click: C
+
+Stop Playback / Rewind: Space
+Stop Playback: Insert
+Start Playback: Enter
+Go to left Marker: End (Keypad)
+Go to right marker: CursorDown (Keypad)
+Toggle Loop Mode: / (Keypad)
+Start Recording: * (Keypad)
+
+
+Arranger, Part Canvas:
+======================
+Cut: Ctrl-X
+Copy: Ctrl-C
+Select previous/next part in this track: Crsr-Left / Crsr-Right
+Remove Part: Delete
+
+
+Arranger, Track List Canvas:
+============================
+Move to previous track: Crsr-Up
+Move to next track: Crsr-Down
+
+
+Pianoedit:
+==========
+Cut: Ctrl-X
+Copy: Ctrl-C
+Paste: Ctrl-V
+Select All: Ctrl-A (just added in CVS)
+Deselect All: Ctrl-Shift-A (just added in CVS)
+Invertion Selection: Ctrl-I (just added in CVS)
+Delete selected Events: Delete
+
+Insert Notes at locator position: Shift-Crsr-Right
+Move Locator right: Crsr-Right
+Move Locator left: Crsr-Left
+Delete under Locator: Delete (KP?), "collects" notes left of locator
+Set Grid Snap/Quantizer to 1/1, 1/2, 1/4, 1/8, 1/16, 1/32, 1/64:
+1/2/3/4/5/6/7
+Toggle "triolic" flag of Grid Snap/Quantizer: T
+Toggle "punctuated" flag of Grid Snap/Quantizer: .
+Set Grid Snap/Quantizer to "first value in list"(?): ,
+Open "Event Color" dialog: e (just fixed in CVS)
+
+
+Drumedit:
+=========
+Cut: Ctrl-X
+Copy: Ctrl-C
+Paste:Ctrl-V
+Load Drummap: Ctrl-O
+Save Drummap: Ctrl-S
+Set fixed length: Alt-L (Sets length on selected events to the length specified in the drummap)
+
+Delete selected Events: Delete
+
+Listedit:
+=========
+Insert Note: Ctrl-N
+Insert SysEx: Ctrl-S
+Insert Ctrl: Ctrl-T
+Insert Pitch: Ctrl-E
+Insert Channel Aftertouch: Ctrl-A
+Insert Key Aftertouch: Ctrl-P
+Delete Events: Delete
+
+
+Score Edit:
+===========
+When entering Lyrics:
+Move to next Note's Lyrics: Crsr-Left (problems when at beginning/end of
+notes)
+Move to previous Note' Lyrics: Crsr-Right
+Cancel (?) entering notes: Escape
+Remove last character from lyrics: Backspace or Delete
+End entering Lyrics: Enter
+
+
+Help Browser:
+=============
+New Window: Alt-N
+Open File: Alt-O
+Print: Alt-P
+Close: Alt-Q
+Exit: Alt-X
+
+
+Transport:
+==========
+Toggle metronome Click: C
+Toggle Loop Mode: / (Keypad)
+
diff --git a/muse/doc/README.softsynth b/muse/doc/README.softsynth
new file mode 100644
index 00000000..e3201ff2
--- /dev/null
+++ b/muse/doc/README.softsynth
@@ -0,0 +1,86 @@
+=============================================================
+ Short instructions to get the soft
+ synthesizer up and running
+=============================================================
+
+1. Compile and install MusE
+
+3. Run MusE from an xterm with Option "-D";
+ look at the debug output in the xterm; you should see something
+ like:
+
+ 3 soft synth found
+ found soft synth <fluid> <fluid soft synth>
+ found soft synth <organ> <organ soft synth>
+ found soft synth <S1> <organ soft synth>
+
+
+4. Configure Software Synthesizer
+
+ Open Settings->MidiPorts/SoftSynth.
+
+ - select a software synthesizer
+ - press "Add Instance" to create an istance of this
+ synthesizer; the synthi shows up in the list
+ of instances with a unique name
+
+5. Configure Midi Port
+
+ To use the synthesizer instance you must
+ connect it to a MusE midi port:
+
+ - click into the "Device Name" column of an empty midi port
+ (Device Name == "none")
+ - select the synthesizer from the dropdown menu.
+
+ This connects the synthesizer to the selected midi port.
+ The instrument type is automatically set.
+
+6. Open the Audio Mixer
+
+ You see a new mixer strip of type "Synthi" and the name
+ of the new created synthesizer instance.
+
+ Route the audio output of this strip to "Output".
+ (per default the synthesizer is routed to the first Output strip)
+
+7. Now you are ready to play with the "organ" synthesizer
+
+ - create midi track
+ - set the midi port to the synthesizer port
+ - click the "R" column in the tracklist to enable "Recording"
+
+8. Optional: open Configure->MidiPorts and click in column GUI
+ to show a GUI for the synthesizer instance.
+ There is no gui available for the S1 synth.
+ The iiwu gui enables you to enter a different sound font.
+ The organ gui has some "draw bars" to let you play with
+ sounds in real time.
+
+These are the software synthesizers currently available:
+
+ - S1 a simple sythesizer skeleton as a guide for all who
+ want to code their own one:
+ - only one tone at a time
+ - simple sinus wave form
+ - no gui
+ The synthi may be used as a metronome.
+
+ - organ, an adapted version of the LADSPA plugin
+ "Organ - Additive Organ Synthesizer Voice" from
+ David A. Bartold
+
+ "organ" implements a gui connected bidirectional
+ to the synth via stdin/stdout
+
+ - fluid, is the adapted version of Peter Hanappe´s
+ sample based fluid synthesizer (formerly known as iiwu)
+ - loadable sound fonts
+ - multi timbral
+ - 128 voices
+ - simple gui lets you load a different sound font
+ Fluid loads a default sound font determined by the
+ environment variable "DEFAULT_SOUNDFONT".
+
+
+
diff --git a/muse/doc/README.translate b/muse/doc/README.translate
new file mode 100644
index 00000000..d169e35f
--- /dev/null
+++ b/muse/doc/README.translate
@@ -0,0 +1,62 @@
+Internationalisation
+
+If you want to contribute a translation the following hints
+may be of help to you:
+
+
+Step 1:
+ enter the MusE directory and edit the
+ file "muse.pro"
+
+ Append a new target file name at "TRANSLATIONS"
+ e.g. change
+ TRANSLATIONS = share/locale/muse_de.ts
+ into
+ TRANSLATIONS = share/locale/muse_de.ts \
+ share/locale/muse_fr.ts
+ if you want to generate a french MusE version.
+
+Step 2:
+ start the Qt-Program "lupdate"
+
+ lupdate muse.pro
+
+ Maybe "lupdate" is not in your PATH and you must
+ specify the complete pathname "lupdate"
+ Example:
+ /usr/qt3-2/bin/lupdate muse.pro
+
+ This generates the file "locale/muse_fr.ts".
+
+Step 3:
+ Edit "locale/muse_fr.ts" manually or use the Qt "linguist" tool:
+
+ linguist muse_fr.ts
+
+Step 4:
+ Save the edited file "muse_fr.ts" from linguist and
+ start File->Release. This generates the file "locale/muse_fr.qm"
+
+ or
+
+ start the Qt program "lrelease"
+
+ lrelease muse.pro
+
+ This generates all *.qm files.
+
+Step 5:
+ install the *.qm files: as superuser start "make install"
+
+
+Step 6:
+ Test:
+ set the environment variable LANG to the desired
+ Language:
+ export LANG=fr
+
+ Start MusE:
+ muse
+
+
+
diff --git a/muse/doc/dimpl/dimpl.pdf b/muse/doc/dimpl/dimpl.pdf
new file mode 100644
index 00000000..0e055d37
--- /dev/null
+++ b/muse/doc/dimpl/dimpl.pdf
Binary files differ
diff --git a/muse/doc/dimpl/dimpl.tex b/muse/doc/dimpl/dimpl.tex
new file mode 100644
index 00000000..81bc23c8
--- /dev/null
+++ b/muse/doc/dimpl/dimpl.tex
@@ -0,0 +1,773 @@
+%====================================================================
+% Muse
+% Design & Implementation
+%
+% (C) 2005 Copyright: Werner Schweer and Others
+%====================================================================
+
+%----------------------------------------------------------
+% Setup
+%----------------------------------------------------------
+
+%\showframe
+%\showsetups
+\usemodule[chart]
+\setupcolors[state=start]
+\setupbodyfont[Palatino]
+\language[en]
+\enableregime[il1]
+
+\startuseMPgraphic{FunnyFrame}
+ picture p; numeric o; path a, b; pair c;
+ p := textext.rt(\MPstring{FunnyFrame});
+ o := BodyFontSize;
+ a := unitsquare xyscaled(OverlayWidth,OverlayHeight);
+ p := p shifted (20, OverlayHeight-ypart center p);
+ drawoptions (withpen pencircle scaled 1pt withcolor .625red);
+ b := a superellipsed .95;
+ fill b withcolor .85white; draw b;
+ b := (boundingbox p) superellipsed .95;
+ fill b withcolor .85white; draw b;
+ draw p withcolor black;
+ setbounds currentpicture to a;
+ \stopuseMPgraphic
+
+\defineoverlay[FunnyFrame][\useMPgraphic{FunnyFrame}]
+\defineframedtext[FunnyText][frame=off,background=FunnyFrame]
+\def\StartFrame{\startFunnyText}
+\def\StopFrame{\stopFunnyText}
+\def\FrameTitle#1%
+ {\setMPtext{FunnyFrame}{\hbox spread 1em{\hss\strut#1\hss}}}
+\setMPtext{FunnyFrame}{}
+
+
+\define\M{Muse}
+\define[1]\Index{{\it #1}\marginpar{#1}\index{#1}}
+
+\defineindenting[Cmdi][text=,separator=,width=fit,distance=1em]
+
+\define[1]\Cmd{
+ \Cmdi
+ \framed[
+ background=color,
+ width=fit,
+ align=right,
+ backgroundcolor=lightgray,
+ framecolor=blue]
+ {\tt\space #1}}
+
+\define[2]\CCmd{
+ \Cmdi
+ \framed[
+ background=color,
+ width=broad,
+ align=right,
+ backgroundcolor=lightgray,
+ framecolor=blue]
+ {\vbox{\hbox{\tt\space #1}\hbox{\tt\space #2}}}}
+
+
+%\define\startdescription{\startpacked}
+\define\startdescription{}
+%\define\stopdescription{\stoppacked}
+\define\stopdescription{}
+
+\define[1]\Fig{\hbox{\externalfigure[pics/#1]}}
+
+\define[2]\Screen{
+ \placefigure[here][fig:#1]{#2}{\externalfigure[pics/#1][scale=1600]}
+ }
+\define[1]\Noten{
+ \blank[line]
+ {\externalfigure[pics/#1][scale=700]}
+ \blank[line]
+ }
+
+\definedescription[Option][
+ location=left,
+ headstyle=bold,
+ width=4em,
+ before={\startnarrower[left]\setupblank[0pt]},
+ after={\stopnarrower\setupblank}]
+
+\definedescription[Filetype][
+ location=left,
+ headstyle=bold,
+ width=4em,
+ before={\startnarrower[left]\setupblank[0pt]},
+ after={\stopnarrower\setupblank}]
+
+\definedescription[FileList][
+ location=left,
+ headstyle=bold,
+ width=7em,
+ before={\startnarrower[left]\setupblank[0pt]},
+ after={\stopnarrower\setupblank}]
+
+\definedescription[Input][
+ location=left,
+ headstyle=bold,
+ width=9em,
+ before={\startnarrower[left]\setupblank[0pt]},
+ after={\stopnarrower\setupblank}]
+
+\definedescription[InputN][
+ location=left,
+ headstyle=bold,
+ width=6em,
+ before={\startnarrower[left]\setupblank[0pt]},
+ after={\stopnarrower\setupblank}]
+
+\define[2]\Figure{
+ \placefigure
+ [#1][fig:#2]{}
+ {\externalfigure[pics/#2]}
+ }
+
+\define[1]\Menu{
+ \placefigure[right][fig:#1]{}
+ {\externalfigure[pics/#1][scale=2000]}
+ }
+
+\definedescription[Opt][location=hanging,headstyle=bold,width=broad]
+
+\setuptyping[before=\blank\startbackground, after=\stopbackground\blank] % source code with background
+\setupwhitespace[medium]
+
+%----------------------------------------------------------
+% Body
+%----------------------------------------------------------
+
+\starttext
+ \language[en]
+ \mainlanguage[en]
+ \startstandardmakeup[doublesided=no]
+ \definebodyfont[10pt,11pt,12pt][rm][tfe=Regular at 48pt]
+ \tfe\setupinterlinespace
+ \hfill \color[red]{\M}\par
+ \hfill \color[blue]{Design \&}\par
+ \hfill \color[blue]{Implementation}\par
+ \vfill
+ \definebodyfont[10pt,11pt,12pt][rm][tfb=Regular at 24pt]
+ \tfb\setupinterlinespace
+ \hfill Version 1.0\par
+%% \hfill April 2005\par
+%% \hfill Werner Schweer
+ \stopstandardmakeup
+
+ \startstandardmakeup[page=no]
+ \vfill
+ \M\ is hosted on SourceForge:\par
+ \type{http://lmuse.sourceforge.net/}
+ \blank[line]
+ This document was created using \pdfTeX\ and the
+ \ConTeXt\ macro package.
+ \blank[line]
+ \copyright 2005 Werner Schweer and Others
+ \stopstandardmakeup
+
+ \completecontent
+
+%%
+%%=======================================================================
+%% File Formats
+%%=======================================================================
+%%
+
+\chapter{File Formats}
+ \section{Instrument Definition Files}
+
+ \M\ Instrument Definition Files are used to describe the
+ properties of external midi instruments.
+
+ IDF-Files have the file extension \type{*.idf} \index{idf} and
+ they are searched in the \M\ "instruments" subdirectory (which is on
+ my system \type{/usr/share/muse-1.0/instruments}.
+
+ An instrument\index{Instrument definition} is a property of the
+ midi ouput port \index{Midi output port}.
+ All found instrument definitions are presented by MusE
+ in the Instrument pulldown menu of the midi output port.
+
+ Example of an instrument definition file:
+ \blank
+\starttyping
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="GM">
+ <Init>
+ ...MusE event list which initializes instrument
+ </Init>
+ <PatchGroup name="Piano">
+ <Patch name="Grand Piano" prog="0"/>
+ <Patch name="Bright Piano" prog="1"/>
+ ...
+ </PatchGroup>
+ <PatchGroup name="Bass">
+ <Patch name="Acoustic Bass" prog="32"/>
+ <Patch name="Fingered Bass" prog="33"/>
+ </PatchGroup>
+ ...
+ <Controller name="Brightness">
+ <n>0x4a</n>
+ <min>0</min>
+ <max>127</max>
+ <init>0</init>
+ </Controller>
+ ...
+ </MidiInstrument>
+ </muse>
+\stoptyping
+ \blank
+
+ PatchGroups\index{PatchGroups} are not mandatory; its valid to write:
+
+ \blank
+\starttyping
+<MidiInstrument name="GM">
+ <Patch name="Grand Piano" prog="0"/>
+ <Patch name="Bright Piano" prog="1"/>
+ <Patch name="Acoustic Bass" prog="32"/>
+ <Patch name="Fingered Bass" prog="33"/>
+ ...
+ </MidiInstrument>
+\stoptyping
+ \blank
+
+ An instrument definition file should only define one
+ instrument.
+
+ The "prog" parameter in a "Patch" is mandatory. Missing
+ "hbank" or "lbank" are treated as "don't care".
+ Missing "drum" is treated as drum="0".
+
+ A XG-Patch looks like this:
+
+ \blank
+ \starttyping
+<Patch name="Electro" drum="1" hbank="127"
+ lbank="0" prog="24"/>
+ \stoptyping
+ \blank
+
+ A patch can be associated with a "mode" with one of:
+ \blank[medium]
+ \Option{1} - GM\par
+ \Option{2} - GS\par
+ \Option{4} - XG\par
+ \blank[big]
+
+ Example:
+
+ \blank
+ \starttyping
+<Patch name="Electro" mode="4" drum="1" hbank="127"
+ lbank="0" prog="24"/>
+ \stoptyping
+ \blank
+
+ Mode id's can be ore'd together for patches which are valid
+ for more than one mode:
+
+ \blank
+ \starttyping
+<Patch name="Grand Piano" mode=7" hbank="0" lbank="0" prog="0"/>
+ \stoptyping
+ \blank
+
+ example for MusE event (Sysex "XG-On"):
+
+ \blank
+ \starttyping
+<event tick="0" type="5" datalen="7">
+ 43 10 4c 00 00 7e 00
+ </event>
+ \stoptyping
+ \blank
+
+ \type{<Init> ... </Init>} part can be omitted
+
+
+ Controller\index{Controller} have the following properties:
+
+ \starttabulate
+ \NC name:\NC
+ arbitrary unique (short) string describing the controller\NC\NR
+ \NC n:\NC
+ controller number, defines also the controller type:\par
+ values from \type{0x0 - 0x7f} are 7Bit controller\par
+ values from \type{0x1000 - 0x1ffff} are 14 bit controller with
+ MSB/LSB value pairs\par
+ values from \type{0x20000 - 0x2ffff} are RPN's\par
+ values from \type{0x30000 - 0x3ffff} are NRPN's
+ \NC\NR
+ \NC min:\NC minimum value for controller\NC\NR
+ \NC max:\NC maximum value for controller\NC\NR
+ \NC init:\NC
+ reset value for controller; when controller value is
+ undefined after instrument reset, use the ''undefined''
+ value \type{0x10000}
+ \NC\NR
+ \stoptabulate
+
+ the min/max/init values can be ommited
+
+%%
+%%=======================================================================
+%% Midi Plugins
+%%=======================================================================
+%%
+\chapter{Plugins}
+ \section{Midi Plugins}
+
+
+ Midi plugins have the file extension \type{*.so} and they are
+ searched in the \M\ "\type{midiplugins}" subdirectory (which is on
+ my system \type{/usr/lib/muse-1.0/midiplugins}.
+
+%
+%-----------------------------------
+% Midi Filter
+%-----------------------------------
+%
+ \subsection{Midi Filter}
+
+ Example for an midi plugin which does essentially nothing:
+
+ First define your custom \type{Filter} class with \type{Mempi}
+ as base class.
+
+\starttyping
+#include "../libmidiplugin/mempi.h"
+
+class Filter : public Mempi {
+ virtual void process(unsigned, unsigned,
+ MPEventList*, MPEventList*);
+
+ public:
+ Filter(const char* name, const MempiHost*);
+ ~Filter() {}
+ virtual bool init() { return false; }
+ };
+
+Filter::Filter(const char* name, const MempiHost* h)
+ : Mempi(name, h)
+ {
+ }
+\stoptyping
+
+ Now comes the main \type{Mempi} function you have to implement:
+ \type{process()} which has two parameters, an midi event input
+ list and an midi event output list. The example code simply
+ copies all events from the input list to the output list.
+
+\starttyping
+void Filter::process(unsigned, unsigned, MPEventList* il,
+ MPEventList* ol)
+ {
+ for (iMPEvent i = il->begin(); i != il->end(); ++i) {
+ ol->insert(*i);
+ }
+ }
+\stoptyping
+
+ When loading the plugin, the \type{Mempi} Host looks for
+ the symbol \type{mempi_descriptor}. This function returns a
+ pointer to the plugin class description you have to fill in.
+
+\starttyping
+static Mempi* instantiate(const char* name, const MempiHost* h)
+ {
+ return new Filter(name, h);
+ }
+
+extern "C" {
+ static MEMPI descriptor = {
+ "Filter",
+ "MusE Zero Filter",
+ "0.1", // filter version string
+ MEMPI_FILTER, // plugin type
+ MEMPI_MAJOR_VERSION, MEMPI_MINOR_VERSION,
+ instantiate
+ };
+
+ const MEMPI* mempi_descriptor() { return &descriptor; }
+ }
+\stoptyping
+
+
+%
+%-----------------------------------
+% GUI interface
+%-----------------------------------
+%
+\subsection{GUI interface}
+ Every midi plugin can implement a native graphical user
+ interface (GUI). For this you have to overload five
+ virtual functions.
+
+\starttyping
+ virtual bool hasGui() const { return true; }
+\stoptyping
+ This function informs the host whether there is an GUI or not.
+
+\starttyping
+ virtual bool guiVisible() const { return gui->isVisible(); }
+\stoptyping
+ This fuction returns \type{true} if your GUI is visible.
+
+\starttyping
+ virtual void showGui(bool val) const { gui->setShown(val); }
+\stoptyping
+ This function shows or hides the GUI.
+
+ There are two helper functions the plugin host uses to save
+ and restore the GUI geometry across sessions:
+
+\starttyping
+ virtual void getGeometry(int* x, int* y, int* w, int* h) const;
+ virtual void setGeometry(int, int, int, int);
+\stoptyping
+
+%
+%-----------------------------------
+% Persistent Parameters
+%-----------------------------------
+%
+\subsection{Persistent Parameters}
+
+ The plugin host can save and restore plugin parameter across
+ sessions. When the host saves his session status, he calls
+ the midi plugin function:
+
+\starttyping
+ virtual void getInitData(int* len, const unsigned char**p) const;
+\stoptyping
+
+ You can overload this function to return a pointer to your
+ session data and the len of the data block.
+
+ When the session is restored, the host calls
+
+\starttyping
+ virtual void setInitData(int len, const unsigned char* p);
+\stoptyping
+
+ which you can use to restore the last plugin state.
+%
+%-----------------------------------
+% Host Access Functions
+%-----------------------------------
+%
+
+\subsection{Host Access Functions}
+
+ The plugin host supplies some functions which are
+ accessible through the \type{MempiHost*} in the
+ \type{Mempi} interface.
+
+ The host supplies the following functions:
+
+\starttyping
+ int division() const;
+\stoptyping
+ \index{division()}
+ returns the midi \type{division} value which gives the number
+ of midi ticks per midi beat, typically 384.
+
+\starttyping
+ int tempo(unsigned tick) const;
+\stoptyping
+ \index{tempo()}
+ returns the midi tempo value.
+
+\starttyping
+ unsigned tick2frame(unsigned tick) const;
+\stoptyping
+ \index{tick2frame()}
+ This function converts a transport position given in midi ticks
+ to a audio frame position.
+
+\starttyping
+ unsigned frame2tick(unsigned frame) const;
+\stoptyping
+ \index{frame2tick()}
+ This function converts a transport position given in audio frames
+ to midi ticks.
+
+\starttyping
+ void bar(int tick, int* bar, int* beat, unsigned* rest) const;
+\stoptyping
+ \index{bar()}
+ This function return bar/beat and a tick rest for a given
+ tick position.
+
+\starttyping
+ unsigned bar2tick(int bar, int beat, int tick) const;
+\stoptyping
+ This is the opposite to the \type{bar} function. It converts
+ a time position given in bar/beat/tick into a midi tick value.
+
+%
+%-----------------------------------
+% Midi Synthesizer
+%-----------------------------------
+%
+\subsection{Midi Synthesizer}
+ As an example for a midi synthesizer plugin we use a midi
+ metronome.
+
+ Lets start with the class definition:
+
+\starttyping
+#include "../libmidiplugin/mempi.h"
+
+//---------------------------------------------------------
+// metronom - simple midi metronom
+//---------------------------------------------------------
+
+class Metronom : public Mempi {
+
+ protected:
+ struct InitData {
+ char measureNote;
+ char measureVelo;
+ char beatNote;
+ char beatVelo;
+ } data;
+ MetronomGui* gui;
+ friend class MetronomGui;
+
+ unsigned int nextTick;
+ unsigned int lastTo;
+
+ virtual void process(unsigned, unsigned, MPEventList*,
+ MPEventList*);
+
+ public:
+ Metronom(const char* name, const MempiHost*);
+ ~Metronom();
+ virtual bool init();
+
+ virtual bool hasGui() const { return true; }
+ virtual bool guiVisible() const { return gui->isVisible(); }
+ virtual void showGui(bool val) { gui->setShown(val); }
+ virtual void getGeometry(int* x, int* y, int* w, int* h) const;
+ virtual void setGeometry(int, int, int, int);
+
+ virtual void getInitData(int*, const unsigned char**) const;
+ virtual void setInitData(int, const unsigned char*);
+ };
+\stoptyping
+
+%
+%-----------------------------------
+% MESS interface
+%-----------------------------------
+%
+\chapter {The M.E.S.S (MusE Experimental Software Synthesizer) API}
+
+ M.E.S.S.\index{M.E.S.S.} stands for MusE Experimental Soft Synth and is
+ an API/interface (like DSSI) to enable programmers to easily create their
+ own softsynths.
+
+ The interface for a M.E.S.S.-synth consists of two classes, the Mess and
+ MessGui. In short, the framework provides the Mess (the synth) midi data
+ (notes, controllers and sysexes) and methods that handle the IPC between
+ the gui and the synth, so the programmer can focus on DSP-issues instead.
+
+ The interface for the synth is specified in the mess.h file in the libsynti
+ directory. The interface for the MessGui is specified in the gui.h file.
+
+\starttyping
+//---------------------------------------------------------
+// Mess
+// MusE experimental software synth
+// Instance virtual interface class
+//---------------------------------------------------------
+
+class Mess {
+ MessP* d;
+
+ int _sampleRate;
+ int _channels; // 1 - mono, 2 - stereo
+
+ public:
+ Mess(int channels);
+ virtual ~Mess();
+
+ int channels() const { return _channels; }
+ int sampleRate() const { return _sampleRate; }
+ void setSampleRate(int r) { _sampleRate = r; }
+
+ virtual void process(float** data, int offset, int len) = 0;
+
+ // the synti has to (re-)implement processEvent() or provide
+ // some of the next three functions:
+
+ virtual bool processEvent(const MidiEvent&);
+ virtual bool setController(int, int, int) { return false; }
+ virtual bool playNote(int, int, int) { return false; }
+ virtual bool sysex(int, const unsigned char*) { return false; }
+
+ virtual void getInitData(int*, const unsigned char**) const {}
+ virtual int getControllerInfo(int, const char**, int*, int*, int*) const {return 0;}
+ virtual const char* getPatchName(int, int, int) const { return "?"; }
+ virtual const MidiPatch* getPatchInfo(int, const MidiPatch*) const { return 0; }
+
+ // synthesizer -> host communication
+ void sendEvent(MidiEvent); // called from synti
+ MidiEvent receiveEvent(); // called from host
+ int eventsPending() const;
+
+ // GUI interface routines
+ virtual bool hasGui() const { return false; }
+ virtual bool guiVisible() const { return false; }
+ virtual void showGui(bool) {}
+ virtual void getGeometry(int* x, int* y, int* w, int* h) const;
+ virtual void setGeometry(int, int, int, int) {}
+ };
+\stoptyping
+
+\section{Overview of virtual member functions}
+ This is a short description of the virtual functions in the Mess-class:
+\subsection{process}
+\starttyping
+virtual void process(float** data, int offset, int len) = 0;
+\stoptyping
+ This is where the audio processing takes place. The Mess is called with a float array, and
+ it's up to the programmer to fill it with data beginning at data[offset] to data[offset+len].
+
+\subsection{processEvent}
+ There are two ways to go when it comes to how midi data is fed into the Mess. You can either
+ implement processEvent and manage the different event types (controllers, sysexes and notes)
+ or implement one or more of the setController, playNote and sysex functions.
+
+
+ Note that overriding processEvent results in setController, playNote and sysex
+ not being called!
+
+\subsection{setController, playNote, sysex}
+ The setController, playNote and sysex functions should return false if the event was
+ processed, true if the synth was busy.
+
+\starttyping
+virtual bool setController(int channel, int controller_no, int value)
+
+virtual bool playNote(int channel, int pitch, int velo)
+
+virtual bool sysex(int length, const unsigned char* data)
+\stoptyping
+
+\subsection{getInitData}
+ MusE provides an interface for storing the state of the synth in the project file.
+ getInitData is called when the project is saved, and provides a pointer to a data
+ block where you store the data which will recreate the synths current state when
+ the project is reopened.
+\starttyping
+virtual void getInitData(int* nrofchars, const unsigned char** data) const {}
+\stoptyping
+
+\subsection{getControllerInfo}
+ getControllerInfo is called when the Mess is instantiated, and this is where
+ you tell MusE which controllers the Mess supports. The function is called
+ repeteadly: just fill in the values for the controller and return the index
+ you want to be sent next time. Return 0 when you've given MusE information about
+ all controllers your Mess supports.
+
+ As you can see, the necessary parameters are an index (used internally), a name
+ for the controller, an int describing the actual controller number (f.ex. 91 for
+ reverb), and finally min and max values for the controller.
+
+\starttyping
+virtual int getControllerInfo(int index,
+ const char** name,
+ int* controller,
+ int* min,
+ int* max) const
+\stoptyping
+
+\subsection{hasGui}
+ hasGui is called when the Mess is instantiated, and tells MusE if the synth has
+ a gui or not.
+\starttyping
+virtual bool hasGui() const;
+\stoptyping
+
+\subsection{showGui}
+showGui is called from MusE when the gui is supposed to be visible
+\starttyping
+virtual void showGui(bool show);
+\stoptyping
+
+\subsection{getPatchName, getPatchInfo}
+ getPatchName and getPatchInfo are used to give MusE information about patches,
+ which can be selected in the track inspector.
+
+ The getPatchName function specifies three parameters to be passed: channel,
+ program, and a third that is unused. It is the responsibility for the synth
+ to return the patchname for the particular channel and a program.
+
+\starttyping
+virtual const char* SimpleSynth::getPatchName(int channel, int program, int unused) const
+\stoptyping
+
+ getPatchInfo is called repeatedly until the synth returns 0. The synth must
+ send information back in a MidiPatch struct. The MidiPatch parameter sent
+ contains information on the last MidiPatch that was sent from the synth
+ (a null pointer on first call).
+
+\starttyping
+virtual const MidiPatch* getPatchInfo(int channel,
+ const MidiPatch* previouspatch)
+ const;
+
+struct MidiPatch {
+ signed char type; // 1 - GM 2 - GS 4 - XG
+ signed char hbank, lbank, prog;
+ const char* name;
+ };
+\stoptyping
+
+
+\subsection{Descriptor}
+ Since the synths are built as shared libraries, you need to specify a descriptor
+ for your MESS. They look something like this: (example taken from SimpleSynth/SimpleDrums)
+
+\starttyping
+static Mess* instantiate(int sr, QWidget*, const char* name)
+ {
+ printf("SimpleSynth sampleRate %d\n", sr);
+ SimpleSynth* synth = new SimpleSynth(sr);
+ if (!synth->init(name)) {
+ delete synth;
+ synth = 0;
+ }
+ return synth;
+ }
+extern "C"
+ {
+ static MESS descriptor = {
+ "SimpleSynth",
+ "Mathias Lundgren (lunar_shuttle@users.sf.net)",
+ "0.1", //Version string
+ MESS_MAJOR_VERSION, MESS_MINOR_VERSION,
+ instantiate,
+ };
+ const MESS* mess_descriptor() { return &descriptor; }
+ }
+\stoptyping
+
+\section{MessGui}
+ For the Gui, there's really only one method that is interesting, processEvent.
+ processEvent in the gui is called whenever the synth sends it a midiEvent, which
+ it does with send(MidiEvent ).
+ Since this is the only method of communicating the gui can send midimessages
+ to the synth via sendEvent, sendController and sendSysex calls.
+\starttyping
+virtual void processEvent(const MidiPlayEvent&) {};
+\stoptyping
+
+
+\completeindex
+\stoptext
diff --git a/muse/doc/man/de/man-de.tex b/muse/doc/man/de/man-de.tex
new file mode 100644
index 00000000..04fc20c2
--- /dev/null
+++ b/muse/doc/man/de/man-de.tex
@@ -0,0 +1,173 @@
+%====================================================================
+% MusE Manual
+% dies ist das MusE Manual
+%
+% (C) 2006 Copyright: Werner Schweer und Andere
+%====================================================================
+
+%----------------------------------------------------------
+% Setup
+%----------------------------------------------------------
+
+%\showframe
+%\showsetups
+\usemodule[chart]
+\setupcolors[state=start]
+\setupbodyfont[Palatino]
+\language[de]
+\enableregime[il1]
+
+\startuseMPgraphic{FunnyFrame}
+ picture p; numeric o; path a, b; pair c;
+ p := textext.rt(\MPstring{FunnyFrame});
+ o := BodyFontSize;
+ a := unitsquare xyscaled(OverlayWidth,OverlayHeight);
+ p := p shifted (20, OverlayHeight-ypart center p);
+ drawoptions (withpen pencircle scaled 1pt withcolor .625red);
+ b := a superellipsed .95;
+ fill b withcolor .85white; draw b;
+ b := (boundingbox p) superellipsed .95;
+ fill b withcolor .85white; draw b;
+ draw p withcolor black;
+ setbounds currentpicture to a;
+ \stopuseMPgraphic
+
+\defineoverlay[FunnyFrame][\useMPgraphic{FunnyFrame}]
+\defineframedtext[FunnyText][frame=off,background=FunnyFrame]
+\def\StartFrame{\startFunnyText}
+\def\StopFrame{\stopFunnyText}
+\def\FrameTitle#1%
+ {\setMPtext{FunnyFrame}{\hbox spread 1em{\hss\strut#1\hss}}}
+\setMPtext{FunnyFrame}{}
+
+
+\define\M{MusE}
+\define[1]\Index{{\it #1}\marginpar{#1}\index{#1}}
+
+\defineindenting[Cmdi][text=,separator=,width=fit,distance=1em]
+
+\define[1]\Cmd{
+ \Cmdi
+ \framed[
+ background=color,
+ width=fit,
+ align=right,
+ backgroundcolor=lightgray,
+ framecolor=blue]
+ {\tt\space #1}}
+
+\define[2]\CCmd{
+ \Cmdi
+ \framed[
+ background=color,
+ width=broad,
+ align=right,
+ backgroundcolor=lightgray,
+ framecolor=blue]
+ {\vbox{\hbox{\tt\space #1}\hbox{\tt\space #2}}}}
+
+
+%\define\startdescription{\startpacked}
+\define\startdescription{}
+%\define\stopdescription{\stoppacked}
+\define\stopdescription{}
+
+\define[1]\Fig{\hbox{\externalfigure[pics/#1]}}
+
+\define[2]\Screen{
+ \placefigure[here][fig:#1]{#2}{\externalfigure[pics/#1][scale=1600]}
+ }
+\definedescription[Option][
+ location=left,
+ headstyle=bold,
+ width=4em,
+ before={\startnarrower[left]\setupblank[0pt]},
+ after={\stopnarrower\setupblank}]
+
+\definedescription[Sc][
+ location=left,
+ headstyle=bold,
+ width=4em,
+ before={\startnarrower[left]\setupblank[0pt]},
+ after={\stopnarrower\setupblank}]
+
+\definedescription[Filetype][
+ location=left,
+ headstyle=bold,
+ width=4em,
+ before={\startnarrower[left]\setupblank[0pt]},
+ after={\stopnarrower\setupblank}]
+
+\definedescription[FileList][
+ location=left,
+ headstyle=bold,
+ width=7em,
+ before={\startnarrower[left]\setupblank[0pt]},
+ after={\stopnarrower\setupblank}]
+
+\definedescription[Input][
+ location=left,
+ headstyle=bold,
+ width=9em,
+ before={\startnarrower[left]\setupblank[0pt]},
+ after={\stopnarrower\setupblank}]
+
+\definedescription[InputN][
+ location=left,
+ headstyle=bold,
+ width=6em,
+ before={\startnarrower[left]\setupblank[0pt]},
+ after={\stopnarrower\setupblank}]
+
+\define[2]\Figure{
+ \placefigure
+ [#1][fig:#2]{}
+ {\externalfigure[pics/#2]}
+ }
+
+\define[1]\Menu{
+ \placefigure[right][fig:#1]{}
+ {\externalfigure[pics/#1][scale=2000]}
+ }
+
+\definedescription[Opt][location=hanging,headstyle=bold,width=broad]
+
+%----------------------------------------------------------
+% Body
+%----------------------------------------------------------
+
+\starttext
+ \language[de]
+ \mainlanguage[de]
+ \startstandardmakeup[doublesided=no]
+ \definebodyfont[10pt,11pt,12pt][rm][tfe=Regular at 48pt]
+ \tfe\setupinterlinespace
+ \hfill \color[red]{\M}\par
+ \hfill \color[blue]{Manual}\par
+ \vfill
+ \hfill \color[blue]{DE}\par
+ \definebodyfont[10pt,11pt,12pt][rm][tfb=Regular at 24pt]
+ \tfb\setupinterlinespace
+ \hfill Version 1.0pre1\par
+ \stopstandardmakeup
+
+ \startstandardmakeup[page=no]
+ \vfill
+ \M\ wird von SourceForge gehostet:\par
+ \type{http://mscore.sourceforge.net/}
+ \blank[line]
+ Dieses Dokument wurde mit \pdfTeX\ und dem Macro Paket
+ \ConTeXt\ erstellt.
+ \blank
+ \copyright 2006 Werner Schweer und Andere
+ \stopstandardmakeup
+
+ \completecontent
+
+\chapter{Einführung}
+ \section{Was ist \M?}
+ \M\ ist ein ein "open source" Programm, veröffentlicht unter der GNU General
+ Public License (GPL) (siehe Appendix).
+
+\completeindex
+\stoptext
diff --git a/muse/doc/man/en/man-en.tex b/muse/doc/man/en/man-en.tex
new file mode 100644
index 00000000..d05123e2
--- /dev/null
+++ b/muse/doc/man/en/man-en.tex
@@ -0,0 +1,302 @@
+%====================================================================
+%
+% MusE Manual
+% this is the MusE manual
+%
+% (C) 2006 Copyright: Werner Schweer and Others
+%====================================================================
+
+%----------------------------------------------------------
+% Setup
+%----------------------------------------------------------
+
+%\showframe
+%\showsetups
+\usemodule[chart]
+\setupcolors[state=start]
+\setupbodyfont[Palatino]
+\language[en]
+\enableregime[il1]
+
+\startuseMPgraphic{FunnyFrame}
+ picture p; numeric o; path a, b; pair c;
+ p := textext.rt(\MPstring{FunnyFrame});
+ o := BodyFontSize;
+ a := unitsquare xyscaled(OverlayWidth,OverlayHeight);
+ p := p shifted (20, OverlayHeight-ypart center p);
+ drawoptions (withpen pencircle scaled 1pt withcolor .625red);
+ b := a superellipsed .95;
+ fill b withcolor .85white; draw b;
+ b := (boundingbox p) superellipsed .95;
+ fill b withcolor .85white; draw b;
+ draw p withcolor black;
+ setbounds currentpicture to a;
+ \stopuseMPgraphic
+
+\defineoverlay[FunnyFrame][\useMPgraphic{FunnyFrame}]
+\defineframedtext[FunnyText][frame=off,background=FunnyFrame]
+\def\StartFrame{\startFunnyText}
+\def\StopFrame{\stopFunnyText}
+\def\FrameTitle#1%
+ {\setMPtext{FunnyFrame}{\hbox spread 1em{\hss\strut#1\hss}}}
+\setMPtext{FunnyFrame}{}
+
+
+\define\M{MusE}
+\define[1]\Index{{\it #1}\marginpar{#1}\index{#1}}
+
+\defineindenting[Cmdi][text=,separator=,width=fit,distance=1em]
+
+\define[1]\Cmd{
+ \Cmdi
+ \framed[
+ background=color,
+ width=fit,
+ align=right,
+ backgroundcolor=lightgray,
+ framecolor=blue]
+ {\tt\space #1}}
+
+\define[2]\CCmd{
+ \Cmdi
+ \framed[
+ background=color,
+ width=broad,
+ align=right,
+ backgroundcolor=lightgray,
+ framecolor=blue]
+ {\vbox{\hbox{\tt\space #1}\hbox{\tt\space #2}}}}
+
+
+%\define\startdescription{\startpacked}
+\define\startdescription{}
+%\define\stopdescription{\stoppacked}
+\define\stopdescription{}
+
+\define[1]\Fig{\hbox{\externalfigure[pics/#1]}}
+
+\define[2]\Screen{
+ \placefigure[here][fig:#1]{#2}{\externalfigure[pics/#1][scale=1600]}
+ }
+\definedescription[Option][
+ location=left,
+ headstyle=bold,
+ width=4em,
+ before={\startnarrower[left]\setupblank[0pt]},
+ after={\stopnarrower\setupblank}]
+
+\definedescription[Sc][
+ location=left,
+ headstyle=bold,
+ width=4em,
+ before={\startnarrower[left]\setupblank[0pt]},
+ after={\stopnarrower\setupblank}]
+
+\definedescription[Filetype][
+ location=left,
+ headstyle=bold,
+ width=6em,
+ before={\startnarrower[left]\setupblank[0pt]},
+ after={\stopnarrower\setupblank}]
+
+\definedescription[FileList][
+ location=left,
+ headstyle=bold,
+ width=7em,
+ before={\startnarrower[left]\setupblank[0pt]},
+ after={\stopnarrower\setupblank}]
+
+\definedescription[Input][
+ location=left,
+ headstyle=bold,
+ width=9em,
+ before={\startnarrower[left]\setupblank[0pt]},
+ after={\stopnarrower\setupblank}]
+
+\definedescription[InputN][
+ location=left,
+ headstyle=bold,
+ width=6em,
+ before={\startnarrower[left]\setupblank[0pt]},
+ after={\stopnarrower\setupblank}]
+
+\define[2]\Figure{
+ \placefigure
+ [#1][fig:#2]{}
+ {\externalfigure[pics/#2]}
+ }
+
+\define[1]\Menu{
+ \placefigure[right][fig:#1]{}
+ {\externalfigure[pics/#1][scale=2000]}
+ }
+
+\definedescription[Opt][location=hanging,headstyle=bold,width=broad]
+
+%----------------------------------------------------------
+% Body
+%----------------------------------------------------------
+
+\starttext
+ \language[en]
+ \mainlanguage[en]
+ \startstandardmakeup[doublesided=no]
+ \definebodyfont[10pt,11pt,12pt][rm][tfe=Regular at 48pt]
+ \tfe\setupinterlinespace
+ \hfill \color[red]{\M}\par
+ \hfill \color[blue]{Manual}\par
+ \vfill
+ \rightaligned{\externalfigure[../titlelogo.jpg]}
+ \vfill
+ \hfill \color[blue]{EN}\par
+ \definebodyfont[10pt,11pt,12pt][rm][tfb=Regular at 24pt]
+ \tfb\setupinterlinespace
+ \hfill Version 1.0pre1\par
+ \stopstandardmakeup
+
+ \startstandardmakeup[page=no]
+ \vfill
+ \M\ is hosted on SourceForge:\par
+ \type{http://mscore.sourceforge.net/}
+ \blank[line]
+ This document was created using \pdfTeX\ and the macro package
+ \ConTeXt\.
+ \blank
+ \copyright 2006 Werner Schweer and Others
+ \stopstandardmakeup
+
+ \completecontent
+
+\chapter{Introduction}
+ \section{Where from and where to go}
+ There's a long history of sequencers. In the beginning there were
+ only analogue synthesizers, which could only be played live. The classical
+ example is presumably the Moog. After the introduction of MIDI, the first
+ devices appeared where music data could be saved and replayed, in short:
+ Sequencers. To program these devices, i.e. to record and process music can
+ rather be compared with assembler programming of computers than with making
+ music. But soon the first sequencers for computers were developed. At
+ first, one could only process MIDI data, since the corresponding hardware
+ capacities were missing. But those developed at high speed and thus the
+ quality of hardware - and what is most important in this case: sound
+ cards - improved that much, that one could even do without external tape
+ drives. Now multi-track audio on-line recordings were possible and there
+ were even astounding possibilities for the post-editing of large projects.
+ Hard to believe, but nowadays computers can do even more.
+ Software-synthesizers in combination with software sequencers
+ (\M\ for example!) offer apparently unlimited possibilities of
+ variation. In fact, one can compose without even touching the wheel or
+ the button of a "real" synthesizer. It will need time, however, until this
+ software will be affordable, as the prices are immense. That's where \M\
+ enters the game!
+
+ \section{\M\ and its competitors}
+ Of course there will always be "better" programs or not! This decision is
+ due to strongly subjective criteria. On the one hand, it depends on what one
+ is aiming at. On the other hand, it depends on individual technical knowledge
+ in the field of synthesizers/sequencers. To the time that I write this article,
+ there are unfortunately no commercial sequencers for Linux, not to speak of
+ whole studios like Cubase or Logic. So the Linux-user can only choose between
+ a parallel installation either to Mac (if one has a PPC architecture) or to
+ Windows (in case of IBM Hardware). But where do those programs actually beat
+ \M? Certainly not in their price because commercial, proprietary software
+ is expensive. That's where programs like \M\ become interesting because
+ everybody can have it for free. Furthermore they are "open source", which is
+ another important point, because thereby the users get the opportunity of
+ finding bugs themselves and doing away with them.
+
+ Naturally, all projects start small. It's the same with \M. With \M,
+ Linux enters a new dimension of MIDI and Audio processing. Together with
+ Jack, even multi-track on-line recordings can be realized. In the the next
+ few years \M\ will certainly evolve strongly and with some luck there will
+ be an easier installation and more comfortable manuals.
+
+ \section{Features of \M}
+
+ Main features of \M:
+
+ \startitemize[1,packed]
+ \head Arranger
+ The arranger window structures a song into tracks and
+ parts.
+
+ \head Pianoroll Editor
+
+ \head Drum Editor
+
+ \head Mastertrack
+ Allows you to edit tempo changes and time signatures
+
+ \head Controller Editor
+ Allows to graphically edit controller values.
+
+ \head Recording
+ Muse allows simultaneous midi and audio recording.
+ Midi can be recorded non realtime step by step.
+
+ \head Editing
+ Midi and audio editing can be done even during play.
+
+ \head LADSPA, JACK etc. compatible
+
+ \stopitemize
+
+
+\chapter{Invoking \M}
+ \section{Invoking \M}
+ \M\ is invoked from the command line by typing in:
+
+ \Cmd{muse}
+
+ Optionally, you can use command line options of the form:
+
+ \Cmd{muse <options> <midifile>}
+
+ \definedescription[Mops][location=left,headstyle=bold]
+
+ \Mops{\tt <options>:}
+ see below for a list of available options.
+ \Mops{\tt <midifile>:}
+ can be either a standard MIDI file or a \M\ file
+ ({\tt *.med, *.med.gz or *.med.bz2}).
+
+ \section{Command Line Options}
+
+ \M\ accepts some options as listed below:
+
+ \blank[medium]
+ \Option{ -v}print version\par
+ \Option{ -m}MIDI only mode\par
+ \Option{ -d}debug mode: no threads, no RT\par
+ \Option{ -D}debug mode: enable some debug messages\par
+ \Option{ -i}debug mode: trace midi Input\par
+ \Option{ -o}debug mode: trace midi Output\par
+ \Option{ -p}don't load LADSPA plugins\par
+ \blank[big]
+
+ Example:
+
+ \Cmd{muse -i mysong.med}
+
+ will add trace midi input and open mysong.med on startup.
+
+ \section{File types used by \M}
+
+ \Filetype{\textasciitilde/.MusE}
+ \M\ Configuration File (``\textasciitilde´´ refers to your home directory
+ aka "/home/tux")\par
+ \Filetype{\textasciitilde/.musePrj}
+ Hidden Project File; stores list of last projects\par
+ \Filetype{.med}
+ \M\ song file; internal \M format\par
+ \Filetype{.mid}
+ midi file; can be imported or exported\par
+ \Filetype{.kar}
+ karaoke: midi file with additional information; some types
+ can be imported\par
+
+\startappendices
+ \component ../gpl.tex
+ \completeindex
+ \stopappendices
+\stoptext
diff --git a/muse/doc/man/fdl.tex b/muse/doc/man/fdl.tex
new file mode 100644
index 00000000..bdad2a11
--- /dev/null
+++ b/muse/doc/man/fdl.tex
@@ -0,0 +1,510 @@
+%---------The file header---------------------------------------------
+\documentclass[a4paper,12pt]{book} % possibilities : report book article , etc.
+
+\usepackage[english]{babel} %language selection
+\usepackage[T1]{fontenc}
+
+\pagenumbering{arabic}
+
+\usepackage{hyperref}
+\hypersetup{colorlinks,
+ citecolor=black,
+ filecolor=black,
+ linkcolor=black,
+ urlcolor=black,
+ pdftex}
+
+
+\begin{document}
+%---------------------------------------------------------------------
+\chapter{GNU Free Documentation License}
+%\label{label_fdl}
+
+ \begin{center}
+
+ Version 1.2, November 2002
+
+
+ Copyright \copyright 2000,2001,2002 Free Software Foundation, Inc.
+
+ \bigskip
+
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ \bigskip
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+\end{center}
+
+
+\begin{center}
+{\bf\large Preamble}
+\end{center}
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document "free" in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+
+This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense. It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does. But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book. We recommend this License
+principally for works whose purpose is instruction or reference.
+
+
+\begin{center}
+{\Large\bf 1. APPLICABILITY AND DEFINITIONS}
+\addcontentsline{toc}{section}{1. APPLICABILITY AND DEFINITIONS}
+\end{center}
+
+This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License. Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein. The \textbf{"Document"}, below,
+refers to any such manual or work. Any member of the public is a
+licensee, and is addressed as \textbf{"you"}. You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+
+A \textbf{"Modified Version"} of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A \textbf{"Secondary Section"} is a named appendix or a front-matter section of
+the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall subject
+(or to related matters) and contains nothing that could fall directly
+within that overall subject. (Thus, if the Document is in part a
+textbook of mathematics, a Secondary Section may not explain any
+mathematics.) The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+
+The \textbf{"Invariant Sections"} are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License. If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant. The Document may contain zero
+Invariant Sections. If the Document does not identify any Invariant
+Sections then there are none.
+
+The \textbf{"Cover Texts"} are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License. A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+
+A \textbf{"Transparent"} copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters. A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text. A copy that is not "Transparent" is called \textbf{"Opaque"}.
+
+Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input format, SGML
+or XML using a publicly available DTD, and standard-conforming simple
+HTML, PostScript or PDF designed for human modification. Examples of
+transparent image formats include PNG, XCF and JPG. Opaque formats
+include proprietary formats that can be read and edited only by
+proprietary word processors, SGML or XML for which the DTD and/or
+processing tools are not generally available, and the
+machine-generated HTML, PostScript or PDF produced by some word
+processors for output purposes only.
+
+The \textbf{"Title Page"} means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page. For works in
+formats which do not have any title page as such, "Title Page" means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+
+A section \textbf{"Entitled XYZ"} means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language. (Here XYZ stands for a
+specific section name mentioned below, such as \textbf{"Acknowledgements"},
+\textbf{"Dedications"}, \textbf{"Endorsements"}, or \textbf{"History"}.)
+To \textbf{"Preserve the Title"}
+of such a section when you modify the Document means that it remains a
+section "Entitled XYZ" according to this definition.
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document. These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+
+
+\begin{center}
+{\Large\bf 2. VERBATIM COPYING}
+\addcontentsline{toc}{section}{2. VERBATIM COPYING}
+\end{center}
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License. You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute. However, you may accept
+compensation in exchange for copies. If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+
+
+\begin{center}
+{\Large\bf 3. COPYING IN QUANTITY}
+\addcontentsline{toc}{section}{3. COPYING IN QUANTITY}
+\end{center}
+
+
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover. Both covers must also clearly and legibly identify
+you as the publisher of these copies. The front cover must present
+the full title with all words of the title equally prominent and
+visible. You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+
+
+\begin{center}
+{\Large\bf 4. MODIFICATIONS}
+\addcontentsline{toc}{section}{4. MODIFICATIONS}
+\end{center}
+
+You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it. In addition, you must do these things in the Modified Version:
+
+\begin{itemize}
+\item[A.]
+ Use in the Title Page (and on the covers, if any) a title distinct
+ from that of the Document, and from those of previous versions
+ (which should, if there were any, be listed in the History section
+ of the Document). You may use the same title as a previous version
+ if the original publisher of that version gives permission.
+
+\item[B.]
+ List on the Title Page, as authors, one or more persons or entities
+ responsible for authorship of the modifications in the Modified
+ Version, together with at least five of the principal authors of the
+ Document (all of its principal authors, if it has fewer than five),
+ unless they release you from this requirement.
+
+\item[C.]
+ State on the Title page the name of the publisher of the
+ Modified Version, as the publisher.
+
+\item[D.]
+ Preserve all the copyright notices of the Document.
+
+\item[E.]
+ Add an appropriate copyright notice for your modifications
+ adjacent to the other copyright notices.
+
+\item[F.]
+ Include, immediately after the copyright notices, a license notice
+ giving the public permission to use the Modified Version under the
+ terms of this License, in the form shown in the Addendum below.
+
+\item[G.]
+ Preserve in that license notice the full lists of Invariant Sections
+ and required Cover Texts given in the Document's license notice.
+
+\item[H.]
+ Include an unaltered copy of this License.
+
+\item[I.]
+ Preserve the section Entitled "History", Preserve its Title, and add
+ to it an item stating at least the title, year, new authors, and
+ publisher of the Modified Version as given on the Title Page. If
+ there is no section Entitled "History" in the Document, create one
+ stating the title, year, authors, and publisher of the Document as
+ given on its Title Page, then add an item describing the Modified
+ Version as stated in the previous sentence.
+
+\item[J.]
+ Preserve the network location, if any, given in the Document for
+ public access to a Transparent copy of the Document, and likewise
+ the network locations given in the Document for previous versions
+ it was based on. These may be placed in the "History" section.
+ You may omit a network location for a work that was published at
+ least four years before the Document itself, or if the original
+ publisher of the version it refers to gives permission.
+
+\item[K.]
+ For any section Entitled "Acknowledgements" or "Dedications",
+ Preserve the Title of the section, and preserve in the section all
+ the substance and tone of each of the contributor acknowledgements
+ and/or dedications given therein.
+
+\item[L.]
+ Preserve all the Invariant Sections of the Document,
+ unaltered in their text and in their titles. Section numbers
+ or the equivalent are not considered part of the section titles.
+
+\item[M.]
+ Delete any section Entitled "Endorsements". Such a section
+ may not be included in the Modified Version.
+
+\item[N.]
+ Do not retitle any existing section to be Entitled "Endorsements"
+ or to conflict in title with any Invariant Section.
+
+\item[O.]
+ Preserve any Warranty Disclaimers.
+\end{itemize}
+
+If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant. To do this, add their titles to the
+list of Invariant Sections in the Modified Version's license notice.
+These titles must be distinct from any other section titles.
+
+You may add a section Entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version by various
+parties--for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+
+You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version. Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity. If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+
+
+\begin{center}
+{\Large\bf 5. COMBINING DOCUMENTS}
+\addcontentsline{toc}{section}{5. COMBINING DOCUMENTS}
+\end{center}
+
+
+You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy. If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+
+In the combination, you must combine any sections Entitled "History"
+in the various original documents, forming one section Entitled
+"History"; likewise combine any sections Entitled "Acknowledgements",
+and any sections Entitled "Dedications". You must delete all sections
+Entitled "Endorsements".
+
+\begin{center}
+{\Large\bf 6. COLLECTIONS OF DOCUMENTS}
+\addcontentsline{toc}{section}{6. COLLECTIONS OF DOCUMENTS}
+\end{center}
+
+You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+
+You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+
+
+\begin{center}
+{\Large\bf 7. AGGREGATION WITH INDEPENDENT WORKS}
+\addcontentsline{toc}{section}{7. AGGREGATION WITH INDEPENDENT WORKS}
+\end{center}
+
+
+A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an "aggregate" if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation's users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+
+
+\begin{center}
+{\Large\bf 8. TRANSLATION}
+\addcontentsline{toc}{section}{8. TRANSLATION}
+\end{center}
+
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections. You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers. In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+
+If a section in the Document is Entitled "Acknowledgements",
+"Dedications", or "History", the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+
+
+\begin{center}
+{\Large\bf 9. TERMINATION}
+\addcontentsline{toc}{section}{9. TERMINATION}
+\end{center}
+
+
+You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License. Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License. However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+
+\begin{center}
+{\Large\bf 10. FUTURE REVISIONS OF THIS LICENSE}
+\addcontentsline{toc}{section}{10. FUTURE REVISIONS OF THIS LICENSE}
+\end{center}
+
+
+The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns. See
+http://www.gnu.org/copyleft/.
+
+Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License "or any later version" applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation. If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+
+
+\begin{center}
+{\Large\bf ADDENDUM: How to use this License for your documents}
+\addcontentsline{toc}{section}{ADDENDUM: How to use this License for your documents}
+\end{center}
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+
+\bigskip
+\begin{quote}
+ Copyright \copyright YEAR YOUR NAME.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.2
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+ A copy of the license is included in the section entitled "GNU
+ Free Documentation License".
+\end{quote}
+\bigskip
+
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the "with...Texts." line with this:
+
+\bigskip
+\begin{quote}
+ with the Invariant Sections being LIST THEIR TITLES, with the
+ Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+\end{quote}
+\bigskip
+
+If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+
+%---------------------------------------------------------------------
+\end{document}
diff --git a/muse/doc/man/gpl.tex b/muse/doc/man/gpl.tex
new file mode 100644
index 00000000..f939f169
--- /dev/null
+++ b/muse/doc/man/gpl.tex
@@ -0,0 +1,318 @@
+\chapter{The GNU General Public License}
+
+\midaligned{Version 2, June 1991}
+\blank[big]
+\midaligned{Copyright \copyright\ 1989, 1991 Free Software Foundation, Inc.}
+\blank[big]
+\midaligned{51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA}
+\blank[big]
+\midaligned{Everyone is permitted to copy and distribute verbatim copies}
+\midaligned{of this license document, but changing it is not allowed.}
+
+\blank[big]
+\midaligned{\bf Preamble}
+\blank[big]
+
+The licenses for most software are designed to take away your freedom to
+share and change it. By contrast, the GNU General Public License is
+intended to guarantee your freedom to share and change free software---to
+make sure the software is free for all its users. This General Public
+License applies to most of the Free Software Foundation's software and to
+any other program whose authors commit to using it. (Some other Free
+Software Foundation software is covered by the GNU Library General Public
+License instead.) You can apply it to your programs, too.
+
+When we speak of free software, we are referring to freedom, not price.
+Our General Public Licenses are designed to make sure that you have the
+freedom to distribute copies of free software (and charge for this service
+if you wish), that you receive source code or can get it if you want it,
+that you can change the software or use pieces of it in new free programs;
+and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to
+deny you these rights or to ask you to surrender the rights. These
+restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or
+for a fee, you must give the recipients all the rights that you have. You
+must make sure that they, too, receive or can get the source code. And
+you must show them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2)
+offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that
+everyone understands that there is no warranty for this free software. If
+the software is modified by someone else and passed on, we want its
+recipients to know that what they have is not the original, so that any
+problems introduced by others will not reflect on the original authors'
+reputations.
+
+Finally, any free program is threatened constantly by software patents.
+We wish to avoid the danger that redistributors of a free program will
+individually obtain patent licenses, in effect making the program
+proprietary. To prevent this, we have made it clear that any patent must
+be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and
+modification follow.
+
+\blank[big]
+\midaligned{GNU GENERAL PUBLIC LICENSE}
+\midaligned{Terms and Conditions For Copying, Distribution and
+ Modification}
+\blank[big]
+
+\setupitemize[2][width=5em]
+\startitemize[n,broad]
+
+\item
+This License applies to any program or other work which contains a notice
+placed by the copyright holder saying it may be distributed under the
+terms of this General Public License. The ``Program'', below, refers to
+any such program or work, and a ``work based on the Program'' means either
+the Program or any derivative work under copyright law: that is to say, a
+work containing the Program or a portion of it, either verbatim or with
+modifications and/or translated into another language. (Hereinafter,
+translation is included without limitation in the term ``modification''.)
+Each licensee is addressed as ``you''.
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+\item You may copy and distribute verbatim copies of the Program's source
+ code as you receive it, in any medium, provided that you conspicuously
+ and appropriately publish on each copy an appropriate copyright notice
+ and disclaimer of warranty; keep intact all the notices that refer to
+ this License and to the absence of any warranty; and give any other
+ recipients of the Program a copy of this License along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you
+may at your option offer warranty protection in exchange for a fee.
+
+\item
+You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+\startitemize[a]
+
+\item
+You must cause the modified files to carry prominent notices stating that
+you changed the files and the date of any change.
+
+\item
+You must cause any work that you distribute or publish, that in
+whole or in part contains or is derived from the Program or any
+part thereof, to be licensed as a whole at no charge to all third
+parties under the terms of this License.
+
+\item
+If the modified program normally reads commands interactively
+when run, you must cause it, when started running for such
+interactive use in the most ordinary way, to print or display an
+announcement including an appropriate copyright notice and a
+notice that there is no warranty (or else, saying that you provide
+a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this
+License. (Exception: if the Program itself is interactive but
+does not normally print such an announcement, your work based on
+the Program is not required to print an announcement.)
+
+\stopitemize
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+\item
+You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+\startitemize[a,packed]
+
+\item
+Accompany it with the complete corresponding machine-readable
+source code, which must be distributed under the terms of Sections
+1 and 2 above on a medium customarily used for software interchange; or,
+
+\item
+Accompany it with a written offer, valid for at least three
+years, to give any third party, for a charge no more than your
+cost of physically performing source distribution, a complete
+machine-readable copy of the corresponding source code, to be
+distributed under the terms of Sections 1 and 2 above on a medium
+customarily used for software interchange; or,
+
+\item
+Accompany it with the information you received as to the offer
+to distribute corresponding source code. (This alternative is
+allowed only for noncommercial distribution and only if you
+received the program in object code or executable form with such
+an offer, in accord with Subsection b above.)
+
+\stopitemize
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+\item
+You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+\item
+You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+\item
+Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+\item
+If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+\item
+If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+\item
+The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and ``any
+later version'', you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+\item
+If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+\blank[big]
+\midaligned{\sc No Warranty}
+\blank[big]
+
+\item
+{\sc Because the program is licensed free of charge, there is no warranty
+for the program, to the extent permitted by applicable law. Except when
+otherwise stated in writing the copyright holders and/or other parties
+provide the program ``as is'' without warranty of any kind, either expressed
+or implied, including, but not limited to, the implied warranties of
+merchantability and fitness for a particular purpose. The entire risk as
+to the quality and performance of the program is with you. Should the
+program prove defective, you assume the cost of all necessary servicing,
+repair or correction.}
+
+\item
+{\sc In no event unless required by applicable law or agreed to in writing
+will any copyright holder, or any other party who may modify and/or
+redistribute the program as permitted above, be liable to you for damages,
+including any general, special, incidental or consequential damages arising
+out of the use or inability to use the program (including but not limited
+to loss of data or data being rendered inaccurate or losses sustained by
+you or third parties or a failure of the program to operate with any other
+programs), even if such holder or other party has been advised of the
+possibility of such damages.}
+
+
+\blank[big]
+\midaligned{\sc End of Terms and Conditions}
diff --git a/muse/doc/man/titlelogo.jpg b/muse/doc/man/titlelogo.jpg
new file mode 100644
index 00000000..0c26f3e8
--- /dev/null
+++ b/muse/doc/man/titlelogo.jpg
Binary files differ