MuseScore - Plugin-Programmierung verstehen - Notennamen

Lisa2
Lisa2
Helpful & Friendly User
HFU
Zuletzt hier
26.01.24
Registriert
09.05.13
Beiträge
6.777
Kekse
55.740
Ort
Vorgebirge/Rhnld.
Hallo Ihr Programmierer

Vorhin habe ich mir mal den Code des MuseScore-Plugin "note names" angesehen.
https://musescore.org/en/project/notenames

Der Code ansich ist gut lesbar und verständlich.
Wenn man keine Großbuchstaben angezeigt bekommen möchte, tauscht man die einfach gegen kleine aus.
Und wenn man a1 angezeigt bekommen möchte, fügt man einfach die 1 hinter dem a ein.

So weit, so gut.

Nun hätte ich gerne die Möglichkeit, zwischen a, a1 und a2 und auch die Octavlagen der anderen Töne zu unterscheiden.
Wie muss man den Code ergänzen, damit das möglich wird?
Zur Zeit werden die Töne in allen Oktavlagen in derselben Weise benannt. Das möchte ich ändern.

Die Codezeilen für die Stammtöne sind so aufgebaut:

case -1: text.text = qsTr("Fbb") + text.text; break;
...
case 13: text.text = qsTr("F") + text.text; break;
case 14: text.text = qsTr("C") + text.text; break;
case 15: text.text = qsTr("G") + text.text; break;
case 16: text.text = qsTr("D") + text.text; break;
...
case 33: text.text = qsTr("B##") + text.text; break;

usw.
Die Ziffern hinter "case" steigen fortlaufend an, während die Tonbuchstaben in Quintenfolge aufsteigen.

Da ich keine Ahnung vom Programmieren habe, erkenne ich den Schlüssel nicht, mit dem der Bezug zwischen Note und Notenname hergestellt wird.
Kann mir jemand weiterhelfen?


Viele Grüße
Lisa
 
Eigenschaft
 
Hallo Lisa,

der Code für die Anzeige der Oktave ist, soweit ich das verstehe, im Source-Code des plug-ins bereits enthalten, allerdings auskommentiert:

// octave, middle C being C4
// text.text += (Math.floor(notes.pitch / 12) - 1)

// or
//text.text += (Math.floor(notes.ppitch / 12) - 1)

entferne den Kommentar (im Editor) in der rot markierten Zeile und speicher. Dann sollte der Name des Tons/der Note zusammen mit der Nr der Oktave angezeigt werden.

Ich hoffe das hilft.

Grüße
 
  • Gefällt mir
Reaktionen: 1 Benutzer
Vielen Dank KlaBueBaer! :great:
Ja, das hat geholfen!
Das Ergebnis ist so, wie ich es mir vorgestellt habe.

Nun habe ich folgende Fragen.

(1)
Ich wüßte nun gerne den Unterschied zwischen
notes.pitch
und
notes.ppitch​

Habe die beiden Zeilen beide mal "laufen" lassen = jeweils einzeln das Kommentarzeichen entfernt. Das Ergebnis war jedesmal dasselbe.

(2)
Hast Du eine Idee, wie man den Code verändern muss, damit je Octavlage andere Zeichen der Tastatur ansprochen werden?
z.B. statt f2 > F / statt f3 > f /
Hier bliebe die Taste für den Buchstaben dieselbe, aber die Zahl würde durch ' bzw. '' etc. ersetzt.
statt f4 > f' / statt f5 > f''

(3)
Welche Bedeutung haben die Zahlen hinter dem Befehl "case"?
Für mich sieht es danach aus, als ob sie für die Definition der Noten stehen würden, ohne deren Oktavlage zu definieren.
Welchen Befehl benötigt man, um die jeweilige für eine Tonstufe stehende Zahl mit einer ganz bestimmten Oktavlage zu kombinieren, damit man hinter dem Befehl qsTr für jede Oktavlage eine separate Definition eingeben kann. (Das könnte dann die Lösung für Frage 2 sein.)


