[Logo] Jaikoz and SongKong Forums
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
Messages posted by: chroma  XML
Profile for chroma -> Messages posted by chroma [39] Go to Page: 1, 2 Next 
Author Message
3.4.4 (1077) on Snow Leopard.

I've noticed recently I've been getting a bunch of '&'s through in artist and album titles post correction, with some albums split between the 'and' and '&' tracks depending on the matched id.

I believe this is a regression. I'm not sure exactly when it started. Local Correct directly on a tracks artist field doesnt do the replacement. Pref->LocalCorrect->AutoFormat still has enable replacement on, with the default Replacer1. Manipulators->WordReplacer->Replacer1 still shows the default set including '&' -> 'and'.
Agreed it doesn't commit the error, but when its so easy to accidentally overwrite many hours of work in the working buffer with a single action, there should be a way to undo that action rather than starting over. Thanks.
Paul,

I want to concur.. Undo seems broken in the current release for multiple pastes. I just accidentally pasted 'Classical' across three columns for all rows i was editing (eek, should that even work? very dangerous) obliterating hours of work getting all of the titles correct. Undo did nothing.
I'm finding that many sources of music (amongst the collections of collectors i collect) have an identifiable standard method of tagging record catalog identifiers in their unstructured text.

That is, square brackets surrounding the catalog ID. Sometimes it appears in the album tag, sometimes in the parent directory name.

Discogs is great about finding specific matches for these identifiers.

A few examples from the corrections i'm running right now:

1)
Filepath: .../Istari Lasterfahrer/Infokalypse 2001 [spbmlp01]/Echelon.mp3
Album: Infokalypse 2001 [spbmlp01]

the text 'spbmlp01' is a most-likely-unique key to this album, which can then be used to populate the rest of the tags to the detail discogs has.

2)
Filepath: .../[rmz-002] com.a - dream and hope/01 Pile Up.mp3

So, for \[[a-zA-Z]{3,6}\-?\d+\] in any field, you likely have a unique key provided, which would be really nice to use.

thanks.
odd, agreed. not sure how that got unset, but its happy again.
changed items in the lower pane do not highlight anymore since 3.3.4 on snow leopard. Changes show correctly, 'C' status shows, but highlighting appears to be disabled.
ok. cant find any references on the 'net to inability to allocate above 32bit space when running in a 64bit jvm on snow leopard. are you sure you aren't making a 32bit assumption somewhere?

i've sent along a tgz of my log directory. this last run spanned many files. perhaps you'll find something interesting there. it certainly was a very chatty run with lots of apparent unhappiness.

thanks
I'm getting an 'Out of memory,Jaikoz must be restated, to increase memory allocated to jaikoz modify its memory settings in the start up file and then restart". Kind of sucks after letting this thing churn for days.

I've executed with -d64 -Xms1250m -Xmx7900m -XX:MaxPermSize=1300m.

System profiler shows exactly 4.00 GB real allocated. (2560 threads active)

$ ps -auwwwjlvx 16570
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND PPID PGID SESS JOBC UID CPU PRI NI WCHAN SL RE PAGEIN LIM TSIZ
dan 16570 0.0 15.4 15479400 4188660 s002 S+ 8:10PM 305:04.30 /usr/bin/java -X 16569 16569 23fd1000 1 501 0 62 0 - 0 0 0 - 0

Can we please get a version with real 64 bit support? I can't even load 5% of my collection at this point. I have a desktop here with 32GB of RAM, seems like i should be able to load and process 21,000 tracks.

Incidentally, we didnt run out of memory until the last (discogs) step. I wasn't watching to see how close we were before that, but you might look at how you are using memory for that step. I'll watch next time before starting the last step.

thanks.
please keep it as style. it is indeed more consistent than other sources for what most people call "genre". of course, sometimes more than one style is indicated. would be cool if we imported all of them, although im not sure if the tags support that.

yes, and one other thing you didnt echo..

save a copy clears the loaded items after the save. i don't think that is consistent behavior, as save updates does not do this.
Thats great where manual intervention is possible.. but i'm dealing with such a large collection, it is impractical, time consuming, and i will miss some.

