<?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=3036" 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=2388" rel="prev-archive" />
    
    
    <link href="http://sockpuppet.band/feed?id=3424" rel="next-archive" />
    
    <link href="http://sockpuppet.band/" />
    <id>tag:sockpuppet.band,2025-12-21:_all</id>
    <updated>2026-01-24T09:01:40+00:00</updated>

    

    <entry>
        
        <title>Live Shows: TransPaws × Trans Academy staff hangout</title>
        <link href="http://sockpuppet.band/live/3036-TransPaws-%C3%97-Trans-Academy-staff-hangout" rel="alternate" type="text/html" />
        <published>2025-12-05T16:00:00-08:00</published>
        <updated>2025-12-05T16:00:00-08:00</updated>
        <id>urn:uuid:b019e960-1a77-4d96-8d15-f4f584aea976</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>I performed at a private gathering for my fellow Trans Academy volunteers as well as the volunteer staff of <a href="https://vrc.group/TRPW.6360">TransPaws</a>. I had a cold! I tried out a few completely-untested new backing tracks! It was fun.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>I performed at a private gathering for my fellow Trans Academy volunteers as well as the volunteer staff of <a href="https://vrc.group/TRPW.6360">TransPaws</a>. I had a cold! I tried out a few completely-untested new backing tracks! It was fun.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/fv2-q0JiPa8?si=RGzeInbt6py8a2qN" 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=VRChat">#VRChat</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=Trans+Academy">#TransAcademy</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=TransPaws">#TransPaws</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=private+show">#PrivateShow</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=full+set">#FullSet</a>
        

        ]]>



        </content>
        <category term="LiveShows" label="Live Shows" />
        
        
        <category term="VRChat" label="VRChat" />
        
        <category term="TransAcademy" label="Trans Academy" />
        
        <category term="TransPaws" label="TransPaws" />
        
        <category term="PrivateShow" label="private show" />
        
        <category term="FullSet" label="full set" />
        

        

    </entry>
    <entry>
        
        <title>Live Shows: TFSS Three-Year Anniversary Show</title>
        <link href="http://sockpuppet.band/live/3095-TFSS-Three-Year-Anniversary-Show" rel="alternate" type="text/html" />
        <published>2025-11-29T19:00:00-08:00</published>
        <updated>2025-11-29T19:00:00-08:00</updated>
        <id>urn:uuid:35cd4c29-fb4a-56bc-bf6d-2890e1900a9a</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>I am happy to be performing with TransPaws in celebration of the third anniversary of the founding of the Transgender Furs Support System. Join <a href="https://vrc.group/OTFSS.0050">the VRChat group</a> in order to join the event. And possibly join <a href="https://discord.gg/DNRgrMucNm">the Discord community</a> if you want to be a part of this organization!</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>I am happy to be performing with TransPaws in celebration of the third anniversary of the founding of the Transgender Furs Support System. Join <a href="https://vrc.group/OTFSS.0050">the VRChat group</a> in order to join the event. And possibly join <a href="https://discord.gg/DNRgrMucNm">the Discord community</a> if you want to be a part of this organization!</p>

        
            
<figure class="images"><a href="http://sockpuppet.band/live/3095-TFSS-Three-Year-Anniversary-Show"><img src="http://sockpuppet.band/static/_img/4f/0997/tfss-poster-1_5ade41e855_427x640_q50.webp" width="427" height="640" srcset="http://sockpuppet.band/static/_img/4f/0997/tfss-poster-1_5ade41e855_427x640_q50.webp 1x, http://sockpuppet.band/static/_img/4f/0997/tfss-poster-1_5ade41e855_853x1280_q50.webp 2x" loading="lazy" class="u-photo" alt="tfss poster 1.png"></a></figure>

            

            

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

        ]]>



        </content>
        <category term="LiveShows" label="Live Shows" />
        
        
        <category term="VRChat" label="VRChat" />
        
        <category term="FullSet" label="full set" />
        
        <category term="Concert" label="concert" />
        

        

    </entry>
    <entry>
        
        <title>Live Shows: Skyline Aurora Festival</title>
        <link href="http://sockpuppet.band/live/896-Skyline-Aurora-Festival" rel="alternate" type="text/html" />
        <published>2025-11-21T14:00:00-08:00</published>
        <updated>2025-11-21T14:00:00-08:00</updated>
        <id>urn:uuid:74a00e72-415f-5f40-a07a-7853d651f3cb</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p> </p><p>I performed a half-hour set with <a href="https://vrc.group/SKY421.1407">Skyline Festival</a> on November 21! The show was for the benefit of <a href="https://www.feedingamerica.org/">Feeding America</a>, a very important charity in this day and age.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        
<figure class="images"><a href="http://sockpuppet.band/live/896-Skyline-Aurora-Festival"><img src="http://sockpuppet.band/static/_img/be/1e22/Skyline_LOGO_Jacket2_d3fc1f6c68_240x240_q50.webp" width="240" height="240" srcset="http://sockpuppet.band/static/_img/be/1e22/Skyline_LOGO_Jacket2_d3fc1f6c68_240x240_q50.webp 1x, http://sockpuppet.band/static/_img/be/1e22/Skyline_LOGO_Jacket2_d3fc1f6c68_480x479_q50.webp 2x" loading="lazy" class="u-photo" alt="Skyline_LOGO_Jacket2.png"></a></figure>
<p>I performed a half-hour set with <a href="https://vrc.group/SKY421.1407">Skyline Festival</a> on November 21! The show was for the benefit of <a href="https://www.feedingamerica.org/">Feeding America</a>, a very important charity in this day and age.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/4e9JuW1GleU?si=UzEbcQi6IYu82uUt" 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/896-Skyline-Aurora-Festival"><img src="http://sockpuppet.band/static/_img/5f/c575/skyline-aurora-fest_048dfcc302_640x360_q50.webp" width="640" height="360" srcset="http://sockpuppet.band/static/_img/5f/c575/skyline-aurora-fest_048dfcc302_640x360_q50.webp 1x, http://sockpuppet.band/static/_img/5f/c575/skyline-aurora-fest_048dfcc302_1280x720_q50.webp 2x" loading="lazy" class="u-photo" alt="skyline aurora fest.png"></a></figure>

            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=concerts">#Concerts</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=Skyline+Festival">#SkylineFestival</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="SkylineFestival" label="Skyline Festival" />
        
        <category term="VRChat" label="VRChat" />
        
        <category term="FullSet" label="full set" />
        

        

    </entry>
    <entry>
        
        <title>Blog: November updates</title>
        <link href="http://sockpuppet.band/blog/2564-November-updates" rel="alternate" type="text/html" />
        <published>2025-11-18T02:08:04-08:00</published>
        <updated>2025-11-18T02:08:04-08:00</updated>
        <id>urn:uuid:438015ca-b51b-5973-a3e9-9a4790876907</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>We&rsquo;re close to the two-thirds mark of the month so I figure I should share what&rsquo;s been going on! It&rsquo;s all good stuff, I think.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>We&rsquo;re close to the two-thirds mark of the month so I figure I should share what&rsquo;s been going on! It&rsquo;s all good stuff, I think.</p>

        
            <h3 id="2564_h3_1_Website">Website<a href="http://sockpuppet.band/blog/2564-November-updates#2564_h3_1_Website" class="toc_link"></a></h3><p>I&rsquo;ve been slowly working on fully tagging all of <a href="http://sockpuppet.band/releases/all">my releases</a>. At this point it&rsquo;s at about 90% coverage, with nearly everything having genre tags and most things also having instrument and mood tags.</p><h3 id="2564_h3_2_Novembeat">Novembeat<a href="http://sockpuppet.band/blog/2564-November-updates#2564_h3_2_Novembeat" class="toc_link"></a></h3><p>Some years I produce a lot of music for Novembeat. Some years, not so much. Usually it ends up with <a href="http://sockpuppet.band/releases/?tag=collection:Novembeat">an album</a> at the end.</p><p>So far I&rsquo;ve made 10 tracks (all posted on <a href="https://www.youtube.com/playlist?list=PLNRLpYEdwBNgZMOTh0QcFehYyeWpa6QD1">the YouTube playlist</a>) which is on the low end but it&rsquo;s been fun to play with things all the same. I might do more this month although I haven&rsquo;t been super motivated. The last few tracks I worked on I at least <a href="https://www.youtube.com/@realfakesockpuppet/live">streamed live on YouTube</a> which was a lot of fun.</p><p>Some of the tracks I&rsquo;ve made so far are ones that I definitely want to revisit as full tracks and don&rsquo;t want to do a half-assed release at the end of the month, and the other tracks are ones that are fun as tooling around but nothing I am really super inspired to release on an album, so I think this year I&rsquo;m just going to limit it to the playlist (same as I did <a href="https://www.youtube.com/playlist?list=PLNRLpYEdwBNhvYgINS87DnFa5gY0EqZli">last year</a>) and treat it as a fun exercise instead of it being A Thing. Especially since I no longer really feel the pressure to feed the streaming algorithms.</p><h3 id="2564_h3_3_New-music">New music<a href="http://sockpuppet.band/blog/2564-November-updates#2564_h3_3_New-music" class="toc_link"></a></h3><p>I&rsquo;m still working on the soundtrack for <a href="https://gooningsimulator.com/">a game</a>, and it&rsquo;s coming<sup id="r_e2564_fn1"><a href="http://sockpuppet.band/blog/2564-November-updates#d_e2564_fn1" rel="footnote">1</a></sup> along nicely. Our goal is to release the game in 2026, although there&rsquo;s nothing more firm than that which I can disclose publicly.</p><p>I&rsquo;m also continuing to work on music for some other clients, and collecting more ideas/gumption for whittling down my album production backlog.</p><h3 id="2564_h3_4_Performances">Performances<a href="http://sockpuppet.band/blog/2564-November-updates#2564_h3_4_Performances" class="toc_link"></a></h3><p>I&rsquo;m excited for two performances, <a href="http://sockpuppet.band/live/896-Skyline-Aurora-Festival">Skyline Aurora Fest</a> this Friday and the <a href="http://sockpuppet.band/live/3095-TFSS-Three-Year-Anniversary-Show">Trans Furs Support System anniversary show</a> next Saturday. I&rsquo;ve upgraded my performance setup even further to make these the best shows I can. Some highlights:</p>
