Aufmacher Artikel

NoteEdit

NoteEdit - Ein graphischer Noteneditor für Linux

01.04.2002 NoteEdit ist ein interaktives Notensatzsystem. Es ermöglicht das Setzen und Abspielen ganzer Partituren und ist auch für Nutzer mit geringen oder gar keinen Notenkenntnissen interessant.

Motivation

Im August 1999 erschien im Linux-Magazin ein Artikel von Christoph Dalitz zum Thema "Notensatzprogramme für Linux", in welchem bedauert wurde, dass die "Schnittmenge zwischen Musikern und Linux-Nutzern (…) sehr klein sein" muss, weswegen der Linuxer "nur eine handvoll Notensatzprogramme" zur Auswahl hat([1]).

Tatsächlich ging die Ankündigung der neuen Version des Rosegarden-Noteneditors ins achte Jahr und so gut die textbasierten Notensatzsysteme auch sind: Musiker haben oft nicht die Zeit, sich in die diversen Syntaxvorschriften solcher Programme einzuarbeiten. Sie erwarten, die Noten wie gewohnt notieren zu können. Ausserdem eröffnen graphische Notensatzsysteme eine völlig neue Perspektive: Man kann die Noten zur Musik "laufen lassen". Gerade Menschen mit keinen oder nur geringen Notenkenntnissen, wünschen sich manchmal, die Partitur zur Musik mitlesen zu können. Diesem Wunsch kann ein graphischer Noteneditor durch Hervorheben der Noten während des Abspiels entsprechen.

Ich schrieb zu dieser Zeit an die Entwickler des "NoteWorthy Composers" ([2]) und fragte, ob es dieses Produkt irgendwann unter Linux geben wird. Die Fähigkeiten dieses Programs wären für meine Zwecke völlig ausreichend gewesen. Die Antwort kam prompt und war eindeutig: "Nein, niemals!".

Da ich mich zu dieser Zeit gerade mit Qt befasste und schon lange ein größeres C++ - Projekt in Angriff nehmen wollte, beschloss ich, einfach mit der Neuprogrammierung eines graphischen Noteneditors auf Qt-basis zu beginnen. Das Ergebnis ist das mittlerweile KDE/Qt-basierte "NoteEdit".

Abbildung 1: NoteEdit hebt die Noten beim Abspiel hervor

MIDI-Sequenzer

Vor der Installation sollten Sie sicherstellen, dass der MIDI-Sequenzer der Soundkarte funktioniert. Man kann zwar NoteEdit ohne MIDI-Sequenzer starten und zum Zwecke des Notensatzes oder zum Erzeugen von MIDI-Files verwenden. Auf die Wiedergabe der Musik durch NoteEdit müssen Sie dann aber verzichten.

Zum Testen benutzen Sie am besten das Programm kmid (nichtkmidi!!!). Öffnen Sie ein beliebiges MIDI-File und versuchen Sie es abzuspielen! Wenn nichts zu hören ist, so stellen Sie unter Einstellungen/MIDI-Einstellungen ein anderes MIDI-Gerät ein! Sollte das keinen Erfolg bringen, so hat die Soundkarte vermutlich gar keinen MIDI-Sequenzer. Oder sie hat einen MIDI-Sequenzer, der aber nicht korrekt konfiguriert ist. Eine Konfigurationsbeschreibung würde den Rahmen dieses Artikels sprengen. Eventuell geben die (englischen) Sound-HOWTOs [3] dazu Hinweise. Die Installation des MIDI-Gerätes ist aber zuweilen so kompliziert, dass sie ausgesprochenen Experten misslingt.

Einen Ausweg bietet der MIDI-to-WAV-Converter TiMidity++ von Masanao Izumo mailto:mo@goice.co.jp ([4]). Dieser ist mittlerweile Bestandteil der gängigen Linux-Distributionen und besitzt seit Version 2.10.2 einen sogenannten Server-Modus. In diesem Modus täuscht er die Existenz eines MIDI-Sequenzers vor. Beenden Sie kmid und starten Sie TiMidity++ im Server-Modus:

