Coder Social home page Coder Social logo

punker76 / simple-music-player Goto Github PK

View Code? Open in Web Editor NEW
345.0 40.0 121.0 154.4 MB

Simple Music Player - SimpleMP - Keeps it simple and plays your music

License: MIT License

C# 98.91% PowerShell 1.08% Batchfile 0.01%
fmod-studio fmod-library c-sharp music-player player wpf fmod-sound xaml mahapps mp3

simple-music-player's Introduction

Stand With Ukraine


Logo

Welcome to Simple Music Player!

devstatus

SimpleMP or Simple Music Player is a simple and easy to use music player for free. It plays the most common music files (mp3, ogg, wma, wav) in a very simple way, just drag&drop your files or folders on the main screen and push play...

So why another music player? When I decided to make my own player back in 2005, the Winamp 3 player was too buggy and very slow! I used my favorite programming language Delphi 5 and I learned a lot of new stuff. It was a great time and a few people in the Delphi community honored my work :-). Unfortunately, the interface of the FMOD sound library was no longer supported for Delphi, so I decided in 2007 to stop working on it.

In 2012 (after long time), I decided to make a new one!

Attention: This is a develop playground for me. It's a newer version of my old simple music player (SimpleMP).

It's not perfect and many function not yet implemented.

Use it with your own risk!

Simple functions

  • Plays mp3, ogg, wma and wav files (should be enough... or not?)
  • Drag&Drop your files or directories into the player (on the play list)
  • Drag&Drop files within the playlist
  • Add directories to the medialib (not yet finished)
  • Simple 10 band equalizer
  • Simple volume fade in and out (5 sec per default, can be changed in the settings file)
  • Shortcut keys if the player is on top and has the focus
    • [Space] play or pause current file (if none is playing, the first selected file starts)
    • [Enter] play selected files
    • [Del] delete selected files from current playlist
    • [j] play next file
    • [k] play previuos file
    • [s] shuffle mode on / off
    • [r] repeat play list on / off
    • [m] mute player on / off
    • [e] show the equalizer
    • [l] show the medialib
  • Flexible, responsive UI (different views for different window sizes)
  • You can link with the supported files (open with...)
  • Working as single instance, that means
    • if you try start the player twice you get always the first started player
    • if you link with supported media files, the player loads the new files and play the first file from the added files
  • Tooltip on playlist files
  • Dpi aware (per monitor)

Releases

From time to time I'll build and publish a new pre-release which can be find here:

The solution can be compiled with the Visual Studio Community Ed. 2015 or 2017. I use the paket manager to install/restore or update the packages.

Awesome libs that I use

Icons

All Icons are taken from MahApps.Metro.IconPacks.

License

Simple Music Player

MIT License

Copyright (c) >= 2012 Jan Karger

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

FMOD API

FMOD is not distributed under the MIT license. You must agree to this EULA if you compile the source or use any compiled release of Simple Music Player, otherwise you must download FMOD by yourself.

Screen shots (milestones)

very early screenshot 21

very early screenshot 20

very early screenshot 19

very early screenshot 18

very early screenshot 17

very early screenshot 16

very early screenshot 15

very early screenshot 14

very early screenshot 13

very early screenshot 12

very early screenshot 11

very early screenshot 10

very early screenshot 09

very early screenshot 08

very early screenshot 07

very early screenshot 06

very early screenshot 05

very early screenshot 04

very early screenshot 03

very early screenshot 02

very early screenshot 01

simple-music-player's People

Contributors

davidnegley avatar dotob avatar knpdrz avatar pibeplayer avatar punker76 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

simple-music-player's Issues

setMusicSpeed not working?

i want to change speed of music. used setMusicSpeed(5f) but not working.

i used like this.

// PlayerEngine.cs
this.sound.getLength(out lenms, FMOD.TIMEUNIT.MS).ERRCHECK();
this.sound.setMusicSpeed(5f).ERRCHECK();

first actions for the medialib

  • RETURN -> add the selected media files after the currently playing file
  • STRG+RETURN -> append the selected media files to the playlist
  • STRG+ALT+RETURN -> play the first selected media file directly

Delete Items...

Hi.

I saw you've implemented the Delete Items method code already, but there's no way to do it but with a hotkey. Are you thinking to implement a right click context menu on the items and add the Delete function?

Thank you!!!

WPF view MainWindow.xaml

Hello!

VisualStudio 2019

Viewing MainWindow.xaml in the constructor throws an error:
InvalidCastException: Could not cast object type "System.Object" to type "SimpleMusicPlayer.ViewModels.PlayControlViewModel".

What could it be?

How to close MahApps ProgressDialog without losing focus on child control?

In my app, I'm loading a DocumentViewer for previewing and printing. Because loading can take up to a few seconds, I would like to display a ProgressDialog. The logic is this: display ProgressDialog, create and display DocumentViewer, close ProgressDialog.

