Open stefan-franz opened 1 year ago
EQ knob positions are not stored. Make sure you have a mixing EQ selected in Preferences -> Mixer
After i rotate all 3 eq knobs left and back to 12 o'clock - it sounds normal. So anywhere a false position must be saved. On my controller all knobs were at 12 o'clock at the moment, the sound error was.
Here is my setting.
@stefan-franz do you have a controller attached? Some controllers send their current knob state on startup. Could be an issue related to that.
If not: is the issue reproducible? So if you turn the EQ knobs all the way to one side, shut down mixxx and start it again, is the sound still influenced by the previous EQ state?
I've just testet: Mixxx shut down, turned the middle eq of the controller, deck 1 to 7 o'clock. Started Mixxx and on the skin the knob stands instead of 7 o'clock at 12 o'clock. I load a track in the deck and have the sound of the 7 o.clock knob setting. Still the skin shows all at 12 o'clock. After touching the knob, the skin shows it right. Controller Herkules DJ Control Instinct.
Is this a new issue? Like, did it work at some point (controller and GUI controls are in sync after startup)?
I'm not sure - but last year i made many jobs with the 2.4 alpha version - I did not notice such errors.
Heavy EQ Error on Linux Mint Cinnamon 21.2 Today (and perhaps every day) reproduceable with a new start of my laptop and starting Mixxx. Closing Mixxx and restart (without reboot the laptop) make the EQ an BOTH Decks working right. Maybe it depends with Updates - because i updated before i startet Mixxx first.
Here is the Video description and the logfile. https://vimeo.com/manage/videos/882459224/5018ef5f33 mixxx.log
Thank you for the effort creating a video of the issue. Neither from the video nor the log it is clear what is happening. Looks like the Gain of deck 2 is turned up. FYI you can play to tracks in sync (same position) if you clone a deck by dragging the playing track (deck label) onto another (stopped) deck.
You suspect that the actual EQ knob value is somehow adopted from the controller knob but the GUI knob is showing that value. That means if the EQ knobs on your controller are centered when you start Mixxx everything works as expected? Please verify.
To check the actual control values of the EQ knobs (or any GUI control) you could start Mixxx from the command line with --developer
argument, the hover any control (make sure to enable tooltips). You'll see something like this:
Closing Mixxx and restart (without reboot the laptop) make the EQ an BOTH Decks working right.
What does that mean? Does the GUI reflect the controller knob poistion on startup? Does EQ auto-reset work? Please turn off Library auto-rescan in the preferences. I'm sure it's not directly related but let's exclude this so we can concentrate on the knobs.
First, on every new start of my Latop i have the problem. The hardware knobs of my controller are standing always at center (12 o'clock).
I startet mixxx --developer and checked the values - tooltips of the skin. The skin gives e. g. parameter 1 (bass) 0.5 back. On both decks the same.
But if i rotate the knob of the left deck a bit and back to center, the sound is different. At the start of Mixxx, it sounds like the knobs would standing at about 10 o'clock and after touching all 3 knobs each deck, Mixxx sounds as the Gui shows. Bevor the Gui is wrong.
Auto rescan library is/was always off.
Summary: Mixxx works with other EQ values at startup as on the skin shown. After rotating the EQ it works right. Closing Mixxs and restart Mixxx makes working right from the beginning. The problem comes only on every restart of Mint 21.2
Very strange...
Without the controller you don't see the issue?
So, to summarize:
Correct?
How long is the controller enabled prior to starting Mixxx? Is it always plugged in and switched on? Does switching it on earlier make any difference?
You installed Mixxx from the ppa, correct? There are no concurrent installations? (FlatPak for example)
Maybe it's related, idk, though just yesterday I spotted in the log that Mixxx also reports /home/<user-name>/.local/share/Mixxx
as writable location, and curiously that directory existed and even contained all the usual Mixxx data. I have no idea where that is coming from.
Do you mind checking (in the first run after restart, which is expected to fail) where Preferences > Library (scroll to bottom) > "Open settings directory" leads you?
Auto rescan library is/was always off.
I just noticed in your log that a library rescan was run.
Without the controller you don't see the issue?
Don't tested that yet. But my controller is always plugged on - in live situation too. Before i start Mixxx the first time, the controller is plugged on.
* it works if Mixxx was run previously (after having restarted your computer)
And i adjusted previously the eq knobs so it plays right. Arter Re-start Mixxx it works right
* it doesn't work if you run Mixxx the first time after a restart
Yes
How long is the controller enabled prior to starting Mixxx? Is it always plugged in and switched on? Does switching it on earlier make any difference?
Always plugged on on usb - controller is on, with starting the laptop
You installed Mixxx from the ppa, correct? There are no concurrent installations? (FlatPak for example)
Yes, the beta ppa. system Flatwas tested by me about 2 years ago but all deinstalled and i work, you know, since about 1 year with alpha or beta versions of 2.4
Maybe it's related, idk, though just yesterday I spotted in the log that Mixxx also reports
/home/<user-name>/.local/share/Mixxx
as writable location, and curiously that directory existed and even contained all the usual Mixxx data. I have no idea where that is coming from. Do you mind checking (in the first run after restart, which is expected to fail) where Preferences > Library (scroll to bottom) > "Open settings directory" leads you?
To: /home/stefan/.mixxx that works because i copy the database and the config files to my other 2 DJ Laptops and all works,
Auto rescan library is/was always off.
I just noticed in your log that a library rescan was run.
Yes, i did i manually to see if the error is stll here.
Okay, so please try to reproduce the issue with --controller-debug
to include all the MIDI communication with the controller and share the log please. One with and one without the issue.
Log with error. I rotated after some playing a song the EQ so that it sounds now ok. mixxx_EQs_wrong.log
Here the 2nd start of Mixxx - all 2 Eqs worked right. mixxx_EQs_correct.log
Alright, so the notable difference of those two logs is mixxx_EQs_correct.log lines 154-168 which aren't printed in the working session: (I grouped the warnings so the incoming messages are easier to read)
Debug [Controller] "incoming: " "Hercules DJControl Instinct MID: 15 byte sysex: [F0 00 01 4E 0C 06 10 00 00 00 14 00 00 00 F7]"
Debug [Controller] "incoming: " "Hercules DJControl Instinct MID: status 0xB0 (ch 1, opcode 0xB), ctrl 0x37, val 0x40"
Debug [Controller] "incoming: " "Hercules DJControl Instinct MID: status 0xB0 (ch 1, opcode 0xB), ctrl 0x38, val 0x40"
Debug [Controller] "incoming: " "Hercules DJControl Instinct MID: status 0xB0 (ch 1, opcode 0xB), ctrl 0x39, val 0x40"
Debug [Controller] "incoming: " "Hercules DJControl Instinct MID: status 0xB0 (ch 1, opcode 0xB), ctrl 0x36, val 0x53"
Debug [Controller] "incoming: " "Hercules DJControl Instinct MID: status 0xB0 (ch 1, opcode 0xB), ctrl 0x3B, val 0x56"
Debug [Controller] "incoming: " "Hercules DJControl Instinct MID: status 0xB0 (ch 1, opcode 0xB), ctrl 0x3C, val 0x40"
Debug [Controller] "incoming: " "Hercules DJControl Instinct MID: status 0xB0 (ch 1, opcode 0xB), ctrl 0x3D, val 0x40"
Debug [Controller] "incoming: " "Hercules DJControl Instinct MID: status 0xB0 (ch 1, opcode 0xB), ctrl 0x3E, val 0x40"
Warning [Controller] ControlObject accessed via deprecated key "[Channel1]" "filterHigh" - use "[EqualizerRack1_[Channel1]_Effect1]" "parameter3" instead
Warning [Controller] ControlObject accessed via deprecated key "[Channel1]" "filterMid" - use "[EqualizerRack1_[Channel1]_Effect1]" "parameter2" instead
Warning [Controller] ControlObject accessed via deprecated key "[Channel1]" "filterLow" - use "[EqualizerRack1_[Channel1]_Effect1]" "parameter1" instead
Warning [Controller] ControlObject accessed via deprecated key "[Channel2]" "filterHigh" - use "[EqualizerRack1_[Channel2]_Effect1]" "parameter3" instead
Warning [Controller] ControlObject accessed via deprecated key "[Channel2]" "filterMid" - use "[EqualizerRack1_[Channel2]_Effect1]" "parameter2" instead
Warning [Controller] ControlObject accessed via deprecated key "[Channel2]" "filterLow" - use "[EqualizerRack1_[Channel2]_Effect1]" "parameter1" instead
This happens just before Mixxx prints
Info [Main] Loaded skin "LateNight"
Info [Main] Loaded skin "LateNight"
Info [Main] Loaded skin "LateNight"
So, only in that session, the controller sends a sysex message, followed by 8 messages, presumably [3 EQ knobs + X] x 2 decks. The values are either are 0x40 (decimal 64 = knob centered on a scale 0-127) and 53 / 56, which probably corresponds to something 83 / 86. And it seems those two controls are the volume faders (that's why there's no deprecation warning for those) https://github.com/mixxxdj/mixxx/blob/ccfd8064bb6eabf1df7213e677001c7394b6468d/res/controllers/Hercules%20DJ%20Control%20Instinct.midi.xml#L282-L291 https://github.com/mixxxdj/mixxx/blob/ccfd8064bb6eabf1df7213e677001c7394b6468d/res/controllers/Hercules%20DJ%20Control%20Instinct.midi.xml#L342-L351
Hence the deck should sound okay again if you move the Vol faders until you see a response on screen.
Question is why the controller only sends the sysex in the first session. What happens if you unplug and replug the controller after the first session (EQs wrong) and start Mixxx? Are the EQs wrong again? What happens if you unplug the controller before starting the first Mixxx session?
And why are the values not picked by the skin.
Thanks for analyzing. Wow.
The Herculers Instinct DJ Control is not the controller many DJs use (but for me as mobile wedding party DJ who has to set up and dismantle his system himself every time it's perfect and runs stable as tank since 12 years) So, my workaround is at the moment, to rotate at the start all 3 knobs of the 2 decks a bit and back to center. Then all sounds fine.
In the controller is the soundcard. So it makes no sense to start Mixxx without the controller, because i have to adjust the soundcart setting every time new.
Maybe you can give Mixxx a "filter" (as a firewall), who filters the strange sysex messages so that they don't mess anything up. Or Mixxx makes in the future a "reset" after loading that all would reseted incl skin.....or whatever.
Thanks for your great work
What happens if you unplug and replug the controller after the first session (EQs wrong) and start Mixxx? Are the EQs wrong again? What happens if you unplug and replug the controller before starting the first Mixxx session?
?
What happens if you unplug and replug the controller after the first session (EQs wrong) and start Mixxx? Are the EQs wrong again?
Wrong sound - from the 1st session it's saved in Mixxx
What happens if you unplug and replug the controller before starting the first Mixxx session?
Wrong sound. Unplug and replug has nothing to do with the problem.
After reboot my laptop and first start Mixxx the sound is wrong If i adjust one EQ and close Mixxx - then 2nd start of Mixxx - both EQs working right.
Important cognition: 1st start of Mixxx - EQ sounds wrong - and i don't touch the EQ knobs. The level sliders on the skin (80%) display the correct level slider of the hardware controller (80%)
Then i start the 2nd time Mixxx, all EQ worked right. And level slider standing in the sSkin at 100% (on the hardware Controller at 80%)
Mixxx seems to make a reset at the 2nd start.
Wrong sound - from the 1st session it's saved in Mixxx
Mixxx seems to make a reset at the 2nd start
Mixxx doesn't save the values, nor does it do a reset. This issue is caused by the controller, as it obviously sends the sysex every first time after being powered when Mixxx connects to it. After that, while still being powered, it assumes the MIDI counterpart already knows the control states and hence DOESN'T send the sysex again.
Unplug and replug has nothing to do with the problem.
Obviously that IS part if the issue, as your previous observation confirms.
The mystery here is why it worked before, and doesn't anymore now. Can you recall when that behaviour started? Could you (backup your settings and database) try with Mixxx 2.3.6?
Maybe the error was always there and I didn't recognise this just now...
From what I read from the logs it seems the skin is loaded after the controller send the status. Maybe it's just that the knob and slider widgets need to load the control state when being initialized. I'll try to implement this and open a PR if I succeed.
Hmm, that should already happen, according to https://github.com/mixxxdj/mixxx/blob/81ba008751c9ab814e77235ea7e367b5953f0d6e/src/widget/controlwidgetconnection.cpp#L76-L78 called from here https://github.com/mixxxdj/mixxx/blob/81ba008751c9ab814e77235ea7e367b5953f0d6e/src/skin/legacy/legacyskinparser.cpp#L914-L923
@JoergAtGithub Do you have any idea what's going wrong with the sysex?
Bug Description
I startet Mixxx and wondered about difference sound between the deck 1 and 2. The reason: The eq of the deck 1 was not neutral. But the skin shows all neutral!
3 Bugs:
Version
2.4 Beta 199
OS
Linux Mint 21.2 Cinnamon