WebMix: Webmonetization + Dj mixes for the next internet

Mark and Ian at Mozfest 2018

While recovering from Covid, I got a little time to finally sort out the WebMix idea which I also wrote up for Mozfest earlier in the year.

With the incredible and generous help of Mark Boas of Hyperaudio, I was able to use Hyperaudio lite to make clearly mark up a list of tunes in a DJ mix. Its what I’ve been looking to do for ages to move away from Mixcloud,

My finally setup was something I was playing with for ages but mainly via a self installed wordpress on my raspberrypi. I found problems when installing hyperaudio and in the end decided to go with a static website. I choose Publii as it had a linux client and I could just write the HTML easily (so many use markdown and other things, which would have made working with hyperaudio more difficult than it needs to be)

With the site creation out the way, I needed somewhere to host it.

Originally I was going to use Yunohost but I couldn’t find a simple webserver to just host the static files, instead I found a proxy server, which points at my NAS, which is running a very simple webserver. Of course the NAS has plenty of space, its also where the mixes sit, has a excellent redundancy and backup system.

The result of the experiment all sits here – https://cubicgarden.info/mixes

Digital Italics WebMix

The core part of WebMix (as I’m calling it) sits in hyperaudio’s transcript and webmontization support.

Hacking hyperaudio’s transcripts

Originally I always saw Hyperaudio for its ability to tie a knot between the written word and the audio (& video). It wasn’t till I saw a demo of the WebMon functionality is when I understood it could be the thing I need for DJ mixes.

With correctly written HTML, I can tell Hyperaudio what it should do, and with Mark’s help we had a prototype up and running.

Here is an example of the code from the quiver in the underground mix.

<li class="active" data-wm="$ilp.uphold.com/B69UrXkYeQPr">
<span data-m="0">Activator, I know you can (That kid chris mix) - Whatever girl</span></li>
<li data-wm="$ilp.uphold.com/3h66mKZLrgQZ"><span data-m="127000">Air traffic (Erik De Koning remix) - Three drives</span></li>
<li data-wm="$ilp.uphold.com/B69UrXkYeQPr"><span data-m="445000">Chinook - Markus Schulz pres. Dakota</span></li>
<li data-wm="$ilp.uphold.com/3h66mKZLrgQZ"><span data-m="632000">Opium (Quivver remix) - Jerome Isma-Ae &amp; Alastor</span></li>

Each tune has a time configured using the attribute data-m, this is  in milliseconds. As I have all the data in the old CUE files I created a long time ago. Mark helped me out with a nice script which saved me manually copying and pasting. (I also considered writing a XSLT to do the conversion). In between sleeping and relaxing with Covid, I got a number of mixes up, changed the theming and finally got to grips with the static file uploading process, and the results you can see on the site.

Current webmix site

Payment and royalties

You will also notice each tune/list item also has data=”wm” attribute with a $ilp (payment pointers). Currently they are pointing to myself and Mark Boas. Obviously I would change them to the payment pointers of the artists/producers/djs involved but I don’t know any which have them so far. Which leads nicely on to the next challenge for WebMix.

I did/do have a plan to do a mix with dance music from artists which have payment providers but that is still in the pipeline. Along side this, myself and Mark thought about some kind of database/airtable/spreadsheet/etc with payment pointers crossed linked to their discogs profile.

WebMix active on my site

Maybe this is something which could be done in the next grant for the web call for participation?

Back to the current experiment, here is Opium (Quivver Remix) – Jerome Isma-Ae Alastor. You could imagine one payment provider decided between all involved which could be used to pay for each time its played on the site. (I am very aware this is very simplex and the royalties of music is a total nightmare!) but the point of the payment pointer is to hide the complexity behind one simple payment pointer, how its divided afterwards is up to each of the parties involved. I’m imagining a management agent, organisation or even dare I say it DAO; responsible for the payment pointer. There’s already things like revshare, which means you can have multiple people/entities behind the payment pointer and theres interest in this space. Long tail economics certainly could benefit here.

Anyway its a long complex area which I’m best staying out of…?

The main point is its all working and expect more updates soon… I know Mark has other ideas, while I still need to get older mixes up. I also would like to tie the whole thing to something federated or at very least setup a activity-pub feed.

Maybe I should be more ill more often?

My own mixcloud, finally?

Mixing live in Skopje

I have been for a long time looking for an alternative to mixcloud. I have tried many things including some self hosted solutions like navidrome, subsonic, madsonic, airsonic and ampache. They have all been good except they are best for private sharing. I really wanted to use funkwhale but it was so geared up for single tracks it just didn’t make sense to run a node with my own mixes on it. There is so much I could suggest for  making these software/services better for DJs rather than musicians. A DJ version of funkwhale could be pretty cool, especially seeing the amount of DJs using Youtube and paying for Mixcloud premium to mix live during the pandemic. Heck you could even use web-monetization too (just done).

