Recommended Posts

On 4/20/2018 at 8:57 AM, Raphaël G. said:

I'm fixing this issue. The LRC format has given me some headaches. But I'm now improving the LRC parser and adding some automated tests which will prevent behavior to change between releases.

I'll soon release a 15.5.14 beta 1, with these fixes. Give me a day or 2, as I'd like to spend some time getting this right.

Thanks man,  I have a possible feature request for a future version.  The download lyrics from section could be a sortable list.  Netease lyrics have timestamps available in some cases and I would like it to search that site first, followed by any others.

 

Another small bug:  my lyrics download timeout is Language_none seconds.  I'm not sure how long that is.

Dopamine 1.5.14 Beta 1 has just been released. Info + download here: https://www.digimezzo.com/2018/04/23/dopamine-1-5-14-beta-1/

Change log:

 

– [Changed] Before adding a collection folder, a check is now performed to ensure its content is accessible.
– [Changed] Improved parsing of lyrics
– [Changed] Updated the Korean translation
– [Fixed] We now don’t crash anymore when a collection folder’s content is not accessible.
– [Fixed] Fixed a small issue displaying lyrics download timeouts

On 21/4/2018 at 10:49 PM, Ned said:

Thanks man,  I have a possible feature request for a future version.  The download lyrics from section could be a sortable list.  Netease lyrics have timestamps available in some cases and I would like it to search that site first, followed by any others.

 

Another small bug:  my lyrics download timeout is Language_none seconds.  I'm not sure how long that is.

I've created an issue for the lyrics provider idea: https://github.com/digimezzo/Dopamine/issues/734

  • Like 1

Dopamine 1.5.14 Beta 2 has just been released. This is the change log:

 

– [Changed] Updated the Chinese (Simplified) translation
– [Changed] Decreased the minimum window size for people using vertical monitors
– [Fixed] Fixed a crash which occurs when indexing MP3 files which have corrupt headers

 

Download here

  • Like 3

Lately I have been moving a lot of large files from hard drive to hard drive and I notice while doing this that Dopamine starts skipping or having issues playing or retrieving the music file from the hard drive while its copying other files... is there a way to have an option where we can increase the memory cache size for dopamine to alleviate some of this?

 

Thank you! 

On 28/4/2018 at 2:23 AM, Ravensky said:

Lately I have been moving a lot of large files from hard drive to hard drive and I notice while doing this that Dopamine starts skipping or having issues playing or retrieving the music file from the hard drive while its copying other files... is there a way to have an option where we can increase the memory cache size for dopamine to alleviate some of this?

 

Thank you! 

You could try increasing the latency setting in Settings > Playback. I'm not sure if that will fully solve this issue though.

Hi everyone,

 

Dopamine 1.5.14 Release Candidate 1 has been released today. This is the change log:

 

– [Changed] Updated the Swedish translation
– [Fixed] Further improved scaling for narrower monitors

 

That last entry in the change log seems crazy in this day and age. But I have people using Dopamine on vertical monitors :)

 

Download here: https://www.digimezzo.com/content/software/dopamine/

 

@Ned How is lyrics support treating you in the 1.5.14 betas?

 

Enjoy!

  • Like 3

Sorry, I don't typically beta test.  How many betas did you release because the last one crashed on me.

 

Two beta's, okay.  I'll try this one out.  I get a crash when I edit lyrics on a song with no lyrics.  Hmm, it's happened once.  Hard to reproduce.

 

error getting lyrics from netease....

 

