Skip to main content

Senior WordPress platform developer. Open web / Music. DJ (under @CloudseerDJ). Tall Dutch guy.

twitter.com/svandragt

github.com/svandragt

mixcloud.com/cloudseer

Taking back control

2 min read

Recently, I've come to the conclusion that it's the nature of realtime social media to cause drama and upset. In the search for ever increasing thirst for gossip, instant reactions are stimulated so heavily that  there is no time to research or read about the context of a story, and open discussion isn't possible when group mentality means we must be outraged or be part of the problem.

At the same time, people have never engaged so little with web content, being the metaphorical frogs in the pressure cooker of Facebook and Twitter that is modern society. We are the product that is monetised by the advertising dollars that demand page views in a broken system of inflatable viewership figures.

In the music scene, the illusion of hyper promotion and like-networking results in a feed of people and content I have little interest in following, in the hope that they will listen to what I have to say.

Pointless and bad for my health. So therefore I'm distancing myself more from social media now.

If you want to follow what I have to say about technology, read vandragt.com. If you are interested in my music visit cloudseer.me. They will soon have a mailinglist and RSS feeds without advertising and like buttons.

A People Centred Web

2 min read

Have you ever tried to leave a social network? Want to be free to move web platforms because your needs have changed? Perhaps you might no longer agree with the business practices employed by the service provider, or no longer see the value in paying for having content monetised.

Currently, this means you have to build up new social connections and can't move over your friends as they might not be on the new network. This is a dark pattern employed by the investor-heavy digital media giants to keep people siloed, making it easy to move in but burdensome to move out.

Social networks can then add messages and events on top, keeping the money making engine oiled with an persuasive analytics layer. Other places like media hosting providers where it seems a subscription fee supports the music uploaded to the system but causes artists to lose control over their fan base.

The silo is responsive and cushy yes, but ultimately the users are at the whims of the platform. I have accounts on hundreds of websites because every site wants to identify their users. Sites start their own network; to build things on top off.

It seems to me that it is very wasteful to keep building social graphs and user account systems when we can do so much better. Instead, have the person be in control of the people they interact with, and manage the information that is displayed to them!

Imagine launching a dashboard app that sits on your computer and is independent from any information sources. It's free of tracking and open source to us all and doesn't do too many things. It doesn't belong to anybody but yourself. It's just a window where information from friends can be shown in a timeline. It can connect to a friend's dashboard so you can stay in touch. Hey what's new? It manages who you follow.

Web services you visit can ask permission to add information on your dashboard. Want to see when concert tickets are available for your favourite artist? Allow them to display that. Allow the event provider to display dates of the next group meeting, and the music hoster to add in new tracks from that producer you follow.

Never again be stuck in a silo. Disconnect a source and attach another. A social reader for the new generation.

Close second gem of the day is PythonAnywhere this might just make it so trivial to start this music related project I’ve been thinking of.<p>#status </p>

There is such depth to the Groove Rider GR-16 groove box, I’m reading the manual front to back. So much to master, a real professional music making tool for iOS <a href="https://www.jimaudio.pro/">jimaudio.pro</a><p>#status </p>

In the alternate universe Apple created a home(pod) entertainment system that elegantly worked with TV, consoles, music, & film.<p>#status </p>

Playing my purchased digital music across my devices is still harder than it ought to be in 2017.<p>#status </p>

Traktor streaming to SHOUTcast servers using LiquidSoap

7 min read

I've been using Traktor for years now as my deejaying solution and broadcasting tool. The one missing feature on the broadcasting side is that it can only stream directly to Icecast servers, lacking the ability to stream to SHOUTcast based servers. Most servers use the SHOUTcast streaming protocol which grew popular through the MP3 movement back around the turn of the century. We will setup a transcoding link to enable streaming to SHOUTcast servers.

This guide will focus on OS X but on a general level is also applicable to Windows users.

This replaces my previous guide at https://sites.google.com/site/traktorshoutcast/

Overview

We will need the do the following things:

  1. Install Homebrew, a package manager to help set things up.(OS X)
  2. Install and setup Icecast, a streaming server that will accept the Traktor stream. (aka local streaming server)
  3. Install and setup LiquidSoap, a transcoder that will connect to the local stream, and broadcast it in SHOUTcast format.
  4. Configure Traktor's broadcasting settings to point to the local streaming server.

Also useful is to keep the SHOUTcast stream (remote stream) details to connect to at hand (host, port, password).

signal flow

1) Install Homebrew

Homebrew is a terminal package manager to add / remove / update OS X software and compile it from source code for us, so we don't have to.

Homebrew installs the stuff you need that Apple didn’t.

To install, follow the directions on http://brew.sh. Currently (as of Feb 16) that says:

  1. Open a terminal window.
  2. Run /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Follow any instructions about the Xcode commandline tools.

After everything is setup you can run brew update to update your formulae, brew upgrade to upgrade to their latest versions, and brew doctor to diagnose any issues with your particular installation. Keep the terminal open for the next step.

2) Install and setup Icecast

Icecast is a streaming media server which [...] can be used to create an Internet radio station or a privately running jukebox and many things in between.

We will setup the local streaming server so that we can connect Traktor and the transcoder to it.

Install

In the terminal window you left open, run brew install icecast.

If I remember correctly, everything should go smoothly and before long you'll get a message saying it's successfully installed.

Configuration

To keep the configuration files we are about to create nicely together, create a broadcast folder somewhere (I used ~/Music/Broadcast).

I have prepared a very simple configuration file for you, download it from https://gist.github.com/svandragt/f7ecb720416a68f096a1 (right click the raw button and select Download Linked File As.. and save it as icecast.xml in the broadcast folder you just created).

