Skip to content

Conversation

@JoergAtGithub
Copy link
Member

@JoergAtGithub JoergAtGithub commented Oct 24, 2022

Based on the old PR #3783 from @spensbot, I created a new PR with Ableton Link support for Main.
grafik
The LINK-Button enables/disables the Link session. The number right to it shows the number of connected Link peers.
It syncronizes Tempo and Beat-Position (Phase). In Ableton Link all peers are equal, there is no leader. Therefore syncronization is always bidirectional.

In this Implementation, it syncs the Mixxx-Sync-Leader with the other peers. Means, it works only if the Crown-Button for a deck and the new LINK-Button are active.

I tested this with the official LinkHut-App of the Ableton Link package and with the Android App "G-Stomper Rythm", which is a free Drummachine, but with advertizing. A very cool Ableton Link software is also the music visualisation and lighting software from spensbot: https://captivatesynth.com/

Test Plan
Any Ableton Link software, should pass the following test plan:
https://github.com/Ableton/link/blob/master/TEST-PLAN.md

To install the official Linkhut reference tools used in the test plan, you can use VCPKG: ./vcpkg install ableton[hut,hutsilent]

Closes #8650

@obsoleszenz
Copy link

Awesome! <3

obsoleszenz added a commit to obsoleszenz/mixxx-ci-docker that referenced this pull request Nov 3, 2022
obsoleszenz added a commit to obsoleszenz/mixxx-ci-docker that referenced this pull request Nov 3, 2022
@octopuscabbage
Copy link

Please finish merging this! I'm probably going to try bulding this branch tomorrow. I would use ableton link a lot.

Copy link
Member

@daschuer daschuer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for this nice PR
Here some comments:

@fwcd
Copy link
Member

fwcd commented Feb 21, 2023

Any updates on this? Super excited by Link support in Mixxx

@JoergAtGithub
Copy link
Member Author

Try the builds of this PR - it should work in general.

fwcd added a commit to fwcd/m1xxx that referenced this pull request Feb 21, 2023
@fwcd
Copy link
Member

fwcd commented Feb 22, 2023

Pretty cool, I've tested it and tempo sync seems to work pretty well! Two things:

  • Mixxx seems to freeze occasionally during a session, I've tested it with two Mixxx clients talking to each other, but it seems to happen with other Ableton Link clients too
  • I haven't gotten phase sync to work, neither with nor without quantization enabled (I'm testing 2 Mixxx instances, on separate machines, each with a single track playing and sync crown enabled). Perhaps I'm missing something here?

