Page 1 of 2

Keppi (music visualizer)

Posted: Thu Jan 07, 2016 11:21 am
by SYSTEM
Hello everyone,

I have been looking for a new job for over a month. In my CV I list C# as one of the programming languages I know; however, at my previous job I last used the C# language in July. I thought that if I end up in a programming test as a part of a job interview, it's best if I have used the language recently and it's freshly in my mind. For that reason I decided to start a new spare time software project.

Keppi is a simple music visualizer, written in the C# language. It requires .NET Framework 4.5 to run.
Screenshot.png
Screenshot.png (10.8 KiB) Viewed 82337 times
Project website: http://sourceforge.net/projects/keppi/

Q&A

Does the name mean something?

Yes. It's Finnish for "stick".

Stick?!?!

Yeah. I just picked a random word. :mrgreen:

Is it portable?

Depends on your definition. ;) Keppi doesn't save any settings, but it requires .NET Framework 4.5.

Which operating systems are supported?

Windows 7, Windows 8, Windows 8.1 and Windows 10.

What about audio formats?

I'm using Media Foundation for decoding. Therefore supported audio formats depend on the Windows version you have.

MP3, AAC, WMA and WAV formats in raw *.mp3, *.aac, *.wma and *.wav files are supported on all platforms. So is the MP4 container format (*.mp4 or *.m4a) provided that the stream inside is of a supported format. Vorbis streams in Ogg containers are also supported. (Note that Vorbis works only in an Ogg container.)

FLAC and Opus streams and WebM containers are supported on Windows 10.

Re: Keppi (music visualizer)

Posted: Thu Jan 07, 2016 3:06 pm
by joby_toss
This is better. :)

Image

Re: Keppi (music visualizer)

Posted: Fri Jan 08, 2016 12:05 am
by Enternal
Lol! I knew what the software does but SYSTEM's screenshot was making me laugh, "oooooh... squiggly line... sooo purrty". The animated gif does it so much more justice. Anyways, there's something trancing about looking at music visualizers and I don't know what. Anyway, thanks!

Re: Keppi (music visualizer)

Posted: Fri Jan 08, 2016 6:31 am
by billon
Looks like Nad

Re: Keppi (music visualizer)

Posted: Fri Feb 05, 2016 11:42 pm
by guinness
Very cool indeed @system

Re: Keppi (music visualizer)

Posted: Sat Apr 30, 2016 1:05 am
by SYSTEM
Keppi 2.00 is out. :D Changelog:
  • Implemented ability to visualize music in YouTube and SoundCloud. It is possible thanks to youtube-dl. Not available on Vista because Media Foundation doesn't support MP4 and AAC on that OS.
  • Added ability to play multiple files in one session (File -> Open)
  • Now Keppi blocks the screensaver from showing up and the screen from automatically turning off.
----

Before anyone else points it out: the disk footprint has increased a lot. Youtube-dl alone takes 6,7 megabytes. The total size of the program has increased from 5,1 to 12,5 MB (64-bit builds).

When visualizing music in YouTube or SoundCloud, Media Foundation appears to save the media stream to the IE cache and not remove it afterwards. This can eat a lot of disk space, especially if you listen entire mix-sets. There is a size cap of about 200 MB.

Re: Keppi (music visualizer)

Posted: Sun Jan 08, 2017 1:15 am
by SYSTEM
Keppi 3.00 released. :D Changelog:
  • Dropped support for Windows Vista.
  • Rewrote the UI by using Windows Presentation Foundation (WPF) instead of
    Windows Forms. This resulted in some user-visible changes:
    • The background color of windows (like the Open URL dialog) is now white
      instead of gray.
    • Text is now drawn with font smoothing even if you have disabled font
      smoothing in Windows settings.
  • Switched visualization backend from Direct2D to Direct3D 9.
    • The visualization is now fully sharp.
  • Implemented an XAudio2 audio playback backend that is used if available.
    If it's not available, audio is still played through DirectSound
    (although more directly and not through OpenAL Soft).
  • Replaced the Windows API Code Pack, Media Foundation .NET, OpenAL# and
    OpenAL Soft libraries with SharpDX.
  • Added an icon.
  • More accurate synchronization between audio and visualization.
  • Increased audio buffer length to reduce risk of pauses.
  • Fixed: many YouTube videos failed to play on Windows 7.
  • Fixed crash at the end of YouTube videos on Windows 7.
  • Fixed: for local files, the file name was shown in the title bar even when
    metadata was available.
  • Fixed: when yt-dl.org is down, the updater truncates youtube-dl.exe to zero
    bytes and crashes.
  • Minor changes.
----

The switch to WPF has increased memory usage from ~25 to ~45 megabytes.

Re: Keppi

Posted: Sat Jan 14, 2017 7:51 am
by smaragdus
@SYSTEM
Why don't you add a settings file for the GUI? In my opinion it would be better if Keppi was able to preserve window size and position after restart. For me it is cumbersome to resize the window anytime I start the program.

Re: Keppi

Posted: Sat Jan 14, 2017 9:30 am
by SYSTEM
smaragdus wrote:@SYSTEM
Why don't you add a settings file for the GUI? In my opinion it would be better if Keppi was able to preserve window size and position after restart. For me it is cumbersome to resize the window anytime I start the program.
Sure, I'll implement saving the size and position.

