Open mxmilkiib opened 2 weeks ago
Interesting.
the log spam is likely a "regression" due to #11407?
As of #12779 you should be able to use midi-components without lodash, so you should be able to "fix" that by removing the first <file ... />
tag.
The Typeerror worries me more though:
controller.launchpadpromk3lppromk3midi:warning [Controller] ControllerScriptHandlerBase: "Uncaught exception: file:///home/milk/src/mixxx/res/controllers/midi-components-0.0.js:664: TypeError: Property 'deepMerge' of object function script() { [native code] } is not a function\nBacktrace: applyLayer@file:///home/milk/src/mixxx/res/controllers/midi-components-0.0.js:664\nComponentContainer@file:///home/milk/src/mixxx/res/controllers/midi-components-0.0.js:523\n@file:///home/milk/src/mixxx/res/controllers/midi-components-0.0.js:698\n%entry@file:///home/milk/src/mixxx/res/controllers/midi-components-0.0.js:29"
Any Idea @christophehenry?
Yeah that was the second thing I was going to file but I've/I'm not [been] in the swing of things
Uh. Dunno. I can dig. @mxmilkiib What XML file you use?
Instead of pasting 10 pages of xml/js into a comment, please either use the details format
<details><summary>description</summary>
looooooooong text
</details>
or attach the files. Thanks ; )
I am sorry, I don't understand the error. I'm not able to reproduce it ATM. From the stacktrace, the error comes from here which should happen either as soon as the file is sources and interpreted or when a components.Deck
is instanciated. But %entry@file:///home/milk/src/mixxx/res/controllers/midi-components-0.0.js:29
makes me believe it's the first. So it should always reproduce at least when a controller is binded to a midi device…
@mxmilkiib BTW, there was a typo in the script you cc'd:
mixxx/res/controllers/arg.js:68: ReferenceError: midChannel is not defined
It's midiChannel
, not midChannel
. But other that that, I don't see any error from midi-components-0.0.js
.
About the lodash.mixxx.js
warning, I'd propose to deprecate the use of this file anyway. Most of its usage in current controllers are _.merge()
, _.assign()
, which can be replaced by Object.assign()
in most cases, _.forEach
, which can be replaced by Array.prototype.forEach()
and _.filter()
which can be replaced by Array.prototype.filter()
.
Deprecating can happen in 2.5.0 and current controllers rewrite and drop lodash.mixxx.js
can happen during development of 2.6 and even script.deepMerge()
can be dropped if we don't find any valid use cases (as of now, I'm still unsure it's really usefull and less code is better).
Right o. This is a straight clone, and that theme, so both things must be.. in my .mixxx settings? Weird. Thank ya
Guess I could try rewrite that const as a function so I can continue!
You can event use ES6/ES7 features to make the code more natural.
@Swiftb0y Should I open a ticket to propose depreciation of lodash.mixxx.js
?
Sure go ahead.
Emphasis on try! Just as likely I'll succeed as I'll give up on Mixxx for a few more months
Nah, that didn't work.
Is
Uncaught exception: file:///home/milk/src/mixxx/res/controllers/midi-components-0.0.js:664: ReferenceError: _ is not defined
Backtrace: applyLayer@file:///home/milk/src/mixxx/res/controllers/midi-components-0.0.js:664
ComponentContainer@file:///home/milk/src/mixxx/res/controllers/midi-components-0.0.js:523
@file:///home/milk/src/mixxx/res/controllers/midi-components-0.0.js:698
%entry@file:///home/milk/src/mixxx/res/controllers/midi-components-0.0.js:29
related? I just pulled and built.
which mapping is that? You'll need to explicitly pull in lodash before midi-components in the XML. If that is specified, some earlier error may have caused lodash to not get initialized properly.
With lodash included, I get the messages in the original post. I thought I remembered from before that removing it didn't give this error on start, but idk. The mapping is a mild update from the above mapping. But my JS doesn't get loaded with the include, this lodash vomit happens before that step. This is a weird issue imho.
well, the lodash vomit are just warnings. the actual problem is
controller.launchpadpromk3lppromk3midi:warning [Controller] ControllerScriptHandlerBase: "Uncaught exception: file:///home/milk/src/mixxx/res/controllers/midi-components-0.0.js:664: TypeError: Property 'deepMerge' of object function script() { [native code] } is not a function\nBacktrace: applyLayer@file:///home/milk/src/mixxx/res/controllers/midi-components-0.0.js:664\nComponentContainer@file:///home/milk/src/mixxx/res/controllers/midi-components-0.0.js:523\n@file:///home/milk/src/mixxx/res/controllers/midi-components-0.0.js:698\n%entry@file:///home/milk/src/mixxx/res/controllers/midi-components-0.0.js:29"
controller.launchpadpromk3lppromk3midi.input:debug [Controller] Engine shutdown
Can you double check that the version of common-controller-scripts.js
you have does have a deepMerge
defined?
I had one of those in my .mixxx/controllers. It didn't have that function. I removed it..
but I still have the same problem.
I've even tried explicitly adding the filename to my .xml, no diff
Bug Description
5ced2dee3c6192754b62c21cfad0388b751a89ee on main, Jul 5, tho this isn't that new for me
Order in my theme;