An open API service indexing awesome lists of open source software.

https://github.com/schoettl/nn2gs-plugin-musescore

Nn2GS - Griffschrift für Steirische Harmonika - Plugin für MuseScore
https://github.com/schoettl/nn2gs-plugin-musescore

musescore musescore-plugin music plugin

Last synced: 4 months ago
JSON representation

Nn2GS - Griffschrift für Steirische Harmonika - Plugin für MuseScore

Awesome Lists containing this project

README

          

* MuseScore Plugin

- [[https://musescore.org/en/project/nn2gs-normalnoten-zu-griffschrift-fur-steirische-harmonika][Plugin page at musescore.org]]
- [[https://musescore.org/en/node/315330][Plugin discussion thread on musescore.org]]

Nn2GS („Normalnototation zu Griffschrift“) ist ein Computerprogramm zum
Übersetzen zwischen Normalnoten und Griffschrift für Steirische
Harmonika, Club Harmonika, Schwyzer-Orgel und ähnliche Instrumente.

/Nn2GS is a software to convert between normal music notation and
Griffschrift for Steirische Harmonika (a diatonic button accordion), and
similar instruments./

Die Webseite https://griffschrift-notation.de/ zeigt die
Diskant-Tastenanordnungen, für die Griffschrift erzeugt werden kann. Auf
Anfrage können auch weitere Tastenanordnungen hinzugefügt werden.

Demo-Videos gibt es [[https://www.youtube.com/@jakob.schoettl][hier bei YouTube]].

*Features:*

- *Übersetzen in beide Richtungen*
- „Durchschalten“ der *alternativen Griffweisen*.
- Übersetzte *Griffschrift ist abspielbar* in MuseScore.
[Aktuell nicht mehr in MuseScore 4.]
- In Griffschrift werden die *Notenköpfe automatisch auf die richtige
Seite* des Notenhalses sortiert (optional).
- In Griffschrift werden Zusatztasten zusätzlich durch spezielle
Notenköpfe gekennzeichnet.
- Verschiedene Griffschrift-Varianten (=Schriftarten), z.B. Kreuz vor
Notenkopf oder Notenkopf in Kreuzform.
- Zug-Passagen werden wahlweise blau gefärbt, damit man sich auskennt.
- Die Färbung kann auch wieder rückgängig gemacht werden durch abwählen
des Häckchens.
- Tonart automatisch auswählen durch Klick auf /Aktuelle Dur-Tonart/.
- Tastaturschema mit aktuell markiertem Akkord anzeigen (im Browser).
- Kann komplett mit Tastenkürzeln bedient werden.
- Bassbezifferung zu ausnotierten Basslinien hinzufügen (z.B. bei
Chorälen).
- Unterstützung für verschiedene Basssystemen und Schemas für die
Bassbenennung (A-H vs. A, A’, …).

*Geplante Erweiterungen:*

- Druckbalken automatisch einfügen (ist leider nicht so einfach).
- Existierende Griffschrift abspielbar machen.
- Bassbegleitung halbautomatisch einfügen.

[[screenshot.png]]

*Installation:*

1. Plugin als Zip-Datei herunterladen:
- nn2gs-v1.7.zip für MuseScore Studio 4.4
- nn2gs-v1.6.zip für MuseScore 4.0 bis 4.3
- nn2gs-v1.5.1-ms36.zip für MuseScore 3.6
2. QML-Datei extrahieren und in den Ordner =Dokumente / MuseScore4 / Plugins= ablegen
3. MuseScore starten, /Plug-Ins → Plug-Ins verwalten…/, dort Nn2GS aktivieren
4. Partitur öffnen oder erstellen
5. Plugin starten: /Plug-Ins → Griffschrift (Nn2GS)/

Kosten: Aktuell kostenlos, irgendwann später wohl wenige Euro pro
umgewandeltes Stück.

Kontakt: Jakob Schöttl, jschoett@gmail.com

* Compatibilty with MuseScore versions
:PROPERTIES:
:ID: compatibility
:END:

Getestet wurde das Plugin mit:

| MuseScore | Plugin Nn2GS | Betriebsystem | Qt | Datum |
|-----------+--------------+---------------+---------+-----------------|
| 4.6.5 | v1.7.1 | Linux | 6.10.1 | [2026-01-31 Sa] |
| 4.6.5 | v1.7 | Windows 11 | 6.9.2 | [2026-01-18 So] |
| 4.6.0 | v1.7 | Linux | 6.9.1 | [2025-08-04 Mo] |
| 4.5.2 | v1.7 | Linux | 6.9.0 | [2025-08-04 Mo] |
| 4.4.4 | v1.7 | Linux | 6.8.1 | [2025-01-11 Sa] |
| 4.4.3 | v1.7 | macOS 11.7.10 | - | [2024-11-01 Fr] |
| 4.4.3 | v1.7 | Windows 10 | - | [2024-11-02 Sa] |
| 4.4.3 | v1.7 | Windows 11 | 6.2.9 | [2024-11-01 Fr] |
| 4.4.2 | v1.7 | Windows 11 | - | [2024-11-01 Fr] |
| 4.4.2 | v1.7 | Linux | 6.7.2 | |
| 4.4.2 | v1.7 | Linux | 6.8.0 | [2024-11-01 Fr] |
| 4.2.1 | v1.6 | Linux | 5.15.12 | |
| 4.1.1 | v1.6 | Windows 11 | - | |
| 4.1.1 | v1.6 | Windows 7 | 5.15.2 | |
| 4.1.1 | v1.6 | Linux | - | |
| 4.1.1 | v1.6 | macOS | - | |
| 4.0.2 | v1.6 | Linux | - | |
| 4.0.2 | v1.6 | macOS | - | |
| 3.6.2 | v1.5.1 | Windows 10 | 5.9.9 | [2025-01-11 Sa] |
| 3.6.2 | v1.5.1 | Linux | - | |
| 3.6.2 | v1.5.1 | macOS | - | |

* Downloads

Die Plugin QML-Datei für MuseScore wird per Skript generiert.
Sie kann hier heruntergeladen werden:

https://musescore.org/en/project/nn2gs-normalnoten-zu-griffschrift-fur-steirische-harmonika

* Development

MS 4 cannot use this project's directory as plugin directory.
We need to copy or symlink the QML file to MuseScore's plugin directory.

: nix-shell
: . BUILD_CONFIG
: watchexec 'make devbuild && cp nn2gs.qml ~/Documents/MuseScore4/Plugins/nn2gs-dev.qml'
: watchexec 'make build && cp nn2gs.qml "nn2gs-v$VERSION.qml" ~/Documents/MuseScore4/Plugins/'

Symlinks also work (confirmed with MS 4.6):

: ln -s /path/to/nn2gs-plugin-musescore/nn2gs.qml ~/Documents/MuseScore4/Plugins/

*Note:* You must restart MuseScore for every change you make to the plugin code!

Start MuseScore with debug mode and a sample file:

: mscore -d ~/projects/nn2gs-plugin-musescore/beispiele/Echt_Boarischer_Klang_1.mscz

Debug mode is important to show output of =console.debug('logs')=.

If MuseScore screen resolution is not correct, you can pass =-D 100=.
This was probably only a X11/XMonad problem.

Before publishing a new version, call =make=. Only publish it if a tests are green!

** Older MuseScore versions

To work on the plugin for older MuseScore versions, you need to
checkout the respecting commit. See =BUILD_CONFIG= for version bumps
and the branch =musescore36= for plugin version 1.5.1 for MS 3.6.

* Contributing

Um zu diesem Plugin beizutragen und mitzuentwickeln können gerne
GitHub Issues und PRs erstellt werden.

Meine Entwicklungsumgebung ist Linux und folgende Programme müssen
installiert sein:

- GNU Make, um die QML-Plugin-Datei zu erzeugen
- closure-compiler, um die ES6 JavaScript-Dateien in einfaches JS zu übersetzen
- GNU awk/sed/bash, ebenfalls für den Build-Prozess der QML-Datei

Wer den [[https://nixos.org/download.html#download-nix][Nix package manager]] installiert hat kann mit folgenden Befehlen
alle Abhängigkeiten installieren:

: git clone git@github.com:schoettl/nn2gs-plugin-musescore.git
: cd nn2gs-plugin-musescore
: nix-shell

Folgender Befehl erzeugt die Datei =nn2gs-vXXX.qml=, die in MuseScore 3.6
im Plugin-Editor (=Strg+Shift+P=) geöffnet und gestartet werden kann.

: make build

Mit diesem Befehl (mithilfe eines "File Watchers") wird die QML-Datei
bei jeder Änderung von Quell-Dateien automatisch übersetzt:

: watchexec make build

Dieser Befehl ist nur für mich, da hiermit die URL der
Übersetzungs-API auf =localhost= geändert wird:

: make devbuild

* Documentation sources

- https://musescore.org/de/handbook/developers-handbook/plugin-development
- More description of important score elements and their properties:
https://musescore.org/en/handbook/developers-handbook/plugins-3x
- Doxygen technical doc on QML classes, properties, methods:
https://musescore.github.io/MuseScore_PluginAPI_Docs/plugins/html/

* Implementation details

** Hinzufügen der Balken für Druck?

=newElement(type)= where type is one of [[https://musescore.github.io/MuseScore_PluginAPI_Docs/plugins/html/class_ms_1_1_plugin_a_p_i_1_1_plugin_a_p_i.html#a5fcfe46c56901e9f3998a72a458e66dc][these]].

I guess =Spanner= would be the right one but it's
[[https://musescore.org/en/node/118231][not yet implemented]]
as plugin API.

** Umwandlung von Normalnotation zu Griffschrift

Dies ist die komplizierte Richtung, weil

- es meist mehrere Tasten gibt, die ein und denselben Ton erzeugen.
- es Töne gibt, die auf dem Instrument gar nicht gespielt werden
können (z.B. bestimmte Halbtöne bei einer Harmonika ohne Zusatztöne).

Es gibt also pro Akkord meistens verschiedene Griffweisen/Alternativen.
Außerdem unterscheidet man natürlich zwischen dem Spielen auf Zug und Druck.

** Umwandlung von Basslinien (ausgeschriebene Bassstimme) in Tastennamen

Die Tastennamen werden dann als „Liedtext“ unter die Noten geschrieben.
So funktioniert es:

Anhand der Stimmung und des Basssystems wird das konkrete Basssystem
für die Stimmung berechnet.

1. Anhand dieses Mappings von Ton zu Taste (auf Druck und Zug) wird dann
für jeden Ton der Basslinie die Basstaste berechnet.
2. Anhand des Basstasten-Benennungsschemas wird aus der Basstaste dann
der Name des zu drückenden Knopfes berechnet.