Is there any information about sync? I understand that CDJ-2000nxs may no longer receive updates and support, but then I would like to know how to filter mp3 files on my PC that may have poor synchronization. I cannot check all files on CDJ. If it is possible to find them in advance on a PC, I can convert them before adding them to the library. But fixing this in the firmware would be ideal.
Hello Pioneer Dj team. My name is Andrey, I am an electronic engineer, HW developer, sometimes dj.
I have some understanding of the processes going on in cdj players and mixers.
Therefore, I would like that you would not perceive what I write as feelings or opinions of a DJ, but something more.
I am not writing this to point out flaws, but to help you improve your products and my setup.
Now on my desk there are 2 CDJ-2000nxs and DJM-900nxs. I also have an XDJ-RX2 with whom I spent a lot of time. Firmware CDJ 1.43.
It all started with the fact that I noticed that the CDJ-2000nxs does not always synchronize accurately, compared to the XDJ-RX2. Synchronization of bpm is going well, but the beat doesn’t match a bit and needs to be corrected with a jog. Before I press play, I turn on full synchronization, SYNC is on, not blinking. The flash drive and library were the same. I started collecting statistics and found a track that syncs worst with everyone else on the CDJ-2000nxs. On the XDJ-RX2 and in Rekordbox Dj, it syncs perfectly. The track has an constant bpm, beatgrid is set accurately and checked using a metronome. Track mp3, 320kbps, CBR. I checked it with mp3val - OK. I already thought that the problem was in the CDJ synchronization algorithm, but then I noticed that the audio is 2-3 frames ahead of the beatgrid and large waveform (on the CDJ-2000nxs display)! The sound starts to sound before the signal appears on the display. I checked it on the XDJ-RX2 - everything is fine on it, the sound matches the big waveform and beatgrid. I added a video with displays and sound, you can see and hear the difference.
So the problem is in the mp3 decoder or parser of the mp3 file, which puts the audio data in RAM with an offset! Perhaps it does not take into account any metadata that is in the files. Perhaps this problem is with all mp3 files, but there it is not so pronounced, since the offset of audio is less. I converted this track to wav, analyzed it in Rekordbox, checked beatgrid. The wav version syncs perfectly on CDJ and XDJ. This once again proves that there is a problem with the mp3 decoder or parser. I attach the contents of the flash drive with this track and its analysis files.
I have no way to test the problem on CDJ-2000nxs2, but on CDJ-2000nxs it is. Due to offset audio, not only synchronization works poorly, but also quantization of the effector on the DJM-900nxs. I hope that I will be useful with this information and this will help improve the synchronization of flagship equipment with the most popular audio format mp3. I have a request to show this to the engineers. I also attach a video comparing the synchronization and the sound offset (you need to watch with sound). I specifically used the same tracks and flash drives on CDJ and XDJ.
If I am mistaken, I would like to hear where. I want to know how to fix the synchronization problem. You can advise me to configure beatgrid with respect to the sound coming out of the cdj-2000nxs, but then it will not coincide with the large waveform and my library will play poorly on XDJ and Rekordbox Dj. I am also ready to check what is necessary, for more information, if necessary. I am ready to help.
I also collected more information about the pixel on the display. I already wrote about him earlier.
It is also on the latest firmware 1.43. This pixel is highlighted in the same color as that assigned to the media in rekordbox. If no color is assigned, the pixel lights up in gray. This is like forgotten debugging code.
Iniciar sesión para dejar un comentario.
Will I get at least some answer on this topic? If necessary, I can prepare more tracks in which this synchronization problem manifests itself.
I have collected more information on this issue. I have a sampler that syncs via Pro Dj Link. With it I listened to over 1000 tracks and checked their sync. 10-12% of the tracks had sync problems. Tracks that did not sync well with my sampler do not sync well with other tracks, the second CDJ, and effects quantized poorly on the DJM-900nxs. I used the sampler to find bad tracks, but I could have used the second CDJ as well, the result would have been the same. In all tracks, the sound was ahead of the beat grid, so the sound from my sampler lagged behind in the bad tracks.
I analyzed tracks with poor sync. They were all MP3, <MP3_STEREO_MODE>: stereo.
The joint stereo and mono tracks did not encounter poor synchronization. At the same time, not all stereo tracks sync poorly. I looked at these tracks with an Hex editor and noticed that the header of the first frame is different from the header of the next frames.
I mean MP3 frame (1152 samples), not CDJ frame. I copied the second frame and pasted it into the file between the first and second. Saved the mp3 file and tested it on CDJ. He began to play well, the beat grid matched. This means that the CDJ-2000nxs ignores the first mp3 frame in some tracks and starts playing immediately from the second frame.
1152 samples@44100 ~26ms. This is roughly what I hear. An offset of 26ms is a lot for good synchronization. The Header of the first frame was different in that the 30 bit was set to "0". After setting this bit to "1", the CDJ-2000nxs reads the first frame and the sound matches the beat grid.
After editing mp3 files, the beat grid was not broken in Rekordbox, and was fixed on the CDJ-2000nxs. At the same time, the XDJ-RX2 and Rekordbox played these tracks without problems before. The MP3 decoder in the CDJ-2000nxs has a bug that is missing in the XDJ-RX2 and possibly other newer CDJ models. I also copied bad sync mp3 tracks to an empty USB stick, without Rekordbox DB. The CDJ-2000nxs also played them at 26ms offset until I changed the file.
Pioneer Dj Team, @Pulse, please show this information to the CDJ-2000nxs developers. Or tell me, where should I write about this? I ask you to fix this so that your players are in perfect sync. I have added a detailed video that demonstrates the problem and the process of fixing it in files.
Interesting findings -- I'll pass this along and hopefully they can dig deeper.
Pulse, I'm glad to hear that.
This has been passed along for further inspection, but the initial response is that when a newer model is released, naturally improvements are made to both hardware and code so it's possible that this was already addressed in the RX2. Unfortunately you are correct in your statement that the CDJ-2000NXS is a discontinued model; while it is still supported, there is no longer any active development for it. This is not an "apples to apples" comparison, and as you've been able to identify the trigger for it, we would certainly recommend that you use that information to search through your collection to modify it as necessary for use on older hardware.
Thank you for your understanding.
thanks for the help! I expected such an answer. I understand that if engineers wanted to fix this, only desire would not be enough, management approval is needed.
I'm sorry that I only found this problem now in 2020 and not before when the player was under active development. But I bought the CDJ-2000nxs a few months ago. Before that, I only dealt with the CDJ-1000mk3. I use players together with a sampler and the synchronization bug is a problem for me. I am satisfy with my solution, but listening to the collection (and updating it) before playing is not a convenient solution. I am planning to create a utility that automatically scans mp3 files.
I have a question. If the engineers studied the source code in which the file parsing process takes place, can I find out if there is any other combination of parameters (file format, bitrate, stereo type) that will exhibit the same effect. Or that I found this the only combination? I need this information to add search for all combinations of mp3 parameters to my utility, not just the ones I found.
My New CDJ 3000s seem to have similar issues and won't sync up with my cdj 2000 NXS2. :(
Was it ever solved?
Hi - I can verify that this EXACT same issue is happening on the CDJ 2000NXS2. I went through the same steps of diagnosis and trouble-shooting, and verified that the same issue. These CDJs are both using firmware 1.85.
This happened to me for years at clubs/shows where I'd have tracks that just wouldn't sync. It wasn't until I had a set of my own CDJ-2000NXS2s that I could spend time debugging the issue and found the same results above.
The issue only happens when the MP3 is encoded as 'stereo' (but, as OP stated, not 100% of all 'stereo' tracks have the issue). However, when the same MP3 is re-encoded as 'joint-stereo' then the issue is resolved.
For now, I am using MP3 Diags to audit my tracks and ensure they are 'joint-stereo' and not 'stereo'. This is a time consuming work-around, but it has saved me from having tracks not sync properly on the CDJ-2000NXS2.
Hopefully we can get a firmware update for the 2000NXS2 and 3000s as the poster above confirmed it on 3000s as well.
To the "just use FLAC" crowd, older CDJs that we sometimes run into in clubs don't support the same formats that newer CDJs do. 320kbps MP3s are usually a safe bet for compatibility, but if they are encoded as 'stereo' rather than 'joint-stereo' then there is a good chance they will not sync properly, but be 26ms off which makes it sound like a train-wreck.
The solution outlined by the original poster, where it's a simple change of a single bit in the hex value, can hopefully lead Pioneer developers to a longer term solution. I recognize there are tons of priorities and a large backlog to work through, but maybe this can find it's way up the list. :)
The more I think about this, the more I think a tweak within RekordBox and how it encodes/exports files to USB could resolve the issue, especially after looking at the video the OP linked above (here's the video posted: https://www.youtube.com/watch?v=2Cq9qmYSCCk ) given that it's just a single hex value that needs to be adjusted by 1 bit.
I know it's not 'easy' but hopefully that makes it easier than rolling out a firmware update or anything :)