If it is something which can be heuristically derived, and i claim it can because i described that process in a few lines of text, forcing a human to apply that heuristic is both time consuming and extremely error-prone.

Arguably, I could also use a hex editor and update id3 fields and checksums, too. Jaikoz is worthwhile because it takes me out of the process of labeling things which can be automatically derived.

(if current album has more than one artist and no defined album artist, set album artist to various)

I've always seen the end game here as saving out a copy of my library, correctly tagged and correctly placed in directory structures. I finally bought an extra 4T of drive space to make that possible, and I'm finding it impractical due to this missing feature.
I have an album with an empty Album Artist field on all tracks, but varied artist on each individual track.

This results in messed up root subfolders when "correct subfolder from tags" is applied.

What can be done?

I'd like to apply "correct subfolder form tags" to my entire library before "save a copy" to all of it in order to organize it, but unfortunately this sort of failure makes a big mess.

this is using %bestartist%, which is really what i want, but i want to have it know album artist is VA where appropriate.. perhaps this should be an autocorrect process step earlier in the pipeline?

thanks
i hit cancel about 15 tracks into a save and copy without create subdirectories selected accidentally, (of about 440 tracks loaded) when i saw it wasnt creating directories. it returned about 5 minutes after the cancel instead of instantly, and when it returned there were no longer any tracks loaded.

fwiw, i think i noticed the Sub Folder field in the top pane become empty for each track as it was processed.
Just so this is not dropped before the next release pending a response from me:

Paul, that sounds reasonable.
As pleased as I am that this has been addressed, I still will not be satisfied until the final "Unable to contact muscibrainz" failure message, after all automated retries, has a manual retry button as well as the okay button.

With 125,000 tracks, there is sufficient time for things like transient service provider problems and WAP freezes, both of which I experienced over my last two attempts to query for my entire library. I was left twice with, after many hours of successes and a few minutes of problems, the unfortunate need to start over again. That seems unnecessary and silly.

Thanks
try with a -d64 flag.
64bit works well under osx as well (with standard sun JRE) ... you have to get quaqua64.jnilib from the quaqua distro, though. i've loaded 120k tracks in it so far, but the loading process is painfully slow.
also, i have eight very fast cores.

occasionally, but rarely, it will suddenly move fast for a few tracks and will utilize all cores. but this is by far the exception. this is why i say it 'feels' like some sort of threadlocking issue.
no, the filesystem is local, and very performant.

it 'feels' like a concurrence locking problem.
cool, thanks paul. helps somewhat. i've just run a test with:

-d64 -Xms1250m -Xmx2300m -XX:MaxPermSize=2300m

on 12,000 tracks (about 7% of my library) through autocorrect. (i have 32GB ram in my desktop, so this is not unreasonable). I'll report on higher numbers when i let this test run out in its entirety, but this is the first time i've been able to get it to be stable much over 4k.

of course, there seem to be major opportunities for optimization and parallellization, and you start to really feel those when running over a very large library. retrieve acoustic ids runs extremely slowly (~1 track per 30 seconds) with all cpus at a max of 8% utilized, seems to be only using one thread most of the time. loading songs initially is also another opportunity, its not iobound, something else is making it just crawl through the initial reads. i'll be more than happy to help you run some diagnostics offline if it will help.
i also did a dump and saw a 503 before seeing it posted here, after yet another case of this. i like the countdown to re-establish with option to quit idea.

i suggest that in order to make the experience as pleasant as possible for the users and as operationally reasonable for musicbrainz, you implement an exponential back-off on the countdown timer, starting with a low value.

thanks
fwiw, i've been seeing similar behavior. very reliable wired us connection.

paultaylor wrote:

chroma wrote:
Check out Ampache's implementation, its reasonably good for automatic retrieval of album art from amazon. The user has to provide a valid AWS developer token, but they are easy to create. 

Are you suggesting each individual setups an account, because the trouble with me setting up an account is I would then have to agree to a contract that I might not be able to meet for shareware software like Jaikoz. 


Yes. This works for ampache. and it could work for jaikoz. The API calls just wont succeed (or be attempted) if no AWS ID is entered by the user.
Check out Ampache's implementation, its reasonably good for automatic retrieval of album art from amazon. The user has to provide a valid AWS developer token, but they are easy to create.
Sorry, I shall clarify.

