Quantcast
Channel: MuseScore - Plugins
Viewing all 349 articles
Browse latest View live

Not so random generator

$
0
0

I'm trying to understand the random plugin code so I can modify it to generate custom rythmic patterns and custom interval jumps, is there anyone interested as well and better prepared to understand how to do it, I'm interested in using it in the classroom to make random reading exercises...


install harp pedal diagram plugin

$
0
0

The instructions for installing new plugins are as clear as mud. It says to put pedal_diagram.qml (for harp) into MuseScore2/Plugins Directory, but not how to do it. It seems to assume the user knows how. It also says it requires installation of HarpFont.ttf, but doesn't tell how to do it. It seems to assume the user knows how to do this, too. I've clicked on everything it says to click on, and still can't figure it out. Can you please explain in step by step instructions how to do these things? I've seen other similar posts, and the answers are not clear. I'm using a MacBookPro with OSX Lion 10.7.5 and have MuseScore 2.0.3. Thanks so much.

Creating new key signatures

$
0
0

I need to create classical Turkish key signatures. I've found most of the accidentals I need, but I can't figure out how to create my own key signatures. Example, the Çargah pieces require a mirror-image-flatted B and a forward-flat-with-stem-slash D. When creating a score, we need the option to create the key signature as well as to select a key signature. That would really help! Thanks!!

vertically aligning stave text or adding figured bass or Chord symbols?

$
0
0

Hi all,

I'm writing a plugin for musescore v2 that summarizes the vertical sounds (chords) throughout the score, and prints the result on the score.

The idea is to write some string representation of the sounding chord (could be proper chord symbol, or figured bass like notation - let's assume some arbitrary string) whenever there is some change in some voice on some stave (new note sounding, or previously sounding note silenced by a rest) that essentially changes the previously sounding chord.

Obviously, I would like the output to be horizontally aligned to reflect exactly where the change occurs in time. At the same time, I would like to print my plugin output below the last stave of the score, or alternatively, above the first stave, and in such a way that all chord symbols appear at a fixed vertical position.

How can I do this?

Currently, I am using stave text. This is my code:

function writeChordStringRepresentationToScore(cursor, chordStringRepresentation){
//get a note with a tick where the chord changes.
var targetNote = chordStringRepresentation.targetNote;
//init the cursor
cursor.track = targetNote.track;
cursor.rewind(0);
do {
//if our cursor is positioned to point to our targetNote,
if (cursor.element && cursor.element === targetNote.parent) {
//create staff text
var staffText = newElement(Element.STAFF_TEXT);
//attempt to position the text below the last staff by adding 10 space for each staff
staffText.pos.y = (curScore.nstaves - cursor.staffIdx)* 10;
//actually set the text and add it to the score.
staffText.text = chordStringRepresentation.text;
cursor.add(staffText);
break;
}
} while (cursor.next());
}

Basically, the chordStringRepresentation argument contains both the textstring (.text) I want to print, as well as some note (.targetNote) that is at the tick where the chord changes. I use the targetNote to position the cursor (in order to achieve the right horizontal alignment) and then I add stave text, with an extra vertical offset of 10 for each stave between the stave where the targetNote sits and the last stave

The problems with this approach are that
1) Assumming 10 offset for each stave is a too rough approximation, totally disregarding the actual height used by a stave. I don't know how to find out how much height the staff actually uses. I cannot simply write stave text on only the last stave either, since the last stave might not have a note or rest at the actual tick where the chord changes, which I believe I need to achieve the horizontal alignment I need.

2) Even if the per stave vertical offset would be accurate, the vertical placement of the text depends on the vertical position of the targetNote. That seems to be just how stafftext works, and I don't know if and how I can change that.

I was thinking there should be a better way to achieve what I want, perhaps even use actual features like "chord symbols" or "figured bass" to print my output too, but I just can't figure out how to control these features from within my plugin code.

Can anybody please point me to some code that shows how I can either position my stave text, or how I can add chord symbols or figured bass text?

Adding Tempo text or clef within plugin crashes Musescore (2). What am I doing wrong?

$
0
0

I'm trying to write a plugin that can generate a melody - something like the random2 plugin, but with some constraints on what melody is generated.

User input is (among other things) the instrument.

What I would like to do is to set a clef appropriate for the selected instrument programmatically. But when I try to do that, Musescore crashes.

As basis for my code, I looked at the random2 plugin. This fragment creates a timesignature:

score.startCmd();
...
var cursor = score.newCursor();
cursor.track = 0;

cursor.rewind(0);

var ts = newElement(Element.TIMESIG);
ts.setSig(numerator, denominator);
cursor.add(ts);

My -naive- assumption is that something similar should work for adding a clef, so I wrote:

var cleff = newElement(Element.CLEF);
cursor.add(cleff);

But when I do that, Musescore crashes. Another problem is that the API documentation (inside the plugin creator) lists only 2 properties and no methods for a Clef Element - I would need to set the clef type somewhere, no?