EDIT
(4)
Kennt jemand eine Liste/ein Buch, in der die Befehle von QtQuick 2.0 erklärt werden?
Das Plugin startet mit
import QtQuick 2.0
import MuseScore 1.0


Viele Grüße
Lisa
 
Zuletzt bearbeitet:
Hallo Lisa,

Zu diesem plugin gibt es eine Beschreibung. Zu finden hier: https://musescore.org/en/project/notenames .

(1)
pitch:
midi pitch (0-127)

ppitch:
actual played midi pitch (honoring ottavas) (read only)

Mehr infos/Docu zum Objekt "notes" sind hier zu finden: https://github.com/musescore/MuseScore/blob/master/libmscore/note.h


(2)
ja, habe ich ;-). Ich muß dazu sagen, daß ich weder der Programmierer dieses plugins bin noch nennenswerte Erfahrung mit Qt habe.

Meine Idde: Anstelle der Ziffer, die an den Namen/Bezeichnung der Note gehängt wird, kann diese Ziffer als Index in einem Vektor verwendet werden. Der Vektor enthält die passende "Markierung/Text" für die Benennung der Oktave. Evtl. könnte in einem Array zusätzlich eine Info über die Konvertierung in Klein-/Großschreibung hinterlegt werden.

Alternativ oder zusätzlich kann ich mir vorstellen, daß die Oktave im Notenkopf farblich gekennzeichnet wird. Jede Oktave durch genau eine definierte Farbe.

(3)
der wert für den "tonal pitch class" (tpc). Infos dazu hier: https://musescore.org/en/plugin-development/tonal-pitch-class-enum
"he Tonal Pitch Class (tpc) is used to differentiate among notes with the same MIDI pitch but with different representation (also covering enharmony). The tpc is used by several objects properties:"

(4)
hier: http://wiki.qt.io/Category:Developing_with_Qt::Qt_Quick

Erfahrung mit OO-Programmierung ist imho eine wesentliche Voraussetzung um das anwenden zu können.

Grüße
 
  • Gefällt mir
Reaktionen: 1 Benutzer
Vielen Dank KlaBueBaer :great:

Erfahrung mit OO-Programmierung ist imho eine wesentliche Voraussetzung um das anwenden zu können.

Davon kann ich leider keine aufweisen. :nix:
Ich weiß nicht einmal, was OO bedeutet. :whistle:

Die Links schaue ich heute Abend an.
Ich fürchte, das sind für mich alles "bömische Dörfer".
Egal. Versuch macht kluch. :)

Viele Grüße
Lisa
 
Hallo Lisa,

OO = Objekt-Orientiert, im Gegensatz zu prozedural oder funktional.

Bevor Du Deine Zeit investierst: ich werde das plugin anpassen bzw. auf Basis dieses plugins eine weitere Version erstellen. So lerne ich wieder etwas dazu ;-)

Grüße
 
  • Gefällt mir
Reaktionen: 1 Benutzer
Hallo Lisa,

ich habe ein wenig gebastelt und das im Anhang enthaltene plugin notenames2 macht jetzt genau das: 1) groß-/klein der namen und 2) Kennzeichnung der Oktave über "," oder "'". Bitte ausprobieren und falls noch etwas ist, bitte melden.

Die Farbigkeit der NotenNamen in Abhängigkeit der Oktave habe ich erstmal weggelassen.

Grüße
 

Anhänge

  • notenames2.zip
    2,4 KB · Aufrufe: 175
  • Gefällt mir
Reaktionen: 1 Benutzer
Hallo KlaBueBaer,

Deine Lösung mit dem Array finde ich viel eleganter als die vielen Case-Abfragen in der Vorlage.
Besonders aber gefällt mir die "Wiederholungserkennung", bei der die Notennamen nur dann ausgegeben werden, wenn sich die Note ändert. :great:

Aber zwei Anmerkungen hätte ich noch, wenn wir schon dabei sind: ;)

