mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.51k stars 1.28k forks source link

Show minute markers on overview waveform #5843

Closed mixxxbot closed 4 months ago

mixxxbot commented 2 years ago

Reported by: raffitea Date: 2011-03-31T13:59:28Z Status: Confirmed Importance: Wishlist Launchpad Issue: lp746456 Tags: easy, weekend Attachments: minutemarker.patch, [This patch solves the mentioned bug.](https://bugs.launchpad.net/bugs/746456/+attachment/2732176/+files/This patch solves the mentioned bug.), [Minute Markers 2](https://bugs.launchpad.net/bugs/746456/+attachment/5411922/+files/Minute Markers 2), [Minute Markers with parallel waverforsm](https://bugs.launchpad.net/bugs/746456/+attachment/5411923/+files/Minute Markers with parallel waverforsm), skin-mockup.png


Some skins like NightLightBlues have "markers" on the overview waveform but their distances are not 60 seconds long. I think we should introduce minute markers for that purpose.

mixxxbot commented 2 years ago

Commented by: esbrandt Date: 2011-03-31T14:07:15Z


Right on, this would be helpful. Currently i have used 4 manual marker to divide the overview into 4 parts, providing at least some orientation this way.

mixxxbot commented 2 years ago

Commented by: rryan Date: 2011-04-09T03:20:56Z


I guess my main question is how to indicate that they are minute markers instead of hotcues or cue markers. Should we draw the minute they represent on it? That might look ugly. Some other way?

mixxxbot commented 2 years ago

Commented by: allenbina Date: 2012-01-30T16:15:20Z


Just my $.02, I don't think this is very useful.  If I was concerned with the amount of time left for a song, I would emphasize the time left portion of a skin, not mark the minutes of a song.  I think the waveform should be as simple and clean as possible.  Can you explain a time when you would want minute markers on a song?
mixxxbot commented 2 years ago

Commented by: ywwg Date: 2012-01-30T17:08:48Z


If anything, measure and phrase markers would be more useful but then we'd have to have code for time signatures and phrase length.

mixxxbot commented 2 years ago

Commented by: shetyeakash Date: 2012-02-09T15:38:46Z Attachments: minutemarker.patch


How about this patch, although the approximation of the value of oneMinute is based on observation alone and no calculations are done for getting it. Some help there please .... the markers are drawn as white lines behind the waveform, much like the 4 divisions that are default. To avoid confusion with the default white markers on waveform please move the file "mixxx-1..../res/skins/(whichever skin you use)/style/style_bg_woverview.png" somewhere else so the default 4 divisions won't appear.

mixxxbot commented 2 years ago

Commented by: shetyeakash Date: 2012-02-11T21:28:20Z Attachments: [This patch solves the mentioned bug.](https://bugs.launchpad.net/mixxx/+bug/746456/+attachment/2732176/+files/This patch solves the mentioned bug.)


Thanks to Thomas, here is an updated patch that will work in all situations for songs with different sampling rates, I've tried it out with couple of songs. Please move the waveform backgroung .png file in yout skin folder somewhere else as mention in the above comment ^^.

mixxxbot commented 2 years ago

Commented by: maxime-bochon Date: 2012-05-02T11:53:56Z


This topic deserves to be generalized. The user should be able to display an "overall grid" or not, and to choose how that grid is built through the preference dialog.

Among others:

a) "Minute markers" generalized to "fixed time interval markers" : useful to quickly jump to a point in a 60-min mix or a raw vinyl rip.

b) "4 bar markers" (cf. bug #⁠992923) generalized to "beat-sync markers" : the same as a) but in a musical manner (this requires the beat-grid and first beat to be known) (so for now restricted to track with fixed and steady tempo, with first beat set manually).

c) "Segment markers" : useful to separate segments based on any segmentation method, such as tonality (to know where the key changes), or level (to jump to the start of a track in a raw vinyl record where there is a few seconds of silence) or even song structure (verse, chorus, bridge...).

For case c), I know that some audio formats (such as Wave) can embed time markers as meta-data, so this could be a way of importing a custom overall-grid.

mixxxbot commented 2 years ago

Commented by: naught101 Date: 2018-01-10T04:06:14Z


If there was bar-detection, bar markers every 4 bars would be pretty useful. Even if there isn't bar detection, a marker every 16 or 32 beats (depending on the tempo) would be good enough.. This would provide useful reference points for "how far am I from the next phrase".

Markers could perhaps be a just a short 3-5px vertical line at the top and/or bottom of the waveform, to distinguish from cue markers.

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2018-01-10T07:16:25Z


This is really an issue, we should solve.

I usually set a the cue point to the first down beat of the track and starting the track counting the previous one. The quantized play feature helps me to start the new track in time.

What is you use case of the down beat markers? Does it still work if you cannot always rely on them?