<ul>
<li>I&rsquo;m now using backing tracks combined with live instruments, and many of the backing tracks are specific to my live performances with new arrangements</li>
<li>I have a pretty complete pedalboard that gives me much more control over my live sound, including a proper reverb setup</li>
<li>I&rsquo;ve switched to using some wireless IEMs that give me a lot more freedom within my VR playspace and cuts down on the fragility of my monitoring setup</li>
</ul>
<p>I&rsquo;m also trying to get in on the beta for the <a href="https://www.eozvr.com/products/eoz-immersive-vr-gloves">EOZ immersive gloves</a> in order to get proper hand tracking while I perform, although it&rsquo;ll still be some time before that happens. Right now it&rsquo;s definitely the most promising option that&rsquo;s coming to market in the foreseeable future.</p><h3 id="2564_h3_5_YouTube-channel-update">YouTube channel update<a href="http://sockpuppet.band/blog/2564-November-updates#2564_h3_5_YouTube-channel-update" class="toc_link"></a></h3><p>Switching to self-administered releases on <a href="http://sockpuppet.band/youtube">my channel</a> has been the best decision I&rsquo;ve made, for unexpected reasons.</p><p>Normally, when releasing music to YouTube, you have to go through a distributor, i.e. the same companies that put music on services like Spotify and Apple Music. Technically, YouTube Music releases are separate from regular YouTube, and the &ldquo;official artist channel&rdquo; function is just a way of getting YouTube Music releases to appear on the &ldquo;releases&rdquo; tab of the official artist website.</p><p>The plus side to this method is that all music listened through YouTube Music gets administered like any other music stream, and YouTube pays out <a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music">around half a penny per play</a>, which isn&rsquo;t nothing. And it&rsquo;s also nice that these releases show up on the release tab, and have all of the necessary metadata for music business things. But it has several downsides as well:</p>
<ul>
<li>There&rsquo;s basically no control over what appears on the video description</li>
<li>There&rsquo;s no control over what the video content actually is (generally it&rsquo;s just a static image of the cover art)</li>
<li>There&rsquo;s no way to directly provide synchronized lyrics/subtitles, auto-captioned or otherwise, unless it&rsquo;s a feature provided by your distributor (and setting that up at the distributor side is a pain in the butt)</li>
<li>The artist has absolutely no control over how anything is organized</li>
<li>YouTube Music plays do nothing to help with discovery within the greater YouTube algorithm and doesn&rsquo;t affect the artist&rsquo;s YouTube watch stats</li>
<li>Listeners aren&rsquo;t actually directed to the musician&rsquo;s channel (at least, not reliably) and there&rsquo;s no real integration between YouTube Music and general YouTube following</li>
<li>The artist doesn&rsquo;t benefit from any of YouTube&rsquo;s copyright tools beyond what their distributor makes available (usually at great added expense and with exceptionally poor granularity)</li>
</ul>
<p>And none of these are issues for self-administered videos! So far I&rsquo;ve had the following benefits already:</p>
<ul>
<li>People have discovered my music through the regular YouTube recommendation feed</li>
<li>I&rsquo;ve hit a new watch time milestone which is good for the ol&#39; dopamine factory</li>
<li>I&rsquo;m having a lot of fun figuring out various forms of audio visualizer on the videos</li>
<li>I am able to do my own copyright administration based on my own preferences</li>
</ul>
<p>It isn&rsquo;t perfect, of course. Since I&rsquo;m going through regular YouTube plays, I don&rsquo;t automatically get paid for listens (not that I was making that much to begin with), although hopefully I&rsquo;ll hit a monetization threshold at some point. Also, if someone does get recommended a song through the feed, they&rsquo;ll just get it on its own with no link into its respective playlist (although I suppose I could at least put a link in the description). Also there&rsquo;s no way for me to organize playlists into groups; I think that feature does become available to larger creators, but I haven&rsquo;t hit whatever threshold is necessary for that just yet.</p><p>I <em>could</em> do more <a href="https://www.youtube.com/playlist?list=PLNRLpYEdwBNjWw3NKCY9Ra2yGluRvaOYx">whole-album videos</a> to preserve the album-oriented listening experience, and I&rsquo;ll probably get around to doing that when I&rsquo;m done clearing this <a href="http://sockpuppet.band/blog/3472-Oops-All-YouTube">reupload backlog</a>.</p><h3 id="2564_h3_6_But-anyway">But anyway<a href="http://sockpuppet.band/blog/2564-November-updates#2564_h3_6_But-anyway" class="toc_link"></a></h3><p>I am a <a href="https://beesbuzz.biz/">busy bee</a> and I still have to manage my energy and chronic pain (and being up this late to blog about it certainly isn&rsquo;t helping). But things are feeling pretty okay right now.</p>
            
                <hr/><ol><li id="d_e2564_fn1"><p>heh&nbsp;<a href="/blog/2564-November-updates#r_e2564_fn1" rev="footnote">↩</a></p></li></ol>
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=Novembeat">#Novembeat</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=YouTube">#YouTube</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=backlog">#Backlog</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=backburner">#Backburner</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="Novembeat" label="Novembeat" />
        
        <category term="YouTube" label="YouTube" />
        
        <category term="Backlog" label="backlog" />
        
        <category term="Backburner" label="backburner" />
        

        

    </entry>
    <entry>
        
        <title>Blog: Oops, All YouTube!</title>
        <link href="http://sockpuppet.band/blog/3472-Oops-All-YouTube" rel="alternate" type="text/html" />
        <published>2025-11-07T22:46:56-08:00</published>
        <updated>2025-11-07T22:46:56-08:00</updated>
        <id>urn:uuid:5c04f626-4172-579b-88e7-ef901e8db11a</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>After going through the rigmarole of making nice visualizer videos for Refactor, I noticed that I&rsquo;d already done that a year ago! In fact I&rsquo;d done it for a few albums and I&rsquo;d forgotten about that.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>After going through the rigmarole of making nice visualizer videos for Refactor, I noticed that I&rsquo;d already done that a year ago! In fact I&rsquo;d done it for a few albums and I&rsquo;d forgotten about that.</p>

        
            <p>I&rsquo;ll replace the Refactor videos with the new ones on Monday because they new ones are way better and that album is pretty special to me (and I&rsquo;ll just delist the old videos rather than delete them outright), but I think I&rsquo;ll leave Radio Ready and Instrumental alone.</p><p>In any case here&rsquo;s my current tentative YouTube album rerelease schedule:</p>
<table>
<thead>
<tr>
<th>Week</th>
<th>Monday release</th>
<th>Thursday release</th>
</tr>
</thead>