The problem is that when closing the dialog, the focus returns to the MainWindow, instead of remaining to the DocumentViewer window. I think it's because the dialog CloseAsync(). I've tried calling Focus(), Activate(), Show(), setting TopMost = true, setting the owner of the child window, but, although the window is displayed in front of the parent, the focus still returns to the parent. The only way to I restored the focus to the child was by doing a programmatic click inside the child window, in ProgressDialog.Closed event, but the disadvantage is that there is an ugly transition (child initially appears in front, then parent, then child again).

Can CloseAsync() be avoided? Or how to close MahApps ProgressDialog without losing focus on child control?

XamplParse Exception

Cloned project from github and rebuild project using VS 2013.
Tried to set the music library after first start.
Got the following exception:

System.Windows.Markup.XamlParseException occurred
HResult=-2146233087
Message=Die Angabe eines Werts für "System.Windows.Markup.StaticResourceHolder" führte zu einer Ausnahme.
Source=PresentationFramework
LineNumber=0
LinePosition=0
StackTrace:
bei System.Windows.Markup.XamlReader.RewrapException(Exception e, Uri baseUri)
bei System.Windows.FrameworkTemplate.LoadTemplateXaml(XamlReader templateReader, XamlObjectWriter currentWriter)
bei System.Windows.FrameworkTemplate.LoadTemplateXaml(XamlObjectWriter objectWriter)
bei System.Windows.FrameworkTemplate.LoadOptimizedTemplateContent(DependencyObject container, IComponentConnector componentConnector, IStyleConnector styleConnector, List1 affectedChildren, UncommonField1 templatedNonFeChildrenField)
bei System.Windows.FrameworkTemplate.LoadContent(DependencyObject container, List1 affectedChildren) bei System.Windows.StyleHelper.ApplyTemplateContent(UncommonField1 dataField, DependencyObject container, FrameworkElementFactory templateRoot, Int32 lastChildIndex, HybridDictionary childIndexFromChildID, FrameworkTemplate frameworkTemplate)
bei System.Windows.FrameworkTemplate.ApplyTemplateContent(UncommonField`1 templateDataField, FrameworkElement container)
bei System.Windows.FrameworkElement.ApplyTemplate()
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Border.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Grid.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Control.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.GridViewHeaderRowPresenter.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
bei System.Windows.Controls.ScrollContentPresenter.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV)
bei System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV, Boolean& hasDesiredSizeUChanged)
bei System.Windows.Controls.Grid.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.ScrollViewer.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.DockPanel.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV)
bei System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV, Boolean& hasDesiredSizeUChanged)
bei System.Windows.Controls.Grid.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.ScrollViewer.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Border.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Control.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV)
bei System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV, Boolean& hasDesiredSizeUChanged)
bei System.Windows.Controls.Grid.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
bei System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
bei System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Decorator.MeasureOverride(Size constraint)
bei System.Windows.Documents.AdornerDecorator.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Grid.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Control.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV)
bei System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV, Boolean& hasDesiredSizeUChanged)
bei System.Windows.Controls.Grid.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Decorator.MeasureOverride(Size constraint)
bei System.Windows.Documents.AdornerDecorator.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Grid.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Window.MeasureOverrideHelper(Size constraint)
bei System.Windows.Window.MeasureOverride(Size availableSize)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Interop.HwndSource.SetLayoutSize()
bei System.Windows.Interop.HwndSource.set_RootVisualInternal(Visual value)
bei System.Windows.Window.SetRootVisual()
bei System.Windows.Window.SetRootVisualAndUpdateSTC()
bei System.Windows.Window.SetupInitialState(Double requestedTop, Double requestedLeft, Double requestedWidth, Double requestedHeight)
bei System.Windows.Window.CreateSourceWindow(Boolean duringShow)
bei System.Windows.Window.ShowHelper(Object booleanBox)
bei SimpleMusicPlayer.ViewModels.MainViewModel.ShowMediaLibrary() in c:\Users\Dell\Documents\GitHub\simple-music-player\SimpleMusicPlayer\SimpleMusicPlayer\ViewModels\MainViewModel.cs:Zeile 60.
InnerException:
HResult=-2146233088
Message=Die Ressource mit dem Namen "ToUpperConverter" kann nicht gefunden werden. Bei Ressourcennamen wird die Groß- und Kleinschreibung berücksichtigt.
Source=PresentationFramework
StackTrace:
bei System.Windows.StaticResourceExtension.ProvideValueInternal(IServiceProvider serviceProvider, Boolean allowDeferredReference)
bei MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider)
InnerException:

HI, NICE WORK!

I am learning the FMOD library. thank you very much about the FMOD_DSP_MULTIBAND_EQ

Why SimpleMusicPlayer not use processor? "I like that" :)

I just want to know why,
there is a change or difference to other libraries as Naudio

captura1
captura

features of my system:
Windows 10 Pro x64
processor: AMD Athlon(tm) II X2 250 Processor 3.00 GHz
Motherboard

--but on my laptop the opposite occurs --USE CPU :(

I hope you solve my question

I hope you continue with development.
It is an excellent program
use it daily to listen to music

Thank you 👍

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.