1: selecting individual items in the edit pane, ie a selection of five rows when seventeen are shown, followed by right click - correct from discogs causes all seventeen to be corrected from discogs. this is inconsistent with other autocorrect behavior, which is only applied to the highlighted subset in the edit pane when called from right click context menus.

2: this is inconsequential and aesthetic anyway, but i will expalin. in genre blacklist view. add 'HiPaul', and it shows up at the bottom of the list as 'HiPaul' with case. all other items in the list are lowercase and alphabetized. I think you mean to lowercase it before showing it, but you don't. So now, a confused user thinks 'oops, i actually meant hipaul. So they say Replace HiPaul wiht hipaul, and it wont allow this, because they are the same. But it still shows as cased.
The really useful information in discogs is often in the 'Style' block, rather than the 'Genre' block, which often has meaningless generic tags such as 'electronic'.

I'm finding that very often I am consulting discogs for Style when I want that populated in Genre. So, I have two suggestions for Discogs, one slightly more difficult than the other.

1 - Simple: Treat Discogs Style as Genre checkbox
2 - Better: Use Discogs Style as Genre if Genre is in blacklist

Discogs will often list multiple (comma delimited on the web ui, havent seen how they do it via REST) styles. stacking those into genre would be fine for my application.

I say #2 is better because it allows subspecialization as per user interest and knowledge in a branch of music. Ie, to me 'rock' is good enough, and the subgenres are meaningless to me, so i wouldn't blacklist rock. To me 'electronic' is meaningless, and is not an acceptable categorization. Therefore, if i blacklist electronic, my tracks will be labeled appropriately as IDM, Dubstep, Psytrance, EBM, HappyHardCore, etc. If someone who doesn't know or care much about electronic specialization doesnt blacklist 'electronic' but does 'rock', they might get their tracks labeled appropriately as Bad,Horrid,Ugly,Atonal,Yelling,Worse, or whatever rock people call their subgenres, which would make them happy.

but, i'll take #1 too if thats all i can get.

thanks
I'd really like to be able to turn off Correct Lyrics from the context-autocorrect steps. I don't generally listen to music with lyrics, and the lyric check is the most time consuming operation of the bundle.

thanks
1) OSX:Discogs corrects everything, even if a subset is selected.
2) Genres tab doesnt toLower() when Adding genres, but then rename considers entry the same despite case and wont correct for casing. I'm not sure which you want (is genre generally considered case insensitive through the rest of the code?) but this behavior is inconsistent.

thanks
cool.

heres the traceback of an unrelated one.