2018-04-29 20:31:31.048|Info|PlaybackService.PlaybackFinishedHandler|1278|Track finished: E:\Music\Video Game\Super Meat Boy! - Digital Special Edition\57 ---.mp3
2018-04-29 20:31:31.120|Info|PlaybackService.TryPlayAsync|1171|Playing the file E:\Music\Oasis\(What's the Story) Morning Glory-\06 [Untitled Track].mp3. EventMode=False, ExclusiveMode=False, LoopMode=None, Shuffle=False
2018-04-29 20:31:32.951|Error|LyricsFactory.GetLyricsAsync|44|Error while getting lyrics from 'NeteaseLyrics'. Exception: Object reference not set to an instance of an object.
2018-04-29 20:31:32.951|Error|LyricsControlViewModel.RefreshLyricsAsync|269|Could not get lyrics online E:\Music\Oasis\(What's the Story) Morning Glory-\06 [Untitled Track].mp3. Exception: Object reference not set to an instance of an object.
2018-04-29 20:31:32.952|Error|LyricsControlViewModel.RefreshLyricsAsync|284|Could not show lyrics for Track E:\Music\Oasis\(What's the Story) Morning Glory-\06 [Untitled Track].mp3. Exception: Object reference not set to an instance of an object.
2018-04-29 20:31:36.104|Info|PlaybackService.SavePlaybackCountersAsync|539|Saved track statistics
2018-04-29 20:31:37.650|Error|App.xaml.ExecuteEmergencyStop|501|Unhandled Exception. Exception:
System.NullReferenceException: Object reference not set to an instance of an object.
   at Dopamine.ViewModels.Common.LyricsViewModel.<.ctor>b__63_6()
   at MS.Internal.Commands.CommandHelpers.CanExecuteCommandSource(ICommandSource commandSource)
   at System.Windows.Controls.MenuItem.UpdateCanExecute()
   at System.Windows.Controls.MenuItem.OnCommandChanged(ICommand oldCommand, ICommand newCommand)
   at System.Windows.Controls.MenuItem.OnCommandChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
   at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
   at System.Windows.DependencyObject.InvalidateProperty(DependencyProperty dp, Boolean preserveCurrentValue)
   at System.Windows.Data.BindingExpressionBase.Invalidate(Boolean isASubPropertyChange)
   at System.Windows.Data.BindingExpression.TransferValue(Object newValue, Boolean isASubPropertyChange)
   at System.Windows.Data.BindingExpression.Activate(Object item)
   at System.Windows.Data.BindingExpression.OnDataContextChanged(DependencyObject contextElement)
   at System.Windows.Data.BindingExpression.HandlePropertyInvalidation(DependencyObject d, DependencyPropertyChangedEventArgs args)
   at System.Windows.Data.BindingExpressionBase.OnPropertyInvalidation(DependencyObject d, DependencyPropertyChangedEventArgs args)
   at System.Windows.Data.BindingExpression.OnPropertyInvalidation(DependencyObject d, DependencyPropertyChangedEventArgs args)
   at System.Windows.DependentList.InvalidateDependents(DependencyObject source, DependencyPropertyChangedEventArgs sourceArgs)
   at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
   at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
   at System.Windows.TreeWalkHelper.OnInheritablePropertyChanged(DependencyObject d, InheritablePropertyChangeInfo info, Boolean visitedViaVisualTree)
   at System.Windows.DescendentsWalker`1._VisitNode(DependencyObject d, Boolean visitedViaVisualTree)
   at System.Windows.DescendentsWalker`1.WalkLogicalChildren(FrameworkElement feParent, FrameworkContentElement fceParent, IEnumerator logicalChildren)
   at System.Windows.DescendentsWalker`1.WalkFrameworkElementLogicalThenVisualChildren(FrameworkElement feParent, Boolean hasLogicalChildren)
   at System.Windows.DescendentsWalker`1.IterateChildren(DependencyObject d)
   at System.Windows.DescendentsWalker`1.StartWalk(DependencyObject startNode, Boolean skipStartNode)
   at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
   at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
   at System.Windows.DependencyObject.InvalidateProperty(DependencyProperty dp, Boolean preserveCurrentValue)
   at System.Windows.Data.BindingExpressionBase.Invalidate(Boolean isASubPropertyChange)
   at System.Windows.Data.BindingExpression.TransferValue(Object newValue, Boolean isASubPropertyChange)
   at MS.Internal.Data.ClrBindingWorker.NewValueAvailable(Boolean dependencySourcesChanged, Boolean initialValue, Boolean isASubPropertyChange)
   at MS.Internal.Data.PropertyPathWorker.UpdateSourceValueState(Int32 k, ICollectionView collectionView, Object newValue, Boolean isASubPropertyChange)
   at MS.Internal.Data.PropertyPathWorker.OnDependencyPropertyChanged(DependencyObject d, DependencyProperty dp, Boolean isASubPropertyChange)
   at System.Windows.Data.BindingExpression.HandlePropertyInvalidation(DependencyObject d, DependencyPropertyChangedEventArgs args)
   at System.Windows.Data.BindingExpressionBase.OnPropertyInvalidation(DependencyObject d, DependencyPropertyChangedEventArgs args)
   at System.Windows.Data.BindingExpression.OnPropertyInvalidation(DependencyObject d, DependencyPropertyChangedEventArgs args)
   at System.Windows.DependentList.InvalidateDependents(DependencyObject source, DependencyPropertyChangedEventArgs sourceArgs)
   at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
   at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
   at System.Windows.DependencyObject.CoerceValue(DependencyProperty dp)
   at System.Windows.Controls.PopupControlService.OnOwnerChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
   at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
   at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
   at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)
   at System.Windows.Controls.PopupControlService.RaiseContextMenuOpeningEvent(IInputElement source, Double x, Double y, Boolean userInitiated)
   at System.Windows.Controls.PopupControlService.ProcessMouseUp(Object sender, MouseButtonEventArgs e)
   at System.Windows.Controls.PopupControlService.OnPostProcessInput(Object sender, ProcessInputEventArgs e)
   at System.Windows.Input.InputManager.RaiseProcessInputEventHandlers(ProcessInputEventHandler postProcessInput, ProcessInputEventArgs processInputEventArgs)
   at System.Windows.Input.InputManager.ProcessStagingArea()
   at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
   at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
   at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
   at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Stack trace:
   at Dopamine.ViewModels.Common.LyricsViewModel.<.ctor>b__63_6()
   at MS.Internal.Commands.CommandHelpers.CanExecuteCommandSource(ICommandSource commandSource)
   at System.Windows.Controls.MenuItem.UpdateCanExecute()
   at System.Windows.Controls.MenuItem.OnCommandChanged(ICommand oldCommand, ICommand newCommand)
   at System.Windows.Controls.MenuItem.OnCommandChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
   at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
   at System.Windows.DependencyObject.InvalidateProperty(DependencyProperty dp, Boolean preserveCurrentValue)
   at System.Windows.Data.BindingExpressionBase.Invalidate(Boolean isASubPropertyChange)
   at System.Windows.Data.BindingExpression.TransferValue(Object newValue, Boolean isASubPropertyChange)
   at System.Windows.Data.BindingExpression.Activate(Object item)
   at System.Windows.Data.BindingExpression.OnDataContextChanged(DependencyObject contextElement)
   at System.Windows.Data.BindingExpression.HandlePropertyInvalidation(DependencyObject d, DependencyPropertyChangedEventArgs args)
   at System.Windows.Data.BindingExpressionBase.OnPropertyInvalidation(DependencyObject d, DependencyPropertyChangedEventArgs args)
   at System.Windows.Data.BindingExpression.OnPropertyInvalidation(DependencyObject d, DependencyPropertyChangedEventArgs args)
   at System.Windows.DependentList.InvalidateDependents(DependencyObject source, DependencyPropertyChangedEventArgs sourceArgs)
   at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
   at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
   at System.Windows.TreeWalkHelper.OnInheritablePropertyChanged(DependencyObject d, InheritablePropertyChangeInfo info, Boolean visitedViaVisualTree)
   at System.Windows.DescendentsWalker`1._VisitNode(DependencyObject d, Boolean visitedViaVisualTree)
   at System.Windows.DescendentsWalker`1.WalkLogicalChildren(FrameworkElement feParent, FrameworkContentElement fceParent, IEnumerator logicalChildren)
   at System.Windows.DescendentsWalker`1.WalkFrameworkElementLogicalThenVisualChildren(FrameworkElement feParent, Boolean hasLogicalChildren)
   at System.Windows.DescendentsWalker`1.IterateChildren(DependencyObject d)
   at System.Windows.DescendentsWalker`1.StartWalk(DependencyObject startNode, Boolean skipStartNode)
   at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
   at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
   at System.Windows.DependencyObject.InvalidateProperty(DependencyProperty dp, Boolean preserveCurrentValue)
   at System.Windows.Data.BindingExpressionBase.Invalidate(Boolean isASubPropertyChange)
   at System.Windows.Data.BindingExpression.TransferValue(Object newValue, Boolean isASubPropertyChange)
   at MS.Internal.Data.ClrBindingWorker.NewValueAvailable(Boolean dependencySourcesChanged, Boolean initialValue, Boolean isASubPropertyChange)
   at MS.Internal.Data.PropertyPathWorker.UpdateSourceValueState(Int32 k, ICollectionView collectionView, Object newValue, Boolean isASubPropertyChange)
   at MS.Internal.Data.PropertyPathWorker.OnDependencyPropertyChanged(DependencyObject d, DependencyProperty dp, Boolean isASubPropertyChange)
   at System.Windows.Data.BindingExpression.HandlePropertyInvalidation(DependencyObject d, DependencyPropertyChangedEventArgs args)
   at System.Windows.Data.BindingExpressionBase.OnPropertyInvalidation(DependencyObject d, DependencyPropertyChangedEventArgs args)
   at System.Windows.Data.BindingExpression.OnPropertyInvalidation(DependencyObject d, DependencyPropertyChangedEventArgs args)
   at System.Windows.DependentList.InvalidateDependents(DependencyObject source, DependencyPropertyChangedEventArgs sourceArgs)
   at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
   at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
   at System.Windows.DependencyObject.CoerceValue(DependencyProperty dp)
   at System.Windows.Controls.PopupControlService.OnOwnerChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
   at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
   at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
   at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)
   at System.Windows.Controls.PopupControlService.RaiseContextMenuOpeningEvent(IInputElement source, Double x, Double y, Boolean userInitiated)
   at System.Windows.Controls.PopupControlService.ProcessMouseUp(Object sender, MouseButtonEventArgs e)
   at System.Windows.Controls.PopupControlService.OnPostProcessInput(Object sender, ProcessInputEventArgs e)
   at System.Windows.Input.InputManager.RaiseProcessInputEventHandlers(ProcessInputEventHandler postProcessInput, ProcessInputEventArgs processInputEventArgs)
   at System.Windows.Input.InputManager.ProcessStagingArea()
   at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
   at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
   at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
   at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

2018-04-29 20:31:37.650|Info|App.xaml.ExecuteEmergencyStop|504|### FORCED STOP of Dopamine, version 1.5.14.3001 ###
2018-04-29 20:31:37.723|Info|Shell.xaml.PerformClosingTasksAsync|146|Performing closing tasks
2018-04-29 20:31:37.724|Info|Shell.xaml.PerformClosingTasksAsync|151|Writing settings

that would have been an attachment but apparently I couldn't attach .txt

Download lyrics from options are greyed out. I can't select or deselect anything.   Deleting the settings.xml fixed that...annoying.

 

... {after lots of edits}  Looks like if I right click on the lyrics screen too fast after startup it crashes.  Also the file has to have no lyrics in it.

7 hours ago, Ned said:

Download lyrics from options are greyed out. I can't select or deselect anything.   Deleting the settings.xml fixed that...annoying.

 

... {after lots of edits}  Looks like if I right click on the lyrics screen too fast after startup it crashes.  Also the file has to have no lyrics in it.

Hi,

Thanks a lot for trying this out! I realized that testing on my computer doesn't make me discover all possible issues. That's why I re-introduced beta's.

I just fixed all issues you mentioned. Sorry for having them in the first place.

As for the lyrics not being found for "Untitled track", I suspect that the title "Untitled" causes the issue. I'm not sure yet. For other tracks NetEase support works fine.

 

Edit: another question: is the white line issue for timed lyrics resolved on your side?

I just want to say - if I haven't already - this is incredible. I've been using this as my main player since its release and it works brilliantly for me. @Raphaël G.I'm astonished at the work that you continue to put in to this program, and given it was a hobby to begin with I think we can all look to you as a great example of what can be achieved when we put our minds to something that interests us.

On 4/30/2018 at 4:10 PM, Nick H. said:

I just want to say - if I haven't already - this is incredible. I've been using this as my main player since its release and it works brilliantly for me. @Raphaël G.I'm astonished at the work that you continue to put in to this program, and given it was a hobby to begin with I think we can all look to you as a great example of what can be achieved when we put our minds to something that interests us.

Hi @Nick H., thanks a lot for the kind words. This kind of feedback means a lot to me, and is partly what keeps the project going. The other part comes from my inexhaustible need to learn new stuff, to learn better ways to program and to support users. It's challenging, but I need this, apparently :).

  • 2 weeks later...

Dopamine 1.5.14 has been released. This is the change log:

 

– [Changed] Updated the Chinese (Simplified) translation
– [Changed] Updated the Korean translation
– [Changed] Updated the Swedish translation
– [Changed] Decreased the minimum window size for people using narrow or vertical monitors
– [Changed] Before adding a collection folder, a check is now performed to ensure its content is accessible.
– [Changed] Improved parsing of lyrics
– [Fixed] We now don’t crash anymore when a collection folder’s content is not accessible.
– [Fixed] Indexing stops when encountering an unreadable file or folder
– [Fixed] Fixed another issue playing files which contain special characters
– [Fixed] Fixed multiple crashes when searching for lyrics and when editing lyrics
– [Fixed] Fixed a crash which occurs when indexing MP3 files which have corrupt headers
– [Fixed] Fixed a small issue displaying lyrics download timeout settings

 

Download here

  • 4 weeks later...
1 hour ago, FiB3R said:

Will this be fixed by then? 

 

 

?

Yes

 

Edit: however I want to add that the fix will be a workaround for user's which are, essentially, mixing up the artists and album artists tag. There is no AI to detect which tracks are from 1 album. It has to happen based on tag values. Dopamine 1 groups tracks which have the same Album artist and album title. Dopamine 2 will group all tracks which have the same album title. So, I can see the next complaint I'll get: why are tracks from 2 albums which have the same album title grouped into 1 album?

14 minutes ago, dakn said:

Yep exactly. You're putting in a fix that isn't required because someone can't tag their artists properly! (Don't do it ;))

 