1. Groß- und Kleinschreibung
Die Groß- und Kleinschreibung, wohl vor allem der "großen" und der "kleinen" Oktave geschuldet, fände ich nur mit den deutschen Notennamen so richtig sinnvoll.
Englische Notennamen sind eigentlich immer großgeschrieben, so etwas wie bb oder gar bbb ist nicht üblich, es heißt immer Bb und Bbb.
Deshalb würde ich (auch @Lisa2) dafür plädieren, bei dieser Schreibweise generell die deutschen Notennamen (auch cis statt c# usw.) bevorzugen, das paßt auch gut zu den ' und , für die Oktavlage.

2. Grenzfälle der Oktavlage
Die MIDI-Notennummern (pitch), die zur Berechnung der Oktave benutzt werden, können in ein paar Grenzfällen (die in Anfängerliteratur wohl nie vorkommen werden) Fehler auftreten.
Zum Beispiel ein ces' hätte den selben pitch-Wert wie ein h und die berechnete Oktave wäre dann zu tief. Der umgekehrte Fall für his/c' usw. gilt ebenfalls.

Du hast ja schon die Variable octaveNumb eingeführt, die könnte man ja im Nachhinein für ces, ceses, his, hisis ja noch nach oben bzw. unten korrigieren, wäre ja kein großer Aufwand.


Viele Grüße
Torsten
 
  • Gefällt mir
Reaktionen: 1 Benutzer
@KlaBueBaer
Alls allererstes: Dankeschön! :great: :great: :great:

Ich habe das Plugin gerade ausprobiert. Dabei fiel mir auf, dass die Oktavlagenbezeichnung eine Oktave zu hoch ist. Im Violinschlüssel wird
a' mit a'' angezeigt usw.. Im Bassschlüssel setzt sich dieser Fehler fort. Außerdem wird sowohl das A als auch das A mit a angegeben.

Die Wiederholungserkennung ist eine gute Idee.
Unter bestimmten Voraussetzungen würde ich sie aber auch ausschalten wollen.

@Be-3
Englischen Notennamen
Das erste, was ich beim Test gemacht habe: die englischen Bezeichnungen gegen deutsche ausgetauscht. :D

Gruß
Lisa

EDIT
Die fehlerhafte Anzeige der Oktavlagen in der ersten Plugin-Version:

Tonleiter_automatisch_beschriftet-1.jpg



Torstens spätere Erklärung zeigt, dass der Wechsel der Groß/Kleinschreibung und die Wahl der Oktavlagenbezeichnungen von zwei unterschiedlichen Befehlen gesteuert werden. Ein wichtiger Punkt, den ich bei meiner Hinterfragung zunächst gar nicht bedacht hatte.

Beim Schlüsselwechsel finde ich den fehlenden Notennamen irritierend. Da würde ich die Wiederholungserkennung gerne ausschalten.
 
Zuletzt bearbeitet:
Das erste, was ich beim Test gemacht habe: die englischen Bezeichnungen gegen deutsche ausgetauscht. :D

Dann sind wir uns ja einig. :D

Daß die Oktaven verschoben sind (und auch die Groß-/Klein-Umschaltung) war mir überhaupt nicht aufgefallen - ich hatte mir nur das Coding durgesehen...
-> Versuch macht kluch. :)

Viele Grüße
Torsten
 
Und was muss man nun ändern, damit die Oktavlagenbezeichnungen richtig werden?
Ich habe mir eine Tabelle mit Midinotennummern gesucht und dann im Programmcode die PitchClass Nummern geändert. Aber das änderte das Ergebnis nicht. :nix:
 
Hallo Lisa,

die tpc-Nummern (pitch class) haben nichts damit zu tun - die steuern nur den Notennamen unter Berücksichtigung des Vorzeichens. In dieser Information steckt überhaupt keine Oktavennummer drin.

c' hat die MIDI-Nummer 60. Wenn man 12 Halbtonschritte dazuaddiert, erhält man 72, das entspricht c''.

Alle 12 Halbtonschritte ändert sich die Oktavlage, deshalb auch die Rechnung pitch / 12. Die mathematische Operation Floor schneidet nur die Nachkommastellen ab.
Da 60 praktischerweise genau durch 12 teilbar ist (60 / 12 ergibt ja genau 5), entspricht der so errechnete oktavabhängige Zähler 5 der eingestrichenen Oktave.
Bis zum h' (71 / 12 = 5,92666...) erhält man immer noch 5, wenn man die Nachkommastellen abschneidet. Ab 72 (c'') geht es mit 72 / 12 = 6 weiter...

