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

Resolve merge conflicts for MIDI clock output PR 702 #11

Merged
merged 10,000 commits into from
Feb 7, 2021

Conversation

Holzhaus
Copy link

@Holzhaus Holzhaus commented Feb 7, 2021

This resolves the merge conflicts (hopefully correctly) and fixes some memory issues. Tests don't pass due to some CO issues, but I don't know enough about the code to fix it.

mixxxdj#702

mr-smidge and others added 30 commits January 15, 2021 20:49
This also fixes xsco/libdjinterop#37 where Engine Prime and engine os
would recalculate the BPM to a wrong value based on the beatgrid.
* `ExportRequest` removed, all moved into `EnginePrimeExportRequest`.
* Config key string literal moved to const.
* Use `const auto` where appropriate.
support multi target generators like Visual Studio
Disable decoding of OGG files for libsndfile-1.0.30
Fixes these errors:

    Error: ..\src\sources\soundsourceffmpeg.cpp(143): error C4576: a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax
    Error: ..\src\sources\soundsourceffmpeg.cpp(151): error C4576: a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax
SoundSourceFFmpeg: Use av_make_q to fix build errors on MSVC
Logging: Add missing newline in logrotate error message
Logging: Fix wrong usage of QDir() when disabling log to file
# Conflicts:
#	src/mixxx.cpp
#	src/util/logging.cpp
#	src/util/logging.h
daschuer and others added 25 commits February 1, 2021 13:32
Make sure a track has at least a title after import metadata.
The head mix is 4 times more accurate now.
…e-accurate-headmix

Hercules P32 mapping: more accurate headmix control
This stops GH Actions from cancelling unrelated jobs when one
fails.
SoundSourceProxy: Reduce nesting and improve readability
SoundSourceCoreAudio: add aac to list of supported file extensions
Fix loadling of libfaad2 on Fedora
SoundSourceMediaFoundation: add aac to list of supported file types
Make sure title from file fall back works also when reload metadata
@Holzhaus Holzhaus changed the title Resolve merge conflicts for MIDI clock output PR Resolve merge conflicts for MIDI clock output PR 702 Feb 7, 2021
@ywwg
Copy link
Owner

ywwg commented Feb 7, 2021

thanks! due to the ginormous diff size I'm going to just merge as-is

@ywwg ywwg merged commit e3468de into ywwg:midi-master Feb 7, 2021
ywwg pushed a commit that referenced this pull request Mar 18, 2022
…h sync

When loading a track that is not yet present in the library (and thus
doesn't have any BPM because it hasn't been analyzed yet) while another
deck is playing and both decks have sync enabled, a debug assertion is
triggered:

    DEBUG ASSERT: "isValid()" in function double mixxx::Bpm::value() const at src/track/bpm.h:53
    Aborted (core dumped)

The backtrace looks as follows:

    #0  0x00007f175c87234c in __pthread_kill_implementation () at /usr/lib/libc.so.6
    #1  0x00007f175c8254b8 in raise () at /usr/lib/libc.so.6
    #2  0x00007f175c80f534 in abort () at /usr/lib/libc.so.6
    #3  0x00007f175cf05ee4 in qt_assert(char const*, char const*, int) () at /usr/lib/libQt5Core.so.5
    #4  0x000055deb2e67e1c in mixxx::(anonymous namespace)::handleMessage(QtMsgType, QMessageLogContext const&, QString const&) (type=<optimized out>, context=<optimized out>, input=<optimized out>) at src/util/logging.cpp:355
    #5  0x00007f175cf47128 in  () at /usr/lib/libQt5Core.so.5
    #6  0x00007f175cf3fd8a in  () at /usr/lib/libQt5Core.so.5
    #7  0x00007f175cf06526 in QMessageLogger::critical(char const*, ...) const () at /usr/lib/libQt5Core.so.5
    #8  0x000055deb2e5c720 in mixxx_debug_assert(char const*, char const*, int, char const*) (assertion=assertion@entry=0x55deb39bd0db "isValid()", file=file@entry=0x55deb39bbf30 "src/track/bpm.h", line=line@entry=53, function=function@entry=0x55deb39bbf08 "double mixxx::Bpm::value() const") at gsrc/util/assert.h:9
    #9  0x000055deb2ee7e7e in mixxx_debug_assert_return_true(char const*, char const*, int, char const*) (function=0x55deb39bbf08 "double mixxx::Bpm::value() const", line=53, file=0x55deb39bbf30 "src/track/bpm.h", assertion=0x55deb39bd0db "isValid()") at gsrc/util/assert.h:18
    #10 mixxx::Bpm::value() const (this=<synthetic pointer>) at src/track/bpm.h:53
    #11 mixxx::operator*(mixxx::Bpm, double) (multiple=1, bpm=...) at src/track/bpm.h:160
    #12 SyncControl::setLocalBpm(mixxx::Bpm) (this=<optimized out>, localBpm=...) at src/engine/sync/synccontrol.cpp:567
    mixxxdj#13 0x000055deb34c7ba3 in EngineBuffer::postProcess(int) (this=0x55deb56eb060, iBufferSize=2048) at src/engine/enginebuffer.cpp:1318
    mixxxdj#14 0x000055deb3139023 in EngineMaster::processChannels(int) (this=0x55deb5449440, iBufferSize=<optimized out>) at src/engine/enginemaster.cpp:383
    mixxxdj#15 0x000055deb31394f7 in EngineMaster::process(int) (this=0x55deb5449440, iBufferSize=iBufferSize@entry=2048) at src/engine/enginemaster.cpp:410
    mixxxdj#16 0x000055deb2f91d0b in SoundManager::onDeviceOutputCallback(long) (this=<optimized out>, iFramesPerBuffer=iFramesPerBuffer@entry=1024) at src/soundio/soundmanager.cpp:596
    mixxxdj#17 0x000055deb32dd794 in SoundDevicePortAudio::callbackProcessClkRef(long, float*, float const*, PaStreamCallbackTimeInfo const*, unsigned long) (this=0x55deb553e6b0, framesPerBuffer=1024, out=<optimized out>, in=<optimized out>, timeInfo=<optimized out>, statusFlags=<optimized out>) at src/soundio/sounddeviceportaudio.cpp:965

This happens because `newLocalBpm` is invalid when `localBpm` is
invalid. Trying to do sync decks while no tempo information is available
does not make sense, so we only synchronize decks if the local BPM is
available.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.