Keppi (music visualizer)
Keppi (music visualizer)
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.
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.
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.
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.
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.
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.
Last edited by SYSTEM on Sat Aug 10, 2019 5:29 am, edited 4 times in total.
My YouTube channel | Release date of my 13th playlist: August 24, 2020
Re: Keppi (music visualizer)
This is better.
Re: Keppi (music visualizer)
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)
Very cool indeed @system
Re: Keppi (music visualizer)
Keppi 2.00 is out. Changelog:
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.
- 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.
My YouTube channel | Release date of my 13th playlist: August 24, 2020
Re: Keppi (music visualizer)
Keppi 3.00 released. Changelog:
The switch to WPF has increased memory usage from ~25 to ~45 megabytes.
- 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.
- The background color of windows (like the Open URL dialog) is now white
- 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.
My YouTube channel | Release date of my 13th playlist: August 24, 2020
Re: Keppi
Sure, I'll implement saving the size and position.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.
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.
My YouTube channel | Release date of my 13th playlist: August 24, 2020
Re: Keppi
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:SYSTEM wrote:Sure, I'll implement saving the size and position.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.
- Window size and position are now saved.
- Fixed: SoundCloud tracks failed to play after the youtube-dl 2017.01.28 update.
My YouTube channel | Release date of my 13th playlist: August 24, 2020
Re: Keppi (music visualizer)
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.
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.
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.
My YouTube channel | Release date of my 13th playlist: August 24, 2020
Re: Keppi 3.10
@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:
A couple of GIFs:
Keppi - YouTube:
Keppi - local MP3:
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?
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.
A couple of GIFs:
Keppi - YouTube:
Keppi - local MP3:
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?
Last edited by smaragdus on Thu Apr 06, 2017 7:53 pm, edited 1 time in total.
Re: Keppi 3.10
Should be doable. Added to my todo list.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.
As you noticed, it doesn't.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?
Added to my todo list.smaragdus wrote: What about some tool-bar with Play/Pasue/Stop buttons?
Do you mean playing the files sequentially, as if they were in a playlist?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.
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.smaragdus wrote: Can .NET programs use BASS library?
My YouTube channel | Release date of my 13th playlist: August 24, 2020
Re: Keppi
@SYSTEM
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.Do you mean playing the files sequentially, as if they were in a playlist?
Re: Keppi
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:@SYSTEMThis 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.Do you mean playing the files sequentially, as if they were in a playlist?
To be fair, BASS also has quite scarce format support without extensions.smaragdus wrote: This Media Foundation seems very scarce in format support, don't you think? BASS library seems superior by far.
(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.)
My YouTube channel | Release date of my 13th playlist: August 24, 2020