Diese Oktavnummer (bei KlaBueBaer in der Variablen octaveNumb gespeichert) liest das das Array (die "Tabelle") octaveSymbols, in der er nacheinander die Oktavbezeichnungen abgelegt hat.
Der erste Eintrag hat immer die Positionsnummer 0, d. h. unsere 5 für die eingestrichene Oktave (') muß das 6. Element in dieser Liste sein.
Ist es aber nicht, das 6. Element ist ''. Das hast Du ja auch beobachtet.

Pragmatische Lösung: einfach noch einen Eintrag davor, dann geht es bei OctaveNumb 0 mit ,,, los.

Konkret: den rot eingefärbten Eintrag hinzufügen: (edit: rot geht ja garnicht im Code-Modus, dafür ein Kommentar nach //)
Code:
   property variant octaveSymbols : [
",,,",                     // zusätzlicher Eintrag
",,",
",",
" ",
" ",
"\'",
"\'\'",
"\'\'\'",
"\'\'\'\'",
"\'\'\'\'\'",
"\'\'\'\'",
"\'\'\'\'\'\'"
   ]

Dann stimmen schon mal die Oktavstriche bzw. -kommata.

Als nächstes schaltet noch Groß- und Kleinschreibung zu früh um.

Die vorgegebenen Notennamen werden in Kleinschreibung umgewandelt (toLowerCase), sobald die octaveNumb einen gewissen Wert überschreitet.
Das muß ab der kleinen Oktave aufwärts der Fall sein. Die eingestrichene Oktave hat die octaveNumb 5, wie wir eingangs gesehen haben. Die kleine Oktave hat demzufolge octaveNumb 4. Und ab 4 aufwärts brauchen wir die Kleinschreibung. Deshalb folgende Stelle ändern (auch wieder rot markiert):
(edit: wieder kein rot, aber die 4 ist auch so zu finden ;))
Code:
        if (octaveNumb >= 4) {
            currNoteName = currNoteName.toLowerCase();
        }

Mit diesen beiden kleinen Eingriffen bekommst Du die richtigen Oktavstriche und Groß-/Kleinschreibung wechselt an der richtigen Stelle.

Viele Grüße
Torsten
 
Zuletzt bearbeitet:
Guten Morgen Torsten
Vielen Dank!
Habe alles gefunden und den Code geändert. Jetzt ist das Ergebnis fehlerfrei.

Nun habe ich versucht zu erkennen, welche Befehlsgruppe die Doppelung der Notennamen ausschaltet.
Ich vermute mal, dass es bei "if (currNoteName != lastUsedNoteName) ..." los geht.
Mein Versuch, diese Befehlszeilen auszukommentieren, ging aber schief. Es wurden dann gar keine Notennamen mehr berechnet.

Viele Grüße
Lisa
 
Hallo Elisabeth,

Nun habe ich versucht zu erkennen, welche Befehlsgruppe die Doppelung der Notennamen ausschaltet.

... und die ausschlaggebende Stelle im Coding hast Du schon vollkommen richtig erkantt! :great:
Du bist also ein lebendes Beispiel dafür, daß man auch ohne tiefeere Programmierkenntnisse durch "gesunden Menschenverstand" und und Interpretation der Befehle mit Englischkenntnissen oft recht gut einschätzen kann, was ein Programm macht.
Deshalb versuche ich ja immer, die Funktionsweisen und Hintergründe zu erläutern, um noch mehr Menschen bzw. Mitleser zu ermutigen, existierende Plug-Ins als Vorlage zu nehmen und nach ihren Wünschen anzupassen oder umzufunktionieren.

Ganz ehrlich: das "Drumherum", also den Code zum Verarbeiten der gesamten MuseScore-Partitur mit allen Systemen und polyphonen Stimmen könnte ich auch nicht schreiben, dazu fehlt mir das Wissen um die internen Vorgänge von MuseScore.
Aber das muß man auch meist überhaupt nicht, denn meist reicht es ja aus, bestehende Plug-Ins abzuwandeln. Damit kommt man schon sehr weit.


Mein Versuch, diese Befehlszeilen auszukommentieren, ging aber schief. Es wurden dann gar keine Notennamen mehr berechnet.

Da hast Du wahrscheinlich den ganzen Block auskommentiert, dann passier auch überhaupt nichts mehr. :)

