Jump to content
Gibson Brands Forums
Sign in to follow this  
Guest Soulshade

Key Tag

Recommended Posts

Guest Soulshade

Hey there!

The only thing that keeps me from buying Deckadance is the "key" tag. It won't display it even if i can see the tag written in every dj software and mp3 tagging programs.

Is there any plan in fixing this?

 

(support for pioneer controllers would be great too but i guess i can do the mapping myself)

Share this post


Link to post
Share on other sites
Guest leery

sweet look forward to it, can really see alot of potential with this software, just a few little things and itll be fantastic

Share this post


Link to post
Share on other sites
Guest Melbourne

It's planned for this month (...if there aren't last minute problems).

 

 

Luis....I guess your are have some last minute problems with the next update?...just checking to see where your at with the update...Also does Stanton have any plans for a new controller for Deckadance?...I could have sworn that I heard a rumor about that after they bought deckadance software.

Share this post


Link to post
Share on other sites

We have delayed a little bit the release. I'm out of the office at this moment but my plan is to release a beta version at the end of next week.

 

There will be a Stanton controller for DD but it's going to take some time, so that, if you are considering to buy one right now then do it.

Share this post


Link to post
Share on other sites

 

Hi Luis

Just tried the Deckadance 2.7 open beta with the new key detection. msp_thumbup.gif

Bravo for adding key detection to the Analyze feature, with "traktor style" key notation (1d=C, 1m=Amin, 2d=G, 2m=Emin, etc.). eusa_boohoo.gif

Questions for you:

1. Any chance of having a toggle switch to let the Key tag data display as Traktor notation, "Camelot notation" (8B=C, 8A=Amin, 9B=G, 9A=Emin, etc), or "normal music notation" (C, Amin, G, Emin, etc.)?

2. Where is the detected key data stored? In which mp3 ID3 tag? If the key data's stored in some type of Deckadance local data file, can you read and save the key data also in the MP3 ID3 tags?

3. Could Deckadance display the detected key data already previously analyzed by another software app and stored in an mp3 ID3 tag? Because, many djs have already analyzed our music libraries - in another dj software, such as NI Traktor, or in Mixed In Key, or in Rapid Evolution 3.

4. How about the "Energy" MP3 ID3 tag data (high, medium, low, etc... analyzed and saved by Mixed In Key)... would it be possible for Deckadance to display it?

5. What about the "Rating out of 5 stars" MP3 ID3 tag data? It seems to be failing to display this "Rating" ID3 tag...?? Also fails to display the Windows "rating" tag ?? It makes no sense to maintain 3 different sets of "rating" tags, there should be an option to display it and keep the 3 ratings in sync?

Share this post


Link to post
Share on other sites

Hi Luis

Just tried the Deckadance 2.7 open beta with the new key detection. msp_thumbup.gif

Bravo for adding key detection to the Analyze feature, with "traktor style" key notation (1d=C, 1m=Amin, 2d=G, 2m=Emin, etc.). eusa_boohoo.gif

Questions for you:

1. Any chance of having a toggle switch to let the Key tag data display as Traktor notation, "Camelot notation" (8B=C, 8A=Amin, 9B=G, 9A=Emin, etc), or "normal music notation" (C, Amin, G, Emin, etc.)?

2. Where is the detected key data stored? In which mp3 ID3 tag? If the key data's stored in some type of Deckadance local data file, can you read and save the key data also in the MP3 ID3 tags?

3. Could Deckadance display the detected key data already previously analyzed by another software app and stored in an mp3 ID3 tag? Because, many djs have already analyzed our music libraries - in another dj software, such as NI Traktor, or in Mixed In Key, or in Rapid Evolution 3.

4. How about the "Energy" MP3 ID3 tag data (high, medium, low, etc... analyzed and saved by Mixed In Key)... would it be possible for Deckadance to display it?

5. What about the "Rating out of 5 stars" MP3 ID3 tag data? It seems to be failing to display this "Rating" ID3 tag...?? Also fails to display the Windows "rating" tag ?? It makes no sense to maintain 3 different sets of "rating" tags, there should be an option to display it and keep the 3 ratings in sync?

 

Hi,

 

1. It's in the TODO list, one of the problems with "Camelot notation" is related to "patents", so that, we have to be sure that there aren't legal problem using this notation.

2. It's stored in the beatmarks files created by DD (...we store there Key and BPM info among other things). We don't store the key in the ID3 tags, but we can read it from tags if you disable the key analysis from preferences.

