In such cases a one-time sync is easy if the sync button simply toggles master sync on each push. Just press the sync button again to turn off master sync for that deck immediately after turning master sync on. Have you tried playing this way? Does it work well for you? Admittedly if you are accustomed to the current behavior you may forget to turn off master sync sometimes when you want a momentary sync, but I am guessing that it would not be too difficult to get used to. IMO this is better than the current behavior because I have to watch my controller or screen to make sure the sync button lights up before releasing it, and I often press the sync button in time-sensitive moments when I am about to mix in a track. I do not want to have to think about how long I hold down the button then.

Speaking of variable beat grids, I don't find this feature useful presently. The UX for using it is clunky. It requires going into the preferences and toggling an option, then going back to the library, finding the specific track I want to reanalyze, then going back to the preferences to switch the option back. That is way too many steps, especially during a set. Also, as you mentioned, master sync is no longer useful because Mixxx treats the tempo as continuously shifting even if it is constant for most of the track. I think it would work much better to take an approach similar to Serato. In Serato, a constant tempo is assumed for the initial beatgrid analysis, but the user can manually mark downbeats throughout the track to stretch the grid for a portion of the track. This allows the user to accurately mark the beats during a tempo transition but treat the rest of the track as a constant tempo. For tracks that actually do have a continuously varying tempo (like with a live drummer), the user can set the beatgrid accurately for only the parts of the track they use to mix in and out and let the grid stay imperfect for most of the track where an extended mix would probably sound weird no matter what the computer did to sync beats.

This video explains Serato's beatgridding system and how to use it well:
https://www.youtube.com/watch?v=oD9J7azlhrQ
As far as I can tell the only major issue with that workflow is that it assumes 4 beats per bar. Perhaps we could use a similar workflow to mark downbeats by default but let the user manually adjust the number of beats per bar. We may even implement support for correctly beatgridding tracks that change time signature this way. Ideally Mixxx would be able to automatically detect the number of beats per bar, but that seems like a hard task to develop an accurate algorithm for. I have searched for libraries that can do that, but I have not found any (neither free nor proprietary). It might be possible to develop an algorithm that analyzes for repeated patterns in the audio then detects the number of beats within each repetition, but I have not tested that idea and don't know if it would actually work well.

It would be great if someone put in someone put in work to improve non constant beatgrids. If that does not happen soon, I think implementing a system similar to Serato could make a good GSOC project for next year.

On 06/28/2017 01:20 AM, Daniel Schürmann wrote:
The use case is, if you have non const beat grid in the master deck. In this case the follower deck tries to follow this, which can sound funny. So in this case you want just adopt the tempo one time to start the transition and after that you have not think any longer about it.

I think it depends on the type of  tracks an DJ style what works best.

Historical we come form a one time sync before master sync was implemented. So it was natural to keep this behaviour on a normal click.

A preferences option works for me.
We schould keep the current behavior as default, because I get used to it and it fits my type of music well.

Kind regards,

Daniel.


Am 28.06.2017 3:40 vorm. schrieb "Be" <b...@gmx.com <mailto:b...@gmx.com>>:

    In a recent pull request (
    https://github.com/mixxxdj/mixxx/pull/1244
    <https://github.com/mixxxdj/mixxx/pull/1244> ) I modified the
    SyncButton object in the Components controller mapping library to
    behave like the sync buttons in skins. Short presses only use the
    beatsync Control for one-time sync and long presses use sync_enabled
    for master sync. Previously I had it so it just used sync_enabled
    like a normal toggle button. The more I use the new way that mimics
    the skins, the less I like it. I always want to use master sync when
    I press the button, but sometimes I forget to hold down the button.
    That is not something I want to have to think about while mixing.
    Forgetting to hold down the button has messed up some mixes because
    I expected decks to stay synced as I changed the tempo of one of
    them, but only one of them changed tempo.

    Is there a use case for using master sync sometimes but not all the
    time? Perhaps it would be better to make a new preference option
    that determines whether the sync button is a toggle button for
    master sync or a push button for the old one-time sync. What do you
    think?

    
------------------------------------------------------------------------------
    Check out the vibrant tech community on one of the world's most
    engaging tech sites, Slashdot.org! http://sdm.link/slashdot
    _______________________________________________
    Get Mixxx, the #1 Free MP3 DJ Mixing software Today
    http://mixxx.org


    Mixxx-devel mailing list
    Mixxx-devel@lists.sourceforge.net
    <mailto:Mixxx-devel@lists.sourceforge.net>
    https://lists.sourceforge.net/lists/listinfo/mixxx-devel
    <https://lists.sourceforge.net/lists/listinfo/mixxx-devel>



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org


Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to