People that have albums titled "Greatest Hits" Won't be happy!

I've long postponed "fixing" this, as the current behavior is the only correct one. But the amount of complaints and questions I get about the current behavior is just exhausting. I've spent already too much time explaining this. So the behavior change will happen, for the sake of my mental health :) I'm still brainstorming how I can make this optional though. As I smell trouble already.

8 minutes ago, Brandon H said:

looking good Raphael

 

any chance of you publishing an entry on the Window Store now that they allow WIN32 x86/x64 entries?

the extra level of sandboxing would be nice; even for an audio player :)

I can't say for sure. I've attempted publishing Dopamine to the store already, but the process is tiresome and includes contact with a Microsoft support engineer. I abandoned it after a few weeks. Maybe I'll try again in the future. Hopefully the process of adding a win32 app to the store will be more streamlined by then.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Posts

    • This saddens me greatly
    • Well again I do not mind seeing it charge my stuff if it does it well. "yeah charge my phone like that, charge it good"
    • Getting so tired of this push for that new useless slop over the less-useless old slop that at this point I just want M$ to have this nice, big, hearty cup of *FU*.
    • Brave Browser 1.91.168 by Razvan Serea Brave Browser is a lightning-fast, secure web browser that stands out from the competition with its focus on privacy, security, and speed. With features like HTTPS Everywhere and built-in tracker blocking, Brave keeps your online activities safe from prying eyes. Brave is one of the safest browsers on the market today. It blocks third-party data storage. It protects from browser fingerprinting. And it does all this by default. Speed - Brave is built on Chromium, the same technology that powers Google Chrome, and is optimized for speed, providing a fast and responsive browsing experience. Brave Browser also features Brave Rewards, a system that rewards users with Basic Attention Tokens (BAT) for viewing opt-in ads. This innovative system provides an alternative revenue model for content creators and a way to support the Brave community. SlimBrave Neo takes all the good things about Brave and makes them even better by keeping everything clean, light, and privacy-focused. It removes the extra clutter, turns off features you might not need, and cuts down on anything that could slow you down or collect unnecessary data. Because it relies on simple settings and policies instead of modifying the browser itself, you still get full Brave compatibility—just in a smoother, lighter, and more privacy-friendly package. Brave Browser 1.91.168 changelog: Web3 Added “Get Started” section to the “Portfolio” page. (#54029) Added the ability to view “Asset Distribution” in “Portfolio”. (#54028) Added dotted texture to wallet line chart. (#54216) Migrated Jupiter swap provider to “Gate3”. (#51848) Updated the “Permission” panel to display the site origin. (#54482) Updated NFT balance fetch to remove duplicate entries prior to fetching balances. (#55036) Fixed missing back button on the “Deposit Funds” page. (#55842) Fixed reloading an account tab redirecting to the “Accounts” page. (#54826) Leo Added support for text file uploads with renderer-based extraction. (#54062) Added PDF text extraction at upload time. (#51911) Updated display of Brave Leo attachment previews to scroll horizontally instead of vertically. (#54258) Updated the “Copy” button for the code block header to be sticky when scrolling. (#53704) Updated the staged content in the Leo side panel to be the active tab. (#53533) Updated the search terms in the answer’s footer to be left aligned. (#54204) Fixed crash which could occur in certain cases when using multiple tool requests. (#55438) General Added support for Brave Origin. (#37127) [Security] Added the ability to disable or delay automatic extension updates when brave://flags/#brave-user-extension-auto-update is enabled. (#7200) Enabled ability to force context menu using “Shift + Right Click” by default. (#54790) Improved performance by caching adblock DATs. (#27161) Updated background color for PWA install button in the omnibox. (#54736) Fixed tab hover card position when using vertical tabs. (#54199) Fixed extra border displaying around the content area when vertical tabs are used on macOS. (#54153 & #52961) Fixed audio farbling distortion in multi-voice Web Audio API synthesized music. (#52906) Upgraded Chromium to 149.0.7827.54. (#55943) Download: Brave Browser 64-bit | 1.2 MB (Freeware) Download: Brave Browser 32-bit View: Brave Homepage | Offline Installers | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Thanks Microsoft but no, I find both iterations of Outlook terrible nowadays and switched back to Thunderbird at home.
  • Recent Achievements

    • Dedicated
      JKR earned a badge
      Dedicated
    • One Year In
      CHUNWEI earned a badge
      One Year In
    • Conversation Starter
      FBSPL earned a badge
      Conversation Starter
    • Week One Done
      I2D earned a badge
      Week One Done
    • Week One Done
      Dr Jared Dental Studio earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      471
    2. 2
      PsYcHoKiLLa
      255
    3. 3
      Skyfrog
      80
    4. 4
      FloatingFatMan
      62
    5. 5
      Michael Scrip
      62
  • Tell a friend

    Love Neowin? Tell a friend!