Fantastic almost-still-Friday, dear Slipmatians!
This week was a pretty interesting for Slipmat codebase. We did a major refactor to music-related features (which, as it sounds, touches a very large portion of the site) that allows us to tie better together many of the artist tools from planning to playing to aftermarketing. The new Stripe-integration is now also battle-tested in a real event; the first payments have been made!
I’ll expand on the big refactor after the hilights, so lets jump right in.
Week Notes
New Features
- Request system has had lots of love this week and it’s now published for everyone. Artists can enable requests and a new feature called Shout-outs (which are audio recordings or text messages for the artist to read during the show if they so wish) before the event and the public event page has now a widget for submissions.
- There is now a Track Collection link in the artist navigation that allows you to upload and manage playlists for Requests (and soon Script Studio). The uploading process is fully asynchronic so you can upload 500k tracks with no sweat, the system will process it in a queue in background. Unlike in v2 where your request library consisted of whatever one fine you uploaded, you can now have several different playlists and the request event can use any number of them. This means that you can decide to add no browseable tracks or just Trance tracks or just Rock tracks or maybe all of them – whatever you need. Track collection also syncs the music metadata and allows you to find and merge duplicates. This is very early days still, but the system is already very usable and better what v2 ever was to use in your events.
- The old Show Scripter labs experiment is renamed to Script Studio. (I know, I’m terrible at naming things.) This is a tool for you to plan (and later play out) your sets using building blocks like Jingles, Songs, Talk sections and show Sections. The scripts are tied to your scheduled events. At the moment the UI is still in need of much improvement and you only get the planning side of things but the idea here is that you can plan your whole show structure and the playlist in advance, and then in the playout mode, you’ll have tools like “Now Playing”, timers, and private show notes right there with you when you play. Then, after the event ends, you can publish the script track list as your set list (or, if you played some extra, you can just upload a history file from your DJ software). This, like most Slipmat tools, is designed to be fully multi-user so all artist members with event permissions can participate in the planning at the same time. As we only have the first half of the app working, and the UI still needs lots of work, Script Studio is behind the experimental_features flag at the moment. (Go to your user profile settings to turn those on if you want to test it!)
- There is a new “Allow emails from fanned artists” user setting. This is just the user setting for the moment, but we’ll use this later to allow artists to send email directly from Slipmat to their fans after the scheduled show to make aftermarketing easier. (We only speak of email for now, but the idea is to allow notifications and then let users themselves to decide if those should be native app notifications, emails, in-app notifications or absolutely nothing. This is coming later but the plumbing is in place.)
- As a mechanism for testing the upcoming tip payments in controllable and secure manner we added a Support button visible on the live page chat header. This allows users to send donations for Slipmat using the new integration. The system is simple and works great, it means we can continue integrating the Stripe Connect for artists. It allows you to connect your own Stripe account to Slipmat and then all the tips will go automatically into your own account. This is the last missing piece of v2 functionality we’re still working on – and coming soon.
Enhancements
- Artist dashboard is improved. It now shows drafts properly and overall all the information is cleaner and more consistent.
- Artist upcoming scheduled event detail page is much improved.
- Artist “Add setlist” and “Add recording” modals are cleaned up and improved.
- Homepage content for authenticated users is now smarter and upcoming and live shows are more prominent separated by tabs. We’ll keep iteratingt his further. Any comments and suggestions welcome!
Bugfixes
- Continuous integration post-deployment healthcheck was broken for a while but is now fixed again to be simpler and robust so deployments are now faster.
- Fixed an issue with Ad Hoc events being created automatically in certain situations where they shouldn’t when a scheduled show was near. The logic behind deciding if a connected artist stream is for an Ad Hoc event, Soundcheck, or a normal scheduled event (or just a random “hit the wrong button in OBS” is a bit murky but we’re doing pretty good now.
Known issues
I played my first show in a long time yesterday and uncovered way too many bugs that I wanted to. Want to list them here just for extra visibility.
- Links with special characters break when posted in chat. For example Dropbox share links reliably break when posted. This
will be fixed very soonis now fixed. - The new shoutout feature in requests app shows shoutouts as a playable audio file but also with a download button. The downloads do not work currently, it makes using the shoutout feature very annoying and difficult because you need to route the sould somehow to your mixer from the live page. This
will be fixed soonis now fixed. - Artist crew, including Roadies cannot currently make requests during the live show because they incorrectly see the artist managing dashboard instead of the user request view. This
will be fixed soonis fixed. - In some situations chat messages are not properly sent when posting. There are automated bug reports from the bug in our Sentry, and the actual issue is already known, but the cause is still a bit unclear. This
WILL be fixed soon, thois fixed.
Slipmat Music Database
Ever since 2016 when I first published our first free tool, the PlaylistConverter, we’ve handled all kinds of music-related data without actually caring too much about it. It’s just been text. And for PlaylistConverter it only needs to be text. But now, when Slipmat as a platform has pivoted from a “platform for DJs to live stream” to “platform for artists to plan, manage, play and market their work” (or something in those lines, I keep continuing of being very bad at marketing and naming things), the semantics and interconnectivity of the data means more and more.
When we have Darude - Sandstorm as a string in the database, we only have literally that; a string. But if we instead add a little bit of metadata to that string and make it an object like {'artist': 'Darude', 'song': 'Sandstorm'} we suddenly gain superpowers. This means we can now search the artist and the song across all public databases, map the exact playable link to Spotify and Youtube, pull information about the track itself to enrich the data with things like genres, album art, release year, credits, etc. Relational databases and data enrichment is not new at all but in the age of algorithms and AI this opens up tons of possibilities for good and ethical uses as well. We don’t need to steal your data or sell it to anyone, we don’t need to do anything shady to enric it to make more usable, we just need to store and organize the data better you want to publish and use on the site, for example in event set lists and in the request system.
In Slipmat v2 event set lists were stored as text, and request system used just strings and numbers. After this weeks major refactor we now handle all the music-related data smarter and we try to connect your own data as much as we can by indexing and enriching it where it makes sense. You still have all the control of what you want to publish but you can now have much more added value for your data than before – for free. The best part: all our APIs are free to use for all artists, you can build whatever on them as much as you like – it’s your data - only better!
This is all nice but very handwavy and high-level. Here are some concrete examples of what I’d like for us to build for you using the new refactored data:
- Richer artist and song data in chat and in the Request system, with automatically pulled artist photos, bio, links and links to purchase their music for example from Bandcamp.
- Automatic artist and music information in the Script Studion when building and playing. Things like artist details, related artists, related people, etc.
- Better “Now Playing” and similar functionality. Instead of just displaying text, we can display photos, links, whatever makes sense and makes the experience better.
- Better “you might like” recommendations for discovering new music, artists and likeminded people.
- Realtime TOP-40 lists for pulling all kinds of interesting information from Slipmat sets with set lists such as “top new rising artists/tracks”, etc.
For now, the major refactor mainly connects all artist-related tools to use similarily shaped data. It makes tools like Script Studio smarter because we can do things like autocomplete artist and track names, you don’t need to type that much. We can automatically turn planned scripts into set lists, and find duplicates from your Track Collection. Public and open databases like Musicbrainz and Discogs already have all the big data, we don’t want to reinvent nor duplicate that. We want to build connections to that data with yours in order to find out cool ways to discover and enjoy music.
This is the big philosophical idea and picture behind our this weeks refactor. The world needs more open APIs and ethical algorithms. Let’s build them!