<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"
    xmlns:fh="http://purl.org/syndication/history/1.0"
    xmlns:at="http://purl.org/atompub/tombstones/1.0">

    <title>Sockpuppet</title>
    
    <subtitle><![CDATA[<h2 id="None_h2_1_Sockpuppet">Sockpuppet<a href="#None_h2_1_Sockpuppet" class="toc_link"></a></h2>
<ol>
<li><em>n.</em> A puppet made from a sock or similar garment.</li>
<li><em>n.</em> (Internet) An alternate identity used by someone in order to appear as if they are someone else.</li>
<li><em>v.</em> To maintain one or more such alternate identities.</li>
</ol>
]]></subtitle>
    
    <link href="http://sockpuppet.band/feed?id=2156" rel="self" />
    
    <link href="http://sockpuppet.band/feed" rel="current" />
    <fh:archive/>
    

    <link href="https://busybee.superfeedr.com" rel="hub" />
    
    <link href="http://sockpuppet.band/feed?id=2071" rel="prev-archive" />
    
    
    <link href="http://sockpuppet.band/feed?id=1302" rel="next-archive" />
    
    <link href="http://sockpuppet.band/" />
    <id>tag:sockpuppet.band,2025-12-21:_all</id>
    <updated>2026-04-12T07:51:46+00:00</updated>

    

    <entry>
        
        <title>Blog: Where&#39;d your music go?!</title>
        <link href="http://sockpuppet.band/blog/2156-Where-d-your-music-go" rel="alternate" type="text/html" />
        <published>2025-10-02T18:48:22-07:00</published>
        <updated>2025-10-02T18:48:22-07:00</updated>
        <id>urn:uuid:c47916bc-18db-5fe2-bef6-4fe2391a1de3</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>Today I removed all my music, except <a href="http://sockpuppet.band/track/the-war-machine">The War Machine</a>, from Spotify, for the reasons explained in that song (and also <a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music">in this lengthy diatribe</a>)​.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>Today I removed all my music, except <a href="http://sockpuppet.band/track/the-war-machine">The War Machine</a>, from Spotify, for the reasons explained in that song (and also <a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music">in this lengthy diatribe</a>)<sup id="r_e2156_fn1"><a href="http://sockpuppet.band/blog/2156-Where-d-your-music-go#d_e2156_fn1" rel="footnote">1</a></sup>.</p><p>But doing so also required, for very annoying reasons, removing it from all other streaming platforms as well, because the distributor I was working with, TooLost, had no option for removing music from <em>just</em> one platform without deleting and re-uploading everything<sup id="r_e2156_fn2"><a href="http://sockpuppet.band/blog/2156-Where-d-your-music-go#d_e2156_fn2" rel="footnote">2</a></sup>.</p><p>So, when is my music going to get back onto the other streaming platforms? <a href="http://sockpuppet.band/blog/2388-Please-do-not-ask-me-about-streaming-distribution">Ehhh</a>.</p>

        
            <h3 id="2156_h3_1_Why-we-re-at-this-point">Why we&rsquo;re at this point<a href="http://sockpuppet.band/blog/2156-Where-d-your-music-go#2156_h3_1_Why-we-re-at-this-point" class="toc_link"></a></h3><p>The state of affairs for independent music distribution is a horror show. Every distributor I&rsquo;ve used has been a nightmare to work with in some way, and has ended up costing me far more in my dealings with them than I&rsquo;ve ever made back. I&rsquo;ve made probably around $100<sup id="r_e2156_fn3"><a href="http://sockpuppet.band/blog/2156-Where-d-your-music-go#d_e2156_fn3" rel="footnote">3</a></sup> in total over the past 20 years from streaming. It has cost me a <em>lot</em> more than $100 to make my music available on streaming<sup id="r_e2156_fn4"><a href="http://sockpuppet.band/blog/2156-Where-d-your-music-go#d_e2156_fn4" rel="footnote">4</a></sup>.</p><p>Meanwhile, the &ldquo;best&rdquo; month I&rsquo;ve ever had on streaming was the month after <a href="http://sockpuppet.band/blog/3123-Furality-is-gonna-be-amazing">Furality Somna</a>, where I got a brief surge of interest on Spotify, but not enough of one to actually get any of the sustainable characteristics that one would expect. The people who listened to my stuff didn&rsquo;t <em>keep</em> listening to it, my work never ended up in any recommendation feeds or popular playlists, and even with the amount of direct interest I got, I only ended up making around $7, which isn&rsquo;t even enough to receive a payment from my distributor. And it only pays for about two months of distribution fees anyway.</p><p>I&rsquo;ve also written extensively about <a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music">the problems with streaming platforms and Spotify in particular</a>, and that&rsquo;s not an industry I really want to support right now. In addition to Spotify&rsquo;s issues, I&rsquo;ve also learned of reasons to distrust Apple Music and Tidal, for example their <a href="https://tidal.com/partners/pioneerdj">partnerships</a> with <a href="https://rekordbox.com/en/2025/03/apple-music-support/">Rekordbox</a> which makes it so that DJs can stream artists&#39; music into their mixes without materially supporting said artists beyond &ldquo;exposure.&rdquo;</p><p>I&rsquo;ve also had great difficulty with getting my music onto streaming platforms to begin with these days. In addition to costing considerably more to get distribution than I can ever expect to receive in return, every distributor has succumbed to the problems with a glut of AI submissions, where they have lost all trust in musicians who haven&rsquo;t already made it big, and provide Kafka-esque hoops to jump through to prove that my music was made by me. This isn&rsquo;t <em>entirely</em> the fault of the distributors, but it <em>is</em> a symptom of a deeply broken industry.</p><p>I have also applied to many record labels but they only want to sign up-and-coming musicians, not ones with a deep catalog of what they see as unsuccessful releases, or they want people with a much larger social media presence and a fanbase which would be large enough for me to not need a label to begin with. I am not a social media darling (nor do I want to be), and I just plain don&rsquo;t have it in me to try to get what they want of me.</p><p>So I&rsquo;m focusing on what I have control over.</p><h3 id="2156_h3_2_Where-we-are-right-now">Where we are right now<a href="http://sockpuppet.band/blog/2156-Where-d-your-music-go#2156_h3_2_Where-we-are-right-now" class="toc_link"></a></h3><p>At the moment, my plan is to do the following:</p>
<ul>
<li>Continue to focus on <a href="http://sockpuppet.band/bandcamp">Bandcamp</a>, <a href="http://sockpuppet.band/mirlo">Mirlo</a>, <a href="http://sockpuppet.band/itch">itch.io</a>, and the other storefronts that value creators <em>and</em> listeners, and evangelizing a return to people <a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music#own-your-collection">owning their own collections</a></li>
<li>Switch to fully-self-managing the releases on my <a href="http://sockpuppet.band/youtube">YouTube</a> and <a href="http://sockpuppet.band/peertube">Peertube</a> channels, and hopefully at least keep my stuff available through YouTube Music in that way</li>
<li>Focus on building my audience through <a href="http://sockpuppet.band/live">live performances</a> and <a href="http://sockpuppet.band/commissions">commissions</a></li>
<li>Continue to work towards a <a href="https://beesbuzz.biz/blog/11155-A-fair-independent-streaming-platform">fair streaming future</a> and other grassroots efforts like <a href="https://kvrradio.com/">KVRR</a> and <a href="https://theindiebeat.fm/">TheIndieBeat</a></li>
</ul>
<h3 id="2156_h3_3_This-isn-t-permanent">This isn&rsquo;t permanent<a href="http://sockpuppet.band/blog/2156-Where-d-your-music-go#2156_h3_3_This-isn-t-permanent" class="toc_link"></a></h3><p>If someone can point me to a fair, ethically-managed distributor that <em>supports</em> independent musicians (rather than using the promise of winning the lottery to keep us constantly buying tickets), I would certainly consider reuploading my catalog somewhere.</p><p>What do I think counts as ethical in this case?</p>
<ul>
<li>Charging an affordable, sustainable amount for the distribution and maintenance of the catalog (even if this means both an annual fee and a royalty cut)</li>
<li>Providing reasonable tools for bulk import/upload of releases (rather than everything being an accessibility nightmare)</li>
<li>Providing <em>actual support</em> to artists who need it, not copy-pasted brush-off responses</li>
<li>Timely distribution of royalty payments, with regular (e.g. annual) lump-sum payments irrespective of minimum thresholds</li>
<li>The ability to pick and choose which streaming platforms works go onto, and the ability to change this later (with takedowns and redistributions on a per-platform basis)</li>
<li>Actually investigating claims of playlist fraud instead of categorically taking down entire catalogs based on a mere suspicion from a platform (and in the meantime, at most only suspending the suspected works on the suspected platforms, <em>not</em> a full takedown from every service)</li>
</ul>
<p>None of these feel very likely to happen in the foreseeable future. But also, the entire streaming music industry needs to change for me to want to really participate in it, and I don&rsquo;t see <em>that</em> happening either. Too much about how the industry works is based around the demands of the major labels in order to keep the major-label content available, even though their requirements ultimately end up working against <em>their</em> interests as well!</p><p>Alternately, if any of the streaming platforms were to allow artists to directly upload and self-distribute to them while still earning royalties<sup id="r_e2156_fn5"><a href="http://sockpuppet.band/blog/2156-Where-d-your-music-go#d_e2156_fn5" rel="footnote">5</a></sup>, that would be peachy.</p><h3 id="2156_h3_4_One-size-does-not-fit-all">One size does not fit all<a href="http://sockpuppet.band/blog/2156-Where-d-your-music-go#2156_h3_4_One-size-does-not-fit-all" class="toc_link"></a></h3><p>I know many musicians for whom this path would not make any sense. Last night at an open mic I was talking about this with a friend, and he was very surprised to hear about my experiences with streaming vs. sales; he makes <em>substantial</em> amounts of money from streaming, and very little from Bandcamp (and what he pays to get his stuff on Bandcamp hasn&rsquo;t paid for his Bandcamp earnings).</p><p>A big part of that is that he primarily records and releases covers of popular music. As a result, he ends up getting his audience from people looking for popular songs, and this led to a level of sustainability that works in his favor. This is also why Bandcamp has been a money pit for him, because mechanical licenses for purchase are significantly more expensive than those for streaming.</p><p>But by the same token, what works for other musicians has not worked for me. Why should I keep playing the game when I have 20+ years of experience telling me that it just plain isn&rsquo;t worthwhile for me to do so?</p><p>Anyway. I do not need streaming in order to <a href="http://sockpuppet.band/blog/2700-On-success">feel successful</a>. So for now I&rsquo;m opting out.</p><p>Maybe in the future this will change. But dealing with the stresses and frustration of streaming is the least important thing to me right now with everything else going on in my life.</p>
            
                <hr/><ol><li id="d_e2156_fn1"><p>Yes, I realize Daniel Ek &ldquo;stepped down&rdquo; as CEO, but only by becoming the chairman of the board. He is now essentially the CEO&rsquo;s <em>boss</em>, and still the majority shareholder, so this doesn&rsquo;t actually change anything vis-a-vis my issues with Spotify.&nbsp;<a href="/blog/2156-Where-d-your-music-go#r_e2156_fn1" rev="footnote">↩</a></p></li><li id="d_e2156_fn2"><p>I also had to pay $3 to do it because TooLost was holding my catalog hostage, but that&rsquo;s just pocket change in the grand scheme of things.&nbsp;<a href="/blog/2156-Where-d-your-music-go#r_e2156_fn2" rev="footnote">↩</a></p></li><li id="d_e2156_fn3"><p>Or rather, I&rsquo;ve had numbers in a database totalling around that amount, but I can&rsquo;t even withdraw a bunch of it because it&rsquo;s all in little pieces that are below their respective distributors&#39; payout thresholds, where they will sit forever.&nbsp;<a href="/blog/2156-Where-d-your-music-go#r_e2156_fn3" rev="footnote">↩</a></p></li><li id="d_e2156_fn4"><p>It&rsquo;s hard to put an actual number on it, but I do know I&rsquo;ve spent at least this much:&nbsp;<a href="/blog/2156-Where-d-your-music-go#r_e2156_fn4" rev="footnote">↩</a></p>
<ul>
<li>$225 for two albums distributed via CDBaby in the early days</li>
<li>$125 for an album distributed via TuneCore in the early days</li>
<li>At least $275 for the years I subscribed to DistroKid and TooLost</li>
<li>A few hundred bucks on SoundCloud Pro</li>
<li>A lot of time and effort and energy spent dealing with all this nonsense, and that isn&rsquo;t free and has probably taken years off my life with the stress</li>
</ul>
</li><li id="d_e2156_fn5"><p><a href="https://support.tidal.com/hc/en-us/articles/26542012438673-TIDAL-Upload">Tidal Upload</a>, sadly, <a href="https://support.tidal.com/hc/en-us/articles/26542012438673-TIDAL-Upload#h_01JRD4Y1E3FNVRJETXP7D9DDPQ">does not count</a>:&nbsp;<a href="/blog/2156-Where-d-your-music-go#r_e2156_fn5" rev="footnote">↩</a></p>
<blockquote>
<p><strong>Does the music that I upload earn royalties on TIDAL?</strong></p><p>No, your uploaded files do not earn royalties.</p></blockquote>
</li></ol>
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=streaming">#Streaming</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=Spotify">#Spotify</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=business">#Business</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="Streaming" label="streaming" />
        
        <category term="Spotify" label="Spotify" />
        
        <category term="Business" label="business" />
        

        

    </entry>
    <entry>
        
        <title>Blog: Self-hosted streaming CDN</title>
        <link href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN" rel="alternate" type="text/html" />
        <published>2025-09-26T20:22:51-07:00</published>
        <updated>2025-09-26T20:22:51-07:00</updated>
        <id>urn:uuid:2a025873-f8cb-59b0-a816-98cf02912659</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>Performers who do streaming-based performances on VRChat and other places have a few options for actually providing their stream. Once upon a time it was preetty common for people to use Twitch or YouTube Live, but those are now being locked down due to advertising considerations. So, many people currently use <a href="https://vrcdn.live/">VRCDN</a>, an inexpensive but limited hosted service that you have to pay monthly for. But for folks with a bit more technical acumen, there&rsquo;s another choice, <a href="https://owncast.online/">Owncast</a>, which is basically a self-hosted Twitch-like.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>Performers who do streaming-based performances on VRChat and other places have a few options for actually providing their stream. Once upon a time it was preetty common for people to use Twitch or YouTube Live, but those are now being locked down due to advertising considerations. So, many people currently use <a href="https://vrcdn.live/">VRCDN</a>, an inexpensive but limited hosted service that you have to pay monthly for. But for folks with a bit more technical acumen, there&rsquo;s another choice, <a href="https://owncast.online/">Owncast</a>, which is basically a self-hosted Twitch-like.</p><p>Here&rsquo;s how I have mine set up and how I run it for (basically<sup id="r_e2089_fn1"><a href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#d_e2089_fn1" rel="footnote">1</a></sup>) free.</p>

        
            <h3 id="2089_h3_1_Local-server-origin">Local server (origin)<a href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#2089_h3_1_Local-server-origin" class="toc_link"></a></h3><p>First off, I have an Intel NUC running Linux<sup id="r_e2089_fn2"><a href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#d_e2089_fn2" rel="footnote">2</a></sup> on my home network. This computer runs a bunch of my home services but mostly sits idle. Its CPU is a 2.7GHz i7-8559U, which is sufficient to transcode my stream to a number of bitrates and resolutions simultaneously. I currently have the following bitrates configured:</p>
<ul>
<li>Original/raw stream (as configured in OBS; usually 1080p60 @ 6000 Kbps)</li>
<li>1080p60 @ 4500 Kbps</li>
<li>720p30 @ 2000 Kbps</li>
<li>360p24 @ 1000 Kbps</li>
<li>180p24 @ 500 Kbps</li>
</ul>
<p>In theory I should also be able to configure it to use Intel Quick Sync for a bit lower CPU utilization, although I haven&rsquo;t gone through the rigmarole to make that happen, as it hasn&rsquo;t been necessary.</p><p>Anyway, Owncast is running on its own user account, creatively called <code>owncast</code>. To make the server automatically start up, I have the following systemd unit file:</p><figure class="blockcode"><figcaption>/home/owncast/.config/system/user/owncast.service</figcaption><pre class="highlight" data-language="systemd" data-line-numbers><span class="line" id="e2089cb1L1"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb1L1"></a><span class="line-content"><span class="k">[Unit]</span></span></span>
<span class="line" id="e2089cb1L2"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb1L2"></a><span class="line-content"><span class="na">Description</span><span class="o">=</span><span class="s">Owncast Service</span></span></span>
<span class="line" id="e2089cb1L3"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb1L3"></a><span class="line-content"></span></span>
<span class="line" id="e2089cb1L4"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb1L4"></a><span class="line-content"><span class="k">[Service]</span></span></span>
<span class="line" id="e2089cb1L5"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb1L5"></a><span class="line-content"><span class="na">WorkingDirectory</span><span class="o">=</span><span class="s">/home/owncast/owncast</span></span></span>
<span class="line" id="e2089cb1L6"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb1L6"></a><span class="line-content"><span class="na">ExecStart</span><span class="o">=</span><span class="s">/home/owncast/owncast/owncast</span></span></span>
<span class="line" id="e2089cb1L7"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb1L7"></a><span class="line-content"><span class="na">Restart</span><span class="o">=</span><span class="s">always</span></span></span>
<span class="line" id="e2089cb1L8"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb1L8"></a><span class="line-content"><span class="na">RestartSec</span><span class="o">=</span><span class="s">5</span></span></span>
<span class="line" id="e2089cb1L9"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb1L9"></a><span class="line-content"></span></span>
<span class="line" id="e2089cb1L10"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb1L10"></a><span class="line-content"><span class="k">[Install]</span></span></span>
<span class="line" id="e2089cb1L11"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb1L11"></a><span class="line-content"><span class="na">WantedBy</span><span class="o">=</span><span class="s">default.target</span></span></span>
</pre></figure><p>To make this run, I had to enable lingering for the account, with <code>sudo loginctl enable-linger owncast</code> from an administrative user, and <code>systemctl --user enable owncast.service</code> from the owncast account.</p><h3 id="2089_h3_2_Proxy-server">Proxy server<a href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#2089_h3_2_Proxy-server" class="toc_link"></a></h3><p>The next thing to do was to expose this server to the greater Internet. There&rsquo;s a few ways you can go about doing this. The most straightforward, if you have an ISP that allows it, is to set up your home router to forward a particular port to the Owncast instance. However, many ISPs do not allow you to run servers this way, and even though mine does, I wasn&rsquo;t super comfortable with the idea of exposing a network port to the wider Internet or with having my home IP address be part of any public Internet service.</p><p>However, I already have a VPS with <a href="https://linode.com/">Akamai Cloud</a> which I use to run all of my websites. So, I set up an ssh tunnel (specifically using <a href="https://www.harding.motd.ca/autossh/">autossh</a> to automatically restart the connection if it drops). To that end, I made a second systemd unit:</p><figure class="blockcode"><figcaption>/home/owncast/.config/systemd/user/owncast-tunnel.service</figcaption><pre class="highlight" data-language="systemd" data-line-numbers><span class="line" id="e2089cb2L1"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb2L1"></a><span class="line-content"><span class="k">[Unit]</span></span></span>
<span class="line" id="e2089cb2L2"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb2L2"></a><span class="line-content"><span class="na">Description</span><span class="o">=</span><span class="s">Owncast ssh tunnel</span></span></span>
<span class="line" id="e2089cb2L3"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb2L3"></a><span class="line-content"></span></span>
<span class="line" id="e2089cb2L4"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb2L4"></a><span class="line-content"><span class="k">[Service]</span></span></span>
<span class="line" id="e2089cb2L5"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb2L5"></a><span class="line-content"><span class="na">ExecStart</span><span class="o">=</span><span class="s">autossh -NT -R 29929:localhost:8080 MYSERVER.example.com</span></span></span>
<span class="line" id="e2089cb2L6"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb2L6"></a><span class="line-content"><span class="na">Restart</span><span class="o">=</span><span class="s">always</span></span></span>
<span class="line" id="e2089cb2L7"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb2L7"></a><span class="line-content"><span class="na">RestartSec</span><span class="o">=</span><span class="s">5</span></span></span>
<span class="line" id="e2089cb2L8"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb2L8"></a><span class="line-content"></span></span>
<span class="line" id="e2089cb2L9"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb2L9"></a><span class="line-content"><span class="k">[Install]</span></span></span>
<span class="line" id="e2089cb2L10"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb2L10"></a><span class="line-content"><span class="na">WantedBy</span><span class="o">=</span><span class="s">default.target</span></span></span>
</pre></figure><p>where <code>MYSERVER.example.com</code> is the actual hostname of my VPS. I enabled this service with <code>systemctl --user enable owncast-tunnel.service</code> and now localhost connections to 29929 on my VPS connect to port 8080 on my NUC. (No need for Tailscale!)</p><p>Finally, I set up a caching reverse proxy for <a href="https://live.sockpuppet.band">my owncast server</a>. This is how I did it in nginx:</p><figure class="blockcode"><figcaption>/etc/nginx/vhosts-enabled/live.sockpuppet.band</figcaption><pre class="highlight" data-language="nginx" data-line-numbers><span class="line" id="e2089cb3L1"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L1"></a><span class="line-content"><span class="k">server</span><span class="w"> </span><span class="p">{</span></span></span>
<span class="line" id="e2089cb3L2"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L2"></a><span class="line-content"><span class="w">    </span><span class="kn">listen</span><span class="w"> </span><span class="mi">80</span><span class="p">;</span></span></span>
<span class="line" id="e2089cb3L3"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L3"></a><span class="line-content"><span class="w">    </span><span class="kn">listen</span><span class="w"> </span><span class="s">[::]:80</span><span class="p">;</span></span></span>
<span class="line" id="e2089cb3L4"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L4"></a><span class="line-content"><span class="w">    </span><span class="kn">server_name</span><span class="w"> </span><span class="s">live.sockpuppet.band</span><span class="p">;</span></span></span>
<span class="line" id="e2089cb3L5"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L5"></a><span class="line-content"><span class="w">    </span><span class="kn">return</span><span class="w"> </span><span class="mi">301</span><span class="w"> </span><span class="s">https://</span><span class="nv">$host$request_uri</span><span class="p">;</span></span></span>
<span class="line" id="e2089cb3L6"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L6"></a><span class="line-content"><span class="p">}</span></span></span>
<span class="line" id="e2089cb3L7"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L7"></a><span class="line-content"></span></span>
<span class="line" id="e2089cb3L8"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L8"></a><span class="line-content"><span class="k">proxy_cache_path</span><span class="w"> </span><span class="s">/var/tmp/live_sockpuppet</span><span class="w"> </span><span class="s">levels=1:2</span><span class="w"> </span><span class="s">keys_zone=live_sockpuppet:10m</span><span class="w"> </span><span class="s">max_size=10g</span></span></span>
<span class="line" id="e2089cb3L9"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L9"></a><span class="line-content"><span class="w">                 </span><span class="s">inactive=60m</span><span class="w"> </span><span class="s">use_temp_path=off</span><span class="p">;</span></span></span>
<span class="line" id="e2089cb3L10"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L10"></a><span class="line-content"></span></span>
<span class="line" id="e2089cb3L11"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L11"></a><span class="line-content"><span class="k">server</span><span class="w"> </span><span class="p">{</span></span></span>
<span class="line" id="e2089cb3L12"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L12"></a><span class="line-content"><span class="w">    </span><span class="kn">server_name</span><span class="w"> </span><span class="s">live.sockpuppet.band</span><span class="p">;</span></span></span>
<span class="line" id="e2089cb3L13"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L13"></a><span class="line-content"><span class="w">    </span><span class="kn">listen</span><span class="w"> </span><span class="mi">443</span><span class="w"> </span><span class="s">ssl</span><span class="p">;</span></span></span>
<span class="line" id="e2089cb3L14"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L14"></a><span class="line-content"><span class="w">    </span><span class="kn">ssl_certificate</span><span class="w"> </span><span class="s">/path/to/sockpuppet.band.crt</span><span class="p">;</span></span></span>
<span class="line" id="e2089cb3L15"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L15"></a><span class="line-content"><span class="w">    </span><span class="kn">ssl_certificate_key</span><span class="w"> </span><span class="s">/path/to/sockpuppet.band.key</span><span class="p">;</span></span></span>
<span class="line" id="e2089cb3L16"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L16"></a><span class="line-content"></span></span>
<span class="line" id="e2089cb3L17"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L17"></a><span class="line-content"><span class="w">    </span><span class="kn">location</span><span class="w"> </span><span class="s">/</span><span class="w"> </span><span class="p">{</span></span></span>
<span class="line" id="e2089cb3L18"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L18"></a><span class="line-content"><span class="w">        </span><span class="kn">proxy_set_header</span><span class="w"> </span><span class="s">Host</span><span class="w"> </span><span class="nv">$host</span><span class="p">;</span></span></span>
<span class="line" id="e2089cb3L19"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L19"></a><span class="line-content"><span class="w">        </span><span class="kn">proxy_set_header</span><span class="w"> </span><span class="s">X-Forwarded-Host</span><span class="w"> </span><span class="nv">$host</span><span class="p">;</span></span></span>
<span class="line" id="e2089cb3L20"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L20"></a><span class="line-content"><span class="w">        </span><span class="kn">proxy_set_header</span><span class="w"> </span><span class="s">X-Forwarded-Server</span><span class="w"> </span><span class="nv">$host</span><span class="p">;</span></span></span>
<span class="line" id="e2089cb3L21"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L21"></a><span class="line-content"><span class="w">        </span><span class="kn">proxy_set_header</span><span class="w"> </span><span class="s">X-Forwarded-Proto</span><span class="w"> </span><span class="nv">$scheme</span><span class="p">;</span></span></span>
<span class="line" id="e2089cb3L22"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L22"></a><span class="line-content"><span class="w">        </span><span class="kn">proxy_set_header</span><span class="w"> </span><span class="s">X-Real-IP</span><span class="w"> </span><span class="nv">$remote_addr</span><span class="p">;</span></span></span>
<span class="line" id="e2089cb3L23"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L23"></a><span class="line-content"><span class="w">        </span><span class="kn">proxy_set_header</span><span class="w"> </span><span class="s">X-Forwarded-For</span><span class="w"> </span><span class="nv">$proxy_add_x_forwarded_for</span><span class="p">;</span></span></span>
<span class="line" id="e2089cb3L24"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L24"></a><span class="line-content"><span class="w">        </span><span class="kn">proxy_http_version</span><span class="w"> </span><span class="mi">1</span><span class="s">.1</span><span class="p">;</span></span></span>
<span class="line" id="e2089cb3L25"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L25"></a><span class="line-content"><span class="w">        </span><span class="kn">proxy_set_header</span><span class="w"> </span><span class="s">Upgrade</span><span class="w"> </span><span class="nv">$http_upgrade</span><span class="p">;</span></span></span>
<span class="line" id="e2089cb3L26"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L26"></a><span class="line-content"><span class="w">        </span><span class="kn">proxy_set_header</span><span class="w"> </span><span class="s">Connection</span><span class="w"> </span><span class="nv">$connection_upgrade</span><span class="p">;</span></span></span>
<span class="line" id="e2089cb3L27"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L27"></a><span class="line-content"><span class="w">        </span><span class="kn">proxy_pass</span><span class="w"> </span><span class="s">http://127.0.0.1:29929</span><span class="p">;</span></span></span>
<span class="line" id="e2089cb3L28"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L28"></a><span class="line-content"><span class="w">        </span><span class="kn">proxy_cache</span><span class="w"> </span><span class="s">live_sockpuppet</span><span class="p">;</span></span></span>
<span class="line" id="e2089cb3L29"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L29"></a><span class="line-content"><span class="w">    </span><span class="p">}</span></span></span>
<span class="line" id="e2089cb3L30"><a class="line-number" href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#e2089cb3L30"></a><span class="line-content"><span class="p">}</span></span></span>
</pre></figure><p>This caching configuration means that this edge server only needs to proxy each HLS segment from my home network once, so in theory I can get a full gigabit of upstream from my VPS without overly burdening my home connection (although my home connection has plenty of bandwidth to spare, all the same).</p><h3 id="2089_h3_3_Wider-distribution-with-a-CDN">Wider distribution with a CDN<a href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#2089_h3_3_Wider-distribution-with-a-CDN" class="toc_link"></a></h3><p>This is optional, but I also use <a href="https://cloudflare.com/">Cloudflare CDN</a> for DDOS and bot mitigation, as well as better caching performance worldwide. So far I&rsquo;ve never come even <em>remotely</em> close to exceeding the bandwidth capacity of my VPS (which should theoretically be able to serve around 200 simultaneous viewers), but Cloudflare&rsquo;s free tier means I don&rsquo;t have to worry about scaling at all.</p><p>I&rsquo;m not a huge fan of Cloudflare for a number of reasons, but it&rsquo;s made it a lot easier for me to deal with the constant deluge of AI bot traffic that&rsquo;s been causing me so much stress lately, and having a proper geographically-distributed CDN is a nice bonus.</p><p>In theory, if your ISP allows running servers, you could also configure Cloudflare to talk directly to your home router, although I believe doing arbitrary port forwards requires a paid plan.</p><h3 id="2089_h3_4_Finally-streaming">Finally, streaming!<a href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#2089_h3_4_Finally-streaming" class="toc_link"></a></h3><p>To send a stream out, instead of using the public-facing hostname (live.sockpuppet.band), I connect OBS to the local IP address, so that I don&rsquo;t have to go out to the public Internet just to be routed back home. This way I also don&rsquo;t have to expose Owncast&rsquo;s RTMP port to the public Internet, which gives me better security. On the minus side, this means I cannot easily share my server with others to allow others to stream with my infrastructure, but that&rsquo;s never come up. If I ever wanted to do a cooperative stream with someone, I could use a WebRTC proxy such as <a href="https://vdo.ninja/">VDO.ninja</a>, but setting that up is outside the scope of this blog post.</p><p>Anyway, when someone connects to <a href="https://live.sockpuppet.band">my owncast</a> they are viewing it through Cloudflare, which pulls the data from my VPS, which in turn proxies it over the SSH tunnel to the Owncast instance running on my device at home. The raw stream (used, for example, by a VRChat in-world player) is available at <code>https://live.sockpuppet.band/hls/stream.m3u8</code>.</p><h3 id="2089_h3_5_How-to-roll-your-own-streaming-C">How to roll your own streaming CDN<a href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN#2089_h3_5_How-to-roll-your-own-streaming-C" class="toc_link"></a></h3><p>Okay so let&rsquo;s say you just want to roll your own VRCDN-like thing, and don&rsquo;t care about having your streaming box be directly on your local network. Here&rsquo;s what I&rsquo;d do for that:</p>
<ol>
<li>Set up a VPS of some sort, even one which only runs when you need it to (which both DigitalOcean and Linode/Akamai support)</li>
<li>Install <a href="https://owncast.online/">owncast</a> on it</li>
<li>Install nginx or apache as a fronting webserver, and have it just reverse proxy into Owncast (so you can run Owncast on port 80/443 without having to run Owncast itself as root)</li>
<li>Front the server with Cloudflare, and have it cache aggressively</li>
</ol>
<p>For streaming you&rsquo;ll need to connect directly to the server by IP address (or by having a hostname that&rsquo;s <em>not</em> Cloudflare-proxied), but otherwise you&rsquo;re good to go from here.</p><p>In such a setup you&rsquo;ll probably need to limit the bitrates that you provide.</p><p>Anyway, a suitably-capable VPS will cost around 5.4¢/hour while it&rsquo;s running, and theoretically be able to support hundreds, if not thousands, of simultaneous viewers.</p>
            
                <hr/><ol><li id="d_e2089_fn1"><p>It&rsquo;s only basically free because I already have a public Internet server I run my websites on and a local computer I can use for Owncast. If you don&rsquo;t already have a VPS of some sort, my particular setup won&rsquo;t work for you.&nbsp;<a href="/blog/2089-Self-hosted-streaming-CDN#r_e2089_fn1" rev="footnote">↩</a></p></li><li id="d_e2089_fn2"><p>All of this could also be run on Windows or macOS, but setting up a persistent server and ssh tunnel on those platforms is not something I&rsquo;ve had to internalize.&nbsp;<a href="/blog/2089-Self-hosted-streaming-CDN#r_e2089_fn2" rev="footnote">↩</a></p></li></ol>
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=technology">#Technology</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=owncast">#Owncast</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=streaming">#Streaming</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=VRChat">#VRChat</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="Technology" label="technology" />
        
        <category term="Owncast" label="owncast" />
        
        <category term="Streaming" label="streaming" />
        
        <category term="VRChat" label="VRChat" />
        

        

    </entry>
    <entry>
        
        <title>Blog: Hello Internet Archive!</title>
        <link href="http://sockpuppet.band/blog/1238-Hello-Internet-Archive" rel="alternate" type="text/html" />
        <published>2025-09-26T13:41:09-07:00</published>
        <updated>2025-09-26T13:41:09-07:00</updated>
        <id>urn:uuid:a15a1b9d-1b9d-5590-8ba4-d56cbc008a11</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>Today I had my first gig with <a href="https://archive.org/">the Internet Archive</a> in their <a href="https://blog.archive.org/2025/08/20/calling-all-musicians-mini-concerts-at-the-internet-archive/">mini concerts series</a>. It was a really good experience (and if you&rsquo;re a musician, especially one who performs online, I urge you to sign up for it yourself!) and I&rsquo;d like to share some thoughts with folks in general! (And if anyone from IA is reading this, hello!!!!)</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>Today I had my first gig with <a href="https://archive.org/">the Internet Archive</a> in their <a href="https://blog.archive.org/2025/08/20/calling-all-musicians-mini-concerts-at-the-internet-archive/">mini concerts series</a>. It was a really good experience (and if you&rsquo;re a musician, especially one who performs online, I urge you to sign up for it yourself!) and I&rsquo;d like to share some thoughts with folks in general! (And if anyone from IA is reading this, hello!!!!)</p>

        
            <h3 id="1238_h3_1_The-show">The show<a href="http://sockpuppet.band/blog/1238-Hello-Internet-Archive#1238_h3_1_The-show" class="toc_link"></a></h3><p>As usual I performed from a VR space using <a href="https://fluffy.itch.io/critter-avatar">my avatar</a><sup id="r_e1238_fn1"><a href="http://sockpuppet.band/blog/1238-Hello-Internet-Archive#d_e1238_fn1" rel="footnote">1</a></sup>, which was a first for them. Unfortunately my hand tracking setup wasn&rsquo;t working (you can read about those woes over on <a href="https://beesbuzz.biz/blog/12167-VR-hand-tracking-update">my main blog</a>) but I don&rsquo;t think it really mattered. I also finally got to make use of <a href="http://sockpuppet.band/blog/3183-VR-performance-stuff">my new audio setup</a> for an actual show (having done a couple of dry runs in VRChat over the past week) and I got a lot praise for the audio quality, so that was super nice to hear.</p><p>I played acoustic versions of <a href="http://sockpuppet.band/track/come-out">Come Out</a>, <a href="http://sockpuppet.band/track/behind-a-mask">Behind a Mask</a>, and <a href="http://sockpuppet.band/track/adding-up-to-nothing">Adding Up to Nothing</a>, and all three songs went over really well. I also took a recording which I&rsquo;ll be posting on my <a href="http://sockpuppet.band/live/">performances section</a> at some point, and it will also appear on <a href="https://archive.org/details/essential-music-concerts-from-home">their own performance archive</a>.</p><p>Afterwards they invited me to stick around for their status meeting so I could hear about a lot of the amazing work they&rsquo;re doing. Back when I was a software engineer I&rsquo;d actually considered applying for a job with them, and this whole thing has me thinking I&rsquo;d like to do that again! Even though I&rsquo;m too disabled to work a full-time job anymore. And super burned out on software engineering. 🙃 But Mark Graham, the director of <a href="https://web.archive.org/">the Wayback Machine</a>, said that they take all kinds, so maybe there would be something there for me anyway. I&rsquo;ll have to look at their open job listings.</p><h3 id="1238_h3_2_Preservation">Preservation<a href="http://sockpuppet.band/blog/1238-Hello-Internet-Archive#1238_h3_2_Preservation" class="toc_link"></a></h3><p>Anyway. I definitely want to share some thoughts about the Internet Archive. I am super glad that it exists and that they specifically operate like a library, <em>not</em> like a tech company, because it&rsquo;s such an amazing resource for everyone out there, especially when it comes to preserving open-license and public-domain content, as well as abandoned/lost media.</p><p>A while back I started to write an <a href="https://beesbuzz.biz/blog/16535-Building-a-lyric-search-engine">AI-driven lyric search engine</a> so that I could find a song that I&rsquo;d had stuck in my head and couldn&rsquo;t remember the name of. Eventually I used my human brain, and not AI, to remember enough context cues to <a href="https://beesbuzz.biz/blog/6748-I-FOUND-IT">track it down</a>; the song was &ldquo;Lolita&rdquo; by Moneyshot, off their debut album Bliss. This music is, as far as I can tell, completely lost to the world, as is everything about that band.</p><p>But fortunately, I could remember enough things about the album to track things down; I had bought this album from CDBaby back when they were an online record store and not just one of many cogs in a <a href="http://sockpuppet.band/blog/2388-Please-do-not-ask-me-about-streaming-distribution">corrupt machine</a>, and CDBaby&rsquo;s record store had a very specific and easy-to-remember URL scheme (which feels like a <em>luxury</em> today). So with just a little more work I was able to find <a href="https://web.archive.org/web/20021122121254/http://cdbaby.com/cd/moneyshot">the original listing page</a> and from there I was able to get <a href="https://web.archive.org/web/20021122163711/http://www.moneyshot.to/">the band&rsquo;s website</a><sup id="r_e1238_fn2"><a href="http://sockpuppet.band/blog/1238-Hello-Internet-Archive#d_e1238_fn2" rel="footnote">2</a></sup>. All thanks to the Internet Archive.</p><p>I&rsquo;ve also been trying to recover a bunch of lost media as well. For example, back in grad school, a friend of mine was releasing weird abstract electronic music on hand-burned CD-Rs. There is absolutely <em>no</em> information about him or his music anywhere online as far as I can find. So I <a href="https://archive.org/details/GYP-abadmeditation">took action</a><sup id="r_e1238_fn3"><a href="http://sockpuppet.band/blog/1238-Hello-Internet-Archive#d_e1238_fn3" rel="footnote">3</a></sup>. I also intend to take such action on so many other CDs that I own which are impossible to find online, this lost media from a time when music meant something.</p><p>Internet Archive also reminded me of <a href="https://archive.org/details/TheVervePipe">a band I loved back in college</a>, and how their sound has evolved over the years was a <em>direct</em> inspiration to <a href="http://sockpuppet.band/track/valley-highway">the final track on Transitions</a>, as well as much of the sound of that album<sup id="r_e1238_fn4"><a href="http://sockpuppet.band/blog/1238-Hello-Internet-Archive#d_e1238_fn4" rel="footnote">4</a></sup>.</p><h3 id="1238_h3_3_My-personal-efforts">My personal efforts<a href="http://sockpuppet.band/blog/1238-Hello-Internet-Archive#1238_h3_3_My-personal-efforts" class="toc_link"></a></h3><p>Most of my websites run on my own platform, <a href="https://publ.beesbuzz.biz/">Publ</a>, that I designed <em>specifically</em> to make sure that it&rsquo;s as archival-friendly as possible. Pagination is stable, nearly everything is done with server-side rendering, and image renditions<sup id="r_e1238_fn5"><a href="http://sockpuppet.band/blog/1238-Hello-Internet-Archive#d_e1238_fn5" rel="footnote">5</a></sup> are generated in a cache-friendly way, ensuring that the right rendition is served up based on whatever render spec was provided at the time the page was served up.</p><p>There&rsquo;s also a helper tool I wrote, <a href="https://github.com/PlaidWeb/Pushl">Pushl</a>, which helps to maintain links between sites, particularly with protocols like <a href="https://indieweb.org/webmention">Webmention</a>, but another thing it can do is automatically ping the Wayback Machine with every webpage it sees, ensuring that things get archived if possible. Because the web is nothing if it cannot be preserved and cached and stored for later and remain open.</p><p>My website is also built such that the Internet Archive can find and preserve the public previews of my music. I use another tool I wrote, <a href="https://fluffy.itch.io/bandcrash">Bandcrash</a>, to generate the preview players, and have some glue to import Bandcrash&rsquo;s output everywhere on this site. So in theory, when the Wayback Machine next crawls this website<sup id="r_e1238_fn6"><a href="http://sockpuppet.band/blog/1238-Hello-Internet-Archive#d_e1238_fn6" rel="footnote">6</a></sup>, everything will be preserved for later, <em>including</em> the player, which is also built to be IA-crawlable.</p><p>I am also working on <a href="https://beesbuzz.biz/blog/11155-A-fair-independent-streaming-platform">an idea for an indie-friendly streaming system</a> &mdash; think RSS but for Spotify-like purposes &mdash; and I have prototypical <a href="https://microformats.org/">microformats</a> throughout my website to facilitate this, as well as a design for an overarching music/streaming syndication format that makes use of these microformats, as well as providing an easier-to-parse JSON rendition. (There are technical reasons why I&rsquo;m not simply extending RSS for this purpose.)</p><p>I also intend, at some point, to upload my entire discography to the Internet Archive, because as I&rsquo;ve said <a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music">before</a>, my main interest is in gaining listeners and people who are willing to support me in ways <em>other</em> than going through <a href="http://sockpuppet.band/track/the-war-machine">the war machine</a>, and I care more about my stuff being heard and preserved than I do about it making me a millionaire. I <em>have</em> enough money to live on (thanks to my aforementioned past as a software engineer), what I <em>need</em> is the <a href="http://sockpuppet.band/blog/2700-On-success">satisfaction of feeling successful</a>, and also I need to know that my music will outlast me and my frail, fleshy self.</p><h3 id="1238_h3_4_In-conclusion">In conclusion<a href="http://sockpuppet.band/blog/1238-Hello-Internet-Archive#1238_h3_4_In-conclusion" class="toc_link"></a></h3><p>The Internet Archive is amazing, and we should all do what we can to support it, for the good of the future.</p>
            
                <hr/><ol><li id="d_e1238_fn1"><p>Specifically a version where I&rsquo;ve added clothing, which will be coming as a free update sometime soon.&nbsp;<a href="/blog/1238-Hello-Internet-Archive#r_e1238_fn1" rev="footnote">↩</a></p></li><li id="d_e1238_fn2"><p>Unfortunately, this is about all the information I can find out about them. Like many early-2000s indie bands they went out of their way to be super mysterious so I don&rsquo;t know if any of the members (if there even <em>are</em> multiple members &mdash; I&rsquo;m far from the first to be this kind of totally-a-real-band-I-swear artist!) went on to keep making music under other names.&nbsp;<a href="/blog/1238-Hello-Internet-Archive#r_e1238_fn2" rev="footnote">↩</a></p></li><li id="d_e1238_fn3"><p>Unfortunately the name he released under has Not Aged Well, and also the music is&hellip; well, it&rsquo;s very much of its time. I love &ldquo;Praying Mantis&rdquo; though, or at least the way he performed it live.&nbsp;<a href="/blog/1238-Hello-Internet-Archive#r_e1238_fn3" rev="footnote">↩</a></p></li><li id="d_e1238_fn4"><p>Although most of the sonic inspiration comes from <a href="https://miraclesofmodernscience.com/">Miracles of Modern Science</a>, an incredible band that you should check out.&nbsp;<a href="/blog/1238-Hello-Internet-Archive#r_e1238_fn4" rev="footnote">↩</a></p></li><li id="d_e1238_fn5"><p>Incidentally, one of my roles as a software engineer was to write the scaler and design the next-generation image rendering service for an online-bookstore-turned-ecommerce-giant, and a previous role there was to work on their automatic scanned-book-to-ebook-conversion effort for the first majorly-successful ebook platform out there. The fact that Internet Archive has been doing similar things but in a much more open-culture and preservationist way makes me <em>very</em> happy.&nbsp;<a href="/blog/1238-Hello-Internet-Archive#r_e1238_fn5" rev="footnote">↩</a></p></li><li id="d_e1238_fn6"><p>And writing this post reminded me that I needed to re-ping the crawler for everything, since the last crawl was from before I switched to the Bandcrash embeds from Bandcamp, which is <em>not</em> IA-friendly!&nbsp;<a href="/blog/1238-Hello-Internet-Archive#r_e1238_fn6" rev="footnote">↩</a></p></li></ol>
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=music">#Music</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=performances">#Performances</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=Internet+Archive">#InternetArchive</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=archive.org">#ArchiveOrg</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=preservation">#Preservation</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="Music" label="music" />
        
        <category term="Performances" label="performances" />
        
        <category term="InternetArchive" label="Internet Archive" />
        
        <category term="ArchiveOrg" label="archive.org" />
        
        <category term="Preservation" label="preservation" />
        

        

    </entry>
    <entry>
        
        <title>Blog: VR performance stuff</title>
        <link href="http://sockpuppet.band/blog/3183-VR-performance-stuff" rel="alternate" type="text/html" />
        <published>2025-09-07T22:06:39-07:00</published>
        <updated>2026-01-24T09:01:40+00:00</updated>
        <id>urn:uuid:373513c2-f1fc-5791-9113-b1a3e01da404</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>Today was the second day of VRelium Enchanted, which <a href="http://sockpuppet.band/live/3348-VRelium-Enchanted-2025">I performed at</a> and had a really good time. I&rsquo;m going to talk a bit about how VRChat performances work and some thoughts about my most recent one, in particular.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>Today was the second day of VRelium Enchanted, which <a href="http://sockpuppet.band/live/3348-VRelium-Enchanted-2025">I performed at</a> and had a really good time. I&rsquo;m going to talk a bit about how VRChat performances work and some thoughts about my most recent one, in particular.</p><p><mark>UPDATE:</mark> This is obsolete! It might still be useful for some folks (especially those working on a budget or trying to get ideas of how to cobble someting together), but <a href="http://sockpuppet.band/blog/1302-VR-performance-setup-2.0">my current setup</a> is completely different and much easier to work with.</p>

        
            <h3 id="3183_h3_1_VR-venues">VR venues<a href="http://sockpuppet.band/blog/3183-VR-performance-stuff#3183_h3_1_VR-venues" class="toc_link"></a></h3><p>Performing live music in VR has a very different set of considerations than from real life. It&rsquo;s very difficult to get an ensemble together due to lag between people<sup id="r_e3183_fn1"><a href="http://sockpuppet.band/blog/3183-VR-performance-stuff#d_e3183_fn1" rel="footnote">1</a></sup>, and also the way that audio is usually sent to the world adds even more lag and makes it impossible for two performers to both share audio into the world.</p><p>There are two major styles of performance space: mic boosted, and streamed. Some worlds, such as <a href="https://vrchat.com/home/world/wrld_31ff6bb7-b2f5-4d2a-aa38-1dc93926bb53/info">Transitions Club</a> (which I&rsquo;ve used for most of my solo shows, such as the recent <a href="http://sockpuppet.band/live/2083-RFFF-25-show">Radio Free Fedi Fest</a>) support both modes of operation, but most I&rsquo;ve encountered only support streaming.</p><h4 id="3183_h4_2_Mic-boosting">Mic boosting<a href="http://sockpuppet.band/blog/3183-VR-performance-stuff#3183_h4_2_Mic-boosting" class="toc_link"></a></h4><p>Mic boosting is typically used by open mics or other situations where a lot of performers are playing just one or two songs; for example, <a href="https://transacademy.org/">Trans Academy</a> does this for the short Moonlit performances (but not for DJ sets or full concerts), and most open mics do this as well. The setup is pretty simple and easy; from the performer&rsquo;s point of view<sup id="r_e3183_fn2"><a href="http://sockpuppet.band/blog/3183-VR-performance-stuff#d_e3183_fn2" rel="footnote">2</a></sup>, there&rsquo;s a special region in the world which amplifies the volume and/or decreases the attenuation of anyone standing in it, so anything they say over their microphone gets put in everyone&rsquo;s ears.</p><p>This has a number of advantages:</p>
<ul>
<li>It&rsquo;s super easy for people to set up since there&rsquo;s plenty of ways of getting arbitrary audio fed into the VRChat microphone input</li>
<li>The performer can also simultaneously stream to the outside world including audience noise/reactions</li>
<li>Interactions with the audience are more or less immediate</li>
<li>A show can be put on by a single person with no support team</li>
</ul>
<p>But it has some pretty hefty limitations:</p>
<ul>
<li>People in the audience generally can&rsquo;t change the volume level of the performance</li>
<li><del>VRChat&rsquo;s own audio transport is pretty low-quality and is meant for real-time speech, not for music (for example, <a href="http://sockpuppet.band/live/2011-Moonlit-EU">this is what it sounds like on my performance in-world</a>, compared to the quality of <a href="http://sockpuppet.band/live/613-Moonlit-Academy-I-LOVE-YOU">my local signal</a>, and the more complex the music, the worse it gets)</del> <mark>UPDATE:</mark> This has actually changed; as of December 2025 they&rsquo;ve vastly improved the mic audio, by switching to <a href="https://docs.vrchat.com/docs/vrchat-202542">Steam Audio</a>.</li>
<li>You can <em>only</em> get audio through, rather than any extra visuals</li>
<li>Doing more complex things with the audio gets incredibly finicky and error-prone</li>
<li>The audience size is limited to however many can fit in a single world instance</li>
</ul>
<h4 id="3183_h4_3_Streaming">Streaming<a href="http://sockpuppet.band/blog/3183-VR-performance-stuff#3183_h4_3_Streaming" class="toc_link"></a></h4><p>A streaming approach is much more commonly used for music festivals such as Furality, VRelium, CMFS, and so on. In this setup, the performer is sending their audio and visuals through streaming software (typically <a href="https://obsproject.com/">OBS</a>) to a streaming provider. <a href="https://vrcdn.live/">VRCDN</a> is very popular but any number of things work, including <del>Twitch, YouTube Live, and</del> <a href="https://owncast.online/">owncast</a>, the last of which being <a href="http://sockpuppet.band/blog/2089-Self-hosted-streaming-CDN">what I use for my independent shows</a><sup id="r_e3183_fn3"><a href="http://sockpuppet.band/blog/3183-VR-performance-stuff#d_e3183_fn3" rel="footnote">3</a></sup>.</p><p>Streaming has a bunch of advantages over mic boosting:</p>
<ul>
<li>The audio quality is way better</li>
<li>There&rsquo;s much better control over the audio signal, and in particular since VRChat always uses its view of the mic input as the lipsync source, being able to separate your vocal audio from your other instruments makes for a cleaner performance</li>
<li>The performer can provide visuals that will appear in the world in some way, usually on a large projection screen behind the stage, and some worlds are built to support multi-screen visuals (by mapping different parts of the screen image to different surfaces in the world)</li>
<li>The audience can be <em>way</em> larger since multiple instances can reference the same video stream (and some venues can also do holographic projection of performers between instances, which is also done using clever video and shader tricks)</li>
<li>You also automatically have a stream that can be viewed from outside VRChat or recorded for later editing</li>
<li>Various compositing proxies can be used to add even more visuals to the outside world stream/recording (for example, having multiple camera operators streaming to video sources that are then assembled by someone else); for example it&rsquo;s common for music festivals to map the performer&rsquo;s visuals to one screen while providing audio visualizations for the audience and a countdown timer for the preformer</li>
</ul>
<p>But it also has disadvantages:</p>
<ul>
<li>You generally need a support team managing the stream (it&rsquo;s not super feasible for solo shows &mdash; it&rsquo;s <em>possible</em> and I&rsquo;ve done it, but it&rsquo;s much more of a hassle)</li>
<li>There&rsquo;s a <em>lot</em> of lag between the world and the stream (usually on the order of 5-15 seconds), so interactions with the audience are confusing or on a delay, and people who are looking directly at the performer (rather than the screen) will have extremely bad lip sync<sup id="r_e3183_fn4"><a href="http://sockpuppet.band/blog/3183-VR-performance-stuff#d_e3183_fn4" rel="footnote">4</a></sup></li>
<li>Because the performer is streaming audio and video to the world, extra considerations are necessary for a livestream that includes audience reactions</li>
<li><del>If the venue is small and doesn&rsquo;t have a means of <em>muting</em> on-stage performers, the audience may hear doubled audio with considerable delay between them</del> <mark>UPDATE:</mark> Along with the improvements to mic audio, VRChat now allows you to set your microphone output level to 0% which has the effect of preserving lip sync without broadcasting any audio into the instance.</li>
</ul>
<p>Due to these disadvantages, and since my solo shows tend to be pretty small, if I&rsquo;m going solo it&rsquo;s usually using a mic boost.</p><h3 id="3183_h3_4_A-typical-setup">A typical setup<a href="http://sockpuppet.band/blog/3183-VR-performance-stuff#3183_h3_4_A-typical-setup" class="toc_link"></a></h3><p>Most people who perform in VR are exclusively using backing tracks (often ones obtained from karaoke videos, if they&rsquo;re doing covers of songs), and use <a href="https://vb-audio.com/Voicemeeter/">Voicemeeter</a>, a virtual mixer combines multiple audio inputs into a single virtual audio source.</p><p>For a mic-boosted performance, they&rsquo;ll be using Voicemeeter to combine the backing track with their microphone, and also monitor the audio back to their own ears.</p><p>They may also be doing it that way for a streamed performance, although for streaming the better option is to use OBS&rsquo;s audio mixing and monitoring for the backing track.</p><h3 id="3183_h3_5_My-typical-setup">My typical setup<a href="http://sockpuppet.band/blog/3183-VR-performance-stuff#3183_h3_5_My-typical-setup" class="toc_link"></a></h3><p>Because I am <del>a masochist</del> coming from the tradition of conventional live performances, I have a tendency to want to perform as much live as possible, and have previously never used a backing track<sup id="r_e3183_fn5"><a href="http://sockpuppet.band/blog/3183-VR-performance-stuff#d_e3183_fn5" rel="footnote">5</a></sup>.</p><p>Typically I have Voicemeeter capturing my vocal microphone (which is usually the mic built-in to my <a href="https://www.bigscreenvr.com/">Bigscreen Beyond</a>) and my computer&rsquo;s onboard line input, which I then have various amps/pedals/mixers connected to for my performance instruments; my typical loadout is:</p>
<ul>
<li>My guitar</li>
<li>A cheap reverb pedal from AliExpress</li>
<li>A cheap distortion pedal, also from AliExpress</li>
<li>A Boss RC-20 looper pedal</li>
<li>A dynamic mic, for percussion and such going through the looper</li>
<li>A small <a href="https://www.musiciansfriend.com/amplifiers-effects/zt-lunchbox-junior-guitar-combo-amp/h82899000001000">lunchbox amplifier</a>, which is a simple way of amplifying that mess to line-level and giving me basic monitoring</li>
</ul>
<p>I then also have VRChat&rsquo;s voice input set to Voicemeeter.</p><p>When I&rsquo;m performing, regardless of whether it&rsquo;s mic-boost or streamed, I have a bunch of OBS scenes with different setups for different purposes, but generally-speaking my scene setup is:</p>
<ul>
<li>A <a href="https://github.com/Off-World-Live/obs-spout2-plugin">Spout2 capture source</a> (which allows OBS to directly project VRChat&rsquo;s camera capture rather than having to make a round trip through the display compositor)</li>
<li>Audio sources for Voicemeeter and then direct inputs for my headset mic, the computer line input, and a music player source for backing tracks</li>
<li>Also an audio output capture for my headset speakers (to capture in-game audio)</li>
<li>Whatever visuals I want to overlay on the stream (<a href="https://github.com/phandasm/waveform">Waveform</a> is especially useful)</li>
</ul>
<p>I make heavy use of OBS&rsquo;s multichannel audio functionality for this. I set channel 1 to be whatever I want to go to the stream. What goes on here depends on the kind of performance I&rsquo;m doing:</p>
<ul>
<li>If I&rsquo;m doing a mic boosted performance, it&rsquo;ll typically be my performance audio (either Voicemeeter, or a mix of mic+line input) mixed with the in-game audio so the livestream audience can hear the in-game audience as well</li>
<li>If I&rsquo;m doing a streamed performance, it&rsquo;ll be just my performance audio as a mix (usually the raw inputs, <em>not</em> Voicemeeter, as Voicemeeter adds a bit of lag making the timing of the backing track to be somewhat off)</li>
</ul>
<p>Regardless of this, I also record each separate thing to separate audio channels:</p>
<ul>
<li>Channel 2: vocal mic</li>
<li>Channel 3: line input</li>
<li>Channel 4: backing track</li>
<li>Channel 5: game audio</li>
<li>Channel 6: Voicemeeter</li>
</ul>
<p>I rarely actually use the Voicemeeter channel anymore (since I switched to directly mixing the live inputs to the stream) but I&rsquo;d might as well keep it around, just in case (although keep in mind that using it will require latency compensation). There&rsquo;s been a few times that it&rsquo;s been helpful due to OBS settings getting messed up, for example, so I actually didn&rsquo;t end up recording my raw instrument channel, for example.</p><p>Depending on whether I&rsquo;m using Voicemeeter or my raw microphone as my vocal input affects what sort of lipsync issues I have in the stream and/or recorded video. So I try to keep them the same as each other, but it&rsquo;s easy to forget and not a <em>huge</em> deal to fix since it&rsquo;s usually only offset by 1-2 frames (and VRChat&rsquo;s lip sync isn&rsquo;t all that great anyway).</p><h3 id="3183_h3_6_My-usual-performances">My usual performances<a href="http://sockpuppet.band/blog/3183-VR-performance-stuff#3183_h3_6_My-usual-performances" class="toc_link"></a></h3><p>So, when I perform, I&rsquo;m typically playing guitar or piano and singing, and occasionally making use of my effect pedals (especially the looper). Because I need to be able to see my guitar&rsquo;s fretboard and/or piano&rsquo;s keys while I perform, I built a custom headset gasket (based on the <a href="https://www.printables.com/model/751989-slimterface-flipterface-customface-for-bigscreen-b">Slimterface</a>, modified with a big cutout on the bottom, which I really should get around to uploading the files for at some point, oh <a href="https://www.printables.com/model/1408641-slimterface-modded-for-musical-performances">here we go</a>).</p><p>I still haven&rsquo;t figured out a good way of tracking my hand movements while playing guitar in-headset. I&rsquo;ve tried <a href="https://beesbuzz.biz/blog/7168-On-the-quest-for-VR-hand-tracking">a bunch of things</a> and so far the best results I&rsquo;ve gotten have been with a <a href="https://www.ultraleap.com/">Leapmotion 1</a> and <a href="https://github.com/Nyabsi/driver_leapify/">Leapify</a>, but it&rsquo;s still been pretty inconsistent and fiddly (but I have a few more things to try before I give up entirely). But for now, when I&rsquo;m playing guitar, I just signify it by swapping to a version of my avatar that&rsquo;s wearing a guitar and then people can just see my arms hang limply by my sides.</p><p>Also, because VRChat doesn&rsquo;t really have any way of bringing printouts into the world with you, to keep my setlist at the ready I open it up in a text editor or similar (usually synced with iCloud Notes or <a href="https://syncthing.net/">SyncThing</a> or whatever) and then attach the window to my VR playspace from the SteamVR overlay. This can be a little confusing, since it blocks a large part of my field of view and audience members can&rsquo;t tell that they&rsquo;re behind it (since it only exists locally and not in VRChat itself).</p><p>Since I have VRC+ I could also theoretically make an image of my setlist and print it into the world, but that makes it a manipulable object that people in the audience could steal and mess with, so I haven&rsquo;t ever actually done that (also music festivals tend to disable or force-remove prints for performance reasons).</p><p>There&rsquo;s probably some clever thing I could do with OSC to provide myself a local avatar HUD or something, but the SteamVR overlay works well enough for me.</p><h3 id="3183_h3_7_What-I-did-tonight">What I did tonight<a href="http://sockpuppet.band/blog/3183-VR-performance-stuff#3183_h3_7_What-I-did-tonight" class="toc_link"></a></h3><p>I have a chronic pain disorder which flares up sometimes. On the days leading up to this weekend it was flaring up pretty badly, so I figured I&rsquo;d play it safe and use backing tracks for once. Since all my music is original, I bounced out vocal-free versions of the songs I was going to perform, then combined them into a single file with a suitable gap between each song. I did leave some time at the end for an acoustic performance of <a href="http://sockpuppet.band/track/strategies-to-live">Strategies to Live</a>, because I&rsquo;m not at all happy with the quality of the album recording, and I also wanted a bit more flexibility in how I performed it.</p><p>It turned out that my pain flareup had subsided by performance time, but I decided to go with the backing track anyway, as a bit of an experiment.</p><p>My overarching philosophy is that the live version of a song should be special, and a reinterpretation of the album version. Using the album recording as a backing track flies in the face of that. However, this only really makes sense in a context where the audience already knows my music; generally when I&rsquo;m performing at a larger show, most of the audience is not familiar with my music, and as a result doesn&rsquo;t actually know that there&rsquo;s anything special about an acoustic guitar-folk performance of a <a href="http://sockpuppet.band/track/freak-flag">sex-positive hip-hop song</a> or a <a href="http://sockpuppet.band/track/behind-a-mask">90s alt-rock song</a> or a <a href="http://sockpuppet.band/track/material-change">hardstyle dancepop track</a>.</p><p>Further, genre bias is a thing, and when people get the impression that all of my music is acoustic indie rock, if they aren&rsquo;t into acoustic indie rock they have no reason to check my music out to hear how it really is.</p><p>So, at least for this large show I decided it&rsquo;d be interesting to see how the audience reacts to the songs as they originally were, rather than the &ldquo;special&rdquo; renditions I do as a treat. And judging by the audience reaction, it went over pretty well! It was also nice having my hands free, so I could actually move around and dance as I performed, and also could do appropriate avatar switches during some songs (particularly demonstrating some of the titular material changes in Material Change).</p><p>But I also ended up realizing that for my live performances, I put a <em>lot</em> of muscle memory into things, and there were a few spots where I came close to forgetting how the words went because I needed the shape of the chords I was making to cue me on them.</p><p>A baked backing track had another nice bonus in that I didn&rsquo;t need to display my setlist, because I could just use audio cues to know which song I was performing. But on the downside, some of the intra-song timings weren&rsquo;t quite right. I have a particular transition I like to do from <a href="http://sockpuppet.band/track/youre-never-around">You&rsquo;re Never Around</a> to <a href="http://sockpuppet.band/track/better-than-before">Better Than Before</a> and while I worked embarrassingly-long on trying to nail the timing in my backing track, I still feel like it didn&rsquo;t line up with how I wanted it to. It&rsquo;s probably a thing that only I would ever notice, though.</p><p>This also meant I was basically on-rails with no ability to adjust timing based on mood or tripping up on things or whatever. This was, ultimately, more good than bad, since it meant my set length was timed out perfectly (aside from Strategies to Live, which I was able to perform a bit faster than usual to make up for some previous schedule slippage), and also it kept me from rushing my songs, which in turn made tripping up much less likely.</p><p>In most of my festival sets I&rsquo;ve ended up doing one big flub and just powering through it, and tonight I only did a couple of minor flubs which nobody but me would have noticed anyway (even if they were super familiar with my songs which, let&rsquo;s face it, nobody else is).</p><p>I also loved being able to be way more expressive. My avatar is set up to allow me to puppet the eye and mouth shapes through hand gestures, which is pretty common, and I designed my puppetry setup specifically around doing karaoke, which this was just sort of an ascended version of anyway. Having the ability to make hand gestures at all is a huge improvement.</p><p>(That said, what&rsquo;d be even better is getting proper eye and mouth tracking support so I don&rsquo;t have to do puppetry to begin with, but I&rsquo;m not ready to spend that kind of money right now.)</p><p>Even without the puppetry aspect, I also had friends and fans arrive in the audience and would wave at me, and I was able to wave back, which made a couple of them absolutely delighted!</p><p>So, yeah, it gave me a much better audience connection, much better expressiveness in general, a much less stressful performance experience, and me just plain sounding better.</p><p>But in doing so I also gave up an amount of spontaneity, and also a feeling that I was actually <em>performing</em> and not just doing, y&#39;know, karaoke. Which just feels weird to me. It feels like I&rsquo;m lowering my standards, but the audience doesn&rsquo;t care at all, and if anything the audience seems to prefer the &ldquo;karaoke&rdquo; form.</p><h3 id="3183_h3_8_Future-plans">Future plans<a href="http://sockpuppet.band/blog/3183-VR-performance-stuff#3183_h3_8_Future-plans" class="toc_link"></a></h3><p>I think I&rsquo;ll go with something like this:</p>
<ul>
<li>For small shows (like Moonlit) and solo shows (where my existing fans will be the majority of the audience) I&rsquo;ll continue doing things mostly live on instruments, although I&rsquo;ll probably start to incorporate more backing tracks in as well to expand my repertoire, since many of my songs aren&rsquo;t super feasible to have a guitar rendition of (I&rsquo;d love to be able to do a live version of <a href="http://sockpuppet.band/track/a-long-plastic-hallway">A Long Plastic Hallway</a>, for example)</li>
<li>For larger shows I&rsquo;ll continue to do a mix of studio-version backing tracks and acoustic versions as appropriate</li>
<li>For <em>major</em> shows (like if I ever get accepted into Furality) I&rsquo;ll possibly make some custom backing tracks just for the show</li>
</ul>
<p>Also, I can still be proud that I&rsquo;m using my own backing tracks for my own songs. Not that there&rsquo;s anything wrong with people using existing karaoke versions for their covers, and obviously audiences don&rsquo;t mind it at all (and are just there to hear amazing singers singing songs they like). And who knows, if I keep uploading <a href="https://www.youtube.com/playlist?list=PLNRLpYEdwBNipgKir3qPtIf3AEm7B3Fnk">karaoke tracks</a>, maybe someday I&rsquo;ll hear someone doing a cover of one of my songs at one of these things.</p>
            
                <hr/><ol><li id="d_e3183_fn1"><p>You <em>can</em> do limited ensembles by having a chain of people streaming to one another, as long as nobody earlier in the chain needs to be able to hear anyone later in the chain, but that can also be difficult to manage and coordinate. Plus, every link in the chain is an opportunity for network problems.&nbsp;<a href="/blog/3183-VR-performance-stuff#r_e3183_fn1" rev="footnote">↩</a></p><p>Or you can just have everyone be physically in the same room.</p></li><li id="d_e3183_fn2"><p>The actual implementation of this is much more complicated but that&rsquo;s outside the scope of this article.&nbsp;<a href="/blog/3183-VR-performance-stuff#r_e3183_fn2" rev="footnote">↩</a></p></li><li id="d_e3183_fn3"><p>Unfortunately Twitch and YouTube are no longer viable options, as their respective wars on adblockers have prevented third-party streaming clients from reliably accessing the streams anymore, and that includes VRChat. The death of open standards is an awful thing to witness in real time.&nbsp;<a href="/blog/3183-VR-performance-stuff#r_e3183_fn3" rev="footnote">↩</a></p></li><li id="d_e3183_fn4"><p>Many performers opt to just mute their in-game mic so that there&rsquo;s no lip sync at all, which is throwing out the baby with the bath water, IMO.&nbsp;<a href="/blog/3183-VR-performance-stuff#r_e3183_fn4" rev="footnote">↩</a></p></li><li id="d_e3183_fn5"><p>Except when doing karaoke, of course.&nbsp;<a href="/blog/3183-VR-performance-stuff#r_e3183_fn5" rev="footnote">↩</a></p></li></ol>
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=VRChat">#VRChat</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=VR">#VR</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=performances">#Performances</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="VRChat" label="VRChat" />
        
        <category term="VR" label="VR" />
        
        <category term="Performances" label="performances" />
        

        

    </entry>
    <entry>
        
        <title>Live Shows: VRelium Enchanted 2025</title>
        <link href="http://sockpuppet.band/live/3348-VRelium-Enchanted-2025" rel="alternate" type="text/html" />
        <published>2025-09-07T14:30:00-07:00</published>
        <updated>2025-09-07T14:30:00-07:00</updated>
        <id>urn:uuid:f67232bb-14f1-5814-8b1b-6613940c151e</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p> </p><p>I performed at <a href="https://vrc.group/RELIUM.8220">VRelium</a>&rsquo;s charity show, &ldquo;Enchanted,&rdquo; a weekend-long music festival on September 6 and 7 in VRChat <a href="https://tiltify.com/@vrelium/enchanted-2025-als-association-charity-event">in support of the ALS Associationon</a>! Please enjoy the <a href="https://youtu.be/Dp1_EQXP-CU">recording</a>.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        
<figure class="images"><a href="http://sockpuppet.band/live/3348-VRelium-Enchanted-2025"><img src="http://sockpuppet.band/static/_img/2e/6fff/vrelium-logo-round_8295eca07d_240x240_q50.webp" width="240" height="240" srcset="http://sockpuppet.band/static/_img/2e/6fff/vrelium-logo-round_8295eca07d_240x240_q50.webp 1x, http://sockpuppet.band/static/_img/2e/6fff/vrelium-logo-round_8295eca07d_q50.webp 2x" loading="lazy" class="u-photo" alt="vrelium logo round.png"></a></figure>
<p>I performed at <a href="https://vrc.group/RELIUM.8220">VRelium</a>&rsquo;s charity show, &ldquo;Enchanted,&rdquo; a weekend-long music festival on September 6 and 7 in VRChat <a href="https://tiltify.com/@vrelium/enchanted-2025-als-association-charity-event">in support of the ALS Associationon</a>! Please enjoy the <a href="https://youtu.be/Dp1_EQXP-CU">recording</a>.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/Dp1_EQXP-CU?si=coVldkmE5-WT21kM" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>


        
            
<figure class="images"><a href="http://sockpuppet.band/live/3348-VRelium-Enchanted-2025"><img src="http://sockpuppet.band/static/_img/4f/9768/vrelium-enchanted-2025_deddf375af_640x360_q50.webp" width="640" height="360" srcset="http://sockpuppet.band/static/_img/4f/9768/vrelium-enchanted-2025_deddf375af_640x360_q50.webp 1x, http://sockpuppet.band/static/_img/4f/9768/vrelium-enchanted-2025_deddf375af_1280x720_q50.webp 2x" loading="lazy" class="u-photo" alt="vrelium enchanted 2025.png"></a></figure>

            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=concerts">#Concerts</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=VRelium">#VRelium</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=VRChat">#VRChat</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=full+set">#FullSet</a>
        

        ]]>



        </content>
        <category term="LiveShows" label="Live Shows" />
        
        
        <category term="Concerts" label="concerts" />
        
        <category term="VRelium" label="VRelium" />
        
        <category term="VRChat" label="VRChat" />
        
        <category term="FullSet" label="full set" />
        

        

    </entry>
    <entry>
        
        <title>Blog: Please do not ask me about streaming distribution</title>
        <link href="http://sockpuppet.band/blog/2388-Please-do-not-ask-me-about-streaming-distribution" rel="alternate" type="text/html" />
        <published>2025-08-19T16:13:40-07:00</published>
        <updated>2025-08-19T16:13:40-07:00</updated>
        <id>urn:uuid:b01c0a0e-3bb6-527d-a31b-64de7807c566</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>Quite some time ago I posted <a href="http://sockpuppet.band/blog/289-Some-recommendations-for-digital-distribution">my recommendations for streaming distributors</a> but things have all changed in a very bad way since then.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>Quite some time ago I posted <a href="http://sockpuppet.band/blog/289-Some-recommendations-for-digital-distribution">my recommendations for streaming distributors</a> but things have all changed in a very bad way since then.</p>

        
            <p>TooLost (my previous top recommendation) has gotten incredibly difficult to deal with when it comes to copyright-related things. They now have a hair trigger for deciding that a song &ldquo;needs documentation&rdquo; regarding its legality, but won&rsquo;t provide <em>any</em> useful information about what they think the problem is. On <a href="http://sockpuppet.band/track/the-war-machine">my most recent track</a> they seem to think that it violates someone&rsquo;s copyright but they won&rsquo;t tell me whose, and apparently they&rsquo;re putting the burden on me to just plain guess what their issue is, while taking a week to get back to me on every single question.</p><p>The best advice I&rsquo;ve gotten from anyone is to spend a crapton <em>more</em> money on a copyright registration service with the hopes that it&rsquo;ll convince them that I own the copyright to my own words, and even then there&rsquo;s still the chance that it won&rsquo;t actually help anything.</p><p>Then, for individual tracks that required licensing, I was recommending Soundrop, but they&rsquo;ve raised their price <em>and</em> their cut, and apparently have similar support issues today.</p><p>The other distributors are just as bad. And the streaming environment is <em>also</em> bad.</p><p>In the past year I&rsquo;ve made approximately $5 on streaming services. $5. Total. For a whole year&rsquo;s worth of music.</p><p>Why should I continue to pay into a broken system that isn&rsquo;t going to serve me?</p><p>Y&#39;all can find my music on <a href="http://sockpuppet.band/bandcamp">Bandcamp</a> and <a href="http://sockpuppet.band/mirlo">Mirlo</a> and (eventually) Subvert. And my current stuff will stay up on streaming as long as TooLost decides not to take it down after I stop paying, but I&rsquo;m not going to go out of my way to put more stuff up through them.</p><p>Fuck streaming.</p><p><a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music">There are better ways</a>.</p>
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=business">#Business</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=streaming">#Streaming</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=distribution">#Distribution</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=TooLost">#TooLost</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="Business" label="business" />
        
        <category term="Streaming" label="streaming" />
        
        <category term="Distribution" label="distribution" />
        
        <category term="TooLost" label="TooLost" />
        

        

    </entry>
    <entry>
        
        <title>Live Shows: Song Fight! Live! Five and Twenty</title>
        <link href="http://sockpuppet.band/live/2658-Song-Fight-Live-Five-and-Twenty" rel="alternate" type="text/html" />
        <published>2025-08-08T18:40:00-07:00</published>
        <updated>2025-08-08T18:40:00-07:00</updated>
        <id>urn:uuid:f2ab294b-9551-5796-ad7e-8a2bfb963018</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p> </p><p><a href="https://songfight.org/">Song Fight!</a>&rsquo;s annual show took place in Seattle, WA at <a href="https://jellyfishbrewing.com/">Jellyfish Brewing Georgetown</a> (917 South Nebraska Street) on August 8 and 9. More information can be found on <a href="https://songfight.net/forums/viewtopic.php?t=12833">the forum thread</a>.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        