timidity -iA -B8,2 -Os

Nach dem erneuten Starten von kmid in einem anderen Fenster sollten unter Einstellungen/MIDI-Einstellungen 2 neue MIDI-Geräte aufgeführt sein:

Timidity port 0 128:0
Timidity port 1 128:0

Wählen Sie eines der beiden Geräte aus und die Musik sollte zu hören sein. Wenn die Instumente allzu hausbacken klingen, so kann man das Orchester austauschen. Eine Beschreibung dazu ist in der TiMidity-Dokumentation enthalten.

Ein kleiner Tipp: Es ist ratsam, TiMidity++ als root zu starten:

su (Passwort auf Verlangen eingeben)
timidity -iA -B8,2 -Os

Dadurch erhält TiMidity++ eine höhere Priorität, wodurch Stockungen speziell im Zusammenspiel mit NoteEdit vermieden werden.

NoteEdit-Installation

Die Quellen der jeweils aktuelle Version liegen unter [5].

Man findet zwar einige RPMs auf der Seite. Diese sind aber nur für ausgewählte Distributionen und Releases vorhanden und veralten aufgrund der schnellen Entwicklung des Programms in kürzester Zeit. Aus diesem Grunde soll die Installation aus der Quelle beschrieben werden.

Zur Installation benötigen Sie:

  • einen C++-Compiler,
  • die X11-Header und -Bibliotheken,
  • die Qt-Header/Bibliotheken ab Version 2.2.2 (aber nicht Qt3),
  • YACC oder Bison,
  • Lex oder Flex,
  • KDE-2.x.y (aber nicht KDE3).

Zu empfehlen ist:

  • LaTeX, MusiXTeX, PMX, xdvi, dvips, gv;
  • LilyPond.

Die meisten dieser Pakete sind in den neuesten Linux-Distributionen enthalten, manche jedoch nicht Bestandteil der Standard-Paketauswahl und so müssen sie gegebenenfalls nachinstalliert werden.

Es wird dringend empfohlen, die TSE3-Bibliothek ab Version 0.1.2 von Pete Goodliffe mailto:pete.goodliffe@pace.co.uk zu benutzen. Es geht im Prinzip ohne TSE3. In diesem Fall müssen Sie aber auf wichtige Funktionen wie den MIDI-Import verzichten. Die Quellen finden Sie unter [6].

Laden Sie das Paket am besten in das Verzeichnis für temporäre Dateien /tmp. Entpacken, konfigurieren und installieren Sie das Paket:

cd /tmp
tar -xvzf tse3-0.1.2.tar.gz
cd tse3-0.1.2
./configure
make
su (Root-Passwort auf Verlangen eingeben)
make install
exit

Vor der Installation des NoteEdit-Paketes müssen die Umgebungsvariaben QTDIR und KDEDIR auf die Verzeichnisse gesetzt werden, in denen Qt bzw. KDE installiert sind. Der Pfad für Qt ist im Allgemeinen /usr/lib/qt2. Der für KDE ist leider distributions- und versionsabhängig. Die folgende Tabelle zeigt die gängigen Pfade für RedHat und SuSE:

Pfade KDE

RedHat /usr
SuSE /opt/kde2

Sind Sie sich über den Pfad auf anderen Systemen nicht ganz sicher, so gibt das folgende Kommando darüber Auskunft:

kde-config --prefix

Wie diese Umgebungsvariablen zu setzen sind, hängt unglücklicherweise wiederum von der verwendeten Shell ab. Sie können die gerade benutzte Shell durch den folgenden Befehl ermitteln:

echo $SHELL

Das Kommando zum Setzen der Umgebunsgvariable QTDIR auf /usr/lib/qt2 lautet:

