I’ve kept a reminder on my todo-list for a long time that I should not implement MP3 file support, but a couple of weeks ago i rebelled and started doing it anyway, which ended up as yet another decision to not do it. Instead, I implemented Ogg Vorbis support for playing .ogg files and streaming… Continue reading Support for Vorbis and Opus, not MP3
Category: New version
The things you have to do for an interactive terminal interface
Programming language libraries usually expect terminal interaction to take place one print line or read line at a time, and don’t have much support for detecting keypresses or changing what’s already written on the screen. Still, POSIX and other generally followed standards allow more dynamic interaction techniques that are compatible across many systems, and this… Continue reading The things you have to do for an interactive terminal interface
ALSA broken pipe errors
Since last summer, when I changed Klipspringer to access ALSA directly, I’ve had problems with occasional sudden stops in playback and capture, caused by broken pipe errors from the ALSA interface. This post contains the information I would have needed – but failed to find when searching the internet – to solve the problem when… Continue reading ALSA broken pipe errors
Never implement doHickey
I sometimes feel like an impostor when I talk about code design because I have absolutely no formal education in it, and I’ve been imprinted with the attitude that it’s the algorithms, their correctness and efficiency, that you’re supposed to worry about. Working on larger projects, in companies and on my own, I’ve come to… Continue reading Never implement doHickey
Capturing audio for streaming and recording
Since version 3.2, the Klipspringer hub includes the possibility to capture audio from an input device. My idea is to use it for getting music from my vinyl records into digital files, or just to listen to the records digitally with headphones when I’m sitting on the balcony or somewhere else away from my stereo. To… Continue reading Capturing audio for streaming and recording
Screenshots of Klipspringer, now streaming
This post describes my setup of the Klipsringer hub, with screenshots. Since version 3.1 the purpose not only to play music on the speakers in my living room, but also to stream the same music collection to my mobile phone, to let me listen to it with headphones whenever I’m within reach of the wifi in my apartment.
Version 3, a new beginning
Version 3.0.1 is now released, with many major differences from previous versions. The track player has undergone major refactoring and cleanup, and some annoying quirks have been removed. In addition to FLAC files, it now supports WAV and whatever other PCM formats the Java platform knows how to handle. The Klipspringer hub has been made… Continue reading Version 3, a new beginning
Crossfading
This post is about implementing crossfading, for transitioning smoothly between audio segments or tracks.
Playing CDs like in the old days
The CD drive is now integrated as a third Klipspringer input source (besides the FLAC file library and the radio channels). Very simple in terms of code, but it came with lots of little annoying problems that needed fixing, and it’s cool to be able to play physical CDs and have Klipspringer control it using… Continue reading Playing CDs like in the old days
What’s all this then?
Klipspringer is a collection of software that I’ve been using (and kept developing) since 2014 for playing the collection of music files I got from ripping my CDs (and have since expanded by buying music online). It controls playing audio files (primarily FLAC files) on the server side (the computer connected to the stereo) via… Continue reading What’s all this then?