Befehlszeilen, die nur unter bestimmten Bedingungen ausgeführt werden sollen, sind meist in if-Abfragen eingeschlossen: Nach "if" steht eine Bedingung, und wenn die erfüllt ist, werden die darauffolgenden Zeilen (entweder nur eine oder mehrere in { } eingeschlossen) ausgeführt. Eventuell gibt es noch eine "else"-Zweig nach dem Motte "wenn (if) dies, dann tue jenes, ansonsten (else) etwas anderes.
In unserem Fall gibt es keine else-Verzweigung.

Diese Bedingung lautet:
Code:
if (currNoteName != lastUsedNoteName) {
  ...
}
Weil KlaBueBaer sinnvolle Variablennamen verwendet hat (nicht heinz oder friedrich), kann man erkennen, daß currNoteName (Name der aktuellen Note) mit lastUsedNoteName (Name der zuletzt benutzten Note) verglichen werden. Nun muß man wissen, daß in dieser Sprache und ihren Verwandten der Operator != "ungleich" bedeutet.
Das Coding (hier durch ... dargestellt) wird also nur durchlaufen, wenn die aktuelle Note nicht mit der vorhergehenden Note übereinstimmt.

Wenn Du den gesamten Block auskommentierst, wird eben überhaupt nichts mehr durchlaufen und auch kein Notenname ausgegeben, das ist der Knackpunkt.

Du willst aber das Gegenteil, nämlich, daß das Coding immer durchlaufen wird, selbst, wenn die Note sich nicht ändert.
Deshalb darfst Du nur die if-Bedingung auskommentieren (und die zugehörige schließende Klammer }, sonst gibt es einen Syntax-Fehler):
Code:
//        if (currNoteName != lastUsedNoteName) {
//                        console.log (currNoteName + " -> " + lastUsedNoteName)
            text.text += currNoteName;
            lastUsedNoteName = currNoteName;
//        }
Mit // wird der Rest der Zeile nicht mehr ausgeführt und lediglich zum "Kommentar". So kann man Coding deaktivieren, ohne es komplett zu löschen.
Die Kontrollausgabe (console.log) ins Protokoll habe ich auch gleich deaktiviert.
Mit
Code:
            lastUsedNoteName = currNoteName;
wird nur die "neue letzte Note" gesetzt, denn beim nächsten Schritt wird ja die aktuelle Note wiederum die Vorgängernote sein. Das braucht man eigentlich nicht, wenn man die Funktionalität nicht benutzt, aber sie schadet auch nichts.

Es kommt auf
Code:
            text.text += currNoteName;
an, denn dieser Befehl hängt den aktuellen Notennamen currNoteName an den Ausgabetext. Wenn das nicht geschieht, wird kein Text ausgegeben.
Die Zuweisung += (das Anhängen) wird deshalb benutzt, damit im Falle der Mehrstimmigkeit alle Notennamen gedruckt werden.
A propos Mehrstimmigkeit: Im Falle von Mehrstimmigkeit versagt der derzeitige "Wiederholungs-Algorithmus" in der jetzigen Form sowieso, das würde dann aufwendiger.

Zum Test wieder mal die urheberrechtlich völlig unbedenklichen Entchen, da gibt es einige Tonwiederholungen. Diesmal in A-Dur, da sieht man die deutschen Tonbezeichnungen und eine Oktavgrenze wird auch überschritten:

notenames2-test.png



Viele Grüße
Torsten


PS: @KlaBueBaer: ich bin da jetzt nur reingegrätscht, um Lisa ein paar Hintergründe zu erläutern ("Hilfe zur Selbsthilfe"). Außerdem wollte ich nicht in Deinem Plug-In herumwursteln, deshalb auch nur die Auszüge mit Änderungsanleitung.

