//============================================================================= // MuseScore // Drum Grooves plugin // // Copyright (C)2021 Avron Polakow (avronpolakow@gmail.com) // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 // as published by the Free Software Foundation and appearing in // the file LICENCE.GPL //============================================================================= import QtQuick 2.0 import MuseScore 3.0 MuseScore { version: "3.0" description: "This demo plugin creates drum grooves" menuPath: "Plugins.Drums.DrumGrooves" requiresScore: false /////////////////////////////////////////////////////// // NOTE! // cursor.add() DOESN'T advance the cursor // cursor.addNote() ADVANCES the cursor /////////////////////////////////////////////////////// onRun: { var lel_score; var lel_ts; // time signature fraction var lel_cursor; var lel_tempo; var lel_num; var lel_den; var lel_lbreak; var li, lj; // Optional message // console.log("Creating Drum Grooves"); // New Score with a drumset stave lel_score = newScore("Drum-Grooves", "drumset", 32); // Time Signature 4/4 lel_num = 4; lel_den = 4; lel_score.addText("title", "Drum Grooves"); lel_score.addText("subtitle", "Rock"); lel_score.addText("composer", "Customised"); lel_score.addText("lyricist", "Sample: "); lel_cursor = lel_score.newCursor(); lel_cursor.track = 0; lel_cursor.rewind(0); lel_ts = newElement(Element.TIMESIG); lel_ts.timesig = fraction(lel_num, lel_den); lel_cursor.add(lel_ts); // Music Symbols // \uECA2; NoteWhole // \uECA3 \uECB7; NoteHalfUp // \uECA3; NoteHalfUp // \uECA5 \uECB7 \uECB7; NoteQuarterUp // \uECA5 \uECB7; Dotted QuarterUp // \uECA5; NoteQuarterUp // \uECA7 \uECB7 \uECB7; Note8thUp // \uECA7 \uECB7; Note8thUp // \uECA7; Note8thUp // \uECA9 \uECB7 \uECB7; Note16thUp // \uECA9 \uECB7; Note16thUp // \uECA9; Note16thUp lel_tempo = newElement(Element.TEMPO_TEXT); lel_tempo.text = '\uECA5' + ' = ' + Math.round(60); lel_tempo.visible = visible; lel_cursor.add(lel_tempo); lel_lbreak = newElement (Element.LAYOUT_BREAK); lel_lbreak.layoutBreakType = LayoutBreak.LINE; lel_cursor.setDuration(1,16); for (lj=1;lj<5;lj++) { if (lj % 2 == 0) { lel_lbreak.lel_score = curScore; lel_cursor.add (lel_lbreak.clone ()); } for (li=1;li<17;li++) { // lel_cursor.voice = 0; // select voice // HH stroke var lel_note = lel_cursor.addNote(42); if (li == 5 || li == 13) {lel_note = lel_cursor.addNote(38, true);} // Snare if (li == 1 || li == 3 || li == 9) {lel_note = lel_cursor.addNote(35, true);} // BD } } Qt.quit(); } }