Also I think this would be a prime candidate for bar detection if/when Mixxx finally gets it (#4489).

@JoergAtGithub
Copy link
Member Author

I updated this PR to my local development state.
If phase doesn't sync, try to scratch the waveform by mouse, does the phase sync then?

@varoudis
Copy link

varoudis commented May 2, 2023

Any Mac Builds I can test? This is soo cool!

@fwcd
Copy link
Member

fwcd commented May 2, 2023

Any Mac Builds I can test? This is soo cool!

Check the GitHub Actions builds: https://github.com/mixxxdj/mixxx/actions/runs/4558513041

@luzpaz
Copy link
Contributor

luzpaz commented Jun 24, 2023

Is there an ETA on this ?

@JoergAtGithub
Copy link
Member Author

You can download a build of this PR now. General availability depends much on testing on different platforms with different sound driver configurations. It's developed under Windows11 with ASIO sounddriver. I would be happy if users of other OSes would execute the Ableton Link test plan: https://github.com/Ableton/link/blob/master/TEST-PLAN.md

@mtomt
Copy link

mtomt commented Jun 15, 2025

I compiled git version on linux but mixxx doesnt seem to send changes.
I see in DMX Desktop that it receives packets but it seem stuck at 120 bpm, no change when i play a track.
Is there any more option than the link button?

@JoergAtGithub
Copy link
Member Author

The Link button just enables Link. You need to set a Sync Leader by the Crown button as well. And a sync in Ableton Link only happens if you change BPM or phase, just enable Link changes nothing.

@mtomt
Copy link

mtomt commented Jun 15, 2025

It works now but is possible to use it without syncing the bpm between the players?

@JoergAtGithub
Copy link
Member Author

One deck must be the Sync-Leader, otherwise it is not clear wich Mixxx deck Link should sync to. But the other decks do not have to have Sync enabled.
In Ableton Link itself, all peers always have equal status. In Ableton Link iself there is no concept like Sync-Leader and Sync-Follower.

@tuulikauri
Copy link

tuulikauri commented Jul 6, 2025

Testing it out, Link seems to be working but perhaps with bugs?

Link worked the first time, from commandLine, 1st try:
C:\Program Files\Mixxx>start "Check 1,2" mixxx.exe --log-level debug --color always

Windows threw a "application hung" error when I exited Mixxx (from the X button). Not a big deal, but worth fixing. See screenshot.

Then after restarting in PowerShell instead of from commandLine... 2nd try:
PS C:\Program Files\Mixxx> .\mixxx --log-level debug --color always | tee myMixxxLog.txt
I had a brief hiccup where Ableton wasnt linking; and then not adjusting its Tempo that was showing. Playing a track in Ableton seems to have resolved the tempo display, and it's certainly synced to my Mixxx tempo now. Its possible that I didnt have the Crown button clicked properly though. Will try to replicate. It did not crash on exit.

Logs attached. BUT the console output from try 1 has more lines than the mixxx.log.1 file? As if it stopped writing to the log?

Same for try 3 from powershell; Mixxx wasnt playing but it was linked still when I pressed X, and it crashed on exit; and the log is incomplete. So both the lines of powershell that are savable (not all of it... my Starlight puts out a LOT of data and windows scrolls it away, and my tee function isnt working?) and the 3rd mixxx.log file are also attached for that one. It does not crash on exit every time.

first try tuuli - mixxx.log.1.txt
2nd try tuuli - mixxx.log

Screenshot of end of console crash on try 1

Windows PowerShell Mixxx - 3rd try.txt exit crash
3rd try tuuli - mixxx.log exit crash

Cheers!

EDIT: crash-exit reproducible and seems to be tied to the Link status:

  • crashes with Link enabled, playing from sample deck
  • no crash (clean exit) with Link off, playing from sample deck
  • crashes with Link enabled, playing from deck 1
  • no crash (clean exit) with Link off, playing from deck 1 deck

@JoergAtGithub
Copy link
Member Author

@tuulikauri The Logs do not contain any information about the crash. Could you please create a Backtrace of such a crash, as described here: https://github.com/mixxxdj/mixxx/wiki/Creating-Backtraces#windows-using-x64dbg

@tuulikauri
Copy link

Done, sort of.

The debugger keeps pausing Mixxx every second which makes it difficult to test the Link - so I switched from hitting F9 (Debug-run) to Execute Till Return (Pass all Exceptions).

I ran it again and instead of just

  • Uncheck all 'Break on' checkboxes in Menu -> Options -> Preferences -> Events
    I added:
  • Menu -> Options -> Preferences -> Exceptions; Unknown exceptions was Break On -> First Chance. I changed this to Break On -> Do Not Break
    That seems to have helped with the debugger interfering. But then there's no Stack in the Stack View, as it exits fully... So. Dont do this when examining the crash behaviour... I was able to turn it off and back on before exiting though.

With the debugger running Link behaves weird...

  • The tempo isnt following with Link; changing Mixxx's tempo (with Crown) or Abletons tempo does not affect the tempo of the other software, even though both report 1 Link
  • the tempo in Mixxx does match to Abletons tempo in Mixxx at the instant when Link is successful, if Mixxx Link is turned on with Ableton's Link on first
  • If Mixxx is linked, and then unlinked and the tempo changed, and then relinked -> Mixxx's tempo jumps back to the last tempo when Link was active. This tempo is independent from Ableton's tempo, and Ableton doesnt follow the Mixxx tempo at all
  • Turning Link off in Ableton caused Mixxx's tempo to jump way up - beyond what the (unmatched) tempo was in Ableton
  • Relinking from Ableton's side causes Mixxx's tempo to jump to Ableton's. Or does nothing and the link isn't re-established (Link 0 shown). Or it links and no tempo change happens (even if tempos arent matched)
  • both Ableton and Mixxx show 1 Link

On exiting the first time:

  • There's things happening in the debugger.
  • there's no Mixxx GUI and no Mixxx taskbar icon, those closed
  • no separate Mixxx instance in the Task Manager - Its showing inside the debugger process app
  • the loop is still playing out the audio. Audio is somewhat distorted, crackles happening. This played for about 20 minutes, and then stopped audio; 2nd time it played from 6:28 till 6:36.
  • Eventually debugger paused again with Exception Access Violation; and theres mixxx.ableton::link:: labels beside the hex codes
  • Debugger keeps pausing and I'm not sure if its crashing or what... I hit Execute Till Return (Pass all Exceptions) a bunch more times and it just seems to pause some more... No windows crash popup appears. So I'm not sure if I got to step 7.Make Mixxx crash.
  • Stack trace attached tuuli mixxx ableton x64dbg stack log.txt
  • Then I hit Close in x64dbg and it seems to have closed Mixxx

2nd time with Do Not Break:

  • Menu -> Options -> Preferences -> Exceptions; Unknown exceptions was Break On -> First Chance. I changed this to Break On -> Do Not Break
  • Didnt get Link working, as above
  • Exited Mixxx while Link'd and playing
  • the loop played about 8 minutes, then eventually Mixxx exited.
  • No crash popup or other error popups; so again Im not sure if we got to a crash state?
  • Stack trace empty, because I turned off Breaks, and it Terminated...

I tried again without the debugger; had to restart Ableton for Link to work, when I left it Link'd and quit Mixxx it didnt crash this time...?

3rd time in debugger:

  • Break On -> Do Not Break, for Link testing
  • Restarted Ableton and was able to get full Link functionality (bidirectional) working with the debugger running; linking took some doing, clicking Link in Mixxx and Ableton
  • Exited Mixxx
  • As before playing track continued (looped...)
  • Turned on Break On -> First Chance
  • Debugger started Pausing every few seconds
  • Stack trace during one of these pauses (due to a First Chance exception) included, with some exception logs at the end
  • Since I'm watching the stack and hitting F9, it seems to pause when this pops on the stack
To=00007FF75F28FD97
From=00007FF75F296025
Size=90
Party=User
Comment=mixxx.ableton::link::PingResponder<ableton::platforms::stl::Clock,ableton::platforms::link_asio_1_28_0::Context<ableton::platforms::windows::ScanIpIfAddrs,ableton::util::NullLog,ableton::platforms::link_asio_1_28_0::`anonymous namespace'::ThreadFactory> &>::Imp
  • Eventually Mixxx stopped the music, stopped Pausing (I guess stopped throwing exceptions?) and started showing exit statuses, so I grabbed a stack trace as it exited
  • Log attached.
  • No crash
    tuuli mixxx ableton x64dbg stack log 3.txt

If anyone has additional instructions I can follow, maybe there's some other settings I need to enable for a more effective stack trace of the crash? Though I suspect getting it reliably crashing again outside the debugger is a good first step, and then replicating those steps in the debugger.

Any other ideas or questions let me know, thanks all!

@JoergAtGithub
Copy link
Member Author

JoergAtGithub commented Jul 9, 2025

The first log contains some access violations related to COs:

Thread 22828 exit
EXCEPTION_DEBUG_INFO:
           dwFirstChance: 1
           ExceptionCode: C0000005 (EXCEPTION_ACCESS_VIOLATION)
          ExceptionFlags: 00000000
        ExceptionAddress: <mixxx.public: void __cdecl ControlDoublePrivate::setAndConfirm(double, class QObject *)> (00007FF75EF51DF0)
        NumberParameters: 2
ExceptionInformation[00]: 0000000000000000 Read
ExceptionInformation[01]: FFFFFFFFFFFFFFFF Inaccessible Address
First chance exception on 00007FF75EF51DF0 (C0000005, EXCEPTION_ACCESS_VIOLATION)!

This PR adds only 2 ControllObjects, for the Link button and the number of linked peers. It seems that one of these COs is accessed after it is no longer existing in the memory.
My guess is, that after Link disconnected at shutdown, it calls setAndConfirm to set the number of peers to 0, but at that time the CO is no longer existing in the memory.

@JoergAtGithub
Copy link
Member Author

@tuulikauri Please test again if the hung/crash at shutdown still occurs, I hope it is fixed now.

@tuulikauri
Copy link

@tuulikauri Please test again if the hung/crash at shutdown still occurs, I hope it is fixed now.

Tested the Windows x64 artifact, it seems to be working fine. Changing tempo in Ableton Live (running locally on same machine running Mixxx) changes the Tempo Leaders tempo, and vise-versa, which is as-expected. Exiting Mixxx while Link is active no longer crashes Mixxx as it exits. Thanks so much!

@myCatnip
Copy link

myCatnip commented Dec 28, 2025

Just built it on manjaro linux, had to:

git clone https://github.com/microsoft/vcpkg.git vcpkg
cd vcpkg
./bootstrap-vcpkg.sh -disableMetrics
sudo /path_to_vcpkg/vcpkg install ms-gsl

mkdir build
cd build
cmake .. -DCMAKE_PREFIX_PATH=/path_to_vcpkg/installed/x64-linux/share/Microsoft.GSL
cmake --build .

to get the build to work, other dependancies etc I already had.

I don't see a Link button at all up top. I'm in the right theme/skin.

I do see this in terminal when running mixxx, so maybe it's failing to render the link button? Idk.

warning [Main] *** Problematic Vertex shader source code ***
#version 120
#line 1

struct buf
{
    mat4 matrix;
};

uniform buf ubuf;

varying vec4 vColor;
attribute vec4 color;
attribute vec4 position;

void main()
{
    vColor = color;
    gl_Position = ubuf.matrix * position;
}


***
warning [Main] QOpenGLShader::compile(Fragment): 0(2) : error C0201: unsupported version 120
0(2) : error C7532: global type vec4 requires "#version 100" or later
0(2) : error C7573: OpenGL/ES requires precision specifier on this float type (there is no default precision)

warning [Main] *** Problematic Fragment shader source code ***
#version 120
#ifdef GL_KHR_blend_equation_advanced
#extension GL_ARB_fragment_coord_conventions : enable
#extension GL_KHR_blend_equation_advanced : enable
#endif
#line 1

varying vec4 vColor;

void main()
{
    gl_FragData[0] = vec4(vColor.xyz * vColor.w, vColor.w);
}


***
warning [Main] QOpenGLShaderProgram::attributeLocation(position): shader program is not linked
warning [Main] QOpenGLShaderProgram::attributeLocation(color): shader program is not linked
warning [Main] QOpenGLShaderProgram::uniformLocation(ubuf.matrix): shader program is not linked
warning [Main] QOpenGLShader::compile(Vertex): 0(2) : error C0201: unsupported version 120
0(4) : error C7532: global type mat4 requires "#version 100" or later
0(9) : error C7532: global type vec2 requires "#version 100" or later
0(11) : error C7532: global type vec4 requires "#version 100" or later
0(16) : error C7532: global variable gl_Position requires "#version 100" or later

In Program OpenGL status:

"ES OpenGL ES 3.2 NVIDIA 580.119.02 (NVIDIA GeForce RTX 4070/PCIe/SSE2)"
60fps 8 dropped frames

I did double check I built the JoergAtGithub version and not the official 2.7 alpha ;)

The basics of the program seem to work fine, but I don't see a link button.

I am however on a real time 6.17.5 kernel right now, if anything changes when i reboot to a non real time kernel I'll mention it.

Only downloaded and started using Mixxx yesterday. It's awesome (not that I can really judge as a day 2 djing noob).

@JoergAtGithub
Copy link
Member Author

Did you build the normal main branch sucessfull and did it run without the OpenGL ES messages? @daschuer Is this what you addressed in #15797 ? As this PR does not touch the waveform code at all.
The LINK button is only implemented for the Latenight skin.

@myCatnip
Copy link

myCatnip commented Dec 28, 2025

I am on Late Night, Pale Moon skin. I have not built the normal main branch yet, I just used the manjaro repo mixxx release for the main branch.

I only mentioned the openGL messages incase they were a sign of the "Link" button not rendering or something.

@myCatnip
Copy link

6.12 LTS kernel Manjaro
This one still doesn't show the link button on my machine, both this and official don't show wave render in upper view but do in the decks.

I don't know what's going on but i think it might be a me/mysystem problem, I build only what I absolutely must (like 3 programs) so I'm probably doing something wrong. Right now, I just want to get back to learning to dj so I'm going to go back to the official repo version which works perfectly. I'll probably come back and figure this out later.

Official one spams this error nonstop while running to terminal:

OpenGL ES programs must have both vertex and fragment shaders or a compute shader or a mesh and fragment shader.
warning [Main] QOpenGLShader::link: Link info

Build file creation print out in terminal from the link version, there's a lot of stuff it didn't find, but are they actually necessary? why did it compile at all without that stuff if it was critical to it working properly?

-- CMAKE_VERSION: 4.2.1
-- Setting CMAKE_BUILD_TYPE to 'Debug' as none was specified.
-- The C compiler identification is GNU 15.2.1
-- The CXX compiler identification is GNU 15.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Optimization level: portable
-- Enabling SSE2 CPU optimizations (>= Pentium 4)
-- Could NOT find ccache (missing executable)
-- Support for ccache: OFF
-- Found ld.lld with version: 21.1.6
-- Selecting lld as linker
-- Enabling QML Debugging! This poses a security risk as Mixxx will open a TCP port for debugging
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Performing Test HAVE_STDATOMIC
-- Performing Test HAVE_STDATOMIC - Success
-- Found WrapAtomic: TRUE
-- Found GTest: Unittests enabled
-- Found google-benchmark: mixxx-benchmark enabled
-- Found Chromaprint: /usr/lib/libchromaprint.so (found version "1.6.0")
-- Found SQLite3: /usr/lib/libsqlite3.so (found version "3.51.1")
-- Could NOT find DjInterop (missing: DjInterop_DIR)
-- Could NOT find DjInterop (missing: DjInterop_LIBRARY DjInterop_INCLUDE_DIR DjInterop_VERSION) (Required is exact version "0.24.3")
-- Building libdjinterop sources (with system SQLite) fetched from GitHub
-- Found ZLIB: /usr/lib/libz.so (found suitable version "1.3.1", minimum required is "1.2.8")
-- Found Ebur128: /usr/lib/libebur128.so (found version "1.2.6")
-- Found KeyFinder: /usr/lib/libkeyfinder.so (Required is at least version "2.2.4")
-- Found FLAC: /usr/lib/libFLAC.so (found version "1.5.0")
-- Found mp3lame: /usr/lib/libmp3lame.so
-- Found OpenGL: /usr/lib/libOpenGL.so
-- Found Ogg: /usr/lib/libogg.so (found version "1.3.6")
-- Found Vorbis: /usr/include  found components: vorbis vorbisenc vorbisfile
-- Found PortAudio: /usr/lib/libportaudio.so (found version "19")
-- Found PortMidi: /usr/lib/libportmidi.so
-- Found WrapOpenGL: TRUE
-- Could NOT find WrapVulkanHeaders (missing: Vulkan_INCLUDE_DIR) 
-- Could NOT find WrapVulkanHeaders (missing: Vulkan_INCLUDE_DIR) 
-- Found Cups: /usr/lib/libcups.so (found version "2.4.16")
-- Found XKB: /usr/lib/libxkbcommon.so (found suitable version "1.13.1", minimum required is "0.9.0")
rgbsignal_qml.frag -> rgbsignal_qml.frag.qsb exposed as :/shaders/rgbsignal_qml.frag.qsb
CMake Deprecation Warning at /usr/lib/cmake/Qt6Core/Qt6CoreMacros.cmake:3496 (message):
  Qt policy QTP0004 is set to OLD.  Support for the old behavior will be
  removed in a future major version of Qt.
Call Stack (most recent call first):
  /usr/lib/cmake/Qt6Qml/Qt6QmlMacros.cmake:3910 (__qt_internal_setup_policy)
  /usr/lib/cmake/Qt6Qml/Qt6QmlMacros.cmake:960 (qt6_target_qml_sources)
  /usr/lib/cmake/Qt6Qml/Qt6QmlMacros.cmake:1418 (qt6_add_qml_module)
  CMakeLists.txt:3378 (qt_add_qml_module)


CMake Deprecation Warning at /usr/lib/cmake/Qt6Core/Qt6CoreMacros.cmake:3496 (message):
  Qt policy QTP0004 is set to OLD.  Support for the old behavior will be
  removed in a future major version of Qt.
Call Stack (most recent call first):
  /usr/lib/cmake/Qt6Qml/Qt6QmlMacros.cmake:3910 (__qt_internal_setup_policy)
  /usr/lib/cmake/Qt6Qml/Qt6QmlMacros.cmake:960 (qt6_target_qml_sources)
  /usr/lib/cmake/Qt6Qml/Qt6QmlMacros.cmake:1418 (qt6_add_qml_module)
  CMakeLists.txt:3412 (qt_add_qml_module)


-- Found X11: /usr/include
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found rubberband: /usr/lib/librubberband.so (found version "4.0.0")
-- Found SndFile: /usr/lib/libsndfile.so (found version "1.2.2")
-- Found SoundTouch: /usr/lib/libSoundTouch.so (found suitable version "2.4.0", minimum required is "2.1.2")
-- Found TagLib: /usr/lib/taglib1/libtag.so (found suitable version "1.13.1", minimum required is "1.11")
-- Found Upower: /usr/lib/libupower-glib.so (found version "1.91.0")
-- Found GLIB: /usr/include/glib-2.0;/usr/lib/glib-2.0/include (found version "2.86.3")
-- Could NOT find MP4 (missing: MP4_LIBRARY MP4_INCLUDE_DIR) 
-- Could NOT find MP4v2 (missing: MP4v2_LIBRARY MP4v2_INCLUDE_DIR) 
-- Searching for FFMPEG components
--   - libavcodec 62.11.100 found.
--   - libavformat 62.3.100 found.
--   - libavdevice 62.1.100 found.
--   - libavutil 60.8.100 found.
--   - libavfilter 11.4.100 found.
--   - libswscale 9.1.100 found.
--   - libswresample 6.1.100 found.
-- Found FFMPEG: /usr/lib/libavcodec.so;/usr/lib/libavformat.so;/usr/lib/libavutil.so;/usr/lib/libswresample.so
-- Found lilv: /usr/lib/liblilv-0.so
-- Could NOT find Shoutidjc (missing: Shoutidjc_LIBRARY Shoutidjc_INCLUDE_DIR) 
-- Using internal libshout-idjc
-- Found OpenSSL: /usr/lib/libcrypto.so (found version "3.6.0")
-- Looking for __GNU_LIBRARY__
-- Looking for __GNU_LIBRARY__ - found
-- Looking for arpa/inet.h
-- Looking for arpa/inet.h - found
-- Looking for inttypes.h
-- Looking for inttypes.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for sys/select.h
-- Looking for sys/select.h - found
-- Looking for sys/socket.h
-- Looking for sys/socket.h - found
-- Looking for winsock2.h
-- Looking for winsock2.h - not found
-- Looking for sys/uio.h
-- Looking for sys/uio.h - found
-- Looking for writev
-- Looking for writev - found
-- Looking for sys/time.h
-- Looking for sys/time.h - found
-- Looking for gettimeofday
-- Looking for gettimeofday - found
-- Looking for sys/timeb.h
-- Looking for sys/timeb.h - found
-- Looking for ftime
-- Looking for ftime - found
-- Looking for time.h
-- Looking for time.h - found
-- Looking for pthread_spin_init
-- Looking for pthread_spin_init - not found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Looking for poll
-- Looking for poll - not found
-- Looking for endhostent
-- Looking for endhostent - found
-- Looking for getaddrinfo
-- Looking for getaddrinfo - found
-- Looking for getnameinfo
-- Looking for getnameinfo - found
-- Looking for inet_aton
-- Looking for inet_aton - found
-- Looking for inet_pton
-- Looking for inet_pton - found
-- Looking for sethostent
-- Looking for sethostent - found
-- Looking for strcasestr
-- Looking for strcasestr - found
-- Looking for X509_check_host
-- Looking for X509_check_host - not found
-- Found OpusFile: /usr/lib/libopusfile.so (found version "0.12")
-- Found Opus: /usr/lib/libopus.so (found version "1.6")
-- Found MAD: /usr/lib/libmad.so (found version "0.15.1b")
-- Found ID3Tag: /usr/lib/libid3tag.so (found version "0.16.3")
-- Found Modplug: /usr/lib/libmodplug.so (found version "0.8.9.0")
-- Found LibUSB: /usr/lib/libusb-1.0.so (found version "1.0.29")
-- Found hidapi: /usr/lib/libhidapi-libusb.so (found suitable version "0.15.0", minimum required is "0.14.0")
-- Found Libudev: /usr/lib/libudev.so
-- Qt version 6.10
-- Using QShader to load qsb shaders for opengl
pattern.frag -> pattern.frag.qsb exposed as :/shaders/rendergraph/pattern.frag.qsb
pattern.vert -> pattern.vert.qsb exposed as :/shaders/rendergraph/pattern.vert.qsb
rgb.frag -> rgb.frag.qsb exposed as :/shaders/rendergraph/rgb.frag.qsb
rgb.vert -> rgb.vert.qsb exposed as :/shaders/rendergraph/rgb.vert.qsb
rgba.frag -> rgba.frag.qsb exposed as :/shaders/rendergraph/rgba.frag.qsb
rgba.vert -> rgba.vert.qsb exposed as :/shaders/rendergraph/rgba.vert.qsb
texture.frag -> texture.frag.qsb exposed as :/shaders/rendergraph/texture.frag.qsb
texture.vert -> texture.vert.qsb exposed as :/shaders/rendergraph/texture.vert.qsb
unicolor.frag -> unicolor.frag.qsb exposed as :/shaders/rendergraph/unicolor.frag.qsb
unicolor.vert -> unicolor.vert.qsb exposed as :/shaders/rendergraph/unicolor.vert.qsb
-- Adding qsb shaders to rendergraph_gl
pattern.frag -> pattern.frag.qsb exposed as :/shaders/rendergraph/pattern.frag.qsb
pattern.vert -> pattern.vert.qsb exposed as :/shaders/rendergraph/pattern.vert.qsb
rgb.frag -> rgb.frag.qsb exposed as :/shaders/rendergraph/rgb.frag.qsb
rgb.vert -> rgb.vert.qsb exposed as :/shaders/rendergraph/rgb.vert.qsb
rgba.frag -> rgba.frag.qsb exposed as :/shaders/rendergraph/rgba.frag.qsb
rgba.vert -> rgba.vert.qsb exposed as :/shaders/rendergraph/rgba.vert.qsb
texture.frag -> texture.frag.qsb exposed as :/shaders/rendergraph/texture.frag.qsb
texture.vert -> texture.vert.qsb exposed as :/shaders/rendergraph/texture.vert.qsb
unicolor.frag -> unicolor.frag.qsb exposed as :/shaders/rendergraph/unicolor.frag.qsb
unicolor.vert -> unicolor.vert.qsb exposed as :/shaders/rendergraph/unicolor.vert.qsb
-- Found wavpack: /usr/lib/libwavpack.so (found version "5.8.1")
-- Configuring done (7.4s)
-- Generating done (0.4s)
-- Build files have been written to: /mnt/k2/mixxx_link/mixxx/build

For the official one the same output was:

-- CMAKE_VERSION: 4.2.1
-- Setting CMAKE_BUILD_TYPE to 'Debug' as none was specified.
-- The C compiler identification is GNU 15.2.1
-- The CXX compiler identification is GNU 15.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Optimization level: portable
-- CMAKE_SYSTEM_PROCESSOR: x86_64
-- Enabling SSE2 CPU optimizations (>= Pentium 4)
-- Could NOT find ccache (missing executable)
-- Support for ccache: OFF
-- Found ld.lld with version: 21.1.6
-- Selecting lld as linker
-- Enabling QML Debugging! This poses a security risk as Mixxx will open a TCP port for debugging
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Performing Test HAVE_STDATOMIC
-- Performing Test HAVE_STDATOMIC - Success
-- Found WrapAtomic: TRUE
-- Found GTest: Unittests enabled
-- Found google-benchmark: mixxx-benchmark enabled
-- Searching for FFMPEG components
--   - libavcodec 62.11.100 found.
--   - libavformat 62.3.100 found.
--   - libavdevice 62.1.100 found.
--   - libavutil 60.8.100 found.
--   - libavfilter 11.4.100 found.
--   - libswscale 9.1.100 found.
--   - libswresample 6.1.100 found.
-- Found FFMPEG: /usr/lib/libavcodec.so;/usr/lib/libavformat.so;/usr/lib/libavutil.so;/usr/lib/libswresample.so
-- Found Chromaprint: /usr/lib/libchromaprint.so (found version "1.6.0")
-- Found SQLite3: /usr/lib/libsqlite3.so (found version "3.51.1")
-- Could NOT find DjInterop (missing: DjInterop_DIR)
-- Could NOT find DjInterop (missing: DjInterop_LIBRARY DjInterop_INCLUDE_DIR DjInterop_VERSION) (Required is exact version "0.27.0")
-- Building libdjinterop sources (with system SQLite) fetched from GitHub
-- Found ZLIB: /usr/lib/libz.so (found suitable version "1.3.1", minimum required is "1.2.8")
-- Found Ebur128: /usr/lib/libebur128.so (found version "1.2.6")
-- Found KeyFinder: /usr/lib/libkeyfinder.so (Required is at least version "2.2.4")
-- Found FLAC: /usr/lib/libFLAC.so (found version "1.5.0")
-- Found mp3lame: /usr/lib/libmp3lame.so
-- Found OpenGL: /usr/lib/libOpenGL.so
-- Found WrapOpenGL: TRUE
-- Found Ogg: /usr/lib/libogg.so (found version "1.3.6")
-- Found Vorbis: /usr/include  found components: vorbis vorbisenc vorbisfile
-- Found PortAudio: /usr/lib/libportaudio.so (found version "19")
-- Found PortMidi: /usr/lib/libportmidi.so
-- Could NOT find WrapVulkanHeaders (missing: Vulkan_INCLUDE_DIR) 
-- Could NOT find WrapVulkanHeaders (missing: Vulkan_INCLUDE_DIR) 
-- Found Cups: /usr/lib/libcups.so (found version "2.4.16")
-- Found XKB: /usr/lib/libxkbcommon.so (found suitable version "1.13.1", minimum required is "0.9.0")
CMake Warning at /usr/lib/cmake/Qt6/QtPublicDependencyHelpers.cmake:335 (message):
  This project is using headers of the GuiPrivate module and will therefore
  be tied to this specific Qt module build version.  Running this project
  against other versions of the Qt modules may crash at any arbitrary point.
  This is not a bug, but a result of using Qt internals.  You have been
  warned!

  You can disable this warning by setting QT_NO_PRIVATE_MODULE_WARNING to ON.
Call Stack (most recent call first):
  /usr/lib/cmake/Qt6GuiPrivate/Qt6GuiPrivateConfig.cmake:58 (_qt_internal_show_private_module_warning)
  /usr/lib/cmake/Qt6/Qt6Config.cmake:247 (find_package)
  CMakeLists.txt:3724 (find_package)


rgbsignal_qml.frag -> rgbsignal_qml.frag.qsb exposed as :/shaders/rgbsignal_qml.frag.qsb
CMake Deprecation Warning at /usr/lib/cmake/Qt6Core/Qt6CoreMacros.cmake:3496 (message):
  Qt policy QTP0004 is set to OLD.  Support for the old behavior will be
  removed in a future major version of Qt.
Call Stack (most recent call first):
  /usr/lib/cmake/Qt6Qml/Qt6QmlMacros.cmake:3910 (__qt_internal_setup_policy)
  /usr/lib/cmake/Qt6Qml/Qt6QmlMacros.cmake:960 (qt6_target_qml_sources)
  /usr/lib/cmake/Qt6Qml/Qt6QmlMacros.cmake:1418 (qt6_add_qml_module)
  CMakeLists.txt:3782 (qt_add_qml_module)


CMake Deprecation Warning at /usr/lib/cmake/Qt6Core/Qt6CoreMacros.cmake:3496 (message):
  Qt policy QTP0004 is set to OLD.  Support for the old behavior will be
  removed in a future major version of Qt.
Call Stack (most recent call first):
  /usr/lib/cmake/Qt6Qml/Qt6QmlMacros.cmake:3910 (__qt_internal_setup_policy)
  /usr/lib/cmake/Qt6Qml/Qt6QmlMacros.cmake:960 (qt6_target_qml_sources)
  /usr/lib/cmake/Qt6Qml/Qt6QmlMacros.cmake:1418 (qt6_add_qml_module)
  CMakeLists.txt:3816 (qt_add_qml_module)


-- Found X11: /usr/include
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found rubberband: /usr/lib/librubberband.so (found version "4.0.0")
-- Found SndFile: /usr/lib/libsndfile.so (found version "1.2.2")
-- Found SoundTouch: /usr/lib/libSoundTouch.so (found suitable version "2.4.0", minimum required is "2.1.2")
-- Found TagLib: /usr/lib/taglib1/libtag.so (found suitable version "1.13.1", minimum required is "1.11")
-- Found Upower: /usr/lib/libupower-glib.so (found version "1.91.0")
-- Found GLIB: /usr/include/glib-2.0;/usr/lib/glib-2.0/include (found version "2.86.3")
-- Could NOT find MP4 (missing: MP4_LIBRARY MP4_INCLUDE_DIR) 
-- Could NOT find MP4v2 (missing: MP4v2_LIBRARY MP4v2_INCLUDE_DIR) 
-- Found lilv: /usr/lib/liblilv-0.so
-- Could NOT find Shoutidjc (missing: Shoutidjc_LIBRARY Shoutidjc_INCLUDE_DIR) 
-- Using internal libshout-idjc
-- Found OpenSSL: /usr/lib/libcrypto.so (found version "3.6.0")
-- Looking for __GNU_LIBRARY__
-- Looking for __GNU_LIBRARY__ - found
-- Looking for arpa/inet.h
-- Looking for arpa/inet.h - found
-- Looking for inttypes.h
-- Looking for inttypes.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for sys/select.h
-- Looking for sys/select.h - found
-- Looking for sys/socket.h
-- Looking for sys/socket.h - found
-- Looking for winsock2.h
-- Looking for winsock2.h - not found
-- Looking for sys/uio.h
-- Looking for sys/uio.h - found
-- Looking for writev
-- Looking for writev - found
-- Looking for sys/time.h
-- Looking for sys/time.h - found
-- Looking for gettimeofday
-- Looking for gettimeofday - found
-- Looking for sys/timeb.h
-- Looking for sys/timeb.h - found
-- Looking for ftime
-- Looking for ftime - found
-- Looking for time.h
-- Looking for time.h - found
-- Looking for pthread_spin_init
-- Looking for pthread_spin_init - not found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Looking for poll
-- Looking for poll - not found
-- Looking for endhostent
-- Looking for endhostent - found
-- Looking for getaddrinfo
-- Looking for getaddrinfo - found
-- Looking for getnameinfo
-- Looking for getnameinfo - found
-- Looking for inet_aton
-- Looking for inet_aton - found
-- Looking for inet_pton
-- Looking for inet_pton - found
-- Looking for sethostent
-- Looking for sethostent - found
-- Looking for strcasestr
-- Looking for strcasestr - found
-- Looking for X509_check_host
-- Looking for X509_check_host - not found
-- Found OpusFile: /usr/lib/libopusfile.so (found version "0.12")
-- Found Opus: /usr/lib/libopus.so (found version "1.6")
-- Found MAD: /usr/lib/libmad.so (found version "0.15.1b")
-- Found ID3Tag: /usr/lib/libid3tag.so (found version "0.16.3")
-- Found Modplug: /usr/lib/libmodplug.so (found version "0.8.9.0")
-- Found LibUSB: /usr/lib/libusb-1.0.so (found version "1.0.29")
-- Found hidapi: /usr/lib/libhidapi-libusb.so (found suitable version "0.15.0", minimum required is "0.14.0")
-- Found Libudev: /usr/lib/libudev.so
-- Qt version 6.10
-- Using QShader to load qsb shaders for opengl
pattern.frag -> pattern.frag.qsb exposed as :/shaders/rendergraph/pattern.frag.qsb
pattern.vert -> pattern.vert.qsb exposed as :/shaders/rendergraph/pattern.vert.qsb
rgb.frag -> rgb.frag.qsb exposed as :/shaders/rendergraph/rgb.frag.qsb
rgb.vert -> rgb.vert.qsb exposed as :/shaders/rendergraph/rgb.vert.qsb
rgba.frag -> rgba.frag.qsb exposed as :/shaders/rendergraph/rgba.frag.qsb
rgba.vert -> rgba.vert.qsb exposed as :/shaders/rendergraph/rgba.vert.qsb
texture.frag -> texture.frag.qsb exposed as :/shaders/rendergraph/texture.frag.qsb
texture.vert -> texture.vert.qsb exposed as :/shaders/rendergraph/texture.vert.qsb
unicolor.frag -> unicolor.frag.qsb exposed as :/shaders/rendergraph/unicolor.frag.qsb
unicolor.vert -> unicolor.vert.qsb exposed as :/shaders/rendergraph/unicolor.vert.qsb
-- Adding qsb shaders to rendergraph_gl
pattern.frag -> pattern.frag.qsb exposed as :/shaders/rendergraph/pattern.frag.qsb
pattern.vert -> pattern.vert.qsb exposed as :/shaders/rendergraph/pattern.vert.qsb
rgb.frag -> rgb.frag.qsb exposed as :/shaders/rendergraph/rgb.frag.qsb
rgb.vert -> rgb.vert.qsb exposed as :/shaders/rendergraph/rgb.vert.qsb
rgba.frag -> rgba.frag.qsb exposed as :/shaders/rendergraph/rgba.frag.qsb
rgba.vert -> rgba.vert.qsb exposed as :/shaders/rendergraph/rgba.vert.qsb
texture.frag -> texture.frag.qsb exposed as :/shaders/rendergraph/texture.frag.qsb
texture.vert -> texture.vert.qsb exposed as :/shaders/rendergraph/texture.vert.qsb
unicolor.frag -> unicolor.frag.qsb exposed as :/shaders/rendergraph/unicolor.frag.qsb
unicolor.vert -> unicolor.vert.qsb exposed as :/shaders/rendergraph/unicolor.vert.qsb
-- Found wavpack: /usr/lib/libwavpack.so (found version "5.8.1")
-- Configuring done (4.9s)
-- Generating done (0.4s)
-- Build files have been written to: /mnt/k2/mixxx_official/mixxx/build

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build cmake code quality controller backend developer experience Issues, bugs and PRs related to the development process, development environment & developer docs engine needs testing skins soundio sync

Projects

Status: In progress

Development

Successfully merging this pull request may close these issues.

Add a Ableton Link interface