So with all this and finally thought I have the bandwidth and the storage, I just need a site and some simple software which can share the music files. So I decided to actually setup WordPress with it looking at the local file system (which I can easily have tons of storage). I was going to explore the static file generators again but decided to get something going.

Over the last few days between helping someone out with Linux and cryptocurrencies, I setup WordPress on my RaspberryPi 4 using Yunohost again. As its pretty much static, I think it makes sense.

So here is my own mixcloud site, which I’m still populating, but the latest mixes from my locked down, mixing out album are up complete with artwork. Expect to see more changes over time including a better audio player, more mixes and more everything.

Its not exactly a mixcloud replacement to be fair and my plans to use the .cue files and make better use of playlists, is put on hold for now. I’m sure there is audio plugin which will make use of them. Love to have UPnP and Subsonic apis access from wordpress, but I dream?

Do enjoy and let me know what you think could be improved.

Little update

Following my point about making it work for DJs and mixes. One of my biggest bug bears is playlists. I have been through many of the wordpress plugins for audio playback and I can’t find one which allows me to specify points in a long mix, when different music is played. Its simply a tracklist but all of the ones I have seen and tried are focused on single tracks. Meaning slicing the mix into pieces instead of marking out areas. None of them seemed to support CUE files or things like Ogg vorbis chapters. If there is one I should be looking at, do send it my way because it seems like such a simple thing to do, but I guess theres not enough interest to make it?

Another update

I have retired the old Mix site and replaced it with a new better one.
Learn more about the changes and WebMix.

Digital Italics WebMix

Replacing Mixcloud with Funkwhale

Funkwhale mixes

For a long while I have been threatening to leave Mixcloud in favour of hosting my own mixes. I looked around and thought funkwhale looks great as its a federated network for music. With some help from JonT, I started to scrape the metadata I stupidly forgot to keep for myself.

I installed Funkwhale on the Yunoserver but spent too much time trying to work out how to mount my NAS on the Yunoserver. I gave Navidrome but  decided it wasn’t right as there was no way to listen without logging in, so went back to Funkwhale and got things up and running.

Seems Funkwhale might not be the best solution for the mixes, plus the developer is looking for new maintainers recently. Its really setup for single tracks not mixes. I could upload mixes but my plan to use cue files, won’t work. The only place to put playlists is in the comments. I also need to do more digging as I can’t change the year of the mixes. More importantly, the public sharing is a bit broken for me. You should be able to listen to the radio but its not working for me

Funkwhale profile

As I get my head around it all but you can subscribe via RSS and if you’re using Mastodon or other fediverse applications, you can subscribe to this account: @digitalitalicmixes@mixes.cubicgarden.info.

Enjoy, I’m one step closer to self hosting my mixes.

Hello IndieWebCampEast

Republica 2019 and IndieWebCampBerlin 2019

Thanks to Chris Aldrich, I became aware of IndieWebCampEast

After the first one I attended in Berlin, it seemed like a good time to attend. Especially as I’m at home locked down like all of the UK right now.

When I first saw east, I did worry if it would mean a early morning start but of course its east as in America (GMT+5), meaning I still get my nice long sleep in. Whats not to love?

I have been wondering about the Indieweb community, especially with the increasing use of the fediverse and what decentralised models can provide to the public & civic space. Its also perfect timing as I had planned to have a play with Yunohost on my new Raspberry Pi4 on the weekend anyway.

Looking forward to seeing whats changed and meeting the new adventurers in the web space.

Ian Forrester's photo
Ian Forrester

:
RSVP yes
to IndieWebCampEast

Using Yuno hosting for all my fediverse needs?

My raspberrypi4 yunoserver

It was in a discussion with Derek Caelin who created the video Decentralised social networks vs the trolls. Who mentioned Yuno host while I mentioned how much trouble I was having getting Funkwhale working to replace mixcloud.

I had bought a raspberry pi 4 at the start of April to replace my raspberry pi 2 and maybe add something to the kitchen audio setup. But hadn’t really done much with it. So the other day while watching a film I built the case, downloaded the yunohost image on to a 128gig microSD card and got it all running.

Got to say Yuno host is pretty nice and easy to setup. The hardest part was getting the DNS all setup with one of my own domains. Now its kinda setup, I have been looking through the app catalogue and spotted many of the apps/services I wanted to run in docker such as Funkwhale, Calibre-web, Pixelfed, Zerotier, Wallabag, Mastodon, Matrix, etc, etc…

Currently having a bit of fiddle trying to setup the DNS records to allow multiple applications hosted on one system.

I’m impressed so far… Although I am thinking it could be so much better on a more powerful machine. I could use one of my older laptops instead, however I gather the performance will actually be better on the pi. To be fair with a gigabit ethernet network adaptive, I don’t need to worry about storage so much. Although I’m looking at maybe switching my Ubuntu server to Yuno if I can get everything I currently run working.

Expect to hear more as I start installing more services.