<tbody>
<tr>
<td>11/10/2025</td>
<td><a href="http://sockpuppet.band/album/refactor">Refactor</a></td>
<td><a href="http://sockpuppet.band/album/strawberry-jelly-9">strawberry jelly :9</a></td>
</tr>
<tr>
<td>11/17/2025</td>
<td><a href="http://sockpuppet.band/album/foodsexsleep">foodsexsleep</a></td>
<td><a href="http://sockpuppet.band/album/or-die-trying-ost">&hellip;Or Die Trying OST</a></td>
</tr>
<tr>
<td>11/24/2025</td>
<td><a href="http://sockpuppet.band/album/love-and-monsters">Love and Monsters</a></td>
<td><a href="http://sockpuppet.band/album/novembeat-2017">Novembeat 2017</a></td>
</tr>
<tr>
<td>12/01/2025</td>
<td><a href="http://sockpuppet.band/album/songs-of-substance">Songs of Substance</a></td>
<td><a href="http://sockpuppet.band/album/novembeat-2023-pawmune-and-friends">Novembeat 2023: Pawmune and Friends</a></td>
</tr>
<tr>
<td>12/08/2025</td>
<td><a href="http://sockpuppet.band/album/s7rawberry">s7rawberry</a></td>
<td><a href="http://sockpuppet.band/album/novembeat-2019">Novembeat 2019</a></td>
</tr>
<tr>
<td>12/15/2025</td>
<td><a href="http://sockpuppet.band/album/novembeat-2016">Novembeat 2016</a></td>
<td><a href="http://sockpuppet.band/album/novembeat-2018">Novembeat 2018</a></td>
</tr>
<tr>
<td>12/22/2025</td>
<td><a href="http://sockpuppet.band/album/transformative-instrumentals-vol-1">Transformative Instrumentals, vol. 1</a></td>
<td><a href="http://sockpuppet.band/album/the-balance-of-sappho-ost">The Balance of Sappho OST</a></td>
</tr>
<tr>
<td>12/29/2025</td>
<td><a href="http://sockpuppet.band/album/admiralo-island">Admiralo Island Witches Club</a></td>
<td><a href="http://sockpuppet.band/album/novembeat-2021-lo-fi-beats-to-grind-coffee-to">Novembeat 2021</a></td>
</tr>
<tr>
<td>01/05/2026</td>
<td><a href="http://sockpuppet.band/album/treestoration-ost">Treestoration</a></td>
<td><a href="http://sockpuppet.band/album/herbal-spice-problem-ost">Herbal Spice Problem</a> + <a href="http://sockpuppet.band/album/brickris-tetout-ost">Brickris Tetout</a></td>
</tr>
<tr>
<td>01/12/2026</td>
<td><a href="http://sockpuppet.band/album/deadnames">Deadnames</a></td>
<td></td>
</tr>
</tbody>
</table>
<p>which would actually cover my entire back-catalog, aside from <a href="http://sockpuppet.band/track/wiener-dog-on-a-motorcycle">Wiener Dog on a Motorcycle</a> (which I still want to do a full music video for instead of a visualizer release) and <a href="http://sockpuppet.band/album/pointed-little-quill">pointed little quill</a> which is still available on YouTube Music.</p><p>Of course this is subject to change due to any number of factors, especially if I actually manage to get one of my backburnered albums out in the interim.</p>
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=YouTube">#YouTube</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=video">#Video</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="YouTube" label="YouTube" />
        
        <category term="Video" label="video" />
        

        

    </entry>
    <entry>
        
        <title>Blog: YouTube self-management update</title>
        <link href="http://sockpuppet.band/blog/2069-YouTube-self-management-update" rel="alternate" type="text/html" />
        <published>2025-11-06T16:03:08-08:00</published>
        <updated>2025-11-06T16:03:08-08:00</updated>
        <id>urn:uuid:8f1a480b-ddf0-56ec-ab25-dfe187e6b2a1</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>If you follow <a href="http://sockpuppet.band/youtube">my YouTube channel</a> you&rsquo;ve probably been at least somewhat inundated with a bunch of videos on your feed with my music reposts. I&rsquo;ve finally figured out a process I&rsquo;m more or less happy with, and am figuring out the best cadence for doing things.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>If you follow <a href="http://sockpuppet.band/youtube">my YouTube channel</a> you&rsquo;ve probably been at least somewhat inundated with a bunch of videos on your feed with my music reposts. I&rsquo;ve finally figured out a process I&rsquo;m more or less happy with, and am figuring out the best cadence for doing things.</p><p>My current plan is to do two releases per week; on Mondays will be what I consider my &ldquo;real&rdquo; or &ldquo;authored&rdquo; albums, and Thursdays will be what I consider &ldquo;jam&rdquo; albums. The categorization of these is a little wishy-washy, but for example, things I&rsquo;ve done for <a href="http://sockpuppet.band/releases/?tag=collection:novembeat">Novembeat</a> and <a href="http://sockpuppet.band/releases/?tag=collection:game-jams">Strawberry Jam</a> are &ldquo;jam&rdquo; albums, while things like <a href="http://sockpuppet.band/album/refactor">Refactor</a> and <a href="http://sockpuppet.band/album/songs-of-substance">Songs of Substance</a> are &ldquo;authored&rdquo; albums.</p>

        
            <h3 id="2069_h3_1_Release-schedule-intended">Release schedule (intended)<a href="http://sockpuppet.band/blog/2069-YouTube-self-management-update#2069_h3_1_Release-schedule-intended" class="toc_link"></a></h3><p>This is my current release schedule plan:</p>
<table>
<thead>
<tr>
<th>Week</th>
<th>Monday release</th>
<th>Thursday release</th>
</tr>
</thead>

<tbody>
<tr>
<td>11/10/2025</td>
<td><a href="http://sockpuppet.band/album/refactor">Refactor</a></td>
<td><a href="http://sockpuppet.band/album/strawberry-jelly-9">strawberry jelly :9</a></td>
</tr>
<tr>
<td>11/17/2025</td>
<td><a href="http://sockpuppet.band/album/foodsexsleep">foodsexsleep</a></td>
<td><a href="http://sockpuppet.band/album/novembeat-2021-lo-fi-beats-to-grind-coffee-to">Novembeat 2021</a><sup id="r_e2069_fn1"><a href="http://sockpuppet.band/blog/2069-YouTube-self-management-update#d_e2069_fn1" rel="footnote">1</a></sup></td>
</tr>
<tr>
<td>11/24/2025</td>
<td><a href="http://sockpuppet.band/album/love-and-monsters">Love and Monsters</a></td>
<td><a href="http://sockpuppet.band/album/novembeat-2017">Novembeat 2017</a></td>
</tr>
<tr>
<td>12/01/2025</td>
<td><a href="http://sockpuppet.band/album/radio-ready">Radio Ready</a></td>
<td><a href="http://sockpuppet.band/album/or-die-trying-ost">&hellip;Or Die Trying OST</a><sup id="r_e2069_fn2"><a href="http://sockpuppet.band/blog/2069-YouTube-self-management-update#d_e2069_fn2" rel="footnote">2</a></sup></td>
</tr>
<tr>
<td>12/08/2025</td>
<td><a href="http://sockpuppet.band/album/instrumental">Instrumental</a></td>
<td><a href="http://sockpuppet.band/album/novembeat-2019">Novembeat 2019</a></td>
</tr>
<tr>
<td>12/15/2025</td>
<td><a href="http://sockpuppet.band/album/songs-of-substance">Songs of Substance</a></td>
<td><a href="http://sockpuppet.band/album/novembeat-2023-pawmune-and-friends">Novembeat 2023: Pawmune and Friends</a></td>
</tr>
<tr>
<td>12/22/2025</td>
<td><a href="http://sockpuppet.band/album/transformative-instrumentals-vol-1">Transformative Instrumentals, vol. 1</a></td>
<td><a href="http://sockpuppet.band/album/novembeat-2018">Novembeat 2018</a></td>
</tr>
<tr>
<td>12/29/2025</td>
<td></td>
<td><a href="http://sockpuppet.band/album/novembeat-2016">Novembeat 2016</a></td>
</tr>
<tr>
<td>01/05/2026</td>
<td></td>
<td><a href="http://sockpuppet.band/album/s7rawberry">s7rawberry</a></td>
</tr>
</tbody>
</table>
<p>There&rsquo;s a bunch of albums not yet on that list and I&rsquo;m not sure if I want them to have YouTube rereleases just yet. I&rsquo;ll probably use the empty Mondays to release them, possibly in groups (for example, several of the game jam OSTs are quite short).</p><h3 id="2069_h3_2_Some-technical-details">Some technical details<a href="http://sockpuppet.band/blog/2069-YouTube-self-management-update#2069_h3_2_Some-technical-details" class="toc_link"></a></h3><p>To actually make the videos I&rsquo;ve finally wrapped my head around how FFmpeg filter graphs work, and I&rsquo;m building up a little repertoire of visual hacks that let me make the various things look nice.</p><p>For example, here&rsquo;s the <a href="http://sockpuppet.band/_file/bc077/8/novembeat%202020%20video%20setup.zip">Novembeat 2020 video setup files</a>, for those who are interested. FFmpeg scripts aren&rsquo;t super easy to comment, but probably the trickiest thing is the way the <code>remap</code> filter works; basically, the X and Y channels must be in 16-bit grayscale mode, and directly reference pixel coordinates, but it&rsquo;s not super easy to set up colors like that in Affinity Studio (my graphics editor of choice) so instead I draw things as a grayscale ramp (which end up with values 0-65535 in the 16-bit mapping) and then scale it down to try to map them to 0-255. Buuuuut Affinity also ends up dithering gradients regardless of colorspace or settings, so there needs to be a bit of fudging there too. (In retrospect this is something that would have probably worked better with <a href="https://gimp.org">GNU IMP</a>, which has native support for 16-bit grayscale images.)</p><p><mark>Update:</mark> Nope GNU IMP&rsquo;s UI is still complete garbage for this and wouldn&rsquo;t have improved things. I guess in the future I&rsquo;ll just want to, like, write code.</p><p>As far as uploaading the videos goes, I wrote a <a href="https://github.com/fluffy-critter/yt-uploader">Python script</a> which is rather involved in its setup (since it requires setting up a Google developer account and a &ldquo;cloud application&rdquo;) and which I can only run a few times a day due to the somewhat annoying way that YouTube&rsquo;s API limits work. But my process is basically:</p>
<ol>
<li>Encode all my videos (using the Bandcrash FLAC files as the input source)</li>
<li>Drag them (15 at a time) to the YouTube uploader</li>
<li>Add them all to a new playlist</li>
<li>Download the playlist metadata</li>
<li>Reconcile the playlist metadata with my <a href="https://fluffy.itch.io/bandcrash">Bandcrash</a> album data to automatically generate titles and descriptions</li>
<li>Apply that new data to the YouTube videos and simultaneously schedule them for publication on release day</li>
</ol>
<p>It&rsquo;s a bit annoying but not <em>nearly</em> as annoying as having to hand-edit the descriptions and post schedule.</p><h3 id="2069_h3_3_Some-future-things">Some future things<a href="http://sockpuppet.band/blog/2069-YouTube-self-management-update#2069_h3_3_Some-future-things" class="toc_link"></a></h3><p>I really want to do a proper music video for <a href="http://sockpuppet.band/track/wiener-dog-on-a-motorcycle">Wiener Dog on a Motorcycle</a>. I&rsquo;ve had a very strong image in my head for how it should look. If any animators are interested in taking it on as a gig, let me know. I need to at least do a storyboard and possibly an animatic myself, I think.</p><p>On top of all this I still have <a href="http://sockpuppet.band/blog/2959-Goings-on-in-the-Sockiverse">so many backburnered album projects</a>, and of course I still have 25 days of <a href="https://novembeat.com/">Novembeat</a> left to do&hellip;</p>
            
                <hr/><ol><li id="d_e2069_fn1"><p>This would be a music-only release, rather than the existing <a href="https://www.youtube.com/playlist?list=PLNRLpYEdwBNhD7WQYFrqckvaweUj9kKls">music videos playlist</a> which has a bunch of non-music stuff in it and is missing the last track, which currently only appears in the <a href="https://www.youtube.com/watch?v=cAdd8tF-WVs">full video</a>.&nbsp;<a href="/blog/2069-YouTube-self-management-update#r_e2069_fn1" rev="footnote">↩</a></p></li><li id="d_e2069_fn2"><p>This will also coincidentally be the same intended day as the album release of Novembeat 2025, but that will already have been on YouTube since I&rsquo;m using that as my primary incremental release mechanism.&nbsp;<a href="/blog/2069-YouTube-self-management-update#r_e2069_fn2" rev="footnote">↩</a></p></li></ol>
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=YouTube">#YouTube</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=video">#Video</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=FFmpeg">#FFmpeg</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="YouTube" label="YouTube" />
        
        <category term="Video" label="video" />
        
        <category term="FFmpeg" label="FFmpeg" />
        

        

    </entry>
    <entry>
        
        <title>Blog: Let&#39;s Novembeat!</title>
        <link href="http://sockpuppet.band/blog/2205-Let-s-Novembeat" rel="alternate" type="text/html" />
        <published>2025-10-30T00:00:00-07:00</published>
        <updated>2025-10-30T00:00:00-07:00</updated>
        <id>urn:uuid:38640c5f-b3dc-597a-9c1d-988bd53d50e2</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p> </p><p>Hey y&#39;all! As you might know, I coordinate an annual song-a-day challenge called <a href="https://novembeat.com/">Novembeat</a>, where in November you try to make something musical every day. <a href="http://sockpuppet.band/releases/?tag=collection:Novembeat">Several of my albums</a> have been produced that way, and last year, in lieu of doing the traditional challenge (aside from a <a href="https://www.youtube.com/playlist?list=PLNRLpYEdwBNhvYgINS87DnFa5gY0EqZli">handful of low-effort experiments</a>) I mostly used the month as a push to finally finish up <a href="http://sockpuppet.band/album/transitions">Transitions</a>.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        
