Dopamine


 Share

Recommended Posts

Neyht
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.

Link to post
Share on other sites

+Raphaël G.

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

  • Like 5
Link to post
Share on other sites

+Raphaël G.
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
Link to post
Share on other sites

+Raphaël G.

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
Link to post
Share on other sites

Ravensky

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! 

Link to post
Share on other sites

+Raphaël G.
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.

Link to post
Share on other sites

+Raphaël G.

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
Link to post
Share on other sites

Ravensky
8 hours ago, Raphaël G. said:

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

I'll give it a go, thank you!

Link to post
Share on other sites

Neyht

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

Link to post
Share on other sites

Neyht

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.

Link to post
Share on other sites

+Raphaël G.
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?

Link to post
Share on other sites

Neyht

In that particular case the track was untitled I think.  Yep, the issue is fixed in the latest rc.  (The lyrics formating and the crash)

Link to post
Share on other sites

Nick H.

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.

  • Like 6
Link to post
Share on other sites

+Raphaël G.
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 :).

  • Like 4
Link to post
Share on other sites

Ravensky

More people should chip in and help you out with some Paypal love! Just to show their appreciation for an awesome app! :)

Link to post
Share on other sites

+Raphaël G.
On 5/2/2018 at 3:11 AM, Ravensky said:

More people should chip in and help you out with some Paypal love! Just to show their appreciation for an awesome app! :)

That'd be great :):rofl:

Link to post
Share on other sites

  • 2 weeks later...
+Raphaël G.

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

  • Like 4
Link to post
Share on other sites

  • 4 weeks later...
+Raphaël G.

Sneak peek at Dopamine 2.0 development (work in progress):

 

image.thumb.png.75eca4947ffa3f061616e02dcb1c093a.png

  • Like 11
Link to post
Share on other sites

Ravensky

looking good :)  Can't wait to test it out...

Link to post
Share on other sites

FiB3R

Will this be fixed by then? 

 

 

?

Link to post
Share on other sites

+Raphaël G.
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?

  • Like 1
Link to post
Share on other sites

dakn

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!

Link to post
Share on other sites

Brandon H

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 :)

Link to post
Share on other sites

+Raphaël G.
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.