3. It's possible, you need to disable the key analysis in preferences->global settings.

4. I don't know if it's possible or not. Do they store this info in ID3 tags?

5. We import the rating from the "POPM" id3 tag (0 to 255). It should be compatible with Windows media player, Traktor, MediaMonkey and others.

Share this post


Link to post
Share on other sites

Hi,

 

1. It's in the TODO list, one of the problems with "Camelot notation" is related to "patents", so that, we have to be sure that there aren't legal problem using this notation.

2. It's stored in the beatmarks files created by DD (...we store there Key and BPM info among other things). We don't store the key in the ID3 tags, but we can read it from tags if you disable the key analysis from preferences.

3. It's possible, you need to disable the key analysis in preferences->global settings.

4. I don't know if it's possible or not. Do they store this info in ID3 tags?

5. We import the rating from the "POPM" id3 tag (0 to 255). It should be compatible with Windows media player, Traktor, MediaMonkey and others.

 

5. EDIT: You say we import the rating from the POPM id3 tag. Does this occur only during import? What about if I rate a track in Windows Explorer, directly on the mp3 file. Will DD display the new rating, automatically? It'd be nice if it would get live id3 data updates.

6. What about cue points and loops, sharing them between DD and other dj software. I'm having a bear of a time figuring out, where does Deckadance store this data, in a place where other software can read? And, would it be possible for Deckadance to read cues/loops saved by other music software, which has discovered smart cue points. I'm thinking not only of dj software such as traktor's cue points, but also the smart cue points which MixedInKey has intelligently discovered automatically, by analyzing the music. And the other way around, can DD save cue points in a way that other music software can read and use?

7. I've set cues and loops, only to find out, next time I load DD, they're no longer set in the song. What is the right way to do this?

Share this post


Link to post
Share on other sites

5. You need to right click over the item in the library a select "Reload Tags". It's not done automatically yet (...I have considered it various times).

6. Cues are stored in the beatmarks files, you can find them in the installation directory inside the "beatmarks" folder. Sharing data or importing it from other programs is always a complicated thing because there isn't a standard way to do it. We could develop an import module to load this data from some programs where this data is more or less readable (...there are programs where it's really difficult to get this info).

7. Cues should be there but loops aren't saved.

Share this post


Link to post
Share on other sites

5. You need to right click over the item in the library a select "Reload Tags". It's not done automatically yet (...I have considered it various times).

6. Cues are stored in the beatmarks files, you can find them in the installation directory inside the "beatmarks" folder. Sharing data or importing it from other programs is always a complicated thing because there isn't a standard way to do it. We could develop an import module to load this data from some programs where this data is more or less readable (...there are programs where it's really difficult to get this info).

7. Cues should be there but loops aren't saved.

 

6. As you can see in this thread from 2014 on sourceforge for the kid3 app, Traktor (PRIV frame), PCDJ (ETCO frame), and Serato (GEOB frame) stores its cue/loop points inside the MP3 ID3 tags.

 

https://sourceforge....re-requests/45/

 

Thanks for the suggestion. It should be possible to implement this for ID3v2.3.0 because id3lib supports ETCO frames. You can already set and get ETCO frames using Kid3, but only in binary form, i.e. you would have to decode them yourself.

 

Could you answer a few questions concerning ETCO support?

 

  • I suppose that a GUI where a list of timestamp-event pairs can be edited would be sufficient. Is there a better representation? Are there examples of other applications which handle ETCO frames?
  • Do you know any players or other applications which can use the information in ETCO frames? Having such an application would help testing.
  • Where can I get example audio files containing valid ETCO frames?

-------------

 

I found 1 Editor support ETCO, but only for MP3 containers (AHD ID3 Tag Editor)

They show a table composed of time and event code mapped against a timeline view of the file; I am not sure the timeline view is required, unless you can draw a visual signature of the audio on the timeline;

 

I know Traktor(PRIV frame) & Serato(GEOB frame)implement ETCO-like functionality in a proprietary way for cue points, loops, markers, offsets, etc.

 

I would like to have "one" truth regarding cue points, loops, etc. and then use that data to drive other apps like Traktor or Ableton Live; either programmtically or as simple as having a printout

 

It looks like PCDJ software may actually store its cue points and loops in the ETCO frame

http://www.pcdj.com/

 

 

----------------

 

As an extension to this, supporting synchronized lyrics(SYLT frame) could leverage a similiar codebase/UI experience as what would be required to support ETCO. since both are about logging timeframe & event description/text. I included AHD's screenshot, which is the same app I denoted previously.

 