<figure class="images"><a href="https://novembeat./com"><img src="http://sockpuppet.band/static/_img/e7/5bd8/novembeat_adc3b69293_240x240_q50.webp" width="240" height="240" srcset="http://sockpuppet.band/static/_img/e7/5bd8/novembeat_adc3b69293_240x240_q50.webp 1x, http://sockpuppet.band/static/_img/e7/5bd8/novembeat_adc3b69293_480x480_q50.webp 2x" loading="lazy" class="u-photo" alt="novembeat.png"></a></figure>
<p>Hey y&#39;all! As you might know, I coordinate an annual song-a-day challenge called <a href="https://novembeat.com/">Novembeat</a>, where in November you try to make something musical every day. <a href="http://sockpuppet.band/releases/?tag=collection:Novembeat">Several of my albums</a> have been produced that way, and last year, in lieu of doing the traditional challenge (aside from a <a href="https://www.youtube.com/playlist?list=PLNRLpYEdwBNhvYgINS87DnFa5gY0EqZli">handful of low-effort experiments</a>) I mostly used the month as a push to finally finish up <a href="http://sockpuppet.band/album/transitions">Transitions</a>.</p><p>I&rsquo;ve always found Novembeat to be a very helpful thing for feeling unstuck with my own musical pursuits, and I&rsquo;d highly recommend it to anyone who wants to get a bit more practice with any aspect of the music creation process.</p><p>My suggestion is to only do it to the level for which you feel it&rsquo;s helpful. Don&rsquo;t burn yourself out on music trying to produce something if it isn&rsquo;t flowing; the point is to challenge yourself, not to push yourself to the breaking point. Most years I haven&rsquo;t actually done something <em>every</em> day, and getting anything done means there&rsquo;s now more music in the world than there was before, and that can only be a good thing.</p><p>Anyway, think of this as an invitation to join in. Or if a weekly-ish cadence is more your speed, check out <a href="https://songfight.org">Song Fight!</a>, which I wrote about <a href="http://sockpuppet.band/blog/569-Song-Fight-The-how-the-what-and-the-why">recently</a>.</p>

        
            
            

            

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

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="Novembeat" label="novembeat" />
        

        

    </entry>
    <entry>
        
        <title>Blog: Goings-on in the Sockiverse</title>
        <link href="http://sockpuppet.band/blog/2959-Goings-on-in-the-Sockiverse" rel="alternate" type="text/html" />
        <published>2025-10-24T11:47:31-07:00</published>
        <updated>2025-10-24T11:47:31-07:00</updated>
        <id>urn:uuid:86c9f8e0-8833-5869-9444-8d6caf548e38</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>Hello! I think it&rsquo;s been a while since I&rsquo;ve talked about what&rsquo;s going on with the band and what sorts of things are happening. So here&rsquo;s a casual collection of updates along those lines.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>Hello! I think it&rsquo;s been a while since I&rsquo;ve talked about what&rsquo;s going on with the band and what sorts of things are happening. So here&rsquo;s a casual collection of updates along those lines.</p>

        
            <h3 id="2959_h3_1_Music-distribution-stuff">Music distribution stuff<a href="http://sockpuppet.band/blog/2959-Goings-on-in-the-Sockiverse#2959_h3_1_Music-distribution-stuff" class="toc_link"></a></h3><p>While it took a bit longer than expected, the <a href="http://sockpuppet.band/blog/2156-Where-d-your-music-go">removal of (most of) our music from streaming services</a> has finally mostly gone through in most places.</p><p>To that end, we are finally starting to upload individual tracks to YouTube, although that process is going to take a little while. Rather than just put a bunch of boring thumbnail-and-audio videos up, I want everything to have at least some amount of a visual element. For <a href="http://sockpuppet.band/album/transitions">Transitions</a> it was easy enough to do <a href="https://www.youtube.com/playlist?list=PLNRLpYEdwBNgEemcycIvCNTvegX84_rUc">visualizer tracks</a> since those had already been done for the <a href="https://youtu.be/FAetyU7-hZw">full album video</a>, and of course I&rsquo;d already done this for <a href="https://www.youtube.com/playlist?list=PLNRLpYEdwBNhD7WQYFrqckvaweUj9kKls">Novembeat 2021</a> and <a href="https://www.youtube.com/playlist?list=PLNRLpYEdwBNiK4bYX4-ERC58UQpPth1Nd">2022</a> as part of the production of those albums, but for the other albums I&rsquo;ll probably just be doing a simple waveform plot like I did for <a href="https://www.youtube.com/playlist?list=PLNRLpYEdwBNi0vztq5rAsViTEx8xdXe-L">Strawberry Jams I Ate</a> since that&rsquo;s easy to automate.</p><p>Anyway, in other distribution news, a while back, I started drafting a specification called <a href="https://github.com/PlaidWeb/Canimus">Canimus</a> (the name is a Latin word that broadly means &ldquo;we make music&rdquo;) to allow music providers to syndicate their music easily, and I&rsquo;ve been working with a few other folks to try to work out some of the hairier details. As it stands the protocol is ready for my own use case and for anyone who is just interested in publishing a feed to the public Internet, but of course there&rsquo;s going to have to be some long-term thoughts around some of the trickier legal things to deal with. But there are also folks already building player engines, and Sockpuppet&rsquo;s full catalog is available for streaming, at least.</p><p>Unfortunately the actual conversation is scattered between a few different spots, although it&rsquo;s mostly being discussed on <a href="https://mirlo.space">Mirlo</a>&rsquo;s Discord with some other conversations happening over on <a href="https://the.socialmusic.network/t/canimus-yet-another-federation-syndication-approach/686">The Social Music Network</a>, which is also a great community to join if you have any interest in talking about the future of independent music on the Internet. Ideally discussion about the protocol itself will take place on the <a href="https://github.com/PlaidWeb/Canimus/discussions">Canimus GitHub discussions board</a>.</p><h3 id="2959_h3_2_Other-musical-projects">Other musical projects<a href="http://sockpuppet.band/blog/2959-Goings-on-in-the-Sockiverse#2959_h3_2_Other-musical-projects" class="toc_link"></a></h3><p>As far as music production goes, we are currently busy with the following:</p>
