Igevorse Otonnoleare

New UI: improved usability

06 July 2014 | 04:31 pm

Overview of work this week

In short:

  • Implemented JACK Timebase slave.
  • Implemented hot changing parameters of JACK.
  • Changed Preferences->I/O UI.
  • Implemented remembering/restoring JACK audio connections.
  • Fixed bug with repeats. Found new bugs.

I've implemented feature requested by daeavelwyn: JACK Timebase slave. In short, this feature allows MuseScore to sync to JACK's tempo. Now you can change tempo in application (current Timebase Master) connected to JACK and MuseScore will change internal tempo too. Of course, I am talking about relative tempo now, it applies only to playback tempo and doesn't change tempo marks in the score.

Anytime you can explicitly make MuseScore a Timebase Master and control tempo from MuseScore. This is possible now because of the second implemented feature: changing parameters of JACK driver without unloading it and restarting program. Now you can open Preferences->I/O, change preferences in "JACK audio server" section, click "Apply" or "Ok" and continue work on your score. In general, it gives you an ability to:

  1. Enable/disable JACK Audio and JACK Midi.
  2. Change number of midi ports dynamically (increase, decrease).
  3. Become a Timebase Master or not (new checkbox "Timebase Master").
  4. Enable JACK Transport or be independent (new checkbox "Use JACK Transport").
  5. Turn on/off remembering connections.

As you understand, I had to slightly change the Preferences->I/O window. Now user can not select more than one driver.

Also I've implemented remembering/restoring JACK audio connections. It was already partially implemented, MuseScore remembered connections not from patchbay, but connections made in Preferences->I/O. I removed extra controls and now MuseScore remembers connections you made in patchbay. There is no limit to number of ports. Also, if you disable "Use JACK Audio", but stay enabled "Remember connection(s)", the next time you enable JACK Audio, ports would be auto-connected. The same thing with MIDI ports.

I fixed bug with repeats mentioned in previous post, but found new. The first bug related to "count in" feature: JACK transport begin playing in the same time with counts, but should begin after count in ends.

The second bug related to Play panel and tempo slider. When changing tempo with this slider, MuseScore keeps current position in uticks, but not in samples (number of current sample changes, because it related to the tempo). So, I got seeking forward when increasing tempo, and seek backward when decreasing it.

But never fear - these errors not in master branch, only in my code. However, as a new features too... All described features are in jack-transport branch now, I'll make a pull request only after fixing all bugs.

Key tasks that stalled

All is well.

Upcoming tasks this week

Fix new bugs.

Fix old bugs (marked notes, crash on start - mentioned in previous post).

Think more about hot switching audio drivers.

As usual, you can find me on IRC #musescore as igevorse.

Feel free to write me about implementing some JACK-related features that you need and want.

« JACK Transport: code published · New UI: improved usability · Bugs & magic with cross-thread… »

Leave your response!

Style `onWall HashCode` by Lited & Sayori
Get your own blog immediately for free with Lited!