I think as a base for this feature, we need at least a measure column in library, that tells use how many beats we have per downbeat, and a hidden info where the first one is.

Could be a GSoC project. ....

mixxxbot commented 2 years ago

Commented by: Pegasus-RPG Date: 2018-01-10T16:53:32Z


Or rather a time signature column so we can support various types of music.

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2018-01-10T18:24:30Z


Beats per measure awareness and display are a separate feature and use case from time markers on the overviews. I think the discussion about that should continue on Bug #⁠753301. Time markers on the overviews would be helpful for visually estimating how much time two tracks could overlap without regard to rhythm.

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2018-01-10T21:13:48Z


Yes I meant actually a time signature column. https://en.wikipedia.org/wiki/Time_signature

mixxxbot commented 2 years ago

Commented by: ywwg Date: 2019-02-20T14:17:00Z


bumping this -- it would be really nice to have markings every 16 or 32 bars. Even though this isn't a universally-correct value, it would still allow for better visual alignment even if the tracks weren't in 4/4.

I would strongly prefer marking beats instead of time. Since the tracks get stretched with the rate slider, the time values are pretty useless -- and I can already estimate time by looking at the existing indicators.

mixxxbot commented 2 years ago

Commented by: ywwg Date: 2019-02-20T14:18:53Z


For tracks without beatgrids we could mark the minutes and use a different color, for instance. But I'd prefer not to block this feature on edge cases before looking at how well it works in the common case.

mixxxbot commented 2 years ago

Commented by: ronso0 Date: 2019-02-20T18:14:12Z


I'm pro minute markers actually. They could moved like the playposition is scaled according to the rate slider.

beat/phrase markers in the overviews are not really helpful IMO. For example it would give a false hint when mixing 80 with 160 BPM tracks.

mixxxbot commented 2 years ago

Commented by: ywwg Date: 2019-02-21T13:56:45Z


maybe it's best to hack up a proof of concept and we can play around with different ideas? I think a minute isn't enough granularity for what I want, which is to make sure my drops line up :)

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2019-09-01T00:26:00Z


I think this is made obsolete by showing the time by right clicking the overview waveform: https://github.com/mixxxdj/mixxx/pull/2238

Can we close this as Won't Fix?

mixxxbot commented 2 years ago

Commented by: ronso0 Date: 2019-09-01T17:18:29Z


we should keep it open IMO. first, it's only accessible with mouse or touchpad. second, when djing it would be best to have this information available without requiring any interaction with the GUI.

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2019-09-01T17:50:40Z


first, it's only accessible with mouse or touchpad

Yes, this is an unresolved issue.

second, when djing it would be best to have this information available without requiring any interaction with the GUI.

I understand what you're going for, but I don't think adding minute markers to the overviews would really be very helpful. It could only provide rough estimates of times. If the markers were placed more frequently to provide better estimates, the appearance would become more cluttered. Right clicking the waveform or showing the time of cue points can show exact times without the clutter of always showing information that is only wanted sometimes.

mixxxbot commented 2 years ago

Commented by: foss-4 Date: 2019-09-01T18:55:31Z


I understand why this may be desired and yet I think this would not work that great in practice. For really long (or short) tracks minute markers would be useless. And also this takes away focus from other things already going on in the waveform view. Especially with hotcue namings and intro markers arriving.

Thus I would propose to close this as wontfix.

mixxxbot commented 2 years ago

Commented by: ronso0 Date: 2019-09-01T20:22:07Z


It could only provide rough estimates of times

That's exactly what their purpose would be (for me).

And also this takes away focus from other things already going on in the waveform view. Especially with hotcue namings and intro markers arriving.

It's a good thing that intro markers for example are visible only if the respective cue tray is enabled. Same applies to any time markers on the overview. It could be configurable in the Settings IF the users wants markers at all, and also if those are minute markers, phrase markers or whatever.

mixxxbot commented 2 years ago

Commented by: ronso0 Date: 2019-09-01T20:25:28Z


This is a valid feature request, so simply closing it because it bad/ugly implementations are possible is wrong IMO.

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2019-09-01T20:46:18Z


It's not about the implementation. I think the whole idea is unnecessary clutter with better ways to get time information from the waveform. Let's not add minimally useful features that many (if not most) users will want to disable anyway. Keeping every years-old idea open in the bug tracker only creates an unmanageable list of things that will never happen.

mixxxbot commented 2 years ago

Commented by: devinyl Date: 2020-08-19T10:01:19Z


Hi I'm willing to take over the fix, but I need some technical support how to deal with the current rescaling /transformations of the waveform overview. I couldn't find any information regarding the virtual (0-1) and the physical space. br Martin

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2020-08-20T01:21:52Z


I'm still against adding this.

If you're interested in adding more timing information to the waveform, please test https://github.com/mixxxdj/mixxx/pull/2961 and give some feedback.