Wenn Du Zeit und Lust hast, kannst Du Dich ja mal als sportliche Herausforderung an der Mehrstimmigkeit versuchen und evtl. das Gesamtergebnis auch der MuseScore-Gemeinde zur Verfügung stellen.
Die sind ja auch immer froh über gute/neue/verbesserte Plug-Ins.

Schön, einen programmierenden MuseScore-Nutzer hier im Board zu haben! :great:
 
Zuletzt bearbeitet:
Hallo und guten Morgen,

das Mini-Projekt "NotenNamen" hat aber mächtig Fahrt aufgenommen. Toll. :) Und danke für die Testunterstützung.

@lisa: kannst Du mir die von Dir verwendete Testdatei hochladen? Wenn es geht, ergänzt um die Halbtöne (mit Versetzungszeichen). Dann erspare ich mir das tippen ;-).

Die verschobenen Oktaven-Bezeichnungen haben mit meiner Testdatei zu tun: die ist mit 8va erstellt. Testen beweist eben maximal die Anwesenheit von Fehlern :). Evtl. könnte hier über eine Option gesteuert werden, ob die Oktavverschiebung ignoriert werden soll (für alle Gitarristen :) ).

Noten-Namen international: die Bezeichnungen der Noten müssen über die Lokalisierung ermittelt werden. Damit kann dann z.B. auch "do-re-mi-fa ..." dargestellt werden, falls gewünscht. Ebenso kann damit die Groß-Klein-Umsetzung sowie die Bezeichnung der Halbtöne "unfallfrei" umgesetzt werden. Leider habe ich keine Kenntnis über die Lokalisierung in Musescore. Vielleicht hat da jemand einen Tip bzw. Hinweis auf ein "howto".

Noten-Name bei gleicher Note aber Wechsel des Schlüssels: es muß zusätzlich zur "letzten" Note auch der "letzte" Schlüssel "gemerkt" und verglichen werden. Kann ich einbauen.

Grenzfälle der Oktavlage: ist machbar. Zusätzlich müssen dann die Versetzungszeichen, die in dem jeweiligen Takt für die Note gelten, erkannt und berücksichtigt werden.

Eine Hilfe wäre es auch, wenn jemand Infos hätte, wie Optionen in einer Configurations-Datei, die MuseScore sicherlich hat, persistent gemacht werden können. Es wäre dann nicht mehr notwendig, den source-code des plugins zu ändern sondern könnte die Änderungen erstmal in der config-datei vornehmen. Wäre optimal, wenn es ein Objekt zum ZUgriff auf die DAtei geben würde, auf das das plugin zugreifen kann. Wie gesagt: da brauche ich Unterstützung .

@lisa: Anstelle der Noten-Namen könnte ich mir (auch) vorstellen, ein Griffbild - wie Du sie in den Okarina-Noten verwendest - zu verwenden.

Grüße
 
Hallo Ihr zwei
Nochmals vielen Dank!
Habe Eure Hilfestellungen jetzt nur schnell überflogen, weil ich hier gerade anderweitig aktiv sein muss.

Die Testdatei ... Habe schon ewig nichts mehr komprimiert, da brauche ich wohl eine neue Programmversion. Nach der Umstellung des Betriebsystem von 32 auf 64 bit gingen die alten nicht mehr. Und was man nicht nutzt, verliert man aus dem Blick ... Muss ich mich mal nach DL-Links umsehen.

Ansonsten
1 x c d e f g a h c eingeben reicht. Dann copy > paste > mit Transponierbefehl (Intervall > reine Octave)
Sobald alle Octavlagen vorhanden sind > copy > paste > mit Pfeiltaste rauf/runter schieben (>Haltonschritt)

@lisa: Anstelle der Noten-Namen könnte ich mir (auch) vorstellen, ein Griffbild - wie Du sie in den Okarina-Noten verwendest - zu verwenden.
Nicht mit diesem Plugin, da das eine Kombination aus zwei errechneten Zeichen ausgibt.

Bis später.

Lisa
 
Hallo KlaBueBaer,