<figure class="images"><a href="http://sockpuppet.band/live/2658-Song-Fight-Live-Five-and-Twenty"><img src="http://sockpuppet.band/static/_img/90/856b/sf-live-2025-poster_fdfb8acb8b_155x240_q50.webp" width="155" height="240" srcset="http://sockpuppet.band/static/_img/90/856b/sf-live-2025-poster_fdfb8acb8b_155x240_q50.webp 1x, http://sockpuppet.band/static/_img/90/856b/sf-live-2025-poster_fdfb8acb8b_311x480_q50.webp 2x" loading="lazy" class="u-photo" alt="sf live 2025 poster.jpg"></a></figure>
<p><a href="https://songfight.org/">Song Fight!</a>&rsquo;s annual show took place in Seattle, WA at <a href="https://jellyfishbrewing.com/">Jellyfish Brewing Georgetown</a> (917 South Nebraska Street) on August 8 and 9. More information can be found on <a href="https://songfight.net/forums/viewtopic.php?t=12833">the forum thread</a>.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/ZRgzxUFH7yA?si=K9UCNAYr3nwqgExj&amp;start=5869" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>


        
            
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=Song+Fight!">#SongFight</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=live">#Live</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=in-person">#InPerson</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=meatspace">#Meatspace</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=full+set">#FullSet</a>
        

        ]]>



        </content>
        <category term="LiveShows" label="Live Shows" />
        
        
        <category term="SongFight" label="Song Fight!" />
        
        <category term="Live" label="live" />
        
        <category term="InPerson" label="in-person" />
        
        <category term="Meatspace" label="meatspace" />
        
        <category term="FullSet" label="full set" />
        

        

    </entry>
    <entry>
        
        <title>Blog: Song Fight!: The how, the what, and the why</title>
        <link href="http://sockpuppet.band/blog/569-Song-Fight-The-how-the-what-and-the-why" rel="alternate" type="text/html" />
        <published>2025-08-08T02:13:34-07:00</published>
        <updated>2025-08-08T02:13:34-07:00</updated>
        <id>urn:uuid:8fb84ec5-262a-5cd5-84e4-a1ffa4b5a3a6</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p> </p><p>People sometimes ask me how they can start making music, or how they can get better at making music when they&rsquo;ve hit a wall.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        