I'll also add a way to reset the window back to default size: I have an OCD-like tendency to keep the window at exactly that size, and I want a way to undo if I resize the window accidentally.

Re: Keppi

Posted: Wed Feb 08, 2017 1:26 am
by SYSTEM
SYSTEM wrote:
smaragdus wrote:@SYSTEM
Why don't you add a settings file for the GUI? In my opinion it would be better if Keppi was able to preserve window size and position after restart. For me it is cumbersome to resize the window anytime I start the program.
Sure, I'll implement saving the size and position.
It's implemented in version 3.10 that I just released. :) I also fixed playback of SoundCloud tracks, which broke after a youtube-dl update. Full changelog:
  • Window size and position are now saved.
  • Fixed: SoundCloud tracks failed to play after the youtube-dl 2017.01.28 update.

Re: Keppi (music visualizer)

Posted: Mon Feb 20, 2017 5:26 am
by SYSTEM
I have implemented an interesting new feature: a unreleased version of Keppi attempts to detect when it's playing an entire mix set in YouTube and the video description contains a track list with time stamps. In that case, it can show an optional status bar which shows the currently playing track.
Tracklist extraction.png
However, this feature is quite far outside the scope of music visualizers: you aren't supposed to use a visualizer to play an entire mix set, after all. For that reason, it's disabled by default, and I don't have any plans to release a new version of Keppi because of this feature. (Keppi 3.10 does have some of the tracklist extraction code, but the feature is completely disabled in that version.) I don't have any other plans to improve Keppi, either, so it will likely be a very long time before the feature will be in a stable release.

(It will happen when I need to update the program because of a change in youtube-dl, YouTube or SoundCloud, such as when a youtube-dl update broke SoundCloud playback in January. It may well be even over an year until something like that happens again.)

Let me know if you'd like to try the tracklist extraction feature anyway. I can create a special build or something.

Re: Keppi 3.10

Posted: Mon Feb 20, 2017 8:13 pm
by smaragdus
@SYSTEM

I finally tested Keppi version 3.10.

Thank you for "Window size and position are now saved."- for me this is essential.

I have one more request- support for drag&drop of supported audio formats- this will spare the user the effort to browse for files.

I also have several questions questions:
  • What about adding support for several relatively common formats like Ogg Vorbis, Monkey's Audio and WavPack? Does the library you are using support these formats?
  • What about some tool-bar with Play/Pasue/Stop buttons?
  • What about possibility to load multiple supported files? I know this will make Keppi more a player than a visualizer, but just asking.
However Keppi failed to play FLAC files on my system (Windows 8 x64), screen below:

Image

A couple of GIFs:

Keppi - YouTube:

Image

Keppi - local MP3:

Image

Edit

I read the introduction and I got why Keppi couldn't render FLAC files.

Now I see that support for the formats I asked won't be possible. I am sorry I didn't read what I should read before posting.

Edit

Can .NET programs use BASS library?

Re: Keppi 3.10

Posted: Mon Feb 20, 2017 10:21 pm
by SYSTEM
smaragdus wrote: I have one more request- support for drag&drop of supported audio formats- this will spare the user the effort to browse for files.
Should be doable. Added to my todo list.
smaragdus wrote: What about adding support for several relatively common formats like Ogg Vorbis, Monkey's Audio and WavPack? Does the library you are using support these formats?
As you noticed, it doesn't.
smaragdus wrote: What about some tool-bar with Play/Pasue/Stop buttons?
Added to my todo list.
smaragdus wrote: What about possibility to load multiple supported files? I know this will make Keppi more a player than a visualizer, but just asking.
Do you mean playing the files sequentially, as if they were in a playlist?
smaragdus wrote: Can .NET programs use BASS library?
Yes, they can, through a wrapper called Bass.Net. Since you requested support for additional audio formats (and FLAC on <Win10), I'll look into integrating it.

Re: Keppi

Posted: Mon Feb 20, 2017 10:35 pm
by smaragdus
@SYSTEM
Do you mean playing the files sequentially, as if they were in a playlist?
This was exactly what I meant. But I am afraid with tool-bars and playlist menu Keppi will become more or less a player. I suppose this wasn't your intention. But drag&drop support would be great. This Media Foundation seems very scarce in format support, don't you think? BASS library seems superior by far.

Re: Keppi

Posted: Mon Feb 20, 2017 11:57 pm
by SYSTEM
smaragdus wrote:@SYSTEM
Do you mean playing the files sequentially, as if they were in a playlist?
This was exactly what I meant. But I am afraid with tool-bars and playlist menu Keppi will become more or less a player. I suppose this wasn't your intention.
Well, personally I prefer feature-rich software. Moving Keppi to the direction of a music player isn't a problem. (However, I don't tend to implement player features unless someone requests them.)
smaragdus wrote: This Media Foundation seems very scarce in format support, don't you think? BASS library seems superior by far.
To be fair, BASS also has quite scarce format support without extensions.

(Media Foundation allows third-party codecs as well, as long as they are locally installed. However, nearly all third-party codecs out there are still made for DirectShow, the predecessor of Media Foundation.)