Beispiel für das Setzen von QTDIR

Shell Kommando
tcsh oder csh setenv QTDIR /usr/lib/qt2
andere Shell export QTDIR=/usr/lib/qt2

Analog verfährt man mit KDEDIR. Danach installiert man NoteEdit auf ähnliche Weise wie TSE3. . Achtung: Sie müssen zum configure die Option --prefix=pfad angeben. Dabei muss der pfad zur KDE-Installation weisen, also

Configure-Option: --prefix

RedHat --prefix=/usr
SuSE --prefix=/opt/kde2

Wie bei TSE lädt man das Paket am besten ins /tmp - Verzeichnis, entpackt, konfiguriert und installiert es:

cd /tmp
tar -xvzf noteedit-1.17.1.tgz
cd noteedit-1.17.1
./configure --prefix=(Pfad zur KDE-Installation, siehe oben!)
make
su (Root-Passwort auf Verlangen eingeben)
make install
exit

Nun kann ein erster Test beginnen. Das Programm wird durch noteedit gestartet. Unter Einstellungen/Noteneditor einrichten/Sound stellen Sie das MIDI-Gerät ein, welches beim kmid-Versuch Töne von sich gab. Die NoteEdit-Dateien enden auf ".not". Sie finden einige Beispiele unter noteedit-1.17.1/noteedit/examples. Nach dem Öffnen der Datei betätigen Sie den Play-Knopf und die Musik sollte zu hören sein.

Noten setzen

Die Länge der Noten und Pausen wird über die Werkzeugleiste "Noten" bestimmt:

Abbildung 2

Abbildung 2: Werkzeugleiste: Notenlänge

Noten und Pausen lassen sich entweder mit Hilfe der Maus oder per Tastatur eingeben. Welche Variante gerade aktuell ist, bestimmt eine Checkbox unter: Einstellungen/Noteneditor einrichten.../Editieren/Einfügen von der Tastatur. Ausserdem kann man zwischen diesen beiden Modi durch Betätigen der Taste [k] umschalten.

Beim Einfügen mit der Maus bedeutet:

  • die mittlere Maustaste: Note einfügen
  • die rechte Maustaste: Pause einfügen
  • Cursor auf/Cursor ab: nachträgliches Bewegen der Note

Beim Einfügen über Tastatur bedeutet:

  • [Enter]: Note einfügen
  • [Leertaste]: Pause einfügen
  • Cursor auf/Cursor ab: Bestimmung der Notenzeile für die nächste Note

Unabhängig vom Modus bedeuten:

  • Die Cursor links/rechts-Tasten: Bewegen der aktuelle Einfügeposition
  • [Backpace]: Zeichen vor dem Cursor löschen
  • [Tab]: Taktstrich einfügen.

Über spezielle Werkzeugleisten lassen sich Vorzeichen, Punktierungen, Akzente und Verzierungen einstellen. Andere Werkzeugleisten und Menüs bieten das Einfügen von Notenschlüsseln, Wiederholungen, Voltas, Taktarten, Vorzeichnungen, Tempozeichen, Lautstärkezeichen sowie Mehrtakte-Pausen an:

Abbildung 3

Abbildung 3: Einige Musikzeichen, Akzente, Verzierungen und Vorzeichen

Die Zeichen stehen nicht etwa bloß so da. Sie werden beim Abspiel berücksichtigt. In Wiederholungszeichen geklammerte Teile werden den Vorschriften gemäß repetiert und die Triller sind zu hören. Ebenso wirken sich Tempo-, Lautstärke- und (De-)Crescendo-Zeichen auf die Wiedergabe aus und werden bei der Erzeugung von MIDI-Files entsprechend berücksichtigt.

Zu jeder Notenzeile können bis zu fünf Zeilen Text hinzugefügt werden. Der Text kann entweder in einer Datei vorbereitet sein oder wird direkt über einen kleinen Editor eingegeben.