<figure class="images"><a href="https://songfight.org/"><img src="http://sockpuppet.band/static/_img/85/b8db/songfight_logo_1500_b772770031_240x192_q50.webp" width="240" height="192" srcset="http://sockpuppet.band/static/_img/85/b8db/songfight_logo_1500_b772770031_240x192_q50.webp 1x, http://sockpuppet.band/static/_img/85/b8db/songfight_logo_1500_b772770031_480x384_q50.webp 2x" loading="lazy" class="u-photo" alt="songfight_logo_1500.png"></a></figure>
<p>People sometimes ask me how they can start making music, or how they can get better at making music when they&rsquo;ve hit a wall.</p><p>A thing that has worked for me quite a lot over the years is participating in <a href="https://songfight.org/">Song Fight!</a>, an online songwriting competition that&rsquo;s been going for a bit over 25 years now. It&rsquo;s an incredibly low-stakes yet highly-satisfying way of learning how to make music and how to hone your craft.</p><p>It also really could use more new people participating!</p>

        
            <h3 id="569_h3_1_Some-history">Some history<a href="http://sockpuppet.band/blog/569-Song-Fight-The-how-the-what-and-the-why#569_h3_1_Some-history" class="toc_link"></a></h3><p>Back in the early 2000s, there was the Dumbrella Collective, which was a group of Internet friends who all made stuff. One of these people was Collin &ldquo;Narbotic&rdquo; Cunningham, who would take random titles from Internet submissions and turn them into songs. (This was similar to explodingdog, where Sam &ldquo;sambrown&rdquo; Brown would do the same with images. I&rsquo;m not entirely sure which of the two came first, but both were part of Dumbrella.)</p><p>After a little while, Narbotic found that making music this way was a very lonely pursuit, so he invited a bunch of his friends to participate as well, and challenged them to a songwriting contest where random Internet people could vote and comment on the songs to decide who did it the best.</p><p>A few months later, he opened it up to the world, and surprisingly enough, a lot of people started to submit music. The first open-invitation was <a href="https://songfight.org/songpage.php?key=zero_to_phantom">Zero to Phantom</a>. I happened to find the site for the first time when this was the title, and while I didn&rsquo;t have any ideas for that one, I ended up entering for the next one, <a href="https://songfight.org/songpage.php?key=i_love_you">I LOVE YOU</a>.</p><p>Over time, the updates became more and more sporadic, and a couple of frequent participants, namely JB of the John Benjamin Band, and Spud of Octothorpe, started their own spinoff site, &ldquo;Meanwhile,&rdquo; as a sort of side challenge to take place in between the posts of titles and fights. Then eventually Narbotic abandoned Song Fight! entirely, and Spud+JB decided to rebrand Meanwhile as the new Song Fight! sometime in 2002. It&rsquo;s been running pretty steadily ever since.</p><h3 id="569_h3_2_How-the-site-works">How the site works<a href="http://sockpuppet.band/blog/569-Song-Fight-The-how-the-what-and-the-why#569_h3_2_How-the-site-works" class="toc_link"></a></h3><p>Every 10 days or so a new title is posted, and people have some amount of time to write, record, and submit a song written for that title. At the same time, the submissions for the previous title go up for a vote, and people are encouraged to listen to all of them, vote for their favorites, and post reviews on the forum.</p><p>There are no restrictions on genre or style, length, or even quality of song. The only rules are:</p>
