Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gapless playback of back-to-back tracks #6494

Open
mixxxbot opened this issue Aug 22, 2022 · 7 comments
Open

Gapless playback of back-to-back tracks #6494

mixxxbot opened this issue Aug 22, 2022 · 7 comments

Comments

@mixxxbot
Copy link
Collaborator

Reported by: MelGrubb
Date: 2012-05-31T19:42:12Z
Status: New
Importance: Wishlist
Launchpad Issue: lp1007092
Tags: autodj


I have, on occasion, wanted to play two tracks together back-to-back. This is usually a song that is considered to be in two "parts", or one that has an intro which is considered to be a separate track. As Mixx stands now, there is no way for me to play these two parts of the same song together. I have two ideas for how this could work in the UI.

  1. Load part 1 into deck 1, Load part 2 into deck 2, flip some "auto" button on deck 2 to indicate that it should start exactly at the end of the first part. This means polluting skins with extra buttons that will almost never be used, and would most certainly be accidentally left on when they are.

Or, in my mind a better solution

  1. Dragging multiple tracks to a single deck stitches them together on-demand into a single, temporary track. Certainly this is easier UI wise, the only difficulty being in remembering that it's possible, and not doing it accidentally. Perhaps a pop-up confirmation that the user has selected multiple tracks would solve the latter problem. As for the stitching, I don't know how Mixx works behind the scenes with regards to mp3 decoding. If Mixxx works ahead when I load a track, and buffers up an uncompressed wave in the background, then I don't think this would be that bad. A single library entry gets turned into an array, and they all get uncompressed into a single buffer together. If the decompression is truly on-the-fly, then this option gets a bit harder.
@mixxxbot
Copy link
Collaborator Author

Commented by: MelGrubb
Date: 2012-05-31T19:45:54Z


Something else just occurred to me. In the second case, the "confirmation" dialog could also serve as the UI for confirming the order in which the tracks would be stitched together. A simple re-use of the library grid would do here. I could drag 5 tracks to a single deck, make sure it got the order right, and click OK to load them up together.

@mixxxbot
Copy link
Collaborator Author

Commented by: daschuer
Date: 2012-05-31T20:15:00Z


Hi Mel,

Thank you for the bug report!

Maybe this is already solved by the new Auto DJ feature in Mixxx 1.11.
There you can set the transition time to zero.

You can try it if you like:
http://www.mixxx.org/forums/viewtopic.php?f=1&t=3678

Please report your results!

Thank you!

@mixxxbot
Copy link
Collaborator Author

Commented by: MelGrubb
Date: 2012-05-31T20:24:49Z


Can I do this on demand in the middle of a regular manual set, though? What would the workflow look like there? Lets say I have something already playing on deck 1, and I want to auto-play 2 tracks together next. Would I start the first track manually and then flip to auto-dj mode? Can I test drive this in the alpha drops yet?

@mixxxbot
Copy link
Collaborator Author

Commented by: daschuer
Date: 2012-05-31T20:56:46Z


Yes , you can test this in the alpha yet.

  1. Play the "part 1" in track
  2. Put the "part 2" in the auto DJ queue
  3. Set Transition time to 0 s
  4. Enable Auto DJ
    Auto DJ will put the tracks together and will disable itself if queue is empty after that

@mixxxbot
Copy link
Collaborator Author

Commented by: MelGrubb
Date: 2013-02-09T15:24:35Z


I have tried this a couple of times, and even with the delay set to 0, the auto-dj still results in an audible gap between the first and second songs, so it doesn't quite solve the original goal. I think for now my solution will be to hand-stitch such songs together beforehand and make extra entries in the library.

@mixxxbot
Copy link
Collaborator Author

Commented by: ywwg
Date: 2013-02-10T22:54:14Z


MP3 has an issue where nearly all tracks do not end on an MP3 frame boundary. This means the song ends and then there's a tiny amount of silence to fill out the rest of the last frame. This is why gapless playback with mp3 is so difficult. To properly support gapless playback, Auto DJ needs to be able to detect the silence at the end of the track and bring in the next track at exactly the right moment.

@mixxxbot
Copy link
Collaborator Author

Commented by: Be-ing
Date: 2017-09-19T19:30:16Z


FWIW there is a gap playing FLAC tracks in AutoDJ with the transition time set to 0.

@mixxxbot mixxxbot transferred this issue from another repository Aug 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant