View Issue Details

IDProjectCategoryView StatusLast Update
0005924MediaMonkey 5DB/FileMonitorpublic2019-04-02 02:09
Reporterpeke 
PriorityhighSeverityfeatureReproducibilityN/A
Status newResolutionopen 
Product Version 
Target VersionFixed in Version 
Summary0005924: Framework: CUEPoint Support
DescriptionLibrary Framework for supporting:
- CUESheet Playlist
- Manual CUE Point for gapless Playback, Custom Crossfading types
- AudioBooks 0005931, Podcast, DVD Chapters (Bookmark Points) 0006967
- Gapless, Crossfade (mixed) Audio CD Burning, Better Splitting tracks for multiple CDs Burning 0006210

To support all these features SQLite Songs Table should be updated to contain additional Columns:
1. ParrentTrack = INTEGER
2. CUEStartPos = LONGWORD (Start Time From 0006237)
3. CUEEndPos = LONGWORD (Stop Time From 0006237)
4. CrossfadeStartType = TEXT
5. CrossfadeEndType = TEXT

Optional if Needed for faster and more accurate Seeking
6. OriginalLength = LONGWORD
Additional Informationhttps://www.mediamonkey.com/forum/viewtopic.php?f=7&t=94064
http://www.mediamonkey.com/forum/viewtopic.php?f=26&t=85589

http://www.mediamonkey.com/forum/viewtopic.php?f=4&t=43953
http://www.mediamonkey.com/forum/viewtopic.php?f=1&t=46031
http://www.mediamonkey.com/forum/viewtopic.php?p=244899#p244899
http://www.mediamonkey.com/forum/viewtopic.php?f=2&t=36026 (CUE Lord Script)
http://www.mediamonkey.com/forum/viewtopic.php?f=4&t=29850
http://www.mediamonkey.com/forum/viewtopic.php?f=4&t=67306
http://www.mediamonkey.com/forum/viewtopic.php?f=1&t=76176

http://www.mediamonkey.com/support/staff/index.php?_m=tickets&_a=viewticket&ticketid=8211
KVU-294084
TagsNo tags attached.
Fixed in build

Relationships

related to 0006210 closedLudek MediaMonkey (current) Audio CD disc spanning cannot split one track accross multiple discs 
parent of 0006237 closedLudek MediaMonkey (current) Properties: Add new 'Start Time' and 'Stop Time' fields 
parent of 0006242 closedLudek MediaMonkey (current) Scripting: Add new 'StartTime' and 'StopTime' GET/LET properties to ISDBSongData 
parent of 0005931 newLudek MediaMonkey (current) MM does not support chapter marks in m4b files (audiobooks) 
related to 0001460 feedbackrusty MediaMonkey Addons MediaMonkey Scheduler - MediaMonkey Professional 
related to 0006454 newrusty MediaMonkey Addons DJ Mixer Features (addon?) 
related to 0006967 assignedmichal MediaMonkey 5 DVD playback 
related to 0006689 assignedjiri MediaMonkey (current) OnBeforePlay event needed 
related to 0009816 new MediaMonkey (current) Improve Bookmarks - Ability to Save Multiple Bookmarks Per Track 
Not all the children of this issue are yet resolved or closed.

Activities

peke

2009-12-12 02:27

developer   ~0019836

Last edited: 2009-12-24 02:25

SQLite Songs Table should be updated to contain additional Columns:
1. ParrentTrack = INTEGER
2. CUEStartPos = LONGWORD
3. CUEEndPos = LONGWORD
4. CrossfadeStartType = TEXT
5. CrossfadeEndType = TEXT

Optional if Needed for faster Seeking
6. OriginalLength = LONGWORD

peke

2009-12-12 03:09

developer   ~0019837

Last edited: 2009-12-24 02:24

For Easier understanding Audio CD structure will be used to compare usage even this can be used in other formats also (like DVD, M4B, Audio Books,...)

Definitions of Columns and its basic usage:
ParrentTrack:
Parrent track will contain ID of Track that defines first CUEPoint (like first track on Audio CD), First CUEPoint will Contain have set this to ID = ParrentTrack. Exceptions/Special cases would be when value is -1(Default) = Use Global/Default settings (Mostly used with Crossfade Settings of MM) or 0 = Use custom options set for track