<ol>
<li>The song must be written for the provided title</li>
<li>It must be written/recorded/produced by a sentient being (i.e. it can&rsquo;t just be an AI prompt); the point is to get better at making music yourself</li>
</ol>
<p>The vote is basically just there as a formality. It feels good to win, but there are no prizes aside from the satisfaction of having others decide your song was the best. (To that end, asking all your friends to vote for your song and no others doesn&rsquo;t really do anyone any favors.)</p><p>It&rsquo;s basically a song-writing circle with the trappings of a friendly competition. And it is a lot of fun and very worth joining in on!</p><h3 id="569_h3_3_How-to-get-started">How to get started<a href="http://sockpuppet.band/blog/569-Song-Fight-The-how-the-what-and-the-why#569_h3_3_How-to-get-started" class="toc_link"></a></h3><p>You almost certainly have all the software you need already, or can acquire some very cheaply, even freely.</p><p>Pretty much you&rsquo;ll need something you can make music with (even just your voice), something you can record it with, and a willingness to have room for improvement. You don&rsquo;t need any fancy equipment or expensive software. The voice recorder on your phone is a good starting point, or the microphone built-in to your computer or webcam or whatever.</p><p>Here&rsquo;s some free/cheap software you could consider looking at:</p>
<ul>
<li><a href="https://audacity.org/">Audacity</a></li>
<li><a href="https://reaper.fm/">REAPER</a></li>
<li><a href="https://lmms.io/">LMMS</a></li>
<li><a href="https://www.image-line.com/">FL Studio</a></li>
<li><a href="https://ardour.org/">Ardour</a></li>
</ul>
<p>Also, if you&rsquo;re on a Mac, you probably already have a copy of GarageBand, which is exceptionally good for this stuff.</p><p>Don&rsquo;t know how to play an instrument? That&rsquo;s fine, you can plink notes in on the piano roll, or even use free loops or the like.</p><p>Don&rsquo;t know how to sing? That&rsquo;s fine, you can do spoken-word stuff, or pitchbend your computer&rsquo;s text-to-speech, or even do an instrumental (gasp!).</p><p>Have ideas for lyrics but not music, or vice-versa? Post on the forums and form a collaboration with someone else!</p><p>Worried you&rsquo;re going to suck? That&rsquo;s okay! Everyone starts out bad. In the immortal words of Jake the Dog, sucking at something is the first step towards being sorta good at something.</p><p>I started out <a href="http://sockpuppet.band/album/deadnames">awful</a>, and now I&rsquo;m <a href="http://sockpuppet.band/album/transitions">pretty okay</a>. It&rsquo;s all a process.</p><p>And your song might be better than you think it is. Enter it anyway.</p>
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=music+making">#MusicMaking</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=inspiration">#Inspiration</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=Song+Fight!">#SongFight</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=contests">#Contests</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=community">#Community</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="MusicMaking" label="music making" />
        
        <category term="Inspiration" label="inspiration" />
        
        <category term="SongFight" label="Song Fight!" />
        
        <category term="Contests" label="contests" />
        
        <category term="Community" label="community" />
        

        

    </entry>
    <entry>
        
        <title>Releases: The War Machine</title>
        <link href="http://sockpuppet.band/track/the-war-machine" rel="alternate" type="text/html" />
        <published>2025-08-01T00:00:00-07:00</published>
        <updated>2025-08-01T00:00:00+00:00</updated>
        <id>urn:uuid:e3aab489-3a0e-5833-a862-5dcc543d05e8</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[
]]></summary>
        <content type="html"><![CDATA[

		

        
        <figure><a href="http://sockpuppet.band/track/the-war-machine"><img src="/static/_img/48/7a98/the-war-machine_b3fee9285d_350x350.jpg" width="350" height="350" srcset="/static/_img/48/7a98/the-war-machine_b3fee9285d_350x350.jpg 1x, /static/_img/48/7a98/the-war-machine_b3fee9285d_700x700.jpg 2x" loading="lazy" alt="the war machine.jpg"></a></figure>
        



        <iframe src="https://cdn.sockpuppet.band/the-war-machine/#compact" seamless><a href="https://cdn.sockpuppet.band/the-war-machine/">The War Machine by Sockpuppet</a></iframe>


        
            <p><a href="https://rmr.media/">Jeremy Blake</a> runs a monthly prompt challenge for his Patreon Discord, and in July 2025 the challenge was to adapt folk music.</p><p>My original plan was to record an EDMish version of &ldquo;<a href="https://youtu.be/sjPC2gbCHqI">More Waters Rising</a>&rdquo; by Saro Lynch-Thomason, but because of <a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music">recent events</a> I decided instead to combine two well-known folk tunes and write new lyrics for a protest song.</p><p>The verse melody comes from a Finnish folk song best known as the basis of <a href="https://en.wikipedia.org/wiki/Ievan_polkka">Ievan polkka</a>, aka &ldquo;<a href="https://en.wikipedia.org/wiki/Loituma_Girl">leekspin</a>;&rdquo; this folk song is alternately known as Savitaipaleen polkka The chorus and final verses&#39; melodies are from <a href="https://en.wikipedia.org/wiki/Wellerman">Wellerman</a>, an English-language folk song that traces its origins back to 1830s New Zealand, and which got super popular during the 2020 sea shanty trend.</p><p>Unless things drastically change, this will be the last thing I upload to Spotify, and the only thing I leave there after I remove everything else.</p>
            

            
            <h2>More info</h2>
            <ul>
                
                <li>Lyrics: <a href="http://sockpuppet.band/releases/1216-The-War-Machine">The War Machine</a></li>
                
            </ul>
            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=genre:folk">#Folk</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=instrument:choir">#Choir</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=instrument:percussion">#Percussion</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=instrument:piano">#Piano</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=mood:angry">#Angry</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=mood:defiant">#Defiant</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=topic:Spotify">#Spotify</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=topic:capitalism">#Capitalism</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=topic:music">#Music</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=topic:protest">#Protest</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=type:lyrical">#Lyrical</a>
        

        ]]>



        </content>
        <category term="Releases" label="Releases" />
        
        
        <category term="Folk" label="genre:folk" />
        
        <category term="Choir" label="instrument:choir" />
        
        <category term="Percussion" label="instrument:percussion" />
        
        <category term="Piano" label="instrument:piano" />
        
        <category term="Angry" label="mood:angry" />
        
        <category term="Defiant" label="mood:defiant" />
        
        <category term="Spotify" label="topic:Spotify" />
        
        <category term="Capitalism" label="topic:capitalism" />
        
        <category term="Music" label="topic:music" />
        
        <category term="Protest" label="topic:protest" />
        
        <category term="Lyrical" label="type:lyrical" />
        

        

    </entry>
    <entry>
        
        <title>Client Work: Demo reel</title>
        <link href="http://sockpuppet.band/clients/2866-Demo-reel" rel="alternate" type="text/html" />
        <published>2025-07-18T23:03:39-07:00</published>
        <updated>2025-07-18T23:03:39-07:00</updated>
        <id>urn:uuid:88bca6f0-3711-5428-992f-a172fc0c3687</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>This is a <a href="https://www.youtube.com/playlist?list=PLNRLpYEdwBNge2H7kr3i_rrQxY_85xfVJ">playlist of videos</a> which I made the music for, and some of which I also edited.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>This is a <a href="https://www.youtube.com/playlist?list=PLNRLpYEdwBNge2H7kr3i_rrQxY_85xfVJ">playlist of videos</a> which I made the music for, and some of which I also edited.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/videoseries?si=_7k2BObwqyc-P-0E&amp;list=PLNRLpYEdwBNge2H7kr3i_rrQxY_85xfVJ" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>


        
            
            

            

        

        ]]>



        </content>
        <category term="ClientWork" label="Client Work" />
        
        

        

    </entry>
    <entry>
        
        <title>Blog: On Spotify, and listening to and collecting music</title>
        <link href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music" rel="alternate" type="text/html" />
        <published>2025-07-15T17:18:54-07:00</published>
        <updated>2026-04-12T07:51:46+00:00</updated>
        <id>urn:uuid:1a1c5f3b-37e2-5984-8fd6-be5b3fe04bd0</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>As a musician, I am often asked where people can listen to my music, and people express confusion about why my music isn&rsquo;t on Spotify (aside from <a href="http://sockpuppet.band/track/the-war-machine">The War Machine</a>, which is about why my music isn&rsquo;t on Spotify).</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>As a musician, I am often asked where people can listen to my music, and people express confusion about why my music isn&rsquo;t on Spotify (aside from <a href="http://sockpuppet.band/track/the-war-machine">The War Machine</a>, which is about why my music isn&rsquo;t on Spotify).</p><p>I wrote this as an explanation of why I don&rsquo;t support Spotify and why I ask listeners to return to buying and collecting music or, at the very least, moving to other streaming services.</p><p>Also, see <a href="https://rmr.media">Jeremy Blake</a>&rsquo;s <a href="https://www.youtube.com/watch?v=LQRtKD4gx1k">very good video on this topic</a>.</p>

        
            <p><strong>tl;dr summary</strong>: If you are able to, buy your music, ideally from <a href="https://mirlo.space/">Mirlo</a> or <a href="https://bandcamp.com/">Bandcamp</a>. If you are going to pay to stream, use <a href="https://qobuz.com/">Qobuz</a> or <a href="https://tidal.com/">Tidal</a>, and if you want to stream for free (and I totally get it! times are tough!), use <a href="https://music.youtube.com/">YouTube Music</a> or <a href="https://pandora.com/">Pandora</a>.</p><h3 id="121_h3_1_Ranking-the-services">Ranking the services<a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music#121_h3_1_Ranking-the-services" class="toc_link"></a></h3><p>Here is my personal ranking of the best ways to get and/or listen to music, ordered from best to worst.</p><p>All per-stream prices are an estimate and based on my most recent available earnings data at the time of this writing, and based on the US market. They are definitely subject to change based on a number of factors that are difficult to predict.</p><h4 id="121_h4_2_From-the-band-s-own-website">From the band&rsquo;s own website<a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music#121_h4_2_From-the-band-s-own-website" class="toc_link"></a></h4><p>If the band has their own website<sup id="r_e121_fn1"><a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music#d_e121_fn1" rel="footnote">1</a></sup>, they&rsquo;ll probably display their preference for how you get their music. Above all else, that should be your top consideration.</p><h4 id="121_h4_3_Mirlo"><a href="http://sockpuppet.band/mirlo">Mirlo</a><a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music#121_h4_3_Mirlo" class="toc_link"></a></h4><p><a href="https://mirlo.space/">Mirlo</a> is an independent online music store run as a cooperative. The audio quality is great and musicians are in complete control of how much money they make on it, including choosing how much of the purchase price goes to Mirlo itself. The people running it are doing so for the love of music rather than to make fat stacks of cash, and my understanding is that the site pretty much just breaks even on its operating costs.</p><p>It is also <a href="https://github.com/funmusicplace/mirlo/">open source</a> meaning people can contribute changes or directly influence the development efforts, and you can run your own instance of it if you really want to for some reason.</p><p>With Mirlo you will have to <a href="http://sockpuppet.band/feed?id=2156#own-your-collection">own your collection</a>, which is a good thing. More on that later.</p><h4 id="121_h4_4_itch.io"><a href="http://sockpuppet.band/itch">itch.io</a><a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music#121_h4_4_itch.io" class="toc_link"></a></h4><p><a href="https://itch.io">itch</a> isn&rsquo;t really a music store, but a lot of people <a href="https://itch.io/soundtracks">sell music there</a>. The experience usually isn&rsquo;t great and is up to the musician (although things like <a href="https://fluffy.itch.io/bandcrash">bandcrash</a> can help to make it better). Like Mirlo, it&rsquo;s totally up to the musician how much money they get and how much goes to the platform.</p><p>With itch you will also have to <a href="http://sockpuppet.band/feed?id=2156#own-your-collection">own your collection</a>.</p><h4 id="121_h4_5_Bandcamp"><a href="http://sockpuppet.band/bandcamp">Bandcamp</a><a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music#121_h4_5_Bandcamp" class="toc_link"></a></h4><p><a href="https://bandcamp.com/">Bandcamp</a> is probably the most popular indie music download site there is, and with good reason. They offer high-quality downloads in a number of formats, they were the first site to offer a lot of features which many places take for granted these days (pay-what-you-want pricing, embedded lyrics, optional per-track artwork, full discography purchases, and so much more), and if you buy something on Bandcamp you can also stream it through the app so you don&rsquo;t need to manage your own local library. They also only take a 15% cut for small musicians, and a 10% cut for larger musicians.</p><p>They&rsquo;ve somewhat fallen out of favor in recent years due to a series of changes in ownership, but it is still a great place to buy music which supports the artists.</p><p>While it isn&rsquo;t strictly required that you <a href="http://sockpuppet.band/feed?id=2156#own-your-collection">own your collection</a> (thanks to the streaming app), it&rsquo;s still a good idea that you do so, especially if you listen to music that comes from a mix of sources.</p><h4 id="121_h4_6_Qobuz">Qobuz<a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music#121_h4_6_Qobuz" class="toc_link"></a></h4><p><a href="https://qobuz.com/">Qobuz</a> is both a streaming provider and a <a href="https://www.qobuz.com/us-en/shop">download store</a>. Their claim to fame is that they provide everything in the highest possible bitrate and quality, <em>and</em> they are also quite good in terms of how they support artists.</p><p>They&rsquo;re not the best option for purchasing (since Mirlo and Bandcamp match them in terms of quality and exceed them in terms of payment cut), but they <em>are</em> the most-desirable option for streaming (since they provide the highest per-stream rate in the industry, at 1.5¢/stream at the time of this writing).</p><p>If there&rsquo;s an album you want to buy and which isn&rsquo;t on Mirlo or Bandcamp, Qobuz is probably the best place to acquire it.</p><p>Unfortunately, they aren&rsquo;t available globally, buf if you&rsquo;re in one of the supported countries they&rsquo;re a good choice.</p><h4 id="121_h4_7_Tidal">Tidal<a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music#121_h4_7_Tidal" class="toc_link"></a></h4><p>Tidal has good quality, a reasonable monthly price, and one of the better per-stream rates (1¢/stream) of the larger/better-known providers. They&rsquo;re also one of the few major DSPs which allows musicians to directly upload their music for streaming and sales, although some of their artist management could be better. That shouldn&rsquo;t affect listeners, although sometimes my music ends up on the wrong artist profile and getting that corrected can be tricky.</p><p>For example, as of April 2026, <a href="https://tidal.com/@sockpuppet">my official artist profile</a> only has one release on it, while most of my music has ended up on <a href="https://tidal.com/artist/44840891">a different profile</a>, and Tidal support is taking their sweet time getting that fixed. (They claim it will take <em>at least</em> 8 weeks to get sorted out.)</p><p>I&rsquo;ve also heard anecdotally from other musicians that the opposite problem often happens, where other musicians with the same name release music, Tidal erroneously puts it on their profile, and getting that corrected also takes, apparently, forever.</p><h4 id="121_h4_8_Amazon-Music">Amazon Music<a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music#121_h4_8_Amazon-Music" class="toc_link"></a></h4><p>The Amazon Music store and Amazon Prime Streaming are pretty okay, all things considered. As a download store they take a 30% cut, but they provide music in reasonably-high-quality (but not the best quality) MP3. The streaming service pays around 1¢/stream.</p><p>The main downside is that using them means supporting Amazon, which a lot of folks do not want to do for very good reasons.</p><h4 id="121_h4_9_Apple-Music-iTunes-Music-Store">Apple Music/iTunes Music Store<a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music#121_h4_9_Apple-Music-iTunes-Music-Store" class="toc_link"></a></h4><p>The iTunes Music Store is one of the earliest major download services (and they set the standard for how those work), and even today it&rsquo;s still a reasonable option. It&rsquo;s far from the best, though, mostly because they only offer AAC downloads at a high-but-not-amazing bitrate, and being Apple they heavily encourage its use on Apple devices (although there are Windows and Android clients as well, and with effort you can make your purchases on Linux too).</p><p>For downloads they keep a 30% cut, which isn&rsquo;t the worst in the industry but is also far from the best. For streams, their payment rate is just <em>okay</em>, currently around 0.8¢/stream.</p><h4 id="121_h4_10_YouTube-Music"><a href="http://sockpuppet.band/youtube">YouTube Music</a><a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music#121_h4_10_YouTube-Music" class="toc_link"></a></h4><p>YouTube Music has a bunch going for it:</p>
<ul>
<li>You&rsquo;re already there to watch video</li>
<li>They have basically <em>everything</em> (especially if you consider unofficial uploads)</li>
<li>The quality is decent</li>
</ul>
<p>The main downsides are that the subscription is on the expensive side, and that you&rsquo;re supporting Google, which a lot of people don&rsquo;t like.</p><p>They currently pay around 0.6¢/stream for subscription plays. (They also pay based on ad revenue for content match videos but that&rsquo;s not relevant to this discussion.)</p><h4 id="121_h4_11_Most-other-streaming-providers">Most other streaming providers<a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music#121_h4_11_Most-other-streaming-providers" class="toc_link"></a></h4><p>Providers like Deezer, Rdio, Napster, etc. all seem to offer rates of around 0.8¢/stream.</p><p>There are two notable exceptions:</p>
<ul>
<li>iHeartRadio, which seems to pay around 1.2¢ but I get so few streams from them it&rsquo;s basically statistical line noise, and it&rsquo;s hard to tell if that rate would last if they got more popular</li>
<li>Pandora, which pays a mere 0.5¢/stream</li>
</ul>
<h4 id="121_h4_12_Piracy">Piracy<a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music#121_h4_12_Piracy" class="toc_link"></a></h4><p>I would honestly prefer people pirate my music before they listen to it on Spotify. This is because:</p><h4 id="121_h4_13_Spotify">Spotify<a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music#121_h4_13_Spotify" class="toc_link"></a></h4><p>If you listen to music on Spotify, even on a free plan, they get money. And where does that money go?</p>
<ul>
<li><a href="https://apnews.com/article/joe-rogan-spotify-deal-76fa0e2c9d4b137f510428528ea6226b">Joe Rogan</a> and other right-wing podcasters</li>
<li>Their chairman<sup id="r_e121_fn2"><a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music#d_e121_fn2" rel="footnote">2</a></sup>, Daniel Ek, who uses his billions of dollars to <a href="https://djmag.com/news/spotifys-daniel-ek-leads-eu600-million-investment-ai-military-defence-company">directly finance the war machine</a> and the economic destruction of all future creativity via generative AI</li>
<li>Spotify&rsquo;s own AI efforts towards turning all music into bullshit slop</li>
</ul>
<p>You see what&rsquo;s missing from that list? <strong><em>The actual musicians.</em></strong></p><p>Back when Spotify paid musicians, the rate was about 0.5¢/stream. This is among the worst in the industry.</p><p><strong><em>HOWEVER</em></strong></p><p>At this point they rarely even pay musicians, especially the smaller ones:</p>
<ul>
<li>Any track that doesn&rsquo;t get at least 1000 streams per year doesn&rsquo;t get paid, because it&rsquo;s assumed to be low-quality filler (and not just undiscovered)</li>
<li>Any small-artist track which <em>does</em> get at least 1000 streams per year and doesn&rsquo;t come from a major label is assumed to have gotten &ldquo;algorithmic streaming&rdquo; (i.e. bot traffic) and is removed from eligibility on that basis</li>
</ul>
<p>So, for a smaller independent musician like me, Spotify pays essentially $0.</p><p>You may then ask, why do so many musicians put their stuff on Spotify if it&rsquo;s so bad? It&rsquo;s mostly because it&rsquo;s the platform everyone uses, and the hope is that if one gets discovered on Spotify they&rsquo;ll actually make a decent amount of money. But even the artists who <em>do</em> are getting largely screwed over, and not making nearly as much as if those streams had come from a different streaming provider.</p><p>But enough musicians have decided to <a href="https://variety.com/2025/digital/news/deerhoof-remove-catalog-from-spotify-daniel-ek-ai-investment-1236443990/">remove their music from Spotify</a> that I hope that listeners will decide to go to other, more ethical sources for their music.</p><p>Every time I perform at a show I get people asking me not &ldquo;where can I hear your music?&rdquo; but &ldquo;Where&rsquo;s your Spotify?&rdquo; Or if they do ask where they can hear it and I point them to my website, they ask about Spotify, because that&rsquo;s the only place they can <em>conceive</em> of listening to it. Sometimes these questions even come right after I&rsquo;ve performed <a href="http://sockpuppet.band/track/the-war-machine">The War Machine</a>, a song which is explicitly about why my music isn&rsquo;t on Spotify. It will take some time to get people on board with seeking alternatives.</p><p>My goal in this post isn&rsquo;t to encourage musicians to leave Spotify. My goal is to get <em>listeners</em> to do so. It&rsquo;s the listeners who make Spotify money, and that money goes to terrible places.</p><p>There are better listening experiences that cost you less while doing a much better job of directly supporting musicians.</p><h3 id="121_h3_14_Owning-your-collection"><span id="own-your-collection">Owning your collection</span><a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music#121_h3_14_Owning-your-collection" class="toc_link"></a></h3><p>Owning your collection means buying and downloading your music, and managing it in your own local collection. This has so many advantages:</p>
<ul>
<li>You can get music from many different sources (including CDs!)</li>
<li>It&rsquo;s a one-time purchase instead of a recurring monthly payment</li>
<li><em>Way</em> more of the money goes to the artists (typically, buying a song once is worth over 100 streams&#39; worth!)</li>
<li>Once you have it, it won&rsquo;t disappear if the artist stops listing their music for whatever reason (contract disputes, dissolution of the band/death of the artist, streaming service disappears)</li>
<li>You can choose the way that you listen to music depending on preferences and such</li>
</ul>
<p>I manage my collection by keeping it all on my desktop computer and then use Music.app/iTunes to track it in its database. Then I have a smart playlist setup that will randomly select albums I haven&rsquo;t listened to recently, and use that for actually listening to my music and for building playlists to sync to my phone.</p><p>I also have a backup (always keep it backed up!) on a file server which is also running <a href="https://plex.tv/">Plex</a> and <a href="https://jellyfin.org/">Jellyfin</a>, which gives me the ability to stream my collection from just about anywhere. Plex in particular provides an &ldquo;Album Radio&rdquo; mode which will build a playlist from randomly-selected albums, and the paid version gives you some nice virtual DJ things for automatically building mixes from a particular song (great for crate digging!).</p><p>People often ask me about how I discover new music.</p><p>First of all, my playback setup is integrated with <a href="https://last.fm/user/plaidfluff">last.fm</a>, so that maintains a history of the music I&rsquo;ve played, and can also make recommendations for more music to listen to. Plex has last.fm support built in directly, and both macOS and iOS have <a href="https://www.last.fm/about/trackmymusic">tracking apps</a> to feed the play history in.</p><p>The other major thing is that I follow a lot of musicians and music fans, both via blogs and via social media (<a href="https://joinmastodon.org/">the Fediverse</a> in particular). <a href="https://etherdiver.com/">Ether Diver</a> has a blog called <a href="https://www.etherdiver.com/category/other-peoples-music/">Other People&rsquo;s Music</a> which has been particularly helpful. (And of course sometimes I try to remember to post <a href="http://sockpuppet.band/blog/?tag=recommendations">similar things here</a> to pay it forward, and this is also why I keep my last.fm profile public.)</p><p>Sometimes I also listen to the radio. <a href="https://kexp.org/">A good radio station</a> will expose you to so much good music that you hadn&rsquo;t heard before. Also be on the lookout for various community Internet radio stations like <a href="https://kvrradio.com/public/kvrr">KVRR</a> and <a href="https://theindiebeat.fm/">The Indie Beat</a>. But most of how I discover new music is by word-of-mouth, and then buying entire discographies of bands I like.</p><p>Here&rsquo;s some non-iTunes music players and self-hosted streaming systems that you might consider for managing your collection:</p>
<ul>
<li><a href="https://www.foobar2000.org/">Foobar2000</a> is a well-regarded music player for local collections, which supports Windows, macOS, Android, and iOS</li>
<li><a href="https://github.com/sentriz/gonic">Gonic</a> is a self-hosted streaming server, similar to Jellyfin, with a number of client apps available</li>
<li><a href="https://www.navidrome.org/">Navidrome</a> is another self-hosted streaming server with a really nice user interface</li>
<li><a href="https://audacious-media-player.org/">Audacious</a> (a modern fork of the venerable XMMS, in turn a clone of Winamp<sup id="r_e121_fn3"><a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music#d_e121_fn3" rel="footnote">3</a></sup>), which has versions for Windows, Linux, and macOS</li>
<li><a href="https://www.doubletwist.com/">Doubletwist</a> is basically the phone sync part of iTunes, but for Windows</li>
<li><a href="https://videolan.org/">VLC</a> runs pretty much everywhere, and now you understand the traffic cone memes too</li>
<li><a href="https://radiccio.music/">Radiccio</a> is macOS-only but does a lot of stuff better than iTunes/Apple Music</li>
</ul>

            
                <hr/><ol><li id="d_e121_fn1"><p>If a band does not have their own website, they could do well to build one using any number of website builders. <a href="https://simonrepp.com/faircamp/">Faircamp</a> is pretty decent for a lot of folks. Personally I use a combination of <a href="https://publ.beesbuzz.biz/">Publ</a> and <a href="https://fluffy.itch.io/bandcrash">Bandcrash</a> but that can be pretty involved to set up.&nbsp;<a href="/blog/121-On-Spotify-and-listening-to-and-collecting-music#r_e121_fn1" rev="footnote">↩</a></p></li><li id="d_e121_fn2"><p>When I first wrote this article Ek was still the CEO. He has since &ldquo;stepped down&rdquo; to become the chairman of the board, which makes no actual practical difference because now he&rsquo;s the CEO&rsquo;s boss and still the majority shareholder.&nbsp;<a href="/blog/121-On-Spotify-and-listening-to-and-collecting-music#r_e121_fn2" rev="footnote">↩</a></p></li><li id="d_e121_fn3"><p>No llamas had their asses whipped in the making of this blog post.&nbsp;<a href="/blog/121-On-Spotify-and-listening-to-and-collecting-music#r_e121_fn3" rev="footnote">↩</a></p></li></ol>
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=business">#Business</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=streaming">#Streaming</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=customer+choice">#CustomerChoice</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="Business" label="business" />
        
        <category term="Streaming" label="streaming" />
        
        <category term="CustomerChoice" label="customer choice" />
        

        

    </entry>
    <entry>
        
        <title>Blog: Some recommendations for digital distribution</title>
        <link href="http://sockpuppet.band/blog/289-Some-recommendations-for-digital-distribution" rel="alternate" type="text/html" />
        <published>2025-07-09T22:41:10-07:00</published>
        <updated>2025-07-09T22:41:10-07:00</updated>
        <id>urn:uuid:7e1d06d0-1220-5d90-a0ca-98fb2b8fe01c</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>As I talked about <a href="http://sockpuppet.band/blog/1447-Independent-music-on-the-independent-web">previously</a>, there are many different services for getting your music online with the major streaming providers. Here&rsquo;s my thoughts on a few that I&rsquo;ve worked with, and a couple that are on my radar and I plan on trying out in the future.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>As I talked about <a href="http://sockpuppet.band/blog/1447-Independent-music-on-the-independent-web">previously</a>, there are many different services for getting your music online with the major streaming providers. Here&rsquo;s my thoughts on a few that I&rsquo;ve worked with, and a couple that are on my radar and I plan on trying out in the future.</p><p>Of course, the best place to sell your music is on places like <a href="https://mirlo.space/">Mirlo</a> and <a href="https://bandcamp.com/">Bandcamp</a>, where you actually get paid well for things and your buyers are able to retain access to your music in exchange, but the unfortunate reality of music in the current era is that most listeners are going to the streamers to listen to stuff, so if you want your stuff to be listened to, this is where you have to put it.</p>

        
            <h3 id="289_h3_1_Recommended-TooLost">Recommended: <a href="https://toolost.com/">TooLost</a><a href="http://sockpuppet.band/blog/289-Some-recommendations-for-digital-distribution#289_h3_1_Recommended-TooLost" class="toc_link"></a></h3><p>TooLost is my current primary distributor for the major streaming services. Their upload process is pretty okay (not perfect, but not the worst either), they have support that are reasonably responsive, and they cost only $20/year for unlimited uploads with full royalties going to the artist. They also support a <em>huge</em> number of streaming providers and marketplaces, including the ones that people actually use.</p><p>They also provide content ID management with a good level of granularity (for example, you can whitelist various YouTube/Twitch/TikTok channels to allow them to use your music without restriction), and they have a bunch of addons for analytics tracking.</p><p>It would be nice if they had better bulk-editing features for the music uploader, and if their catalog importer actually worked reasonably well (I do not recommend trying to use it if you&rsquo;re migrating to them since it ends up being more work than just reuploading your tracks directly), and I&rsquo;ve had some difficulty with my YouTube channel mapping (which doesn&rsquo;t really matter all that much), but generally-speaking they&rsquo;ve been great to work with.</p><p>They also provide mechanical licensing for cover songs, but currently charge $15/track (as a one-time fee). This is perfectly reasonable, but not the best deal around.</p><p>They also include a simple &ldquo;find this release&rdquo; page for free (and you can customize the URL!), and it works well enough, although sometimes the links break and you have to pester them to fix it.</p><p>As far as I am aware, they are unique in being an affordable distributor that also lets you specify your own release label <em>without</em> paying a bunch extra for a label account.</p><h3 id="289_h3_2_On-my-radar-Soundrop">On my radar: <a href="https://soundrop.com/">Soundrop</a><a href="http://sockpuppet.band/blog/289-Some-recommendations-for-digital-distribution#289_h3_2_On-my-radar-Soundrop" class="toc_link"></a></h3><p>I have&rsquo;t worked with Soundrop yet but I&rsquo;ve heard good things about them. They charge only $1/track per upload with no annual fee, and instead take a royalty cut from the streaming services. This makes them less of a good deal than TooLost if you&rsquo;re uploading a lot of albums or singles per year, and it also means you aren&rsquo;t maximizing your revenue, <em>but</em> for another $1/track they will also provide mechanical licensing for cover songs and administer your royalty splits, making them an extremely good deal if you do a lot of covers. You won&rsquo;t make as much money on a popular cover as you would doing it yourself or through TooLost, but you also won&rsquo;t get sued for messing something up. Probably.</p><h3 id="289_h3_3_Less-good-CDBaby">Less good: <a href="https://cdbaby.com/">CDBaby</a><a href="http://sockpuppet.band/blog/289-Some-recommendations-for-digital-distribution#289_h3_3_Less-good-CDBaby" class="toc_link"></a></h3><p>CDBaby is pretty much the original indie distributor for the streaming services. A lot of why they have so much cachet is due to them being around the longest. <a href="http://sockpuppet.band/album/pointed-little-quill">One of my albums</a> is still handled by them because I can&rsquo;t be bothered to move it elsewhere.</p><p>The plus side to them is that they only charge a one-time fee for distributing your album, and then maintenance comes in the form of a 10% royalty cut.</p><p>The minus side is that one-time fee is $10 per release (which isn&rsquo;t <em>awful</em> for albums, but is enormous for singles).</p><p>It&rsquo;s a lot better than it used to be, though; back when they were the only choice it was something like $75/album and a 30% cut, and I think they only changed it <em>very</em> recently. They also charge money for a &ldquo;find this release&rdquo; page, and the amount they charge is <em>enormous</em> for what amounts to a single non-customizable static webpage. No thank you.</p><p>I ended up moving the two released-as-Sockpuppet CDBaby releases to TooLost mostly to simplify my album management and that process was also a bit annoying, especially since they ended up taking down the TooLost versions of those albums when they did so and that was a giant mess to sort out.</p><h3 id="289_h3_4_Probably-avoid-Amuse">Probably avoid: <a href="https://amuse.io/">Amuse</a><a href="http://sockpuppet.band/blog/289-Some-recommendations-for-digital-distribution#289_h3_4_Probably-avoid-Amuse" class="toc_link"></a></h3><p>Amuse made their way by being a free distributor that used artist success as a sort of A&amp;R thing. I did a couple releases through them. The process was abysmal, and accessing any information required running a goddamn mobile app for some reason.</p><p>They are no longer free, and they&rsquo;re still very app-focused. I don&rsquo;t see any reason to go with them over any of the above choices.</p><h3 id="289_h3_5_Probably-avoid-DistroKid">Probably avoid: <a href="https://distrokid.com/">DistroKid</a><a href="http://sockpuppet.band/blog/289-Some-recommendations-for-digital-distribution#289_h3_5_Probably-avoid-DistroKid" class="toc_link"></a></h3><p>I was pretty loyal to DistroKid for many years, but I switched from them to TooLost last year because of a number of issues.</p>
<ul>
<li>Their cover licensing is incredibly expensive and requires ongoing maintenance fees</li>
<li>Their ContentID is incredibly expensive, requires ongoing maintenance fees, and doesn&rsquo;t allow fine-grained whitelisting</li>
<li>When Spotify notifies them of algorithmic streaming (legitimately or not) they will just outright remove your music from the services with no real recourse</li>
<li>They have been accused of union-busting and being bad to their support team</li>
<li>Their support has definitely gone <em>way</em> downhill in recent years</li>
<li>The uploader interface is pretty terrible</li>
</ul>
<p>If you are fine with all those things, their price is pretty good, although not as good as TooLost. Like TooLost they provide a &ldquo;find this release&rdquo; page for free, although you can&rsquo;t customize the URL at all.</p><h3 id="289_h3_6_Probably-avoid-Tunecore">Probably avoid: <a href="https://www.tunecore.com/">Tunecore</a><a href="http://sockpuppet.band/blog/289-Some-recommendations-for-digital-distribution#289_h3_6_Probably-avoid-Tunecore" class="toc_link"></a></h3><p>TuneCore was the first real alternative to CDBaby, and when they came around they were very much <em>not</em> good. They were extremely expensive (something like $100 per album <em>per year</em>) and I don&rsquo;t even remember why I was convinced to try them out for a year. I think it&rsquo;s because they were the first distributor which didn&rsquo;t take a royalty cut? Not that it mattered, because I made something like $2 in royalties on that album. Then when I asked to take my album down instead of spending another $100 they got weird about trying to retain me as a customer even though that release was now $98 in the hole. So I have a lot of lasting resentment because of that.</p><p>Nowadays they charge much more reasonable rates, starting at $23/year (which is decently competitive, although doens&rsquo;t include all the features that TooLost does at that price point). Getting all of TooLost&rsquo;s features requires paying twice as much.</p>
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=music">#Music</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=business">#Business</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=distribution">#Distribution</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=industry">#Industry</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="Music" label="music" />
        
        <category term="Business" label="business" />
        
        <category term="Distribution" label="distribution" />
        
        <category term="Industry" label="industry" />
        

        

    </entry>
    <entry>
        
        <title>Live Shows: RFFF &#39;25 show</title>
        <link href="http://sockpuppet.band/live/2083-RFFF-25-show" rel="alternate" type="text/html" />
        <published>2025-07-06T16:00:00-07:00</published>
        <updated>2025-07-06T16:00:00-07:00</updated>
        <id>urn:uuid:264861c4-8d46-5379-a502-ba7dd2c17273</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p> </p><p><a href="https://party.radiofreefedi.net/">Radio Free Fedi</a> hosted <a href="https://musician.social/@radiofreefedi/114578484312336265">a series of summer concerts</a>, and I&rsquo;m thrilled to have performed a set on July 6, broadcast from VRChat.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        
<figure class="images"><a href="http://sockpuppet.band/live/2083-RFFF-25-show"><img src="http://sockpuppet.band/_file/ddc3f/1/rff-logo.svg" class="u-photo" loading="lazy" style="max-width:240px;max-height:240px" alt="rff-logo.svg"></a></figure>
<p><a href="https://party.radiofreefedi.net/">Radio Free Fedi</a> hosted <a href="https://musician.social/@radiofreefedi/114578484312336265">a series of summer concerts</a>, and I&rsquo;m thrilled to have performed a set on July 6, broadcast from VRChat.</p><p>You can read more about the festival on <a href="https://nham.co.uk/2025/08/nham-update-opus-8-post-partum-edition/">the NHAM blog</a>.</p>
<iframe title="Sockpuppet @ Radio Free Fedi Fest 2025" width="560" height="315" src="https://makertube.net/videos/embed/iDvixZwYuvsy1QqSKcHVZH" frameborder="0" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups allow-forms"></iframe>


        
            
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=VRChat">#VRChat</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=Fediverse">#Fediverse</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=Radio+Free+Fedi">#RadioFreeFedi</a>
        

        ]]>



        </content>
        <category term="LiveShows" label="Live Shows" />
        
        
        <category term="VRChat" label="VRChat" />
        
        <category term="Fediverse" label="Fediverse" />
        
        <category term="RadioFreeFedi" label="Radio Free Fedi" />
        

        

    </entry>
    <entry>
        
        <title>Blog: CD and vinyl manufacturing options</title>
        <link href="http://sockpuppet.band/blog/2798-CD-and-vinyl-manufacturing-options" rel="alternate" type="text/html" />
        <published>2025-06-23T17:01:35-07:00</published>
        <updated>2025-06-23T17:01:35-07:00</updated>
        <id>urn:uuid:ccdeb114-990b-5cb0-aa3d-fe1037568036</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>I&rsquo;ve been looking into physical releases again lately. After my <a href="http://sockpuppet.band/blog/1031-Vinyl-releases">recent vinyl releases</a>, my various polls have found that people are much more interested in buying things on CD than vinyl, because they&rsquo;re a much easier means of doing a physical collection.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>I&rsquo;ve been looking into physical releases again lately. After my <a href="http://sockpuppet.band/blog/1031-Vinyl-releases">recent vinyl releases</a>, my various polls have found that people are much more interested in buying things on CD than vinyl, because they&rsquo;re a much easier means of doing a physical collection.</p><p>The manufacturing space used to be a lot bigger, but these days there&rsquo;s not a whole lot of options. For most musicians, there are two paths to go down: on-demand and short-run.</p>

        
            <h3 id="2798_h3_1_On-demand">On-demand<a href="http://sockpuppet.band/blog/2798-CD-and-vinyl-manufacturing-options#2798_h3_1_On-demand" class="toc_link"></a></h3><p>On-demand manufacturing is the easiest one for most musicians to do. Rather than buying a lot of inventory up-front, you set up your setup files with a manufacturer and then when an order comes in, the unit is produced and shipped on an individual basis. For a CD this means it&rsquo;s burned to CD-R, and for a vinyl it means it&rsquo;s lathe-cut.</p><p>The plus side to this is that you don&rsquo;t need a huge up-front investment and you don&rsquo;t need to manage inventory, and someone else handles the fulfillment for you (usually with better packing/shipping materials than you&rsquo;d have access to yourself).</p><p>The minus side is that your options are extremely limited, and the per-unit cost is a bit higher (meaning less overall profit).</p><p>For most musicians I would recommend this as the first step, and then if interest grows, switching to short-run.</p><p>At present there are only two choices I&rsquo;d recommend: <a href="https://elasticstage.com/">elasticStage</a> and <a href="https://kunaki.com">Kunaki</a>, but both have pluses and minuses. I will also talk about why I do not recommend a third option that I am aware of.</p><h4 id="2798_h4_2_elasticStage"><a href="https://elasticstage.com/">elasticStage</a><a href="http://sockpuppet.band/blog/2798-CD-and-vinyl-manufacturing-options#2798_h4_2_elasticStage" class="toc_link"></a></h4><p>elasticStage is mostly known for their lathe-cut vinyl, but they also do CD manufacturing. Their vinyl quality is quite good; see <a href="http://sockpuppet.band/blog/2920-elasticStage-A-brief-review">my original review</a> that discusses the packaging, and <a href="http://sockpuppet.band/blog/1085-elasticStage-update">my updated review</a> for their subsequent improvements to their audio quality.</p><p>They offer the following product types:</p>