<ul>
<li>Actively working on the soundtrack for a video game</li>
<li>Making music for a couple of <a href="http://sockpuppet.band/clients/">ongoing clients</a></li>
<li>Preparing for <a href="https://novembeat.com/">Novembeat</a></li>
</ul>
<p>And the following album projects are currently on the backburner:</p>
<ul>
<li>The next album of Song Fight! and Song Fight!-adjacent songs</li>
<li>An album of covers of other peoples&#39; music we&rsquo;ve done over the years</li>
<li>An album of reimagining a bunch of our old songs into new styles or with updated sensibiliies</li>
<li>A jazz album</li>
</ul>
<p>As you might imagine, every member of the band is quite busy!</p>
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=updates">#Updates</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=distribution">#Distribution</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=YouTube">#YouTube</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=Canimus">#Canimus</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="Updates" label="updates" />
        
        <category term="Distribution" label="distribution" />
        
        <category term="YouTube" label="YouTube" />
        
        <category term="Canimus" label="Canimus" />
        

        

    </entry>
    <entry>
        
        <title>Live Shows: Ubuntu Summit 25.10</title>
        <link href="http://sockpuppet.band/live/3146-Ubuntu-Summit-25.10" rel="alternate" type="text/html" />
        <published>2025-10-23T11:30:00-07:00</published>
        <updated>2025-10-23T11:30:00-07:00</updated>
        <id>urn:uuid:6c17bbc6-57b1-5bc9-bd4f-9b9a4ce01b25</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>I had a (prerecorded) set broadcast as part of <a href="https://events.canonical.com/event/135/overview">Ubuntu Summit 2025</a> as part of the <a href="https://www.youtube.com/live/xDqJvZXkqFc">music festival stream</a>. My set on its own is embedded below.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>I had a (prerecorded) set broadcast as part of <a href="https://events.canonical.com/event/135/overview">Ubuntu Summit 2025</a> as part of the <a href="https://www.youtube.com/live/xDqJvZXkqFc">music festival stream</a>. My set on its own is embedded below.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/33fgrGfZigI?si=ZvIjUiiAGcCkODOo" 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=prerecorded">#Prerecorded</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=festivals">#Festivals</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=Ubuntu+Summit">#UbuntuSummit</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="Prerecorded" label="prerecorded" />
        
        <category term="Festivals" label="festivals" />
        
        <category term="UbuntuSummit" label="Ubuntu Summit" />
        
        <category term="VRChat" label="VRChat" />
        
        <category term="FullSet" label="full set" />
        

        

    </entry>
    <entry>
        
        <title>Blog: Review: Kunaki CDs</title>
        <link href="http://sockpuppet.band/blog/2010-Review-Kunaki-CDs" rel="alternate" type="text/html" />
        <published>2025-10-16T17:02:38-07:00</published>
        <updated>2025-10-16T17:02:38-07:00</updated>
        <id>urn:uuid:bd900f8d-d25f-5652-ad3f-e40f65eb21d0</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>My first batch of CDs from <a href="http://sockpuppet.band/kunaki">Kunaki</a> arrived today, and here&rsquo;s a brief review of how they turned out.</p>]]></summary>
        <content type="html"><![CDATA[

		

        
        <figure><a href="http://sockpuppet.band/blog/2010-Review-Kunaki-CDs"><img src="/static/_img/79/8a59/IMG_8621_dee8438854_350x321.jpg" width="350" height="321" srcset="/static/_img/79/8a59/IMG_8621_dee8438854_350x321.jpg 1x, /static/_img/79/8a59/IMG_8621_dee8438854_700x641.jpg 2x" loading="lazy" alt="IMG_8621.jpeg"></a></figure>
        



        <p>My first batch of CDs from <a href="http://sockpuppet.band/kunaki">Kunaki</a> arrived today, and here&rsquo;s a brief review of how they turned out.</p><p>(Short version: They&rsquo;re great!)</p>

        
            <p>I ordered a set of one of each of my first 12 CDs that I had set up with them, namely:</p>
<ul>
<li><a href="http://sockpuppet.band/album/foodsexsleep">foodsexsleep</a></li>
<li><a href="http://sockpuppet.band/album/love-and-monsters">Love and Monsters</a></li>
<li><a href="http://sockpuppet.band/album/radio-ready">Radio Ready</a></li>
<li><a href="http://sockpuppet.band/album/refactor">Refactor</a></li>
<li><a href="http://sockpuppet.band/album/novembeat-2020">Novembeat 2020</a></li>
<li><a href="http://sockpuppet.band/album/songs-of-substance">Songs of Substance</a></li>
<li><a href="http://sockpuppet.band/album/novembeat-2021-lo-fi-beats-to-grind-coffee-to">Lo-Fi Beats to Grind Coffee To</a></li>
<li><a href="http://sockpuppet.band/album/novembeat-2022-original-soundtrack">Original Soundtrack</a></li>
<li><a href="http://sockpuppet.band/album/novembeat-2023-pawmune-and-friends">Pawmune and Friends</a></li>
<li><a href="http://sockpuppet.band/album/instrumental">Instrumental</a></li>
<li><a href="http://sockpuppet.band/album/notions">Notions</a></li>
<li><a href="http://sockpuppet.band/album/transitions">Transitions</a></li>
</ul>
<p>I placed the order on October 13, and the order was shipped out the very next day, and arrived just two days later, even though they were shipped USPS Media Mail. They came direct from Kunaki&rsquo;s manufacturing facility in Sparks, Nevada.</p>
<figure class="images"><a href="http://sockpuppet.band/blog/2010-Review-Kunaki-CDs"><img src="http://sockpuppet.band/static/_img/21/7a55/IMG_8603_c78a5f80a3_640x360_q50.webp" width="640" height="360" srcset="http://sockpuppet.band/static/_img/21/7a55/IMG_8603_c78a5f80a3_640x360_q50.webp 1x, http://sockpuppet.band/static/_img/21/7a55/IMG_8603_c78a5f80a3_1280x720_q50.webp 2x" loading="lazy" class="u-photo" alt="IMG_8603.jpeg" title="An unassuming box"></a><a href="http://sockpuppet.band/blog/2010-Review-Kunaki-CDs"><img src="http://sockpuppet.band/static/_img/c3/81ab/IMG_8604_3e6860489b_640x360_q50.webp" width="640" height="360" srcset="http://sockpuppet.band/static/_img/c3/81ab/IMG_8604_3e6860489b_640x360_q50.webp 1x, http://sockpuppet.band/static/_img/c3/81ab/IMG_8604_3e6860489b_1280x720_q50.webp 2x" loading="lazy" class="u-photo" alt="IMG_8604.jpeg" title="So many CDs"></a><a href="http://sockpuppet.band/blog/2010-Review-Kunaki-CDs"><img src="http://sockpuppet.band/static/_img/a8/55ec/IMG_8605_7c1897f830_640x360_q50.webp" width="640" height="360" srcset="http://sockpuppet.band/static/_img/a8/55ec/IMG_8605_7c1897f830_640x360_q50.webp 1x, http://sockpuppet.band/static/_img/a8/55ec/IMG_8605_7c1897f830_1280x720_q50.webp 2x" loading="lazy" class="u-photo" alt="IMG_8605.jpeg" title="Spread out they seem even more numerous"></a><a href="http://sockpuppet.band/blog/2010-Review-Kunaki-CDs"><img src="http://sockpuppet.band/static/_img/c3/e5a9/IMG_8626_b06014b8eb_640x360_q50.webp" width="640" height="360" srcset="http://sockpuppet.band/static/_img/c3/e5a9/IMG_8626_b06014b8eb_640x360_q50.webp 1x, http://sockpuppet.band/static/_img/c3/e5a9/IMG_8626_b06014b8eb_1280x720_q50.webp 2x" loading="lazy" class="u-photo" alt="IMG_8626.jpeg" title="No Tyler you're not gonna fit in there"></a></figure>
<p>Every single CD came shrinkwrapped and felt very professionally-assembled. The print quality is also quite good, much better than from the other short-run manufacturers I&rsquo;ve used. The downside is that they only support two-panel inserts, so for some of my legacy releases I had to scale back the artwork; this was particularly sad for Refactor and Love and Monsters, both of which I had a full spread set up, and on this rerelease I had to pare it back considerably.</p>
<figure class="images"><a href="http://sockpuppet.band/blog/2010-Review-Kunaki-CDs"><img src="http://sockpuppet.band/static/_img/d9/eebf/IMG_8637_dfb81c71dc_640x360_q50.webp" width="640" height="360" srcset="http://sockpuppet.band/static/_img/d9/eebf/IMG_8637_dfb81c71dc_640x360_q50.webp 1x, http://sockpuppet.band/static/_img/d9/eebf/IMG_8637_dfb81c71dc_1280x720_q50.webp 2x" loading="lazy" class="u-photo" alt="IMG_8637.jpeg" title="Scaled-back artwork on Love and Monsters"></a><a href="http://sockpuppet.band/blog/2010-Review-Kunaki-CDs"><img src="http://sockpuppet.band/static/_img/13/247a/IMG_8645_482778abb4_640x360_q50.webp" width="640" height="360" srcset="http://sockpuppet.band/static/_img/13/247a/IMG_8645_482778abb4_640x360_q50.webp 1x, http://sockpuppet.band/static/_img/13/247a/IMG_8645_482778abb4_1280x720_q50.webp 2x" loading="lazy" class="u-photo" alt="IMG_8645.jpeg" title="Scaled-back Refactor"></a></figure>
<p>But the color quality is great and it turned out exactly as I&rsquo;d expected. (It looks much better in person than what this picture from my unsteady phone camera would indicate.)</p>
<figure class="images"><a href="http://sockpuppet.band/blog/2010-Review-Kunaki-CDs"><img src="http://sockpuppet.band/static/_img/37/371a/IMG_8616_2e28c64758_620x640_q50.webp" width="620" height="640" srcset="http://sockpuppet.band/static/_img/37/371a/IMG_8616_2e28c64758_620x640_q50.webp 1x, http://sockpuppet.band/static/_img/37/371a/IMG_8616_2e28c64758_1240x1280_q50.webp 2x" loading="lazy" class="u-photo" alt="IMG_8616.jpeg" title="Cover art detail on Instrumental"></a></figure>
<p>Also, because of the minimal insert capabilities, on some of the releases where I didn&rsquo;t have better ideas of what to put inside, I opted to squeeze all of the lyrics onto a single panel. While you&rsquo;ll probably need a magnifying glass to read it, it&rsquo;s still perfectly sharp and readable.</p><p>The only complaint I have is that the layout teplates Kunaki provided were very minimal and it was difficult to get an idea of where the bleed/crop/trim/bend marks would be, and they don&rsquo;t seem to be symmetrical. As a result, the spines are a bit inconsistent and not quite up to professional standards:</p>
<figure class="images"><a href="http://sockpuppet.band/blog/2010-Review-Kunaki-CDs"><img src="http://sockpuppet.band/static/_img/0a/ac0a/IMG_8607_db3a68b446_640x360_q50.webp" width="640" height="360" srcset="http://sockpuppet.band/static/_img/0a/ac0a/IMG_8607_db3a68b446_640x360_q50.webp 1x, http://sockpuppet.band/static/_img/0a/ac0a/IMG_8607_db3a68b446_1280x720_q50.webp 2x" loading="lazy" class="u-photo" alt="IMG_8607.jpeg" title="Poorly cropped spine"></a><a href="http://sockpuppet.band/blog/2010-Review-Kunaki-CDs"><img src="http://sockpuppet.band/static/_img/93/a8a8/IMG_8608_cb8872d091_640x360_q50.webp" width="640" height="360" srcset="http://sockpuppet.band/static/_img/93/a8a8/IMG_8608_cb8872d091_640x360_q50.webp 1x, http://sockpuppet.band/static/_img/93/a8a8/IMG_8608_cb8872d091_1280x720_q50.webp 2x" loading="lazy" class="u-photo" alt="IMG_8608.jpeg" title="But at least it's consistent"></a></figure>
<p>But it&rsquo;s Good Enough for now and it&rsquo;s only the back-facing spine that seems to be affected. I&rsquo;ll definitely be tweaking my layout templates going forward, though.</p><p>Anyway, the other thing I was concerned about was the print quality for the CD labels themselves, and I&rsquo;m happy to say that they look <em>fantastic</em>.</p>
<figure class="images"><a href="http://sockpuppet.band/blog/2010-Review-Kunaki-CDs"><img src="http://sockpuppet.band/static/_img/4a/96df/IMG_8642_db9613a013_640x360_q50.webp" width="640" height="360" srcset="http://sockpuppet.band/static/_img/4a/96df/IMG_8642_db9613a013_640x360_q50.webp 1x, http://sockpuppet.band/static/_img/4a/96df/IMG_8642_db9613a013_1280x720_q50.webp 2x" loading="lazy" class="u-photo" alt="IMG_8642.jpeg" title="Radio Ready"></a><a href="http://sockpuppet.band/blog/2010-Review-Kunaki-CDs"><img src="http://sockpuppet.band/static/_img/79/8a59/IMG_8621_dee8438854_640x586_q50.webp" width="640" height="586" srcset="http://sockpuppet.band/static/_img/79/8a59/IMG_8621_dee8438854_640x586_q50.webp 1x, http://sockpuppet.band/static/_img/79/8a59/IMG_8621_dee8438854_1280x1173_q50.webp 2x" loading="lazy" class="u-photo" alt="IMG_8621.jpeg" title="Novembeat 2020"></a><a href="http://sockpuppet.band/blog/2010-Review-Kunaki-CDs"><img src="http://sockpuppet.band/static/_img/2a/4231/IMG_8615_2b9bd9dd63_640x611_q50.webp" width="640" height="611" srcset="http://sockpuppet.band/static/_img/2a/4231/IMG_8615_2b9bd9dd63_640x611_q50.webp 1x, http://sockpuppet.band/static/_img/2a/4231/IMG_8615_2b9bd9dd63_1280x1222_q50.webp 2x" loading="lazy" class="u-photo" alt="IMG_8615.jpeg" title="Transitions"></a></figure>
<p>As far as the actual CD replication goes, I was impressed to see that even though they&rsquo;re burned CDs, they look just like a pressed CD to me. And of course, the CDs play just fine in both my Playstation 2 and on my Windows computer with its external optical drive.</p>
<figure class="images"><a href="http://sockpuppet.band/blog/2010-Review-Kunaki-CDs"><img src="http://sockpuppet.band/static/_img/82/9c80/IMG_8612_2fd9116df4_640x360_q50.webp" width="640" height="360" srcset="http://sockpuppet.band/static/_img/82/9c80/IMG_8612_2fd9116df4_640x360_q50.webp 1x, http://sockpuppet.band/static/_img/82/9c80/IMG_8612_2fd9116df4_1280x720_q50.webp 2x" loading="lazy" class="u-photo" alt="IMG_8612.jpeg" title="im-press-ive"></a><a href="http://sockpuppet.band/blog/2010-Review-Kunaki-CDs"><img src="http://sockpuppet.band/static/_img/75/9ab7/IMG_8613_e11de75009_640x360_q50.webp" width="640" height="360" srcset="http://sockpuppet.band/static/_img/75/9ab7/IMG_8613_e11de75009_640x360_q50.webp 1x, http://sockpuppet.band/static/_img/75/9ab7/IMG_8613_e11de75009_1280x720_q50.webp 2x" loading="lazy" class="u-photo" alt="IMG_8613.jpeg" title="My Japanese PS2 is the only thing approaching a “CD player” I have hooked up right now"></a><a href="http://sockpuppet.band/blog/2010-Review-Kunaki-CDs"><img src="http://sockpuppet.band/static/_img/16/106e/IMG_8622_f49657ed16_640x360_q50.webp" width="640" height="360" srcset="http://sockpuppet.band/static/_img/16/106e/IMG_8622_f49657ed16_640x360_q50.webp 1x, http://sockpuppet.band/static/_img/16/106e/IMG_8622_f49657ed16_1280x720_q50.webp 2x" loading="lazy" class="u-photo" alt="IMG_8622.jpeg" title="I have no idea where Windows Media Player was getting the artwork from, but cool that it worked"></a></figure>
<p>And, thanks to the gapless mastering from <a href="https://fluffy.itch.io/bandcrash">Bandcrash</a>, the tracks all flow exactly as they&rsquo;re intended to, with no extra gaps. The albums that I uploaded using Kunaki&rsquo;s per-track uploader do have two-second gaps between them, unfortunately, but going forward I&rsquo;m always going to use Bandcrash for my CD authoring, because it Just Works and is <a href="http://sockpuppet.band/blog/3367-Bandcrash-Not-just-for-self-publishing">a hell of a lot easier to deal with</a> anyway.</p><p>So, anyway, yeah. Kunaki&rsquo;s output is great and while I wish they had a four-panel insert option and slightly more flexibility in their authoring process (like supporting CD-Text and such), their output is professional and I absolutely recommend the service to anyone who&rsquo;s interested in short-run CD manufacturing and drop-shipping.</p>
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=manufacturing">#Manufacturing</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=kunaki">#Kunaki</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="Manufacturing" label="manufacturing" />
        
        <category term="Kunaki" label="kunaki" />
        

        

    </entry>
    <entry>
        
        <title>Blog: Bandcrash: Not just for self-publishing</title>
        <link href="http://sockpuppet.band/blog/3367-Bandcrash-Not-just-for-self-publishing" rel="alternate" type="text/html" />
        <published>2025-10-13T19:16:17-07:00</published>
        <updated>2025-10-13T19:16:17-07:00</updated>
        <id>urn:uuid:95d400b6-90c8-536c-a662-ae3c375fc167</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p> </p><p>If you&rsquo;ve poked around this website you probably know that I wrote and use <a href="https://fluffy.itch.io/bandcrash">Bandcrash</a> to build the embedded players for the music previews. You might also be aware of it as the tool that I use to publish my albums to <a href="http://sockpuppet.band/itch">my itch.io page</a> as an alternative to Bandcamp. But I also use it as a tool for a bunch of other things in my music &mdash; including part of how I publish things to Bandcamp and other storefronts.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        
<figure class="images"><a href="https://fluffy.itch.io/bandcrash"><img src="http://sockpuppet.band/static/_img/c4/f936/bandcrash_41e17d7b58_240x240_q50.webp" width="240" height="240" srcset="http://sockpuppet.band/static/_img/c4/f936/bandcrash_41e17d7b58_240x240_q50.webp 1x, http://sockpuppet.band/static/_img/c4/f936/bandcrash_41e17d7b58_q50.webp 2x" loading="lazy" class="u-photo" style="shape-outside: url('http://sockpuppet.band/static/_img/c4/f936/bandcrash_41e17d7b58_240x240.png')" alt="Bandcrash logo"></a></figure>
<p>If you&rsquo;ve poked around this website you probably know that I wrote and use <a href="https://fluffy.itch.io/bandcrash">Bandcrash</a> to build the embedded players for the music previews. You might also be aware of it as the tool that I use to publish my albums to <a href="http://sockpuppet.band/itch">my itch.io page</a> as an alternative to Bandcamp. But I also use it as a tool for a bunch of other things in my music &mdash; including part of how I publish things to Bandcamp and other storefronts.</p><p>Here&rsquo;s some ways in which I use it.</p>

        
            <h3 id="3367_h3_1_Improving-my-production-workflow">Improving my production workflow<a href="http://sockpuppet.band/blog/3367-Bandcrash-Not-just-for-self-publishing#3367_h3_1_Improving-my-production-workflow" class="toc_link"></a></h3><p>By maintaining my albums in Bandcrash as I work on them, it gives me a nice local player that lets me preview how the music is going to sound in context, since it can help me maintain my track ordering without having to do a lengthy/slow upload process or deal with playlists and libraries in VLC or iTunes or the like. It also gives me a place to edit and preview the liner notes and lyrics sheets.</p><p>Also, it&rsquo;s easy for me to upload the previewer to a website and have other people do test listens.</p><h3 id="3367_h3_2_Improving-distribution-to-other">Improving distribution to other platforms<a href="http://sockpuppet.band/blog/3367-Bandcrash-Not-just-for-self-publishing#3367_h3_2_Improving-distribution-to-other" class="toc_link"></a></h3><p>When it&rsquo;s time to upload to the various services, it acts as a force-multiplier in a few ways:</p>
<ul>
<li>I can encode the whole album as FLAC and then easily drag-and-drop the files to the <a href="http://sockpuppet.band/mirlo">mirlo</a> uploader, which then parses all of the tags and gives me the correct track ordering, genre tags, and lyrics</li>
<li>I already have edited plaintext lyrics and liner notes that I can easily copy-paste into the Bandcamp editor</li>
<li>The FLAC version is also much faster to upload to Bandcamp than the WAV version, and since I already have my track order set, I don&rsquo;t need to think about things a whole bunch</li>
<li>The <a href="https://itch.io/docs/butler/">butler</a> integration with itch.io automatically uploads all versions there with no real effort on my part</li>
<li>The pre-built .zip files are super easy to sell or distribute on other platforms, such as <a href="http://sockpuppet.band/patreon">Patreon</a>, <a href="http://sockpuppet.band/ko-fi">Ko-Fi</a>, and Gumroad</li>
</ul>
<h3 id="3367_h3_3_Authoring-and-uploading-CDs-for">Authoring and uploading CDs for manufacturing<a href="http://sockpuppet.band/blog/3367-Bandcrash-Not-just-for-self-publishing#3367_h3_3_Authoring-and-uploading-CDs-for" class="toc_link"></a></h3><p><a href="https://kunaki.com/">Kunaki</a>&rsquo;s standard album uploader is a pain to work with and results in albums with forced 2-second gaps between songs. With the <a href="https://bandcrash.readthedocs.io/en/latest/cd-authoring.html">brand-new CD authoring flow</a> that I released yesterday, it is now much, much easier to publish an album to Kunaki, as now there are only two files to upload (the .bin and the .cue), and everything turns out exactly as it does when played in the local player with gapless transitions.</p><p>Also, external authoring tools are the only way to support more than 25 tracks on a single album with Kunaki, and I couldn&rsquo;t find anything else that works nearly as well for this, which is why I added this functionality to Bandcrash to begin with.</p><p>Any service that can take .bin and .cue files would be able to use this, and even if you just want to burn a bunch of CDs on your own, you can use these files with <a href="https://cdrdao.sourceforge.net/">cdrdao</a> or <a href="https://www.imgburn.com/">ImgBurn</a> or any number of other tools that take bin/cue files, and not have to worry about setting up a bunch of stuff.</p><p>And, as a bonus, you&rsquo;ll get <a href="https://en.wikipedia.org/wiki/CD-Text">CD-Text</a><sup id="r_e3367_fn1"><a href="http://sockpuppet.band/blog/3367-Bandcrash-Not-just-for-self-publishing#d_e3367_fn1" rel="footnote">1</a></sup>, so your titles and genres and such will Just Work™ on fancier CD players and peoples&#39; computers.</p><h3 id="3367_h3_4_Game-OST-workflow">Game OST workflow<a href="http://sockpuppet.band/blog/3367-Bandcrash-Not-just-for-self-publishing#3367_h3_4_Game-OST-workflow" class="toc_link"></a></h3><p>I compose <a href="http://sockpuppet.band/releases/?tag=collection:OST">music for games</a> and this usually means producing both BGM (looping backgroud music) and OST (downloadable soundtrack) versions of things. While I work on the soundtrack for a game, I maintain separate Bandcrash projects for each of these, and then I use Bandcrash to encode the looping versions into .ogg format so that I can share them with the game designers easily.</p><p>In <a href="http://sockpuppet.band/album/novembeat-2022">some rare cases</a> I also use Bandcrash&rsquo;s &ldquo;itch channel prefix&rdquo; functionality to simultaneously upload both versions to <a href="https://fluffy.itch.io/novembeat-2022">the itch page</a>, so that both versions are separately available.</p><h3 id="3367_h3_5_ADVANCED-Maintaining-this-websit">[ADVANCED] Maintaining this website<a href="http://sockpuppet.band/blog/3367-Bandcrash-Not-just-for-self-publishing#3367_h3_5_ADVANCED-Maintaining-this-websit" class="toc_link"></a></h3><p>This website runs <a href="https://publ.beesbuzz.biz/">Publ</a>, a blogging platform I designed a while back. When I do a release, I run a few scripts to populate the information onto this website:</p>
<ol>
<li>A script that converts Bandcamp&rsquo;s JSON-LD data to Publ pages for the album, tracks, and lyrics (so that my URL structure matches the Bandcamp structure and uses the same slug generation), using Bandcamp&rsquo;s embedded player</li>
<li>Another script that runs Bandcrash on the album, uploads the preview player to my CDN, and then switches my own embedded players over to the Bandcrash player</li>
</ol>
<p>Also, for the spots where my liner notes had more advanced Markdown in them than what Bandcamp can display, I can also copy-paste the Markdown from my Bandcrash liner notes, and this would be super easy to automate as well.</p><p>These scripts are super specific to my own setup, somewhat janky, and probably wouldn&rsquo;t be super useful for others, but at some point I&rsquo;ll probably opensource them along with the Publ templates for this website, because it&rsquo;s nice to provide people with more options for how to maintain their online presence. Even if it can be a bit technical.</p><h3 id="3367_h3_6_In-conclusion">In conclusion<a href="http://sockpuppet.band/blog/3367-Bandcrash-Not-just-for-self-publishing#3367_h3_6_In-conclusion" class="toc_link"></a></h3><p>Bandcrash is a pretty useful tool, and since its file format is just JSON files you can probably come up with some even more interesting use cases for it as a data editor.</p><p>It&rsquo;s also pretty rough and could use a lot of improving; fortunately, it&rsquo;s <a href="https://github.com/fluffy-critter/bandcrash">open source</a>, as is its <a href="https://github.com/fluffy-critter/camptown">player component</a>, and of course I welcome contributions, in both the &ldquo;code and issues&rdquo; sense as well as the financial sense.</p><p>Anyway, if you&rsquo;re someone who makes music and publishes it online or on CD, check it out. Maybe you&rsquo;ll find it useful too!</p>
            
                <hr/><ol><li id="d_e3367_fn1"><p>Depending on the manufacturer. Unfortunately, <a href="https://github.com/fluffy-critter/bandcrash/issues/129">Kunaki does not have any way to support this</a>.&nbsp;<a href="/blog/3367-Bandcrash-Not-just-for-self-publishing#r_e3367_fn1" rev="footnote">↩</a></p></li></ol>
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=bandcrash">#Bandcrash</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=software">#Software</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=tools">#Tools</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="Bandcrash" label="bandcrash" />
        
        <category term="Software" label="software" />
        
        <category term="Tools" label="tools" />
        

        

    </entry>
    <entry>
        
        <title>Blog: CD upgrades on the honor system</title>
        <link href="http://sockpuppet.band/cd" rel="alternate" type="text/html" />
        <published>2025-10-13T13:12:11-07:00</published>
        <updated>2025-10-13T13:12:11-07:00</updated>
        <id>urn:uuid:2ab29eaa-636a-5e18-8d49-c5afb806dc89</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>I&rsquo;ve finally gone and set up on-demand CD manufacturing for <a href="http://sockpuppet.band/releases/?tag=collection:CD">a bunch of my albums</a>. However, because of how CD sales work on both Bandcamp and Mirlo, I can&rsquo;t easily offer a discount to folks who have already bought the album digitally, and also the shipping rates I have to charge through those sites are not optimal, especially for international customers or people buying multiple albums at a time.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>I&rsquo;ve finally gone and set up on-demand CD manufacturing for <a href="http://sockpuppet.band/releases/?tag=collection:CD">a bunch of my albums</a>. However, because of how CD sales work on both Bandcamp and Mirlo, I can&rsquo;t easily offer a discount to folks who have already bought the album digitally, and also the shipping rates I have to charge through those sites are not optimal, especially for international customers or people buying multiple albums at a time.</p><p>So, for now I&rsquo;ve come to a compromise: if you want to buy <em>just</em> the CD of any of my albums, you can do so <a href="https://kunaki.com/msales.asp?PublisherId=222029&amp;pp=1">directly through Kunaki</a>. Note that these versions do not come with downloads, and more importantly, since I&rsquo;m only charging minimal markup over my own costs, I ask that you only buy the CDs there if you&rsquo;ve already bought the album digitally (including via one of my discography bundles).</p><p>Using that link will give you the best shipping rates (especially if you buy multiple albums at a time or are outside the USA) and is also a lot less hassle for me, so it&rsquo;s a win-win.</p><p>On that note, if you want to buy a CD for an album you don&rsquo;t own just yet, it&rsquo;s actually a bit easier and cheaper for everyone if you buy the album digitally and then use my Kunaki store to get the CD. Or, you could buy just the CD and rip it yourself like it&rsquo;s 2003, and then send me a few bucks some other way to make up the difference.</p><p>Anyway, now you have choices for obtaining more collectible forms of my music without it being super expensive.</p><p>Thanks for listening!</p>

        
            
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=music">#Music</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=manufacturing">#Manufacturing</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=kunaki">#Kunaki</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="Music" label="music" />
        
        <category term="Manufacturing" label="manufacturing" />
        
        <category term="Kunaki" label="kunaki" />
        

        

    </entry>
    <entry>
        
        <title>Blog: CD updates</title>
        <link href="http://sockpuppet.band/blog/998-CD-updates" rel="alternate" type="text/html" />
        <published>2025-10-10T17:29:58-07:00</published>
        <updated>2025-10-10T17:29:58-07:00</updated>
        <id>urn:uuid:39ff6a46-2af6-53ba-b727-ba1f0ba8e28c</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>I now have 9 of my albums <a href="http://sockpuppet.band/releases/?tag=collection:CD">available on CD</a>, and I&rsquo;m working on adding all the others which folks have voted for <a href="http://sockpuppet.band/blog/938-Finally-setting-up-CDs">in the poll</a>.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>I now have 9 of my albums <a href="http://sockpuppet.band/releases/?tag=collection:CD">available on CD</a>, and I&rsquo;m working on adding all the others which folks have voted for <a href="http://sockpuppet.band/blog/938-Finally-setting-up-CDs">in the poll</a>.</p><p>I definitely want to put <a href="http://sockpuppet.band/album/novembeat-2020">Novembeat 2020</a> on CD but unfortunately that will require some extra process, as it has 29 tracks and Kunaki&rsquo;s online tool only supports up to 25. There&rsquo;s a workaround for that but unfortunately it will take some time to figure out how to actually do it suitably.</p>

        
            <p>On that note: If anyone knows of any good DAO authoring tools, ideally which run on a Mac, please <a href="mailto:fluffy-cddao%40sockpuppet%2eband">let me know</a>! In the meantime, Kunaki does have a somewhat roundabout approach which involves me burning a CD-R and then ripping it back with their own software, but that&rsquo;s&hellip; fraught, and I&rsquo;m not sure I even have any viable CD-Rs anymore. (I somehow doubt the big cheap spindle I bought on clearance from CompUSA is still any good&hellip;)</p><p><mark>Update:</mark> I ended up just doing it myself, and this functionality is now part of <a href="https://fluffy.itch.io/bandcrash">Bandcrash</a>. Also my big cheap spindle was still good!</p><p>But anyway, there haven&rsquo;t been a lot of responses on the poll and I&rsquo;m holding out optimism for the idea that it&rsquo;s just because people haven&rsquo;t made up their mind yet and not that nobody wants to buy anything.</p>
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=manufacturing">#Manufacturing</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=distribution">#Distribution</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="Manufacturing" label="manufacturing" />
        
        <category term="Distribution" label="distribution" />
        

        

    </entry>
    <entry>
        
        <title>Live Shows: Moonlit EU #100!</title>
        <link href="http://sockpuppet.band/live/1821-Moonlit-EU-100" rel="alternate" type="text/html" />
        <published>2025-10-08T11:20:00-07:00</published>
        <updated>2025-10-08T11:20:00-07:00</updated>
        <id>urn:uuid:5c8b2ab6-3479-523d-8c3a-b4231daee6b4</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p> </p><p>I performed two short sets at the Trans Academy&rsquo;s &ldquo;Moonlit&rdquo; concert series, for the milestone 100th week of Moonlit EU! For this one I made four new backing tracks and learned in real time just how bad I am at playing funk guitar.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        
<figure class="images"><a href="http://sockpuppet.band/live/1821-Moonlit-EU-100"><img src="http://sockpuppet.band/static/_img/0a/e1a2/moonlit_2e89472c93_240x240_q50.webp" width="240" height="240" srcset="http://sockpuppet.band/static/_img/0a/e1a2/moonlit_2e89472c93_240x240_q50.webp 1x, http://sockpuppet.band/static/_img/0a/e1a2/moonlit_2e89472c93_480x480_q50.webp 2x" loading="lazy" class="u-photo" style="shape-outside: url('http://sockpuppet.band/static/_img/0a/e1a2/moonlit_2e89472c93_240x240.png')" alt="moonlit.png"></a></figure>
<p>I performed two short sets at the Trans Academy&rsquo;s &ldquo;Moonlit&rdquo; concert series, for the milestone 100th week of Moonlit EU! For this one I made four new backing tracks and learned in real time just how bad I am at playing funk guitar.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/c-nVzuDkcfU?si=6o83h_hC7k0uI6jK" 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=VRChat">#VRChat</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=Trans+Academy">#TransAcademy</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=Moonlit">#Moonlit</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=short+set">#ShortSet</a>
        

        ]]>



        </content>
        <category term="LiveShows" label="Live Shows" />
        
        
        <category term="VRChat" label="VRChat" />
        
        <category term="TransAcademy" label="Trans Academy" />
        
        <category term="Moonlit" label="Moonlit" />
        
        <category term="ShortSet" label="short set" />
        

        

    </entry>
    <entry>
        
        <title>Blog: Finally setting up CDs</title>
        <link href="http://sockpuppet.band/blog/938-Finally-setting-up-CDs" rel="alternate" type="text/html" />
        <published>2025-10-03T22:51:29-07:00</published>
        <updated>2025-10-03T22:51:29-07:00</updated>
        <id>urn:uuid:612f273f-ba37-5e9b-bc0e-459695213be5</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>I&rsquo;m finally getting around to putting more of my albums on CD, thanks to the on-demand manufacturing capability afforded by <a href="https://kunaki.com/">Kunaki</a>. You can see which albums of mine are available via <a href="http://sockpuppet.band/releases/?tag=collection:CD">this collection</a>, and on each of them you can buy the album via <a href="https://sockpuppet.bandcamp.com/merch">Bandcamp</a>, <a href="https://mirlo.space/sockpuppet/merch">Mirlo</a>, or direct from Kunaki.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>I&rsquo;m finally getting around to putting more of my albums on CD, thanks to the on-demand manufacturing capability afforded by <a href="https://kunaki.com/">Kunaki</a>. You can see which albums of mine are available via <a href="http://sockpuppet.band/releases/?tag=collection:CD">this collection</a>, and on each of them you can buy the album via <a href="https://sockpuppet.bandcamp.com/merch">Bandcamp</a>, <a href="https://mirlo.space/sockpuppet/merch">Mirlo</a>, or direct from Kunaki.</p><p>If you buy from Bandcamp or Mirlo the album will also come with the digital download in your choice of formats.</p><p>Anyway, inside you can vote on which additional albums I should focus on making available!</p>

        
            <p>I&rsquo;ve only listed the ones that I&rsquo;m particularly interested in setting up, but if there&rsquo;s one I haven&rsquo;t listed that you want, feel free to write it in.</p>
<div class="strawpoll-embed" id="strawpoll_e6Z2A3x0JgN" style="height: 1028px; max-width: 640px; width: 100%; margin: 0 auto; display: flex; flex-direction: column;"><iframe title="StrawPoll Embed" id="strawpoll_iframe_e6Z2A3x0JgN" src="https://strawpoll.com/embed/e6Z2A3x0JgN" style="position: static; visibility: visible; display: block; width: 100%; flex-grow: 1;" frameborder="0" allowfullscreen allowtransparency>Loading&hellip;</iframe><script async src="https://cdn.strawpoll.com/dist/widgets.js" charset="utf-8"></script></div>
<p>Also at some point I will get around to doing CD setup for <a href="https://elasticstage.com/sockpuppet/">elasticStage</a> for folks in Europe, but their setup process is quite a bit more involved so it hasn&rsquo;t been a priority. It&rsquo;ll come eventually, though!</p>
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=manufacturing">#Manufacturing</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=merch">#Merch</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=distribution">#Distribution</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="Merch" label="merch" />
        
        <category term="Distribution" label="distribution" />
        
        <category term="Business" label="business" />
        
        <category term="elasticStage" label="elasticStage" />
        

        

    </entry>
    <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>
    

    
</feed>