Uwe L. Korn

I'm a (final year) computer science student with strong interest in data science. Currently I'm studying at the University of Bristol in the MSc program "Advanced Computing - Data Mining, High Performance Computing and Machine Learning" Asides my studies, I devote some time to open source projects like Tomahawk Player and spend occasionally a weekend building hacks around music.

Current Projects and Participations

These are the projects where I actively work on at the moment.

Tomahawk Player
since December 2012

Tomahawk decouples the name of the song from the source it was shared from - and fulfills the request using all of your available sources.

My major contributions to Tomahawk include the extension of the networking backend to improve connection handling between two player instances and the addition of IPv6 support. Furthermore I added the Trending section which gathers the Charts among your peers as well as determines which Playlists and Artists are trending.

Currently I devote my Tomahawk time to improve the functionality of the resolvers, Tomahawk's plugin system which gives unified acces to music services. Recent advances here are the support of a unified API of transforming an music service URL into more useful information like the content of a playlist it represents.

Used techniques:  C++ Qt JavaScript CMake

since spring 2011

As Gentoo is the operating system on my laptop, I contribute patches and packages to the Qt, KDE and Science overlay for software that had a recent release or a change in the build system in the upstream source tree.

My major work here was adjusting packages for the support of building them with Qt4 and/or Qt5. This did not only involve adjusting the packages in Gentoo itself but also meant that upstream sources needed to be patched as many packages were needed in parallel in Qt4 and Qt5 installed but upstream had sometimes not addressed this problem.

Used techniques:  ebuild bash patch/diff CMake

As an addition to the Tomahawk ecosystem, I created some Node.JS packages which build upon technologies which were born out of the player. This includes (in the order of the title): a wrapper library to use the content/service resolvers from Tomahawk unmodified in Node, a wrapper to the toma.hk API and a hubot plugin that responds with the metadata to music links it detects in a chat.

Used techniques:  JavaScript CoffeeScript Hubot Node.JS

VLC / VideoLAN, libav, Phonon(-VLC)
since March 2014

As another direction started from my work on Tomahawk, some of my time went into fixing various problems in our multimedia stack. In Tomahawk, we use Phonon as our playback library with VLC as the prefferred backend. In VLC, most of the codecs are provided through libav/ffmpeg.

The most impactful contribution in this stack was the improvement of audio-only playback encapsulated in the rtmp:// protocol. This included fixing the detection of the number of media streams present in an rtmp stream that did not send metatdata. Furthermore we had to ensure that all possible backends support the same URL schema so we could pass this information seamlessly through all layers. (This was required for Beats Music support in Tomahawk)

Used techniques:  C C++ Wireshark / tcpdump rtmp

Small Projects and Weekend Hacks

These projects were built in a short period of time, e.g. a HackDay or a University course and may not be developed anymore thereafter. Nevertheless I will try to keep them running and everything uploaded for documentation.

A Book of Music
MusicHackDay London,
December 2013

Last summer I read relaxed on my couch the biography of Blur bassist Alex James. Despite being a good book, I really wanted to smell the cheese he consumes and produces and the music Blur made over time.

For reading I really like to use my eBook reader as it is more handy and the lighting is better than any lamp at night. As it does not has a headphone jack or a speaker, it cannot play music files. Even if it had, it would really prefer to use my quality speakers instead of a crappy built-in speaker. Neither I want to be wired with my reader to speaker nor do I want to walk to my computer to lookup a track and play it.

To solve this problem, A Book of Music parses an ebook and inserts links to its webservice to start the playback directly from your eBook reader but tracks will be played on your favorite machine which is connected to high quality speakers. As an input source for eBooks I'm using Wikipedia and preindexed all sites that describe songs to have a knowledge which links point to music.

Used techniques:  JavaScript CoffeeScript Wikipedia ePUB

MusicHackDay Paris,
April 2013

Just one week after the introduction of Twitter Music, MHD Paris took place. On of the major complaints I heard from my peers about it was the missing feature to just play the tracks that appear in your timeline, even if the are from Soundcloud, Deezer or other services not included in the initial Twitter Music Release. This hack simply solves this problem by parsing your Timeline and providing all posted tracks in a toma.hk playlist. (This hack lead later on to the creation of the UrlLookup capability in Tomahawk resolvers)

Used techniques:  JavaScript CoffeeScript Twitter Node.JS heroku

Oh my Youth!
MusicHackDay London,
November 2012

As my first experience on a MusicHackDay I did one of the typical hacks that people do at their first event like this: an automatic playlist generator. It takes as input two of your favorite artist when your were really young and optionally a release year. With this information it searches the MusicBrainz Database to find a compilation that features both artists and was released in the specified year. Altough this might not be the music you still hear today, childhood memories will definitely come back!

Used techniques:  JavaScript Spotify MusicBrainz

Previous and retired Projects

These are the projects where I do not work on anymore or that are completely retired.