mixxxbot commented 2 years ago

Commented by: devinyl Date: 2020-08-20T12:07:41Z


Thanks, I will have a look. As I was able to follow the discussions, the downbeat markers are related to the scrolling waveform, but the minute markers have a different intention: they help (at least for me) to find the right point in time to start the mix. I need to ensure that when the new track will start with a new layer (melody / bass line) on top, that the still playing track ramps down it's layers, otherwise I have too much overlap with the risk of atonality of melodies or not enough punch with the new track. Or it simple sounds ugly :) I need to know when I have to fade-out / finish the mix, before the sound gets overloaded. Therefore I see both concepts as valid. The waveform overview gives you a rough estimation on how the segments of the track relate in terms of timing to each other, and the scrolling waveform tells you the details when exactly you have to switch e.g. the bassline or decrease the volume of the old track. Downbeat indications would help here if you have unstable basslines, e.g. breakbeats or unspecific rhythms.

I started to use MIXXX as I've switched my whole IT infrastructure to linux, but the dj software was one of the last tool I struggle with.

I'm an old school DJ with more than 23 years of experience in playing Trance Music at our own events https://www.facebook.com/lunaticevents.ch, starting with Vinyl on MKII, then we moved slowly to Serato Scratch with Time Coded Vinyl. In the meantime we used Traktor S2 MKI with the Traktor Software, and now finally we just use a usb stick previously analysed with rekordbox to be plugged into the Pioneer CDJ Players.

In Mixxx I currently miss the minute markers on the overview, as we play on the newest Nexus Pioneer mixers, and they have simple but effective minute markers to compare the tracks. If the waveforms in mixxx would be scaled uniformly for the 2 loaded tracks, then I don't need the minute marker, but as both are transformed to use the full width, it's hard to make guesses about the length of the segements. And I wouldn't even be able to use the shown (rest-)duration of the song. That's just not feasible during a live session, I have to react on time. And that's sometimes quite fast, as I'm sometimes chatting with people and forget the time to mix. I would suggest that I just make the changes as a proposal and then lets see..

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2020-08-20T22:45:13Z


I need to know when I have to fade-out / finish the mix, before the sound gets overloaded.

I understand what you are asking for and this proposal for time markers on the overview waveforms is not precise enough to do what you're trying to do. For this you need to mark the intro and outro sections: https://mixxx.org/news/2020-07-09-intro-outro-sections/

I know Traktor shows minute markers on the overview waveforms. I find this to be visual clutter because it's not really useful. That only works as a very crude way to compare the lengths of tracks, but it can't be used to determine when to press play and know that the tracks will align how you intend.

mixxxbot commented 2 years ago