11/11/2008 01.02.08:com.jthink.jaikoz.EventDispatchThreadExceptionHandler:handle:SEVERE: Uncaught throwable caught by EventDispatchThreadExceptionHandler:null
java.lang.NullPointerException
at com.jthink.jaikoz.table.tablemodel.id3.TagChangeId3MergedModel.updateModelBecauseCellModifiedInEdit(TagChangeId3MergedModel.java:341)
at com.jthink.jaikoz.table.tablemodel.TagChangeMetadataModel.updateOtherViewsBecauseASingleCellHasBeenModified(TagChangeMetadataModel.java:434)
at com.jthink.jaikoz.table.tablemodel.TagChangeMetadataModel.setValueAt(TagChangeMetadataModel.java:322)
at com.jthink.jaikoz.table.tablemodel.TagChangeMetadataModel.setValueAt(TagChangeMetadataModel.java:12
at com.jthink.jaikoz.table.tablemodel.TagChangeMetadataModel.setValueAtInternal(TagChangeMetadataModel.java:75)
at com.jthink.jaikoz.table.tablemodel.TagChangeMetadataModel.pasteIntoCells(TagChangeMetadataModel.java:639)
at com.jthink.jaikoz.table.tablemodel.TagChangeMetadataModel.pasteIntoCells(TagChangeMetadataModel.java:671)
at com.jthink.jaikoz.action.PasteCellContentsAction.actionPerformed(PasteCellContentsAction.java:86)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1882)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2202)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:25
at javax.swing.AbstractButton.doClick(AbstractButton.java:334)
at javax.swing.AbstractButton.doClick(AbstractButton.java:282)
at javax.swing.plaf.basic.BasicMenuItemUI$Actions.actionPerformed(BasicMenuItemUI.java:1020)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1576)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2772)
at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:656)
at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:664)
at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:664)
at javax.swing.JMenuBar.processKeyBinding(JMenuBar.java:640)
at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:255)
at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:242)
at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2849)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2841)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2735)
at java.awt.Component.processEvent(Component.java:5379)
at java.awt.Container.processEvent(Container.java:2010)
at java.awt.Component.dispatchEventImpl(Component.java:406
at java.awt.Container.dispatchEventImpl(Container.java:206
at java.awt.Component.dispatchEvent(Component.java:3903)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1826)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:681)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:93
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:810)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:645)
at java.awt.Component.dispatchEventImpl(Component.java:3941)
at java.awt.Container.dispatchEventImpl(Container.java:206
at java.awt.Window.dispatchEventImpl(Window.java:1801)
at java.awt.Component.dispatchEvent(Component.java:3903)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
11/11/2008 01.02.08:com.jthink.jaikoz.EventDispatchThreadExceptionHandler:handle:SEVERE: RuntimeException occurred in application
java.lang.NullPointerException
at com.jthink.jaikoz.table.tablemodel.id3.TagChangeId3MergedModel.updateModelBecauseCellModifiedInEdit(TagChangeId3MergedModel.java:341)
at com.jthink.jaikoz.table.tablemodel.TagChangeMetadataModel.updateOtherViewsBecauseASingleCellHasBeenModified(TagChangeMetadataModel.java:434)
at com.jthink.jaikoz.table.tablemodel.TagChangeMetadataModel.setValueAt(TagChangeMetadataModel.java:322)
at com.jthink.jaikoz.table.tablemodel.TagChangeMetadataModel.setValueAt(TagChangeMetadataModel.java:12
at com.jthink.jaikoz.table.tablemodel.TagChangeMetadataModel.setValueAtInternal(TagChangeMetadataModel.java:75)
at com.jthink.jaikoz.table.tablemodel.TagChangeMetadataModel.pasteIntoCells(TagChangeMetadataModel.java:639)
at com.jthink.jaikoz.table.tablemodel.TagChangeMetadataModel.pasteIntoCells(TagChangeMetadataModel.java:671)
at com.jthink.jaikoz.action.PasteCellContentsAction.actionPerformed(PasteCellContentsAction.java:86)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1882)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2202)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:25
at javax.swing.AbstractButton.doClick(AbstractButton.java:334)
at javax.swing.AbstractButton.doClick(AbstractButton.java:282)
at javax.swing.plaf.basic.BasicMenuItemUI$Actions.actionPerformed(BasicMenuItemUI.java:1020)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1576)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2772)
at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:656)
at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:664)
at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:664)
at javax.swing.JMenuBar.processKeyBinding(JMenuBar.java:640)
at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:255)
at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:242)
at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2849)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2841)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2735)
at java.awt.Component.processEvent(Component.java:5379)
at java.awt.Container.processEvent(Container.java:2010)
at java.awt.Component.dispatchEventImpl(Component.java:406
at java.awt.Container.dispatchEventImpl(Container.java:206
at java.awt.Component.dispatchEvent(Component.java:3903)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1826)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:681)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:93
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:810)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:645)
at java.awt.Component.dispatchEventImpl(Component.java:3941)
at java.awt.Container.dispatchEventImpl(Container.java:206
at java.awt.Window.dispatchEventImpl(Window.java:1801)
at java.awt.Component.dispatchEvent(Component.java:3903)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)


i'll send you my support files directly, as they are likely to be quite huge.
it doesnt have to be in the file browser.. just a window where i can drop a url in, separate from the load from file function, would be perfect.

i dont expect cross-platform image drag and drop support with java.. wasn't even asking for it. 'Load by URL' button would be fine.
 
Profile for chroma -> Messages posted by chroma [39] Go to Page: 1, 2 Next 
Go to:   
Powered by JForum 2.1.6 © JForum Team