CUEStartPos:
This will contain track Start position in Milliseconds from start of track
(Values: NotSet = Default/Unknown; if Set it will represent start pos)

CUEEndPos:
This will contain track End position in Milliseconds from start of track (Values: NotSet = Default/Unknown; if Set it will represent end pos)

CrossfadeStartType:
This Column will contain CUE/Crossfade type that will instruct player how to start playback of track (Example Types: Empty = Default; "$CFade[2000,0,<Setting ignored as player current volume is used>]" = Crossfade with previous track using Linear FadeIn track for 2 Sec with starting Volume 0 ending with Player Volume; "$CFade[-4000,30,<Setting ignored as player current volume is used>]" = Crossfade with previous track using Linear FadeIn track for 4 Sec that strats 4 Sec before CUEStartPos with starting Volume 30 ending with Player Volume at CUEStartPos;...)

CrossfadeEndType:
This will be same as CrossfadeStartType with only difference that will instruct player how to end track playback (Example Types: Empty = Default; "$CFade[2000,<Setting ignored as player current volume is used>,0]" = Crossfade with previous track using Linear FadeOut track for 2 Sec with starting at CUEEndPos using Volume ending with Volume 0; "$CFade[-4000,<Setting ignored as player current volume is used>,30]" = Crossfade with previous track using Linear FadeIn track for 4 Sec that strats 4 Sec before CUEEndPos with Player Volume and ending with Volume 33 at CUEEndPos;...)

NOTE: CrossfadeStartTypes and CrossfadeEndTypes should be able to do some sort of REGEXP structure to enable future customization and expansion

OriginalLength:
This is optional and will instruct player original track length of physical file.

NOTE: Songs -> SongLength will contain Milliseconds calculated using "(CUEEndPos-CUEStartPos)"

peke

2010-05-20 21:36

developer   ~0020172

Adding these fields into MM library structure without adding all features at start would be enough. Especially as it will make room for future expansion/control of bugs 0005931, 0006210, 0006237 0006242.

Let me know if you need more description.

NOTE with initial implementation we would only add it to MM library structure for future reference.

Ludek

2010-05-20 22:02

developer   ~0020174

Last edited: 2010-05-20 22:03

Peke,
could you describe what is exactly the relation to issues 0006237, 0006242? I have already added StartTime and StopTime fields to the songs table for the purposes.

And what is the relation to 0006210? I have already implemented it without a need for CuePoint support. Do you mean a reverse process (of ripping such a splitted audio CD content)?

peke

2010-05-21 02:10

developer   ~0020175

Last edited: 2010-05-21 02:22

As you noticed CUEStartPos and CUEEndPos are same as StartTime and StopTime fields from 0006237 you already added and are covered by 0006242 for scripting that would not need to be changed even CUEStartPos and CUEEndPos are more clear, but as they are same it is already solved/implemented "No change required". I updated bug relations.

This structure is designed to better control solution in 0006210 I'll prepare direct example how it should fully look when implemented and how it is related to 0005931.

2010-05-29 22:54

 

Songs with CUEPoint example.DB (10,240 bytes)

peke

2010-05-29 23:12

developer   ~0020196

I created small SQLite DB with proposed fields to better show retaions with 0006210 and 0005931

It can me opened in Firefox SQLite plugin.

Let me clarify relations now:
0006210: In case that track that is larger than one CD and have chapters like track 1895-1899 and is larger than single audio CD MM should put span point for multiple CD burning on chapter point and make effect similar to phrase "To be continued..." and evade possibility to cut burning in the middle of word.

0005931: As seen in track ID 1895-1899 user can directly see what chapters Audio Book have and position player to begin of each chapter.

This approach will also correctly show exact listening point on sites like Last.fm

This is big and powerful feature in MM and it is needed to be approached with caution and slow implementation one feature at time. Adding 0006237 and 0006242 is great for start, next step would be to support 0005931 along with 0006210 and then after though tests we can go on more complex features like CUESheet, crossfading, ...

peke

2011-01-19 04:06

developer   ~0022428

Reminder sent to: jiri, rusty

Reminder sent for triage Feedback

peke

2016-07-21 11:44

developer   ~0045172

Updated due the new requests.

peke

2019-04-02 02:08

developer   ~0053135

Updated Relations to 0006967