Tap tempo

• Nov 1, 2015 - 13:21
Reported version
3.0
Type
Ergonomical (UX)
Frequency
Few
Severity
S5 - Suggestion
Status
active
Regression
No
Workaround
No
Project

Hi guys,

Just got an idea about feature into musescore. I make a mockup with this idea consisting in adding a Tap Tempo button near the BPM selection when creating a score. You can find the tempo by clicking repeatedly on the button.

See attachement for a more precise idea ;-)

musescore-tap-tempo.png


Comments

Interesting idea.

It seems to me that it would be better to assign the switch to a key on the keyboard rather than the mouse. As a keyboard player I really can tell the difference. :) Great project.

If such a feature were to be implemented, probably;y it makes sense to do it in a way that it can be accessed from a tempo text as well as in the new score wizard, as it would be at least as important in setting tempo after score creation. Perhaps even during playback.

In reply to by Marc Sabatella

> it makes sense to do it in a way that it can be accessed from a tempo text as well
That's what my plugin is about.

I would like to see also a global tempo change :
the user changes one tempo text and all the tempo texts are changed proportionality, so that the "tempo structure/ratios" of the score stays unaffected (so incl. the tempo texts added by the TempoChange plugin).

Regarding the playback tempo, I would definitely keep that separates from the score tempo.
I would be a merely "Play at : [ 50 ] %". So that it doesn't affect the tempo structure/ratios of the score.

Does this tap tempo plugin work with MuseScore 4? Would really be handy to have some kind of tap tempo in the menu bar of MuseScore. I write charts all the time and workflow is always opening the song/piece on youtube, opening an app called tempomate and then tapping with the letter T to find the tempo and then I enter that tempo into my new score in MuseScore. Would be great if I could do that all in MuseScore even if it isn't implemented in any complex kind of way. Just a clickable box on the menu bar that shows you an average of your mouse clicking to display a tempo in that same box and additionally if there could be a shortcut for that so that you don't even have to use the mouse.. Just tap a specific key and it shows you what the average tempo is of your tapping.

In reply to by parkingb

The problem in MS4 is (error in log):

MuseScore4Development/Plugins/musescore-taptempo-MS4/taptempo/taptempo.qml:123:14: Cannot override FINAL property"

line 123:
property var valueRole: "mult"
if i change this to just:
valueRole: "mult"
the plugin shows up. (and seems to work ok)

PR submitted

If OK is clicked in the "Invalid Selection" warning box, MS4 just crashes however => 2nd PR

In reply to by graffesmusic

The fix for having it working in MS4.0 breaks the plugin in MS3.6.2. :facepalm:

  • property var valueRole: "mult" leads to "Cannot override FINAL property" in MS4, while
  • valueRole: "mult" leads to "Cannot assign to non-existent property "valueRole" in MS3.6

How to deal with this is beyond my knowledge of QML.

But this seems an error in MS4.0.
Because this is the same code, using the same library version : "QtQuick.Controls 2.2"
And valueRole has been added from "QtQuick.Controls 2.14". So MS4.0 should not complain about it being explicitly declared in the code.

Is this something to report as issue for MS4.0 ?

In reply to by parkingb

guys thanks for trying really.. I don't have any coding background so I can't offer anything useful. Would be great to have this feature added even if it's really simple like just a button that you tap on that calculates an avg tempo of your taps. The plugin doesn't have to automatically insert it into the score or anything fancy.. Just a button that you tap and the button text can be the avg tempo of the last 8 taps.. I dunno.. I wish I knew how to code.. What coding language do you use for MuseScore?

Try

    Component.onCompleted : {
        if (mscoreMajorVersion >= 4) {
            mainWindow.title = pluginName ;
            mainWindow.thumbnailName = "logoTapTempo.png";
            mainWindow.valueRole: "mult";
        } else {
            property var valueRole: "mult"
        }
    }

If that doesn't work, I'm affraid you'd need separate versions for Mu3 and M4

Hi parkingb
Under Ubuntu Linux, using a nightly build, the errors (with line number) are being logged in ~/.local/share/MuseScore/MuseScore4Development/logs/

e;g.

2023-02-06T07:02:55.358 | ERROR | main_thread | PluginView | load: Failed to load QML plugin from QVariant(QUrl, QUrl("file:///home/xxx/Documents/MuseScore4Development/Plugins/HarmonyAnalyzer.qml"))
2023-02-06T07:02:55.358 | ERROR | main_thread | PluginView | load: "file:///home/xxx/Documents/MuseScore4Development/Plugins/HarmonyAnalyzer.qml:4:1: module \"QtWebEngine\" is not installed"

or
2023-02-06T07:02:55.392 | ERROR | main_thread | AppShell | run: error: file:///home/xxx/Documents/MuseScore4Development/Plugins/Modulator_MuseScore4-main/modulator.qml:687:17: QML GridLayout: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.

I guess this also would be logged in Windows, somewhere.
What is your latest plugin?

For anyone interested, I just released a new plugin "Score from Template" that helps creating a score from a template (like it would be done in office-like applications).

And I have incorporated my "Tap Tempo" box in it:
templater-demo.png


Unfortunately it doesn't work with MS4.0 as the minimal API support of MS4.0 does not allow to read and write scores.