-----------------

 

Yes, I thought about that too. I will probably even start with SYLT support, because I am having trouble creating example ETCO frames. AHD ID3 Tag Editor always crashes when I click on the save tool button in the ETCO and SYLT dialogs. For SYLT, I have found another tool called "SYLT Editor", which seems to work and can also import .lrc files.

 

I would like to have test data for ETCO frames too. Could you please attach an example file containing an ETCO frame?

 

--------------------

 

Urs Fleisch - 2014-03-24

 

I have finally implemented support for ETCO and SYLT frames, you can find development versions in https://sourceforge....d3/development/.

 

The feature is not yet documented, the usage is similar to "SYLT Editor" and "AHD ID3 Tag Editor", there is also a context menu for the time event table. I have tested the ETCO frames with "AHD ID3 Tag Editor" and the SYLT frames with "AHD ID3 Tag Editor", "SYLT Editor", "minilyrics" and "lrcShow-X". Both synchronized lyrics and event time codes can be imported and exported using LRC files.

 

Please tell me if you find any issues.

 

-----------------------

 

Branch Hendrix - 2014-03-25

So far, so good on Lyrics and usage with MiniLyrics which embedding SYLT content which is editable from within Kid3. How do I add an ETCO or SYLT frame to an existing file? I went to add frame with an existing file selected, but I didn't see ETCO or SYLT as a choice in the dropdown list. Assuming I want to manually enter the event & content rows for either of them vs. importing (e.g. lrc file).

 

--------------------

 

Urs Fleisch - 2014-03-25

SYLT and ETCO are only supported in id3lib, not in TagLib. This means that it only works for ID3v2.3.0. Make sure that you have "Id3libMetadata" checked in "Settings/Plugins/Metadata Plugins & Priority" and that its entry is above "TaglibMetadata". For new files, it is important that you have "Settings/Tags/Tag2/ID3v2/Version used for new tags" set to "ID3v2.3.0". You can convert existing files from ID3v2.4.0 to ID3v2.3.0 using "Tools/Convert ID3v2.4.0 to ID3v2.3.0". When the plugin settings are changed, you have to restart Kid3. Then, select the file and check if there is "Tag 2: ID3v2.3.0" in the main screen. Now you can add new SYLT or ETCO frames by clicking "Add..." and then select "SYLT - Synchronized lyric/text" or "ETCO - Event timing codes", respectively.

 

If this feature is useful, I could add support for these two frames in TagLib. TagLib is actively maintained and I have already submitted code for new frame types and bug fixes. But expect a year to pass until such new features appear in a new official TagLib release. Therefore Linux users will have to wait a bit for such changes. For the Mac and Windows versions, it will go faster, because I use my own patched TagLib version and link it statically.

 

------------

 

Branch Hendrix - 2014-03-25

 

I am afraid that one of my apps, Traktor, writes 2.4; so I can't really go back to 2.3...

 

Getting support for 2.4 is probably my ownly option; 2.4 has been out since mid 2000's, so kind of surprised that its not support by some libraries

 

If you'd be willing to privately update Taglib, that would be great

 

Branch

 

---------------

 

Urs Fleisch - 2014-03-28

A new Windows version with ID3v2.4.0 support for SYLT and ETCO frames is now available at http://sourceforge.n...32.zip/download.

 

----------------

 

Your amazing! I can see ETCO & SYLT within the Add Frame dialog! I will

take a deeper dive this weekend.

 

---------------------

Urs Fleisch - 2014-04-07

I have improved the SYLT and ETCO support, you can find a new development release in https://sourceforge....d3/development/. This release should contain the new features of the upcoming 3.1 version, which I plan to release this month, so any feedback is welcome. You can find documentation for the SYLT/ETCO editor in the Kid3 handbook.

 

------------------------

 

Branch Hendrix - 2014-04-08

Scenario 1 is fine

 

I previously ran across this person's effort to decode Traktor's Private ID3

frame (vs. their client-side DB) which is also where Traktor stores its

cue/loop points is in the audio file.

 

http://dope.cz/code/ & attached file from this web site

 

I know this app/solution (Trainspotter) does do some interaction with

Traktor's NML database. (just for reference)

 

Branch

 

Sorry, forgot the Trainspotter URL: http://www.tspotter.net/

 

Share this post


Link to post
Share on other sites