You won't have to change the contents of this file, apart from the passwords.
This configuration creates a mount point on http://localhost:8000/traktor.ogg for Traktor and LiquidSoap to connect to.

Starting and Stopping the Local Streaming Server

In the terminal window, in your broadcast folder, run icecast -c icecast.xml. It should show a few warnings but no errors, and your local streaming server is now running. Stop it now by pressing ctrl+c.

3) Install and setup LiquidSoap

Our flagship is liquidsoap, a swiss-army knife for multimedia streaming, notably used for netradios and webtvs. Liquidsoap is a powerful and flexible language for describing your streams. It offers a rich collection of operators that you can combine at will, giving you more power than you need for creating or transforming streams. But liquidsoap is still very light and easy to use, in the Unix tradition of simple strong components working together.

We will install the program and setup a flow (configuration) to connect to the local streaming server, and broadcast it to the remote stream.

It should have been simple to install using brew, but unfortunately it was not. After several days of debugging here is a working set of instructions I produced.

Install

In the terminal window you left open, we will run the following commands:

  1. brew tap drfill/liquidsoap -- This enabled homebrew to install it.
  2. brew install --env=std liquidsoap --with-shout -- this installs LiquidSoap using the standard build environment with shoutcast support

Grab a drink. After a while hopefully all works fine. I noticed that LiquidSoap is now recommending OPAM to install it so you could try that if this doesn't work for you. (http://liquidsoap.fm/download.html) - I have not tried it.

Configuration

As before, I have created a very simple flow. You will need to setup one flow per destination stream so if you play at multiple radio stations / SecondLife clubs then you will need multiple flows.

Download it from https://gist.github.com/svandragt/af43c07d5842c9c429d5 (right click the raw button and select Download Linked File As.. and save it as example.liq in the broadcast folder).

This time you have to edit it, to add the remote stream details. Change the following lines to suit your purposes:

  • output_host = "example.com"
  • output_port = 8124
  • output_pass = "mypassword"

The configuration above is for broadcasting to a SHOUTcast server at http://example.com:8124 (using the password mypassword). Leave the rest of the file alone or make a copy and start experimenting LATER, see http://liquidsoap.fm/documentation.html. LiquidSoap is very powerful.

Starting and Stopping the Transcoder

In the terminal window, in your broadcast folder, run liquidsoap example.liq. It will start showing a lot of messages, and because you are not currently broadcasting also some errors. Stop it now by pressing ctrl+c.

Traktor

Start Traktor and open the Preferences menu item. Open the Broadcasting tab.

Use the following information to point to the local streaming server:

Server settings:

  • Address: localhost
  • Port: 8000
  • Mount path: traktor.ogg
  • Password: hackme (but you changed this, right)
  • Format: Ogg Vorbis, 44100 Hz, 192 kBit/s (highest quality, bottom option)

You can enter whatever you like in the Metadata Settings.

tractor broadcasting settings

In Traktor, click the broadcast button (the little attenna). It will flash because the local streaming server isn't running and therefore Traktor cannot connect to it. Whenever Icecast is running but the button is still flashing, check that the password and other connection details match.

For now, click it again to stop broadcasting.

All together now

Before you start streaming:

  1. Start Icecast and keep it running.
  2. In Traktor, click the broadcast button and confirm its not flashing.
  3. Open another terminal window / tab in the broadcast folder for the next step.

When you start streaming:

  1. Start LiquidSoap with the flow of your remote stream. Keep it running.
  2. Start deejaying!

When you are finished

  1. Stop broadcasting with Traktor.
  2. Stop liquidSoap to let the next DJ on the stream.
  3. Stop Icecast because nothing is connected to it now.

Final thoughts

I hope this helps anyone having trouble deejaying online, I enjoy it very much and if you'd like to listen to deep house / electronica, please listen to my mixes.

Gist: Pomodoro MediaPlayer

1 min read

I was suffering from lack of concentration later in the workday, until I stumbled upon the Pomodoro focusing technique. I've been a lot more productive and in a better mood since I started using this two weeks ago:

The Pomodoro Technique is a time management method developed by Francesco Cirillo in the late 1980s. The technique uses a timer to break down work into intervals traditionally 25 minutes in length, separated by short breaks. These intervals are known as "pomodori", the plural of the Italian word pomodoro for "tomato".

The method is based on the idea that frequent breaks can improve mental agility.

I created an AutoHotkey script that uses timers and a global hot-key I set for WinAmp to automatically stop and start the music after instructing me to work / have a break. It works really well for me.

InstaPlay 1.0

1 min read

As a hobbyist music producer, I have a lot of samples of sounds. As I have decided to start organising these, I needed a quick way to fire off samples in wav and mp3 format through Windows Explorer.

So I created InstaPlay. This is a simple sound player. To install it simply unzip it in a directory that's in the path, and then associate wav and mp3 files (and whatever else you want to use) with it.  It also has a few features:

  1. Just double click or run a soundfile to hear it play.
  2. Nice speaker icon in system tray while a sound is playing. Double click it to quit InstaPlay and stop playback.
  3. Run  another sound file to switch playback to that instead.

This program will help you categorize more efficiently as you can move the sound that's being played without pesky 'file in use' prompts.

Download Info
Download the latest version (v1.0 - updated 14/oct/2010)

It should be free?

1 min read

Should simple software be free:

During the chat, the entire MacBreak Weekly crew discussed the danger to the music industry that comes from younger listeners having a built-in expectation that music should be free.

On this episode I believe [Leo Laporte] has inadvertently helped to perpetuate the same kind of thinking about software that the panel had just finished expressing concern about with regard to music: the idea that the hard-earned fruits of somebody’s creative labor should be free.

http://www.red-sweater.com/blog/481/it-should-be-free