<ul>
<li>12&quot; vinyl, with or without booklet</li>
<li>CD, with or without booklet</li>
</ul>
<p>So far I have only done vinyl and CD without booklet, and I haven&rsquo;t personally seen the CDs (which are far less popular than vinyl) but they are packaged in a &ldquo;Digipak&rdquo;-style cardboard sleeve. In both cases the booklet is 12-panel.</p><p>The big downside to them is that they don&rsquo;t currently support any sort of drop-shipping order fulfillment; listeners basically have to order through elascticStage&rsquo;s website for it to make any sense. There <em>are</em> annoying means of kinda-sorta drop-shipping through them but they&rsquo;re extremely not worth it.</p><p>Another thing to keep in mind is that they don&rsquo;t let you set your own unit price, and they are also currently based in the UK so shipping can be slow and expensive for much of the world.</p><p>Their <a href="https://elasticstage.zendesk.com/hc/en-gb/articles/32932041317649-How-does-pricing-work">pricing</a> is a little confusing, but the short version is that, for most people, the base price on vinyl is £22.32 (around $30) for the record and an additional £4 for a booklet, and CDs are £9.12 (around $12) with an additional £1.20 for a booklet, and then of course whatever shipping they charge on top of that.</p><p>They also do let you produce a short run of products, but the pricing is the same as the on-demand, so you do not benefit from any economies of scale, so I would not recommend using them as a short-run producer.</p><p>I hope that in the future, elasticStage allows for dropshipping, because they are by far the best choice I&rsquo;ve found for on-demand vinyl.</p><h4 id="2798_h4_3_Kunaki"><a href="https://kunaki.com">Kunaki</a><a href="http://sockpuppet.band/blog/2798-CD-and-vinyl-manufacturing-options#2798_h4_3_Kunaki" class="toc_link"></a></h4><p>Kunaki is a very well-regarded super-cut-rate on-demand manufacturer, that has <a href="https://kunaki.com/calculator1.asp">extremely aggressive pricing</a>. They also have a quite broad product selection, and will do CDs, vinyl, cassette tapes, DVDs, and blu-ray discs. Their on-demand pricing is actually comparable to most short-run manufacturers!</p><p>They&rsquo;re also primarily set up for drop-shipping, making them an amazing choice for selling your music via Bandcamp or the like.</p><p>However, they have a big downside in that their packaging is <em>super</em> barebones.</p><p>On CDs you get a jewel case with an outer tray and a 2-panel insert. That&rsquo;s it. But it&rsquo;s also only $2/copy (plus shipping, which is super reasonable). That&rsquo;s <em>impossibly</em> cheap.</p><p>Their vinyl is considerably more expensive ($36/copy) and I haven&rsquo;t heard good things about their output, so I wouldn&rsquo;t use them for that.</p><p>Cassettes are $5, and again I cannot speak to their quality. But that&rsquo;s definitely a fun option for folks who want that particular form of nostalgia. (Personally I&rsquo;d have no way of even playing one, but you do you!)</p><p>There is another big downside to Kunaki in that they will only retain your setup files for 180 days past the last order, so if you only get orders sporadically, you&rsquo;ll have to redo your setup as much as twice a year. Doing the setup is pretty straightforward though, and if you&rsquo;re only selling sporadically it&rsquo;s probably Just Fine™.</p><p>So, that said, if the packaging limitations for CDs are acceptable, Kunaki seems like a great choice, especially for drop-shipping.</p><p>However, their international shipping is <em>incredibly</em> expensive, so that&rsquo;s something to keep in mind if you have a global audience.</p><h4 id="2798_h4_4_Artglider"><a href="https://artglider.com/">Artglider</a><a href="http://sockpuppet.band/blog/2798-CD-and-vinyl-manufacturing-options#2798_h4_4_Artglider" class="toc_link"></a></h4><p>Artglider is another on-demand manufacturing thing that comes up a lot in these lists. Their offerings are super limited &mdash; they only do CDs and vinyl, with the same specifications as Kunaki &mdash; and from what I&rsquo;ve seen from reviews online, their quality is pretty abysmal, and their pricing is a lot higher. CDs cost $3.80 each with an up-front $20 setup fee, and their vinyl is $49/each with a $42 setup fee.</p><p>They do drop-ship, but I see no reason to go with them instead of Kunaki.</p><h3 id="2798_h3_5_Short-run-production">Short-run production<a href="http://sockpuppet.band/blog/2798-CD-and-vinyl-manufacturing-options#2798_h3_5_Short-run-production" class="toc_link"></a></h3><p>If you are doing larger amounts of sales than most independent musicians online, you might want to look into short-run production. Doing so means managing your own inventory and shipping (and that inventory can take up a lot of space in your home or office), and having to find a source for CD and vinyl mailers. You do get much better control over the output, and sometimes pricing can be a lot better as well.</p><h4 id="2798_h4_6_Discmakers"><a href="https://discmakers.com/">Discmakers</a><a href="http://sockpuppet.band/blog/2798-CD-and-vinyl-manufacturing-options#2798_h4_6_Discmakers" class="toc_link"></a></h4><p>There used to be a whole lot of businesses in this space, but most are long-gone. Discmakers has been around for ages, though, and many of the other companies you&rsquo;ll find online are really just reselling Discmakers&#39; services.</p><p>Their pricing is pretty good, at under $3/copy for a CD (with a number of packaging choices, including digipaks and jewel cases, both with and without booklets) and around $12/copy for vinyl, with highly-professional results. However, their minimum order size is 100, which can present quite a large up-front investment as well as a lot of space taken up by the inventory.</p><h4 id="2798_h4_7_Atomic-Disc"><a href="https://www.atomicdisc.com/">Atomic Disc</a><a href="http://sockpuppet.band/blog/2798-CD-and-vinyl-manufacturing-options#2798_h4_7_Atomic-Disc" class="toc_link"></a></h4><p>Atomic Disc isn&rsquo;t as well-known as Discmakers, but they are a compelling option if you want a shorter run size and are willing to compromise on the packaging. Their jewel case and digipak options still have a minimum run of 100 (and cost a bit more than Discmakers), but they have lower-cost options that have a minimum quantity of 25, but which also don&rsquo;t come across to me as looking very professional. They seem to be a better option for someone who is looking to produce polished-looking demo CDs to submit to record labels and radio stations, rather than for producing retail releases.</p><p>They don&rsquo;t seem to have any advantage over Discmakers when it comes to vinyl, as they have the same minimum quantity at a higher price.</p><h4 id="2798_h4_8_Bison-Disc"><a href="https://www.bisondisc.com/">Bison Disc</a><a href="http://sockpuppet.band/blog/2798-CD-and-vinyl-manufacturing-options#2798_h4_8_Bison-Disc" class="toc_link"></a></h4><p>This is another company I only learned of while doing research for this blog post. They have quite a few offerings for CD, and in particular their Digipak service looks pretty compelling, at $220 for 100 copies. They also include free proofs, which is super uncommon!</p><p>They do offer shorter run sizes but their pricing appears to cost nearly as much for 25 copies as it does for 100, so it&rsquo;d have to be a pretty strange circumstance where you&rsquo;d want to go with the smaller run size.</p><h3 id="2798_h3_9_A-note-on-longevity">A note on longevity<a href="http://sockpuppet.band/blog/2798-CD-and-vinyl-manufacturing-options#2798_h3_9_A-note-on-longevity" class="toc_link"></a></h3><p>All short-run and on-demand CD manufacturers are going to be burning CD-Rs. CD-Rs degrade over time. <a href="http://sockpuppet.band/album/pointed-little-quill">My very first album</a> came out 25 years ago on a DIY short-run CD release and not a single copy that I know of is still playable. <a href="http://sockpuppet.band/album/foodsexsleep">foodsexsleep</a> was replicated by Discmakers in 2009 and while it&rsquo;s fared <em>somewhat</em> better I&rsquo;m still not super optimistic that these discs are going to last much longer.</p><p>Vinyl, no matter how high-qualty, and regardless of whether it&rsquo;s pressed or lathe-cut, is going to degrade with every playback.</p><p>Even pressed CDs <a href="https://en.wikipedia.org/wiki/Disc_rot">have a shelf-life</a>.</p><p>These artifacts are good as collector&rsquo;s items, and as a show of support for the artists. They are not a permanent, long-term storage solution for your music. Please make your music available digitally, in as many places as possible, because companies themselves also fail.</p><p>And for those who collect music, and keep everything locally on a hard drive with multiple backups, because you never know when that song you like is going to just poof out of existence.</p><p>Nothing is immune to entropy.</p><h3 id="2798_h3_10_My-personal-conclusions">My personal conclusions<a href="http://sockpuppet.band/blog/2798-CD-and-vinyl-manufacturing-options#2798_h3_10_My-personal-conclusions" class="toc_link"></a></h3><p>For now, I&rsquo;m going to use Kunaki for my CD sales through Bandcamp, and I&rsquo;ll probably put more of my albums on elasticStage for vinyl and CDs sold through their storefront. It will be some time before I&rsquo;ve generated the required setup files, but people have expressed interest in physical CDs (not so much for vinyl) so I&rsquo;d might as well make it available.</p><p>By the time that I&rsquo;m in a situation where doing short-run replication makes sense, however, the landscape will have probably changed immensely.</p>
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=manufacturing">#Manufacturing</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=physical+media">#PhysicalMedia</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=business">#Business</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=elasticStage">#elasticStage</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="Manufacturing" label="manufacturing" />
        
        <category term="PhysicalMedia" label="physical media" />
        
        <category term="Business" label="business" />
        
        <category term="elasticStage" label="elasticStage" />
        

        

    </entry>
    <entry>
        
        <title>Blog: elasticStage update</title>
        <link href="http://sockpuppet.band/blog/1085-elasticStage-update" rel="alternate" type="text/html" />
        <published>2025-06-23T16:01:19-07:00</published>
        <updated>2025-06-23T16:01:19-07:00</updated>
        <id>urn:uuid:d20a3f3e-e262-5d35-86af-177ccd39ba29</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>After <a href="http://sockpuppet.band/blog/2920-elasticStage-A-brief-review">my previous review of elasticStage</a>, a customer service representative reached out to me and told me that they&rsquo;d improved their cutting process to reduce the surface noise, and asked if I&rsquo;d be interested in receiving (at no charge) a recut of the two records. I agreed to this, and the replacement records arrived today.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>After <a href="http://sockpuppet.band/blog/2920-elasticStage-A-brief-review">my previous review of elasticStage</a>, a customer service representative reached out to me and told me that they&rsquo;d improved their cutting process to reduce the surface noise, and asked if I&rsquo;d be interested in receiving (at no charge) a recut of the two records. I agreed to this, and the replacement records arrived today.</p><p>On both of my albums, I am extremely pleased to report that the audio quality has improved in every possible way! The surface noise is essentially gone, and everything sounds perfectly clean. Some of the subtler sounds that had been lost behind the surface noise before are now super apparent, too.</p><p>The difference is much more profound on <a href="http://sockpuppet.band/album/transitions">Transitions</a> than on <a href="http://sockpuppet.band/album/refactor">Refactor</a>, but both albums have definitely improved as a result of their process change.</p><p>The actual manufacturing and delivery time was also greatly reduced from the last time, which tells me that they&rsquo;ve probably cleared a backlog in their manufacturing.</p>

        
            <p>Here are some comparisons between the original digital version, the first cut, and the recut. These were recorded on my TEAC TN-300 turntable using its built-in preamp and a Behringer UCA202 USB audio interface. All versions&#39; levels have been normalized to the same LUFS target, but they are otherwise unprocessed. Also, the pitch is slightly higher on the turntable, which is likely a sign that I need to adjust it <del>(or perhaps elasticStage&rsquo;s lathes are running slightly slow)</del> UPDATE: I just checked, my turntable is indeed running slightly fast.</p>