I have a similar issue for the tempo. I want to set the tempo of the entire piece to 4 quarters per second. So I wrote:

var tempoText = newElement(Element.TEMPO_TEXT);
tempoText.tempo = 4.0;
cursor.add(tempoText);

again, musescore crashes.

What am I doing wrong?

How to deselect the current segment in QML

$
0
0

I have a QML script that sets the bottom x notes in a vertical stack of a selected region to not be selected within the current selected segment:

notes[i].selected = false;

See screen shot for the result...if one were to do this manually, one would have to click each of those notes to toggle their selection status to false.

My QML script ends there but at that point if I attempt to delete the selected region (CTRL+X) MuseSore will simply delete the entire selected segment without regard to the note.selected status.

Anyone see a workaround for this?

My goal of course is to have a QML script/plugin that can de-select the bottom x notes of a vertical stack so that I can then (in MuseScore) simply cut the top note out.

I'm familiar with Explode/Implode of course, but they are not exactly what I'm looking to do here...

Thanks for any insight!

AttachmentSize
musescore2-howtodeselect-region-in-qml.png43.83 KB

Chord Symbol Text

$
0
0

Is it possible to access chord symbol text from a plugin? I've been through the manual provided with the plugin creator, but cant find anything.

Thanks

hardware_tablature plugin

$
0
0

Hello all,

i am triing to install the Hardware_tablature plugin but cant't succeed.

I extracted the ZIP file lasconic_hardware_tablature in:
C:\Program Files (x86)\MuseScore 2\plugins\lasconic-harmonica_tablature-9541fad

I then activated it in the Plugins Manager menu.

I could see it in the Plugins menu, but when I select it, the window is empty (see attached)

I am runing Musescore 2 in window 7

Thanks in advance for your help

Gagache

AttachmentSize
Capture.GIF41.74 KB

PruneStack - a plugin to prune vertically stacked (block-voiced) notes

$
0
0

Here's a first video demo of a plugin I'm working on:

[https://www.youtube.com/watch?v=ne61blNSjUc]

In the demo, I have an example piano sketch with 4-part block voicing of a melodic top line. The assumption here is that copy/paste and Explode, while incredible tools, not exactly efficient in this case, specifically, where I want control over which "levels" of the vertical stack harmony I want to move to a specific instrument.

As you can see, once I have the Flute part, the 1st Trumpet part is also complete - so that's a case where copy/paste makes sense for that single line.

Where (I think) a tool like PruneStack shines is that it (potentially) helps to eliminate some of the manual note selection and clicking that one must do to manually "prune" out notes from a copy/paste operation. Since my workflow is often to go from a sketch where there may be many stacked chords in any given region of my score, a tool like PruneStack makes sense to me, and hopefully others.

Again, this is a work in progress. I'm seeking general feedback at this point. The UI isn't ideal but it's a start. Once I get some feedback and I have more time to refine this and possibly add more features I will make the code available for others to use and to improve upon!

Access Articulations (Arpeggio, Staccato, Marcato, etc) from plugin

$
0
0

I have been working on a plugin that generates a guitar part from the chord symbols and predetermined voicings and other user provided data. It is not yet complete, but i have finally got it working without continually crashing..

What I would like to do is to be able to read and create Articulations (particularly those listed in the title) from within the plugin so I can generate an accurate copy of a pattern to bring the playback to life.

I can't find how to access these anywhere in the documentation, is it possible?

Thanks in advance.

Dynamic config for staves

$
0
0

Hi.

I would like to build a plugin to add valve fingering for brass instruments.
I want to offer a config mask to the user to configure the staves (slide position or valve fingering).

What I tried:
- in the onRun Method, build a config array property with the current staves.
- created a qml Dialog which uses the Repeater component to show the config the staffs

But if I start the plugin, it crashs with the Error Message "TypeError: Cannot read property 'length' of undefined". So it seems, that the qml components are rendered before the onRun method.

Does anyone know a solution for my problem or just hint?

melody composing

$
0
0

why don't you have inversion, augmentation & diminution as a plugin ?
(retrograde is useless)- these are basic mechanical compositional tools?

Thank you
Peter

latin american rhythms

$
0
0

templates for latin dance rhythms

link to dictionary of musical themes

midi input

$
0
0

How do you record from midi input?

Translation of Notes name plugin doesn't work ?

$
0
0

Hello,

The Notes name plugin is very useful in an educational use. I just translate it into french for francophones can get the names of the notes do, ré, mi rather than C, D, E.

But by reading the summary of the original plugin, it's written that the plugin is based on the language specified in the preferences of MuseScore or by default that of the system.

But I've never seen the plugin working like this behavior. Hence my question : is this feature doesn't work?

So I find that I have not translated this plugin for nothing :)

Someone knows more about it?

