Script QML (MuseScore) pour étendre/réduire les durées d'un ensemble de notes sélectionnées
Unsolved
French
-
bonjour,
Je dois créer un plugin pour MuseScore qui peut étendre/réduire les durées d'un ensemble de notes sélectionnées selon un pourcentage choisi
MuseScore le fait pour un pourcentage =50% et 200% mais pas pour un autre pourcentage.Voici mon script qml:
import MuseScore 3.0 import QtQuick 2.2 import QtQuick.Controls 1.1 import QtQuick.Controls.Styles 1.3 import QtQuick.Layouts 1.1 import QtQuick.Dialogs 1.1 MuseScore { menuPath: "Plugins.ScaleNotes" description: "Elargir/Rétrécir les durées des notes sélectionnées en pourcentage" onRun: { if (!curScore) { error("No score open.\nThis plugin requires an open score to run.\n") Qt.quit() } } function applyDurationPercentage(score, percentage) { var selectedElements = score.selectedNotes for (var i = 0; i < selectedElements.length; ++i) { var element = selectedElements[i] if (element.isChord()) { var chord = element.toChord() for (var j = 0; j < chord.notes.length; ++j) { var note = chord.notes[j] note.duration *= percentage / 100 } } else { var note = element.toNote() note.duration *= percentage / 100 } } } Rectangle { color: "lightgrey" anchors.fill: parent GridLayout { columns: 2 anchors.fill: parent anchors.margins: 10 Label { text: qsTr("poucentage(0 to 1000): ") } SpinBox { id: velocityOffset maximumValue: 1000 minimumValue: 0 value: 0 editable: true // Permet à l'utilisateur d'entrer directement une valeur // Gestionnaire d'événement appelé lorsque la valeur du SpinBox change onValueChanged: { var getValeur = velocityOffset.value; // Récupérer la valeur du SpinBox console.log("Nouvelle valeur de percentage:", percentage); // Utilisez la valeur de percentage comme vous le souhaitez } } } } Button { id: applyButton text: qsTranslate("PrefsDialogBase", "Apply") onClicked: { applyDurationPercentage(score, getValeur) Qt.quit() } } }
Pourquoi aucune fenêtre contextuelle ne s'affiche lorsqu'on clique sur ce plugin après avoir crée une partition?
merci de votre aide