<iframe src="https://cdn.sockpuppet.band/elasticStage-sample/" width="100%" height="360px"><a href="https://cdn.sockpuppet.band/elasticStage-sample/">Comparison player</a></iframe>
<p>Anyway, if you&rsquo;re interested in buying physical copies of these albums, you can get them from <a href="https://elasticstage.com/sockpuppet">my elasticStage page</a>.</p>
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=vinyl">#Vinyl</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=distribution">#Distribution</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=Transitions">#Transitions</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=Refactor">#Refactor</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=elasticStage">#elasticStage</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="Vinyl" label="vinyl" />
        
        <category term="Distribution" label="distribution" />
        
        <category term="Transitions" label="Transitions" />
        
        <category term="Refactor" label="Refactor" />
        
        <category term="elasticStage" label="elasticStage" />
        

        

    </entry>
    <entry>
        
        <title>Live Shows: Trans Pride VR</title>
        <link href="http://sockpuppet.band/live/2924-Trans-Pride-VR" rel="alternate" type="text/html" />
        <published>2025-06-15T16:30:00-07:00</published>
        <updated>2025-06-15T16:30:00-07:00</updated>
        <id>urn:uuid:55867ef4-909a-5343-b3c0-1b999054fe30</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p> </p><p>I will be performing three 15-minute live sets at <a href="https://transacademy.org/">Trans Academy</a> as part of the annual Trans Pride VR festivities! Please join <a href="https://vrc.group/TRANS.7885">TRANS.7885</a> to attend! (And come to Trans Pride VR too! It&rsquo;ll be fun.)</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        