Thanks,
Sylvain
--
MuseScore 2.0.3.1 rev6347ed6
Qt 5.4.2
OSX Sierra 10.12


Trombone positions

$
0
0

Hi!
I have found this plugin code for musescore 1.0.
I would like to have the plugin work in musescore 2.0. Can anyone help me?

Greetings
Rune

//=============================================================================
// Brass instrument fingering plugin for MuseScore
//
// Copyright (C)2012 Ian McLeod (underquark)
// Trombone positions by DerPosaunist
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
//=============================================================================

var notes = [ "7", "6", "5", "4", "3", "2", "1", // Bb //
"7", "6", "5", "4", "3", "2", "1", // F //
"5", "4", "3", "2", "1", // Bb //
"4", "3", "2", "1", // D //
"3", "2", "1", // F //
"3+", "2+", // G //
"3", "2", "1", // Bb //
"2", "1", // C //
"2", "1", // D //
"3", "2", "1", // F //
"3", "2", // G //
"3", "2", "1"] // Bb //
//=============================================================================
// Alternative Positions
//=============================================================================
//var notes = [ "7", "6", "5", "4", "3", "2", "1", // Bb //
// "7", "6", "5", "4", "3", "2/7", "1/6", // F //
// "5", "4", "3/7", "2/6", "1/5", // Bb //
// "4/7", "3/6", "2/5", "1/4/7", // D //
// "3/6", "2/5/7", "1/4/6", // F //
// "3+/5/7", "2+/4/6", // G //
// "3/5/7", "2/4/6", "1/3/5", // Bb //
// "2/4/6", "1/3/5", // C //
// "2/4/5", "1/3/4", // D //
// "3/2", "2", "1", // F //
// "3", "2", // G //
// "3", "2", "1"] // Bb //

//---------------------------------------------------------
// init
//---------------------------------------------------------

function init()
{
}

//-------------------------------------------------------------------
// run
//-------------------------------------------------------------------

function run()
{
var cursor = new Cursor(curScore);
cursor.staff = 0;
cursor.voice = 0;
cursor.rewind(); // move cursor to first note or rest
var font = new QFont("Times New Roman", 7);
while (!cursor.eos()) {
if (cursor.isChord()) {

var pitch = cursor.chord().topNote().pitch;
var index = pitch - 40;
if (index >= 0 && index < notes.length){
var glyph = new Text(curScore);
glyph.text = notes[index];
glyph.defaultFont = font;
glyph.yOffset = 6
// if (pitch < 59){
// glyph.yOffset = glyph.yOffset + 2;
// }
glyph.xOffset = 0
cursor.putStaffText(glyph);
}
}
cursor.next();
}
}

var mscorePlugin = {
menu: 'Plugins.Create Trombone Positions',
init: init,
run: run
};

mscorePlugin;

Automatic Chord Identifier

QT module import

$
0
0

I am just getting started with plugin development with MuseScore 2.0.3 on Windows 10, 64 bit. I am trying to import QT modules such as QT Core. The Help - About QT... menu item reports that it uses QT 5.4.2 and I have read that QT is bundle with the Windows version MuseScore. From the dll's in the bin directory it appears that all the Qt modules are there. However, if I try to import modules other than QtQuick (e.g. "import QtCore 5.4") I get the error " module "QtCore" is not installed". Am I doing something wrong or is there a path that needs to be set somewhere?

Score Overview

$
0
0

Coming from a DAW background, I really miss not being able to see a complete overview of the score. This plugin is my attempt at remedying that by showing parts, measures and rehearsal marks. If measures contain notes, they are black, otherwise grey (see the attached screenshot below).

In addition, I added the ability to click on a part / measure to send the cursor to the first element of the selected measure. You can also click and drag to select a range of measures / parts. Shift click to select one measure in a part.

The plugin does not change the score in any way, but provides an alternate view of the score and a different method of access.

Moving to a selected part/measure is not immediate as it uses the cmd() routines to position the cursor, but it is still quicker than searching by eye.

The plugin can be found as a musescore project here: https://musescore.org/en/project/scoreoverview
And downloaded from github here: https://github.com/stevel05/scoreOverView

I have tested it as much as possible, and got rid of all the bugs I have found. That is not to say there won't be a few more. Any feedback gratefully received.

This is my first published plugin I hope you will find it useful.

AttachmentSize
screenshot.png10.13 KB

Converting .js to .qml newbie question

$
0
0

Hi,

I'm trying to convert the minor variations plugin to the new plugin format, but keeping as much of the original code in the .js script. Therefore in the top of my .qml file I have

import "minorvariations.js" as MinorVars;

The third line of "run" is
var c = new Cursor(curScore);

and I get the error TypeError: Type error
presumably because Cursor is undefined...I think, unless the Cursor type has changed since this plugin was written.
Is there some header file I need to include in the minorvariations.js file to correct this?

thanks
Samantha

Viewing all 349 articles
Browse latest View live