est mal ein kleiner Hinweis auf die hiesige Board-Software: Nach @ wird automatisch der folgende Name als Benutzername interpretiert und der entsprechende Benutzer erhält eine Benachrichtung, daß er angesprochen wurde. Im Falle von Lisa wäre das dann @Lisa2 (vollständiger User-Name). Eventuell werden sonst auch die "falschen" herbeizitiert.

Eine Hilfe wäre es auch, wenn jemand Infos hätte, wie Optionen in einer Configurations-Datei, die MuseScore sicherlich hat, persistent gemacht werden können.
MuseScore hat ja gerade mit Version 2.0 sein gesamtes Plug-In-Framework ausgetauscht, da ist noch vieles terra incognita.
Einen Zugriff auf Konfigurationsdateien wäre eine tolle Sache, aber derzeit sind meines Wissens (!!!) die Plug-Ins Einzelkämpfer. Überhaupt ist in MuseScore viel im Source-Code fest eingebunden (z. B. die Notenschriften) und ohne Source-Code-Änderungen und Neucompilieren kommt man an manche Dinge leider nicht dran. Das ist schade.

Es ist also vieles Pionierarbeit, die Plug-Ins sind eine willkommene Erweiterungsmöglichkeit, aber gerade hinsichtlich der Modularisierung scheinen da Grenzen gesetzt, wenn ich das recht sehe.

Viele Grüße
Torsten
 
Hallo Torsten,

ich sehe gerade: unsere Post's haben sich überkreuzt.

> ich bin da jetzt nur reingegrätscht, um Lisa ein paar Hintergründe zu erläutern ("Hilfe zur Selbsthilfe"). Außerdem wollte ich nicht in Deinem Plug-In herumwursteln, deshalb auch nur die Auszüge mit Änderungsanleitung.

Natürlich kein Thema. Ausserdem ist es ja nicht "mein" plugin. Ich bastel da eben ein wenig dran rum.

> Wenn Du Zeit und Lust hast, kannst Du Dich ja mal als sportliche Herausforderung an der Mehrstimmigkeit versuchen ... und evtl. das Gesamtergebnis auch der MuseScore-Gemeinde zur Verfügung stellen.
Die sind ja auch immer froh über gute/neue/verbesserte Plug-Ins.

ja, schon. vielleicht hast Du eine Testdatei für mich? Ich muß mich mal "schlau machen" wie ich das der Gemeinde zur Verfügung stellen kann. Warscheinlich gibt es da Regularien.

> Schön, einen programmierenden MuseScore-Nutzer hier im Board zu haben!

Erfahrung mit Programmiersprachen und -konzepten: ja, jede Menge. Mit MuseScore eher nicht. Aber das kann ja noch werden ;-)


Grüße
 
Habe schon ewig nichts mehr komprimiert,

Wenn Du mit dem Komprimieren Schwierigkeiten hast:
Das Plug-In ist ja nicht sehr lang, Du kannst das Coding auch direkt mit
Code:
[CODE] ...
[/CODE] drumrum einfügen. Dann bleiben auch die Einrückungen erhalten, man kann es sehen und direkt mit Copy&Paste übernehmen.

Viele Grüße
Torsten
--- Beiträge wurden zusammengefasst ---
vielleicht hast Du eine Testdatei für mich?

Klar. Ich habe Dir mal die A-Dur-Entchen zweistimmig mit "Akkord-Wiederholungen" und auch einer kleinen polyphonen Passage, nur der Vollständigkeit halber, zusammengebaut.

Über MuseScore und vor allem die Regularien bei der Entwicklung weiß ich nur wenig, bin eigentlich ein LilyPond-Mensch und benutze MuseScore nur mal, um über den Tellerrand zu schauen und weil hier immer mal wieder Fragen aufkommen.

Vielen Dank und viel Spaß :)
Torsten
 

Anhänge

  • notenames2-entchen.zip
    5 KB · Aufrufe: 157

Unser weiteres Online-Angebot:
Bassic.de · Deejayforum.de · Sequencer.de · Clavio.de · Guitarworld.de · Recording.de

Musiker-Board Logo
Zurück
Oben