Abbildung 4

Abbildung 4: NoteEdit ermöglicht bis zu fünf Zeilen Text

Bei der Entwicklung eines Noteneditors wird man stets mit einem Problem konfrontiert, welches bei ähnlich gelagerten Programmen, wie zum Beispiel Textverarbeitung oder bei MIDI-Sequenzern nicht oder nicht in dem Maße auftritt: Gruppierung. Noten bilden ständig irgendwelche Gruppen. Es gibt waagerechte Gruppen (Balken, Triolen, Bögen) und senkrechte Gruppen (Akkorde). Es sind gerade diese Gruppen, die dem Programmierer große Schwierigkeiten bereiten und eine Quelle vieler Programmierfehler mit teils fatalen Konsequenzen ist.

Abbildung 5

Abbildung 5: Gruppenbildung in NoteEdit

Akkorde bildet man durch Drücken der [Strg]-Taste vor dem Einfügen der Note. Die waagerechten Gruppen können Sie durch Markieren der zu gruppierenden Musikzeichen und nachfolgendem Drücken des entsprechenden Buttons bilden.

Das Markieren geschieht durch Klicken und anschließendem waagerechten Ziehen der Maus bei gedrückt gehaltener linker Maustaste. Es dient noch einem anderen Zweck: Die markierten Bereiche können durch [Backspace] gelöscht und durch Klicken mit der mittleren Maustaste an eine andere Stelle kopiert werden. Durch Aktivierung von Bearbeiten/Zeilenübergreifend... kann der Befehl auf allen ausgewählten Notenzeilen gleichzeitig durchgeführt werden:

Abbildung 6

Abbildung 6: Kopieren in 3 Notenzeilen

Ein spezielles Menü befasst sich nur mit den Notenzeilen. Jede Notenzeile kann von einem anderen der 128 angebotenen Instrumente gespielt werden. Wie nahe der Klang dem realer Instrumente kommt, hängt stark von der Soundkarte ab. Die besten Ergebnisse erhält man von Soundkarten mit ausreichend Speicher (8 MB und mehr) und austauschbaren Soundfonts. Die so erzeugten Musik kann ein Laie nicht mehr vom Klang einer real spielenden Bigband unterscheiden. Man sollte jedem Instrument einen anderen MIDI-Kanal zuweisen, wobei der Kanal 10 dem Schlagzeug vorbehalten bleibt. Neben dem Instrument läßt sich noch die Stereo-Position, der Hall und der Choruseffekt festlegen. Außerdem kann jeder Notenzeile ein symbolischer Name zugewiesen werden.

Die Nagelprobe für alle Notensatzprogramme ist die Frage nach der Anzahl der Stimmen pro Notenzeile. NoteEdit gestattet bis zu neun Stimmen:

Abbildung 7

Abbildung 7: Beispiel mit drei Stimmen in Noteedit

Die Stimmen werden über das Menü Notezeile/Stimmen... verwaltet. Hier stellt man die bevorzugte Notenhalsrichtung und die Position der Pausen für jede Stimme ein.

Drucken

Viele Nutzer suchen vergeblich einen Menüeintrag Drucken. Tatsächlich besitzt NoteEdit selbst dafür keine Unterstützung. Stattdessen nutzt NoteEdit die Fähigkeiten dreier freier Noten-Satzsysteme, die schon seit geraumer Zeit unter Linux zur Verfügung stehen und exzellente Ergebnisse liefern:

  • MusiXTeX
  • PMX
  • LilyPond

Außerdem ist das Speicherformat von NoteEdit dem des Music Publication Programs (MUP, [10]) so ähnlich, dass es in den meisten Fällen von diesem weiterbearbeitet werden kann.