I think that it isn't a good idea to store CUE or LOOP points inside ID3 tags. What I would like to develop is a module to import song's data from other program databases.

 

Yes I see how you think it isn't a good idea to store CUE or LOOP points inside ID3 tags, yet this is exactly how the major DJ software, Traktor Serato and PCDJ, all stores the CUE and LOOP points, inside ID3 tags. Traktor stores in the PRIV frame, Serato in the GEOB frame, and PCDJ in the ETCO frame. That's where to import the data from. Then, it's smart to store it in the ID3 tags, for interoperability with the other DJ software. AND it's possible to also import the data and save it in the beatmarks data file, if you want to let Deckadance find the data where it's expecting to finding it.

Share this post


Link to post
Share on other sites

Luis, any update on giving the DJ the ability to read/save/update/remove cues tags, loops tags, key tags, and energy tags, from the same ID3 tags used by Traktor, Serato, PCDJ?

Share this post


Link to post
Share on other sites

Not for the moment, but some improvements are in the TODO list.

 

Would you agree it's fair to keep the DD database and the ID3 tag data in sync with each other? Anytime you try to read in data, you read it first from the ID3 tags (if they have data), and write the data to the DD database, so that data created in other DJ software doesn't have to be recreated from scratch, and waste so much time. Anytime you write the DD database, you also write it to the ID3 tags, so the data that you create will carry over to other DJ software without wasting time remaking it.

Share this post


Link to post
Share on other sites

Would you agree it's fair to keep the DD database and the ID3 tag data in sync with each other? Anytime you try to read in data, you read it first from the ID3 tags (if they have data), and write the data to the DD database, so that data created in other DJ software doesn't have to be recreated from scratch, and waste so much time. Anytime you write the DD database, you also write it to the ID3 tags, so the data that you create will carry over to other DJ software without wasting time remaking it.

 

Bump. Any comment, Luis, about the general plan: READ FROM ALL sources of data (ID3 tags, local DD database file), and when the user updates any data, WRITE TO ALL sources of data (ID3 tags, local DD database file). The goal being, to ALWAYS read that valuable data which my other DJ software happens to have saved in those ID3 tags. And, to ALWAYS write the data back out to those ID3 tags, so that my other DJ software will be up to date, and on the same page. Not only on first time the app starts, or first time you import some tracks. But EVERY TIME you read or write ANY of the data, at ANY point while running DD. Make sense?

Share this post


Link to post
Share on other sites

It makes sense but there are some problems to solve:

 

- Discover the different "private" tags used by other programs (every program will be different). Not all the important data is stored in the tags (cues, loops...).

- Find a way to update DD's database when other programs change this data (...ideally without spending too much time checking all the items in the database).

 

There are some programs out there that converts the database from one dj program to others, they don't use tags, just the database. The reason is that except the more common tags (artist, tittle, genre...), all the important Dj data stuff is stored in the custom databases that every program have.

 

You only have to look at the "rating" or "bpm" tags to see how difficult is to handle tags, they are used differently by programs, there isn't any standard way to do it, and it's even more difficult when handling tags for different formats (mp3, mp4, flac, ogg, ...etc.). It's a mess to be honest.

Share this post


Link to post
Share on other sites

It makes sense but there are some problems to solve:

 

- Discover the different "private" tags used by other programs (every program will be different). Not all the important data is stored in the tags (cues, loops...).

- Find a way to update DD's database when other programs change this data (...ideally without spending too much time checking all the items in the database).

 

There are some programs out there that converts the database from one dj program to others, they don't use tags, just the database. The reason is that except the more common tags (artist, tittle, genre...), all the important Dj data stuff is stored in the custom databases that every program have.

 

You only have to look at the "rating" or "bpm" tags to see how difficult is to handle tags, they are used differently by programs, there isn't any standard way to do it, and it's even more difficult when handling tags for different formats (mp3, mp4, flac, ogg, ...etc.). It's a mess to be honest.

 

You're right. It's a bit of a mess. This is why it's best to use a "persistence layer" which is basically a class of code whose only job is to detect the type of digital audio file (mp3, m4a, ogg, wav, etc.) for each track, and this persistence layer class will simultaneously create/read/update/delete the data into a corresponding correct audio-file specific tag, which depend on the type of audio file it has detected, and also simultaneously, create/read/update/delete the information about the track to the DD database.

 

All DD needs to do is make a call to the persistence layer, for example, to "read in all data about this track", and the persistence layer decides how best to do that, and does it. Same for create the data, update the data, and delete the data.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...