Link to post
Share on other sites

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
 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Jay Bonggolto
      Spotify is testing a cheaper, ad-supported plan that lets you infinitely skip songs
      by Jay Bonggolto

      Cheaper subscription tiers are becoming a thing among streaming platforms in an attempt to lure consumers into their paid services. Earlier, YouTube confirmed that it's testing Premium Lite in some European countries, allowing subscribers to watch videos uninterrupted by ads for €6.99 per month.

      Now, Spotify appears to be trialing a new cheaper plan called Spotify Plus that combines some capabilities of its free and paid tiers. For $0.99 per month, you can skip an unlimited number of songs per hour and listen to specific titles in an album or playlist. However, you'll have to bear with the ads just like in the free plan if you wish to gain access to those capabilities for a cheaper price.

      Spotify confirmed the report in a statement to The Verge:

      The current free tier allows you to skip only up to six songs per hour. And while you can select specific tracks to play in specific collections such as “Discover Weekly” and “Daily Mix”, you'll only be able to listen to shuffled songs in all other albums and playlists. If you want to avoid those restrictions, you can opt for the service's paid plan which currently costs $9.99 per month.

      Spotify, however, cautioned that the experimental tier may not necessarily roll out in its current form in the future. And if ever it does, it remains to be seen how the cheaper tier will help convert free users into paying subscribers.

      Source: The Verge

    • By Chandrakant
      Amazon introduces The Golden Era Vinyl subscription service
      by Chandrakant Isi



      Vinyl records, the last bastion of analog music in this digital world, has been making a strong comeback. Last year, over 27 million LPs were sold in the US. It is a clear indication that not only the nostalgic folks but also the newer generation has a fascination for vinyl records. To make most of this trend, Amazon, which already lists hundreds of thousand records in its catalog, has announced a new vinyl subscription service.

      Dubbed as 'Vinyl of the Month Club: The Golden Era', it offers a single album on vinyl every month. For those not in the know, the golden era of vinyl refers to the 60s and 70s. The service seems like a good idea for young vinyl enthusiasts planning to build their collection. Amazon claims that a monthly record is picked by its experts at Amazon Music. So far, Amazon has revealed that subscribers will get a chance to enjoy the work of legendary artists such as Pink Floyd, Led Zeppelin, Miles Davis, and Fleetwood Mac.



      Upon subscribing to the service, you can find out the current month's album from Amazon's orders page. If you already own that album or it doesn't interest you, simply skip the month's package from the 'Manage Your Subscriptions' page. Amazon also allows subscribers to return a vinyl as long as its packing is intact.

      Amazon's Vinyl of the Month Club subscription costs $24.99 per month. The pricing is not bad considering that the cost of popular LPs varies wildly. For instance, Led Zeppelin's Physical Graffiti currently sells for $34.69 on Amazon.

      Amazon's idea seems inspired by the Columbia Record Club from the 50s. Conceived in 1955, it was the first venture to offer music through the mail. The company offered a complimentary record to boost its membership numbers. It was a huge success back then as the company was shipping over seven million vinyl records by 1957.

    • By Copernic
      foobar2000 1.6.6
      by Razvan Serea



      foobar2000 is an advanced freeware audio player for the Windows platform. It features the simplest, most minimalistic interface you'll ever see in this kind of program. Other features include full unicode support, ReplayGain support and native support for several popular audio formats.

      foobar2000 features:

      Supported audio formats: MP3, MP4, AAC, CD Audio, WMA, Vorbis, FLAC, WavPack, WAV, AIFF, Musepack, Speex, AU, SND... and more with additional components. Gapless playback. Full unicode support. Easily customizable user interface layout. Advanced tagging capabilities. Support for ripping Audio CDs as well as transcoding all supported audio formats using the Converter component. Full ReplayGain support. Customizable keyboard shortcuts. Open component architecture allowing third-party developers to extend functionality of the player foobar2000 1.6.6 changelog:

      Made Advanced Preferences searchable. Added support for attaching pictures to Matroska files; fixed Matroska tag editing bugs. More accurate reporting of Matroska bitrate (actual content is probed if needed). Added itunesadvisory tag support for M4A. Updated embedded cuesheet handling code. Replaced PPHS resampler with much faster libretro resampler. Added support for internet radio album art. Converter: Encoded FLAC files are now updated with proper FLAC seektables, if FLAC.exe doesn't write them by itself. Converter: Workarounds for clashes when writing to a Media Library indexed folder. Converter: Added built-in profile for exhale AAC encoder. Converter: Fixed some warning prompts not being possible to permanently disable. Fixed slightly inaccurate bitrate reporting for Musepack and WavPack. Tags are now excluded from file size used to calculate the bitrate. Now compiled with Visual Studio 2019 (was 2017 before). Album art related regressions fixed. (beta 2) Worked around 7-zip reading crash. (beta 2) Fixed missing no-artwork pic in some scenarios. (beta 3) Fixed slower playlist & library search regression from earlier betas. (beta 4) Fixed failure to read some rare MP4/M4A files. (beta 5) Converter: Added a toggle for FLAC seektable fix. (beta 5) Fixed Default UI playlist rendering glitches with millions of items. (beta 6) Fixed decoding of 7-channel FLAC files. (beta 7) Made FLAC channel mask not cleared with 'remove tags'. (beta 7) Improved compatibility with badly configured HLS radio servers. (beta 7) Fixed odd samplerate autoresampling regression from earlier betas. (beta 8) Download page: foobar2000 1.6.6 | 4.5 MB (Freeware)
      Links: Home Page | foobar2000 for Mac | Windows Store | Android

      Get alerted to all of our Software updates on Twitter at @NeowinSoftware

    • By Copernic
      iTunes 12.11.3
      by Razvan Serea



      iTunes is a free application for Windows PCs. It plays all your digital music and video. It syncs content to your iPod, iPhone, and Apple TV. And it's an entertainment superstore that stays open 24/7.

      Organize your music into playlists Edit file information Record compact discs Copy files to an iPod or other digital audio player Purchase music and videos on the Internet through the built-in iTunes store Run a visualizer to display graphical effects in time to the music Encode music into a number of different audio formats. Changes in iTunes 12.11.3:

      This update includes security improvements and adds support for new devices. Download: iTunes 12.11.3 (32-bit) | 168.0 MB (Freeware)
      Download: iTunes 12.11.3 (64-bit) | 191.0 MB
      Links: Apple iTunes Website

      Get alerted to all of our Software updates on Twitter at @NeowinSoftware

    • By Copernic
      foobar2000 1.6.6 Beta 1
      by Razvan Serea



      foobar2000 is an advanced freeware audio player for the Windows platform. It features the simplest, most minimalistic interface you'll ever see in this kind of program. Other features include full unicode support, ReplayGain support and native support for several popular audio formats.

      foobar2000 features:

      Supported audio formats: MP3, MP4, AAC, CD Audio, WMA, Vorbis, FLAC, WavPack, WAV, AIFF, Musepack, Speex, AU, SND... and more with additional components. Gapless playback. Full unicode support. Easily customizable user interface layout. Advanced tagging capabilities. Support for ripping Audio CDs as well as transcoding all supported audio formats using the Converter component. Full ReplayGain support. Customizable keyboard shortcuts. Open component architecture allowing third-party developers to extend functionality of the player foobar2000 1.6.6 Beta 1 changelog:

      Made Advanced Preferences searchable. Added support for attaching pictures to Matroska files; fixed Matroska tag editing bugs. More accurate reporting of Matroska bitrate (actual content is probed if needed). Added itunesadvisory tag support for M4A. Updated embedded cuesheet handling code. Replaced PPHS resampler with much faster libretro resampler. Added support for internet radio album art. Converter: Encoded FLAC files are now updated with proper FLAC seektables, if FLAC.exe doesn't write them by itself. Converter: Workarounds for clashes when writing to a Media Library indexed folder. Converter: Added built-in profile for exhale AAC encoder. Converter: Fixed some warning prompts not being possible to permanently disable. Fixed slightly inaccurate bitrate reporting for Musepack and WavPack. Tags are now excluded from file size used to calculate the bitrate. Now compiled with Visual Studio 2019 (was 2017 before). Download page: foobar2000 1.6.6 Beta 1 | 4.5 MB (Freeware)
      Links: Home Page | foobar2000 for Mac | Windows Store | Android

      Get alerted to all of our Software updates on Twitter at @NeowinSoftware