Welches von diesen Systemen die besten Ausgaben erzeugt, können Sie selbst ausprobieren, indem Sie die Partitur über das Datei-Menü in das gewählte Format exportieren. Wie aus dem so erzeugten Format ein druckfertiges Examplar wird, wird unter [7], [8] und [9] beschrieben. Das folgende Schema deutet das Verfahren am Beispiel einer Datei mit dem Wortstamm "mus1" an:

Benutzung der Notensatzsysteme

MusiXTeX

rm -f mus1.mx2
latex mus1.tex
musixflx mus1.mx1
latex mus1.tex
dvips -o mus1.ps mus1.dvi

PMX

pmxab mus1.pmx
rm -f mus1.mx2
tex mus1.tex
musixflx mus1.mx1
tex mus1.tex
dvips -o mus1.ps mus1.dvi

LilyPond

ly2dvi -P mus1.ly

MUS

mup -f mup1.ps mus1.not
lpr mus1.ps

MIDI-Import

NoteEdit kann MIDI-Dateien lesen. Jedoch in der irrigen Annahme, MIDI wäre eine Partiturbeschreibung, versprechen sich viele Nutzer zu viel von dieser Funktionalität. MIDI beschreibt keine Partitur! Die Partitur muss aus den MIDI-Daten mühevoll generiert werden. Da der Nutzer diesen Prozess steuern muss, ist der MIDI-Import ist ohne minimale Musikkenntnisse kaum möglich. Hinweise gibt es unter [11].

Man findet den entsprechenden Menüpunkt unter: TSE3/MIDI Importieren. Der Import selbst geschieht über ein entsprechendes Filtermenü: TSE3/Filtern.... Dort wählt man einen geeigneten Filter aus und aktiviert den Knopf mit der Aufschrift: TSE3-->Score. Mit Hilfe von Bearbeiten/Auto-Takt-Einfügung bzw. Auto-Balken-Einfügung werden die Taktstriche und Balken nachgetragen. Hat das Musikstück einen Auftakt, so muss der Nutzer vorher den ersten Taktstrich in jeder Zeile setzen.

Musik vom MIDI-Keyboard einspielen

NoteEdit kann die Musik direkt von einem an die Soundkarte angeschlossenen MIDI-Keyboard lesen. Erzeugen Sie dazu zunächst eine neue Notenzeile und weisen Sie ihr ein Instrument zu! Danach erzeugen Sie mit Hilfe von: TSE3/TSE3 Song erzeugen einen TSE3-Song. Nach dem Betätigen des Aufnahme-Knopfes erscheinen das Metronom- und das Filtermenü. Auf dem Metronommenü stellt man die Aufnahmegeschwindigkeit ein. Das Filtermenü benutzt man genauso wie beim MIDI-Import. Danach klicken Sie auf Aufnahme starten. Das Metronom gibt den Aufnahmetakt mit vier Schlägen vor. Beginnen Sie, mit dem fünften Metronomschlag möglichst genau im Rhytmus der vorgegebenen Metronomschläge zu spielen. Beenden Sie die Aufnahme durch nochmaliges Betätigen des Aufnahme-Knopfes. Daraufhin erzeugt NoteEdit eine entsprechende Notendarstellung.

Ausblick

NoteEdit ist nachwievor in der Entwicklung auf. Einige der Wünsche nach Erweiterungen beziehen sich auf Gitarrenharmonien, beliebigen Text ("adagio"), einzeiligen Notensatz (Tamburin), Vor-/Nachschlag (Graces) und viel mehr Verzierungen (Mordent, etc.). Einige dieser Wünsche können sicherlich in absehbarer Zeit erfüllt werden. Andere vermutlich nie, wie beispielsweise das einscannen von Notenblättern.

Der Autor

Der Autor ist Assistent an der Fakultät für Informatik der Technischen Universität Chemnitz, benutzt hauptsächlich Linux und spielt Gitarre und ein wenig Klavier.

Kontakt: ja@informatik.tu-chemnitz.de

Tip a friend    Druckansicht beenden Bookmark and Share
Kommentare