Commented by: devinyl Date: 2020-09-17T21:35:05Z Attachments: [Minute Markers 2](https://bugs.launchpad.net/mixxx/+bug/746456/+attachment/5411922/+files/Minute Markers 2)


Hi Sorry for the late answer, too much work and holiday. Anyway I fully agree with you. But sometimes I need just a crude way to get an understanding if the next mix could fit somehow, but yes with a high uncertainty. Even with Vinyl it was possible to match the distances. Therefore at least some minute markers would help already. Back to your proposal, I would even go further: it should be possible to align the next track, and in addition you could via touchscreen or mouse jump to the interesting parts and somehow prelisten how it sounds? But for the near future, I would go for the simplest approach. And yes your approach would be more precise. I've added 2 screenshots how it could look like, and I have to agree it looks quite bad :( Wouldn't it make sense to create a new control which could be aligned beyond the overview waveform? Like the Pioneer Nexus Pitchers?

mixxxbot commented 2 years ago

Commented by: devinyl Date: 2020-09-17T21:36:52Z Attachments: [Minute Markers with parallel waverforsm](https://bugs.launchpad.net/mixxx/+bug/746456/+attachment/5411923/+files/Minute Markers with parallel waverforsm)


and a second screenshot with parallel waveforms

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2020-09-17T22:55:46Z


IMO it is a waste of time to implement and discuss such hacks when better solutions are being actively developed.

mixxxbot commented 2 years ago

Commented by: andy-xyz Date: 2020-10-05T20:11:38Z


please make markers in the waveform overview, I don't use a mouse for djing

mixxxbot commented 2 years ago

Commented by: devinyl Date: 2020-11-18T11:55:29Z


I'm testing the new feature "New Beats with UI". I like it, as it gives me enough details for mixing. But one thing I miss again: If I want to know how the current extract from the moving waveform relates to the overview, I'm quite lost. Therefore I really appreciate additional guidance, e.g. an overlay of the current window shown on the overview. I'm using even the same coloring scheme for both wave forms, which makes it easier, but still challenging to know if I have enough time for the whole mix.

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2020-11-18T13:12:22Z Attachments: skin-mockup.png


I want to know how the current extract from the moving waveform relates to the overview

The best way to solve this would be putting the the two waveforms adjacent to each other. I made a mockup for how such a design could work a while ago but no one has started working on such a skin.

an overlay of the current window shown on the overview

That's an interesting idea and a separate topic from this requested feature.

still challenging to know if I have enough time for the whole mix.

That is what the intro and outro cues are for. https://mixxx.org/news/2020-07-09-intro-outro-sections/

mixxxbot commented 2 years ago

Commented by: nm2107 Date: 2021-03-09T13:40:54Z


Hello,

Minute markers would be a nice feature IMHO, I'm also lacking them (i.e. like on Traktor, on the global track waveform). It'd help to visually determine the duration of a song part (e.g. is this break a minute, or half a minute long), so we could know how much time we've got to do whatever we want to do with this (e.g. prepare next track, or start next track, or mix in next track or whatever).

This time indication can help to take mixing decisions, e.g. can I start playing the next track now/from that cuepoint or should I wait some more bars/jump to the next cuepoint instead ?

:+1: for having an option for this, in case where users do not want them.

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2021-03-11T07:42:45Z


Mixxx 2.3 will have a cursor with minutes anotations on the right click. Does this cover your use case? Please check it out in the latest beta version.

If yes, I think we can close this bug in favor to not clutter the waveform more.

mixxxbot commented 2 years ago

Commented by: devinyl Date: 2021-03-11T15:00:25Z


@Daniel thanks for pointing out. Honestly I can't use the mouse or the weird right click on a touchscreen to get an impression about durations. No time for such activities. Therefore I still favor the simplest approach to use minute markers, but yes I agree they should be configurable. Anyway I'm heavily testing the new new-beats-with-ui feature which solves at least the comparison of the lengths of the segments during mixing, but despite that I still need some way of identifying the length of a segment. And it's still not possible even with the new downbeat markers on the waveform to determine if the visible part is 2 or 1 min long, this makes a big difference for the mixing. That's why I think it's needed to have even the sliding window somehow shown on the overview. All of this changes will clutter the waveform even more. But it would provide real value to all DJ's which are playing spontaneously without having everything prepared and marked with intro and outro markers.

I made already a feasibility for the minute markers, but the markers currently don't change when resizing the window, and I don't know how to make it configurable. If somebody has better knowledge let me know, I'm still willing to solve the issue, but I need some basic support of how the waveforms are drawn and scaled.

I will incorporate the changes on a branch and will come back soon (hopefully within the next years :)

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2021-03-11T16:18:26Z


Have you used the intro and outro cues as suggested months ago?

mixxxbot commented 2 years ago

Commented by: nm2107 Date: 2021-03-12T15:56:47Z


Thanks for your answers. As @devinyl pointed out, using the mouse is unconvenient as it implies to have at least a free hand, and takes more time than a simple look. It also changes the focused area on the software.

I have not tried the intro and outro cues yet, but as far as I understand this feature, it implies :

So the above cases are convenient, but IMHO they do not cover the cases for simple minute markers on the waveform, which are :

I hope this describes more why we're requesting for such feature ^^. It's mostly to be able to quickly identify the duration of a song part.

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2021-03-12T17:01:37Z


I don't think further discussion is useful here without the people advocating this change trying to use the intro and outro cues as they are designed.

mixxxbot commented 2 years ago

Commented by: devinyl Date: 2021-03-14T16:23:01Z


@Be, Okay, I will try out the intro and outro cue concept.. I will come back sooner or later with my experience. At least we still have enough time to do some testing before the party season starts again ...

mixxxbot commented 2 years ago

Commented by: fas-ubuntu Date: 2021-08-23T10:38:11Z


Hello,

from my experience minute markers in Traktor help getting a feeling of time. In electronic music like Techno and House this is quite useful as the tracks are basically arranged as 32 Beat Blocks (you know 32 beats, then a repitition or change). And this visually helps to see the time as size in the waveform. Intro/Outro cues have a completely different purpose. The proposol by Zimmermann looks nice and unobstrusive if the waveform is not too high.

ChrisTallon commented 4 months ago

Mixxx 2.4.1 with minute markers on the overview waveform.

https://github.com/ChrisTallon/mixxx/tree/2.4.1-minutemarkers

To build, follow all the normal instructions but use this git-clone command instead:

git clone -b 2.4.1-minutemarkers https://github.com/ChrisTallon/mixxx.git

This is a quick hack job.... Comments welcome.

Swiftb0y commented 4 months ago

Hi @ChrisTallon if you intend to get your changes included in mixxx, please open a pull request. See https://github.com/mixxxdj/mixxx/wiki/Contribution%20Guidelines

Swiftb0y commented 4 months ago

This has been implemented in Mixxx 2.6 by @ChrisTallon in #13401. Thank you very much.