mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.4k stars 1.26k forks source link

Expose track data to javascript #6898

Open mixxxbot opened 2 years ago

mixxxbot commented 2 years ago

Reported by: dg3nec Date: 2013-02-04T16:24:57Z Status: Confirmed Importance: Wishlist Launchpad Issue: lp1115376 Tags: metadata, midi


Wish: Make possible in JS files reading out songname from deck. Like this... engine.getValue(deck, "songname")

mixxxbot commented 2 years ago

Commented by: dg3nec Date: 2013-02-04T16:33:22Z


-

mixxxbot commented 2 years ago

Commented by: rryan Date: 2013-02-04T16:35:13Z


We should just expose PlayerInfo and TrackInfoObject to scripts. Since TIO is already thread-safe and uses Qt properties it should be fine and ready to use by JS. PlayerInfo would let scripts hook to signals related to track changes too.

mixxxbot commented 2 years ago

Commented by: Pegasus-RPG Date: 2013-02-04T17:28:14Z


I'll take this as I've wanted this functionality for awhile.

mixxxbot commented 2 years ago

Commented by: borfo Date: 2013-07-24T15:11:15Z


Has there been any progress on this? I'm about to start on a couple of new controller mappings, and if this is on its way to being implemented, there are a couple of features based off of this that I'd like to include in my mappings if the functionality is available.

...I'm assuming that exposing these objects will enable the "get track details from one deck/load same track into another deck via script" functionality discussed in here: https://bugs.launchpad.net/mixxx/+bug/1117722 (I'm not asking for the full "instant doubles" function, just the ability to load tracks via script.

mixxxbot commented 2 years ago

Commented by: sergunoid Date: 2015-01-29T03:29:45Z


This will be a great feature to have.

mixxxbot commented 2 years ago

Commented by: dg3nec Date: 2015-12-29T15:09:16Z


Any new information about this? Implemented in Mixxx 2.0?

mixxxbot commented 2 years ago

Commented by: Pegasus-RPG Date: 2015-12-29T15:20:59Z


No, it's not been implemented yet. We've been discussing changing the underlying control structure which would also solve this problem, but that's a bigger job. Once we have a clear direction on that, we'll know how to best proceed with this.

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2015-12-29T20:24:10Z


After thinking about this again, I am in doubt that a generic control based solution will suite here. I think this and follow up requirements are to complex to fit into a single data point.

So for now I would prefer a solution similar to RJs proposal in #⁠2:

Extend the API to register a callback "OnCurrentTrackChange" that receives a Track pointer. Provide an API to query the track metadata. This API can grow as required and expose more and more Mixxx functions as required.

What do you think?

Has anyone fun and time to work on this? This should be doable with some C++ knowledge and/or for an experienced java script writer anyway. I could give a helping hand.

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2015-12-30T22:31:07Z


related: #8386