<figure class="images"><a href="http://sockpuppet.band/live/2924-Trans-Pride-VR"><img src="http://sockpuppet.band/static/_img/0b/3cf6/trans-academy_df09cc0614_240x240_q50.webp" width="240" height="240" srcset="http://sockpuppet.band/static/_img/0b/3cf6/trans-academy_df09cc0614_240x240_q50.webp 1x, http://sockpuppet.band/static/_img/0b/3cf6/trans-academy_df09cc0614_480x480_q50.webp 2x" loading="lazy" class="u-photo" alt="trans academy.png"></a></figure>
<p>I will be performing three 15-minute live sets at <a href="https://transacademy.org/">Trans Academy</a> as part of the annual Trans Pride VR festivities! Please join <a href="https://vrc.group/TRANS.7885">TRANS.7885</a> to attend! (And come to Trans Pride VR too! It&rsquo;ll be fun.)</p><p>I will also try to stream my sets at <a href="https://live.sockpuppet.us/">the usual place</a> but there are no guarantees.</p>

        
            
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=trans+academy">#TransAcademy</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=VRChat">#VRChat</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=concert">#Concert</a>
        

        ]]>



        </content>
        <category term="LiveShows" label="Live Shows" />
        
        
        <category term="TransAcademy" label="trans academy" />
        
        <category term="VRChat" label="VRChat" />
        
        <category term="Concert" label="concert" />
        

        

    </entry>
    <entry>
        
        <title>Live Shows: Trans Pride VR</title>
        <link href="http://sockpuppet.band/live/168-Trans-Pride-VR" rel="alternate" type="text/html" />
        <published>2025-06-15T15:15:00-07:00</published>
        <updated>2025-06-15T15:15:00-07:00</updated>
        <id>urn:uuid:ca5f3418-3478-50a4-aaba-41e723065973</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p> </p><p>I will be performing three 15-minute live sets at <a href="https://transacademy.org/">Trans Academy</a> as part of the annual Trans Pride VR festivities! Please join <a href="https://vrc.group/TRANS.7885">TRANS.7885</a> to attend! (And come to Trans Pride VR too! It&rsquo;ll be fun.)</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        
<figure class="images"><a href="http://sockpuppet.band/live/168-Trans-Pride-VR"><img src="http://sockpuppet.band/static/_img/0b/3cf6/trans-academy_df09cc0614_240x240_q50.webp" width="240" height="240" srcset="http://sockpuppet.band/static/_img/0b/3cf6/trans-academy_df09cc0614_240x240_q50.webp 1x, http://sockpuppet.band/static/_img/0b/3cf6/trans-academy_df09cc0614_480x480_q50.webp 2x" loading="lazy" class="u-photo" alt="trans academy.png"></a></figure>
<p>I will be performing three 15-minute live sets at <a href="https://transacademy.org/">Trans Academy</a> as part of the annual Trans Pride VR festivities! Please join <a href="https://vrc.group/TRANS.7885">TRANS.7885</a> to attend! (And come to Trans Pride VR too! It&rsquo;ll be fun.)</p><p>I will also try to stream my sets at <a href="https://live.sockpuppet.us/">the usual place</a> but there are no guarantees.</p>

        
            
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=trans+academy">#TransAcademy</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=VRChat">#VRChat</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=concert">#Concert</a>
        

        ]]>



        </content>
        <category term="LiveShows" label="Live Shows" />
        
        
        <category term="TransAcademy" label="trans academy" />
        
        <category term="VRChat" label="VRChat" />
        
        <category term="Concert" label="concert" />
        

        

    </entry>
    <entry>
        
        <title>Live Shows: Trans Pride VR</title>
        <link href="http://sockpuppet.band/live/2632-Trans-Pride-VR" rel="alternate" type="text/html" />
        <published>2025-06-14T16:45:00-07:00</published>
        <updated>2025-06-14T16:45:00-07:00</updated>
        <id>urn:uuid:2348bbb5-23a6-540f-a660-b8eef7fca7c2</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p> </p><p>I will be performing three 15-minute live sets at <a href="https://transacademy.org/">Trans Academy</a> as part of the annual Trans Pride VR festivities! Please join <a href="https://vrc.group/TRANS.7885">TRANS.7885</a> to attend! (And come to Trans Pride VR too! It&rsquo;ll be fun.)</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        
<figure class="images"><a href="http://sockpuppet.band/live/2632-Trans-Pride-VR"><img src="http://sockpuppet.band/static/_img/0b/3cf6/trans-academy_df09cc0614_240x240_q50.webp" width="240" height="240" srcset="http://sockpuppet.band/static/_img/0b/3cf6/trans-academy_df09cc0614_240x240_q50.webp 1x, http://sockpuppet.band/static/_img/0b/3cf6/trans-academy_df09cc0614_480x480_q50.webp 2x" loading="lazy" class="u-photo" alt="trans academy.png"></a></figure>
<p>I will be performing three 15-minute live sets at <a href="https://transacademy.org/">Trans Academy</a> as part of the annual Trans Pride VR festivities! Please join <a href="https://vrc.group/TRANS.7885">TRANS.7885</a> to attend! (And come to Trans Pride VR too! It&rsquo;ll be fun.)</p><p>I will also try to stream my sets at <a href="https://live.sockpuppet.us/">the usual place</a> but there are no guarantees.</p>

        
            
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=trans+academy">#TransAcademy</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=VRChat">#VRChat</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=concert">#Concert</a>
        

        ]]>



        </content>
        <category term="LiveShows" label="Live Shows" />
        
        
        <category term="TransAcademy" label="trans academy" />
        
        <category term="VRChat" label="VRChat" />
        
        <category term="Concert" label="concert" />
        

        

    </entry>
    <entry>
        
        <title>Live Shows: VRelium: Horizons: Music Beyond the Universe</title>
        <link href="http://sockpuppet.band/live/889-VRelium-Horizons-Music-Beyond-the-Universe" rel="alternate" type="text/html" />
        <published>2025-06-14T14:00:00-07:00</published>
        <updated>2025-06-14T14:00:00-07:00</updated>
        <id>urn:uuid:90d02bd6-a2ca-5108-8b69-b84767d6d82d</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p> </p><p>I performed at <a href="https://vrelium.com">VRelium</a> for <a href="https://www.vrelium.com/events/horizons-music-beyond-the-universe">Horizons: Music Beyond the Universe</a>, on what happened to be my birthday!</p>]]></summary>
        <content type="html"><![CDATA[

		

        
        <figure><a href="http://sockpuppet.band/live/889-VRelium-Horizons-Music-Beyond-the-Universe"><img src="/static/_img/95/86ce/vrelium-horizons-2025_839a06de6e_350x350.jpg" width="350" height="350" srcset="/static/_img/95/86ce/vrelium-horizons-2025_839a06de6e_350x350.jpg 1x, /_img/WyJjb250ZW50L2xpdmUvdnJlbGl1bSBob3Jpem9ucyAyMDI1LnBuZyIsMix7IndpZHRoIjozNTAsImZvcm1hdCI6ImpwZyJ9XQ.wiJY3L75eJXx6lcRu9IxShy7kCQ 2x" loading="lazy" alt="vrelium horizons 2025.png"></a></figure>
        



        
<figure class="images"><a href="http://sockpuppet.band/live/889-VRelium-Horizons-Music-Beyond-the-Universe"><img src="http://sockpuppet.band/static/_img/95/86ce/vrelium-horizons-2025_839a06de6e_240x240_q50.webp" width="240" height="240" srcset="http://sockpuppet.band/static/_img/95/86ce/vrelium-horizons-2025_839a06de6e_240x240_q50.webp 1x, http://sockpuppet.band/static/_img/95/86ce/vrelium-horizons-2025_839a06de6e_480x480_q50.webp 2x" loading="lazy" class="u-photo" alt="vrelium horizons 2025.png"></a></figure>
<p>I performed at <a href="https://vrelium.com">VRelium</a> for <a href="https://www.vrelium.com/events/horizons-music-beyond-the-universe">Horizons: Music Beyond the Universe</a>, on what happened to be my birthday!</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/Cm_V6l4HOR4?si=Sbjh3eyERF-4EdIq" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>


        
            
<figure class="images"><a href="http://sockpuppet.band/live/889-VRelium-Horizons-Music-Beyond-the-Universe"><img src="http://sockpuppet.band/static/_img/2e/51da/vrelium-horizons-poster_e10f8a6f7b_640x360_q50.webp" width="640" height="360" srcset="http://sockpuppet.band/static/_img/2e/51da/vrelium-horizons-poster_e10f8a6f7b_640x360_q50.webp 1x, http://sockpuppet.band/static/_img/2e/51da/vrelium-horizons-poster_e10f8a6f7b_1280x720_q50.webp 2x" loading="lazy" class="u-photo" alt="vrelium-horizons-poster.png"></a></figure>

            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=VRChat">#VRChat</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=concert">#Concert</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=VRelium">#VRelium</a>
        

        ]]>



        </content>
        <category term="LiveShows" label="Live Shows" />
        
        
        <category term="VRChat" label="VRChat" />
        
        <category term="Concert" label="concert" />
        
        <category term="VRelium" label="VRelium" />
        

        

    </entry>
    <entry>
        
        <title>Blog: Happy 10th, Refactor</title>
        <link href="http://sockpuppet.band/blog/1685-Happy-10th-Refactor" rel="alternate" type="text/html" />
        <published>2025-06-14T00:00:00-07:00</published>
        <updated>2025-06-14T00:00:00-07:00</updated>
        <id>urn:uuid:b77cc8ad-9ef9-5905-98c5-2d5db4b33428</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>10 years ago to this day, on my 37th birthday, I released <a href="http://sockpuppet.band/album/refactor">Refactor</a>, which I still consider to be my definitive album.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>10 years ago to this day, on my 37th birthday, I released <a href="http://sockpuppet.band/album/refactor">Refactor</a>, which I still consider to be my definitive album.</p><p>You can still access <a href="https://junk.sockpuppet.us/refactor/">its old microsite</a>. (Be sure to click the &ldquo;play&rdquo; button in the corner.)</p><p>Happy birthday!</p>

        
            
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=nostalgia">#Nostalgia</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="Nostalgia" label="nostalgia" />
        

        

    </entry>
    

    
</feed>