<?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[Sockpuppet

n. A puppet made from a sock or similar garment.
n. (Internet) An alternate identity used by someone in order to appear as if they are someone else.
v. To maintain one or more such alternate identities.]]></subtitle>
    
    <link href="http://sockpuppet.band/feed?id=3163" 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=1661" rel="prev-archive" />
    
    
    <link href="http://sockpuppet.band/" />
    <id>tag:sockpuppet.band,2026-05-14:_all</id>
    <updated>2026-07-10T15:57:34-07:00</updated>

    

    <entry>
        
        <title>Blog: Symphonic followup</title>
        <link href="http://sockpuppet.band/blog/3163-Symphonic-followup" rel="alternate" type="text/html" />
        <published>2026-07-10T15:57:34-07:00</published>
        <updated>2026-07-10T15:57:34-07:00</updated>
        <id>urn:uuid:11303ac2-466e-4add-85e4-1500619e30e1</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>Over on Reddit, <a href="https://www.reddit.com/r/MusicDistribution/comments/1usqmiv/too_lost_distribution_too_good_to_be_true/">someone asked about TooLost</a>, and I mentioned that I used to use them and to avoid them like the plague and I said that I&rsquo;ve been using <a href="http://sockpuppet.band/symphonic" class="affiliate">Symphonic</a>. They had some followup questions for me and I felt that my answer was detailed enough that I should also post it as a blog post here for future reference.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>Over on Reddit, <a href="https://www.reddit.com/r/MusicDistribution/comments/1usqmiv/too_lost_distribution_too_good_to_be_true/">someone asked about TooLost</a>, and I mentioned that I used to use them and to avoid them like the plague and I said that I&rsquo;ve been using <a href="http://sockpuppet.band/symphonic" class="affiliate">Symphonic</a>. They had some followup questions for me and I felt that my answer was detailed enough that I should also post it as a blog post here for future reference.</p><p>This is sort of a followup to my <a href="http://sockpuppet.band/blog/1616-Trying-out-Symphonic">previous review about them</a>; nothing has really changed but I&rsquo;ve had more encounters with their support side of things that I have a more detailed picture on what it&rsquo;s like to work with them day-to-day.</p>

        
            <p>Anyway, here is my comment, verbatim:</p>
<blockquote>
<p>I&rsquo;ve been with Symphonic since March of this year, and I currently have 19 releases managed by them (and one release each on Soundrop and CDBaby).</p><p>I&rsquo;ve had plenty of support tickets with Symphonic and they usually get back to me quickly, although often the response is clearly AI-written. When that&rsquo;s been insufficient I&rsquo;ve been able to escalate to an actual human, though, and the answer I get is honest and straightforward, like either &ldquo;thanks for the feedback&rdquo; or &ldquo;that&rsquo;s on the roadmap&rdquo; or &ldquo;that&rsquo;s not something we want to support&rdquo; or the like.</p><p>My big complaint with Symphonic is that their metadata interface is very annoying to work with, and requires a lot of scrolling and clicking to set things like genres and individual credits. They don&rsquo;t have any way of just setting the same credits for all songs on an album, and the genre selector is super annoying. I&rsquo;ve given them some feedback on how it can be improved but I think it&rsquo;ll be a while before any changes happen there.</p><p>I&rsquo;ve also had them reject releases based on genre or title-related things (for example, they would not accept my release&rsquo;s original title of &ldquo;Lo-Fi Beats to Grind Coffee To&rdquo; because apparently &ldquo;lo-fi&rdquo; and &ldquo;beats&rdquo; are both blacklisted due to AI slop) but they&rsquo;ve been straightforward in communicating about issues like that.</p><p>They&rsquo;re also a lot more strict about the cover art text requirements and, in particular, detecting text that isn&rsquo;t in the release or artist name.</p><p>I&rsquo;m not thrilled with their reliance on AI for customer support, and reading between the lines a bit I suspect they also use AI for developing the site itself. They&rsquo;ve also raised prices and tried to justify it based on providing AI marketing tools that nobody actually wants, but I think that&rsquo;s just misplaced marketing efforts to try to justify them not operating at a loss.</p><p>My main complaint is just that the UI/UX on the uploader and tagger <em>really</em> sucks to use with my particular set of physical disabilities and I can&rsquo;t imagine it being a good experience even for people who don&rsquo;t have chronic pain issues, and I wish they&rsquo;d provide some sort of API-level access so that I can just script my uploads with the metadata I already have on my own end. But I can also see why they wouldn&rsquo;t want to do that, since it&rsquo;d make it way too easy for people to automate AI slop uploads, which they are firmly against, at least for the music and art.</p><p>They have <a href="https://support.symdistro.com/hc/en-us/articles/31610957692173-Symphonic-s-AI-Disclosure-Generative-AI-Stance">a more detailed explanation of their stance regarding AI</a>.</p></blockquote>
<p>I would say that as far as mainstream distributors go, Symphonic is the least-bad of a lot of bad choices. If I had my choices I&rsquo;d not be on major streaming at all, but that&rsquo;s where people want to listen to me. Hopefully <a href="https://fairplayer.band/">Fairplayer</a> and other distributed/indie streaming options take better hold. (I&rsquo;m certainly trying to do <a href="https://fairplayer.band/player/artist/sockpuppet@sockpuppet.band">my part</a> to <a href="https://github.com/PlaidWeb/Canimus">make it happen</a>!)</p><p>But anyway, in the meantime, if you do want distribution on the major DSPs, <a href="http://sockpuppet.band/symphonic" class="affiliate">Symphonic</a> has been pretty okay for me.</p>
            

            

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

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="Symphonic" label="Symphonic" />
        
        <category term="TooLost" label="TooLost" />
        
        <category term="Distribution" label="distribution" />
        

        

    </entry>
    <entry>
        
        <title>Scraps: A Man Like Steve</title>
        <link href="http://sockpuppet.band/scraps/2095-A-Man-Like-Steve" rel="alternate" type="text/html" />
        <published>2026-07-01T22:16:18-07:00</published>
        <updated>2026-07-01T22:16:18-07:00</updated>
        <id>urn:uuid:3b72f724-dc6b-4627-886d-68972fac5263</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>A silly jungle remix of <a href="https://www.youtube.com/watch?v=Z5fvm3ZHP04">a classic Marcus Brigstocke bit</a></p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>A silly jungle remix of <a href="https://www.youtube.com/watch?v=Z5fvm3ZHP04">a classic Marcus Brigstocke bit</a></p>

        
            
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=remix">#Remix</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=jungle">#Jungle</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=silly">#Silly</a>
        

        ]]>



        </content>
        <category term="Scraps" label="Scraps" />
        
        
        <category term="Remix" label="remix" />
        
        <category term="Jungle" label="jungle" />
        
        <category term="Silly" label="silly" />
        

        

    </entry>
    <entry>
        
        <title>Blog: Bandcamp alternatives</title>
        <link href="http://sockpuppet.band/blog/921-Bandcamp-alternatives" rel="alternate" type="text/html" />
        <published>2026-06-30T11:00:00-07:00</published>
        <updated>2026-06-30T11:00:00-07:00</updated>
        <id>urn:uuid:6c6e44c4-fe5a-430c-85e6-952774dbb0ef</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>Just when I was starting to think that <a href="https://www.songtradr.com/blog/posts/songtradr-bandcamp-acquisition">Songtradr&rsquo;s acquisition of Bandcamp</a> was turning out to not be the big problem everyone predicted, they&rsquo;ve gone and shaken everything back up by <a href="https://bsky.app/profile/grmnygrmny.bandcamp.com/post/3mpgvo7l2v22t">laying off the remaining Bandcamp engineering team</a>.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>Just when I was starting to think that <a href="https://www.songtradr.com/blog/posts/songtradr-bandcamp-acquisition">Songtradr&rsquo;s acquisition of Bandcamp</a> was turning out to not be the big problem everyone predicted, they&rsquo;ve gone and shaken everything back up by <a href="https://bsky.app/profile/grmnygrmny.bandcamp.com/post/3mpgvo7l2v22t">laying off the remaining Bandcamp engineering team</a>.</p><p>This, uh, is not a good sign.</p><p>So, anyway, while I&rsquo;m not planning on dropping Bandcamp entirely just yet (and will still be uploading my new releases <a href="http://sockpuppet.band/bandcamp">there</a> for the foreseeable future), here&rsquo;s some of the other places I sell my music.</p>

        
            <h3 id="921_h3_1_Mirlo"><a href="http://sockpuppet.band/mirlo">Mirlo</a><a href="http://sockpuppet.band/blog/921-Bandcamp-alternatives#921_h3_1_Mirlo" class="toc_link"></a></h3><p>Mirlo has been around for a while, but they made some pretty great strides when the original issues with Bandcamp had started to happen. They are, currently, my favorite of the Bandcamp alternatives, for the following reasons:</p>
<ul>
<li>They actually care about artists and trying to make a better ecosystem for everyone</li>
<li>Their principles are based on socialist collectivism</li>
<li>Their long-term goal is to provide interoperability and a federated world so that they don&rsquo;t <em>have</em> to be a single point of failure, business-wise, and are being developed as <a href="https://github.com/funmusicplace/mirlo/">open source</a></li>
<li>Their uploader is great (especially when paired with <a href="https://fluffy.itch.io/bandcrash">Bandcrash</a>)</li>
<li>They give artists a choice of how much of a cut they take</li>
<li>They provide integrated merch sales (albeit with fairly clunky shipping setup), a fully-fledged artist blog (for those who need it), and monthly support options as well</li>
<li>They support pay-what-you-want with both an absolute minimum and a suggested default</li>
<li>They have integration with <a href="https://fairplayer.band/">Fairplayer</a> and also are looking towards other interop things for a larger world of independent streaming</li>
</ul>
<p>Things are still a bit rough with them in some places; for example, I don&rsquo;t like how their frontend is currently a ReactJS app without any server-side rendering (which is bad for SEO and some forms of interop), and they still don&rsquo;t currently have the ability to generate discount codes or do per-track artwork, but they&rsquo;re constantly making progress, and ethically and politically they are about as far left as is possible in the space.</p><p>I really want to see them do well.</p><h3 id="921_h3_2_itch.io"><a href="http://sockpuppet.band/itchio">itch.io</a><a href="http://sockpuppet.band/blog/921-Bandcamp-alternatives#921_h3_2_itch.io" class="toc_link"></a></h3><p>itch.io is an independent games, assets, and content store. I actually first learned about them as a place to sell my comics, although they&rsquo;re primarily used for games and tools.</p><p>They aren&rsquo;t designed specifically to be a music store and leave a lot to be desired in the music sales department, but with <a href="https://fluffy.itch.io/bandcrash">Bandcrash</a> it isn&rsquo;t too difficult to manage your albums there.</p><p>Like Mirlo, they allow you to set whatever platform cut you like, and they also have flexible bundles and discount codes, which puts them a bit above Mirlo. They also let you organize your catalog into categories/sections. They also give you an incredible amount of control over your page layout, with the ability to provide custom CSS on request. And they even provide the ability to sell merch, although it&rsquo;s pretty clunky to set up.</p><p>They also support pay-what-you-want with both absolute minimum and suggested default prices.</p><p>However, there are a few reasons why they don&rsquo;t earn my top choice; for example:</p>
<ul>
<li>The company is very small and centralized, and has a very high <a href="https://en.wikipedia.org/wiki/Bus_factor">bus factor</a></li>
<li>Their interoperability is quite minimal and lacks a robust API for doing things that would be very helpful to do</li>
<li>As they do not have a music focus, there are a lot of places where things could be better, especially with sales reporting and discovery</li>
</ul>
<p>Still, as an independent digital asset shop (with potential merch sales), you could certainly do worse.</p><h3 id="921_h3_3_ko-fi"><a href="http://sockpuppet.band/ko-fi">ko-fi</a><a href="http://sockpuppet.band/blog/921-Bandcamp-alternatives#921_h3_3_ko-fi" class="toc_link"></a></h3><p>Ko-Fi started out as a Patreon alternative with a tip jar and monthly support options, but they also have a commissions platform and sales for both digital and physical items.</p><p>It&rsquo;s pretty okay as a shopping cart, although handling physical and digital versions of things is a bit clunky as they have to be separate items (which means uploading the digital version twice, once for each version). Also, the only way to provide an audio preview on the shop itself is via a YouTube embed. To that end it works as a supplement for having your own website, but it&rsquo;s not a great shopping experience. Also it offers absolutely no discoverability at all.</p><p>They don&rsquo;t offer a flexible sales cut option, but the standard cut they take is a mere 5%, and you can choose to pay a small monthly fee to waive that.</p><p>They also do have discount codes, but they don&rsquo;t have easily-managed discography bundles.</p><p>Also, they support pay-what-you-want with absolute minimum prices, although there&rsquo;s no way of doing a suggested price.</p><p>Personally I focus on Ko-Fi for selling physical goods that aren&rsquo;t music-related, but I do have all of my albums available there in digital form.</p><h3 id="921_h3_4_Subvert"><a href="http://sockpuppet.band/subvert">Subvert</a><a href="http://sockpuppet.band/blog/921-Bandcamp-alternatives#921_h3_4_Subvert" class="toc_link"></a></h3><p>This is a newcomer to the indie sales space. I&rsquo;ve written <a href="http://sockpuppet.band/blog/1743-Subvert-launched-yet-another-music-sale-platform">a bit about them already</a>.</p><p>They have some interesting ideas, namely instead of taking a cut they ask for customers to pay a tip to the platform to keep it running (similar to Gofundme), but I personally feel like they are prioritizing style over substance, and the actual upload and metadata editing process is a bit onerous.</p><p>There&rsquo;s nothing about them that stands out in particular aside from the co-op business model and the customer-driven cut.</p><p>Like many other sites, they support pay-what-you-want with an absolute minimum; they also let you offer discounts to other co-op members, which is nice.</p><p>One notable missing feature is the ability to have hidden tracks on albums. There&rsquo;s also no means of doing per-track artwork that I can find, which is something supported by both Bandcamp and Bandcrash.</p><p>I&rsquo;m not focusing too heavily on Subvert, although I will probably continue to upload new releases there for now. I&rsquo;m not super confident in their future but hopefully they&rsquo;ll surprise me.</p><h3 id="921_h3_5_Some-places-I-know-about-but-hav">Some places I know about but haven&rsquo;t used myself<a href="http://sockpuppet.band/blog/921-Bandcamp-alternatives#921_h3_5_Some-places-I-know-about-but-hav" class="toc_link"></a></h3><p>There&rsquo;s some more places that are on my radar and which might have the right balance for someone else, even if they don&rsquo;t suit my particular needs:</p><p><a href="https://jam.coop/">jam.coop</a> is still in its early days. It has a very minimal design (not necessarily a bad thing) and it&rsquo;s under a co-op model. They&rsquo;re also looking towards greater interop, so they&rsquo;re worth keeping an eye on.</p><p><a href="https://bandwagon.fm/">bandwagon.fm</a> is a Fediverse-first ActivityPub-based thing. I&rsquo;ve put <a href="https://bandwagon.fm/@fluffy">some of my music here</a> but it hasn&rsquo;t really met with how I want to manage my music. But it&rsquo;s built with interop from the beginning and as such they also have ambitions towards being part of an open music ecosystem.</p><p><a href="https://ampwall.com/">Ampwall</a> takes a somewhat different approach from most of the stores in that they actually charge musicians for hosting, and their rates seem a <em>little</em> high to me, but they make up for it somewhat by also taking a lower cut than most of the other shops, and providing a nice browse experience. I don&rsquo;t really know a lot about them but the Mirlo folks speak well of them.</p><h3 id="921_h3_6_Places-I-am-not-interested-in-an">Places I am not interested in and why<a href="http://sockpuppet.band/blog/921-Bandcamp-alternatives#921_h3_6_Places-I-am-not-interested-in-an" class="toc_link"></a></h3><p>I used to use Gumroad, but its founder, <a href="https://sahillavingia.com/">Sahil Lavingia</a>, has a <a href="https://www.fastcompany.com/91330297/doge-sahil-lavignia-gumroad">long</a> <a href="https://sahillavingia.com/reflecting">history</a> of <a href="https://beesbuzz.biz/blog/5339-An-open-letter-to-Sahil-Lavingia-re-NFTs">problematic</a> <a href="https://beesbuzz.biz/blog/7614-An-immediate-addendum">behavior</a>. Additionally, Gumroad is now primarily AI-coded and supported.</p><p>I have also been receiving spam from various up-and-coming wannabe services that are being vibe-coded on platforms like <a href="https://zilla.so/">zilla.so</a> and so on. My thought on things like that is: if the promise is that you can start up a company based on just a notion that you don&rsquo;t have to think about, why wouldn&rsquo;t anyone else just do it themselves and cut out the middleman?</p><h3 id="921_h3_7_A-note-about-web-presence">A note about web presence<a href="http://sockpuppet.band/blog/921-Bandcamp-alternatives#921_h3_7_A-note-about-web-presence" class="toc_link"></a></h3><p>Personally I think that any musician should have their own website that they run on their own terms, with whatever features make sense to them and with their own web domain and so on. I don&rsquo;t believe in putting all your eggs in someone else&rsquo;s basket.</p><p>I run this site using <a href="https://publ.beesbuzz.biz/">Publ</a> (and I will someday get around to releasing my site templates to make it easier for someone else to do so). <a href="https://faircamp.webr.ing/">A lot of folks</a> use <a href="https://faircamp.org/">Faircamp</a> which has a lot going for it. You can also build a site with any number of site generators like <a href="https://11ty.dev/">11ty</a>, <a href="https://gohugo.io/">Hugo</a>, or any number of <a href="https://indieweb.org/static_site_generator">static site generators</a>. Heck, you could also hand-code it the old-fashioned way.</p><p>You could even go a step further and provide your own shopping cart and cheeckout flow via PayPal or Stripe or whatever. I don&rsquo;t feel like dealing with that noise, which is why I just hand off my sales to other platforms.</p><p>Even if you don&rsquo;t want to build your own site, I highly recommend getting your own web domain and at least forwarding it to your favorite sales channel, or setting up a <a href="https://linktr.ee/">Linktree</a> or <a href="https://carrd.co/">Carrd</a> to direct people to your preferred sites.</p>
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=bandcamp">#Bandcamp</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=mirlo">#Mirlo</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=itch.io">#ItchIo</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=kofi">#Kofi</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=subvert">#Subvert</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="Bandcamp" label="bandcamp" />
        
        <category term="Mirlo" label="mirlo" />
        
        <category term="ItchIo" label="itch.io" />
        
        <category term="Kofi" label="kofi" />
        
        <category term="Subvert" label="subvert" />
        

        

    </entry>
    <entry>
        
        <title>Live Shows: Projekt: Community PJKT Fest 2026</title>
        <link href="http://sockpuppet.band/live/643-Projekt-Community-PJKT-Fest-2026" rel="alternate" type="text/html" />
        <published>2026-06-29T17:00:00-07:00</published>
        <updated>2026-06-29T17:00:00-07:00</updated>
        <id>urn:uuid:d586d953-e00d-455c-850b-4f5119cf7420</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p> </p>

<p>Sockpuppet was selected as one of the performances for <a href="https://www.projektcommunity.com/">Projekt: Community</a>&rsquo;s PJKT Fest 2026! Woo!</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        
<figure class="images"><a href="https://projektcommunity.com/"><img src="http://sockpuppet.band/static/_img/f8/42c2/pjkt-fest-2026_07c1ce66f4_240x179_q50.webp" width="240" height="179" srcset="http://sockpuppet.band/static/_img/f8/42c2/pjkt-fest-2026_07c1ce66f4_240x179_q50.webp 1x, http://sockpuppet.band/static/_img/f8/42c2/pjkt-fest-2026_07c1ce66f4_480x358_q50.webp 2x" loading="lazy" class="u-photo" alt="pjkt fest 2026.png"></a></figure>

<iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/PDbBC1Z0Qz8" 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>
<p>Sockpuppet was selected as one of the performances for <a href="https://www.projektcommunity.com/">Projekt: Community</a>&rsquo;s PJKT Fest 2026! Woo!</p>

        
            
<figure class="images"><a href="http://sockpuppet.band/live/643-Projekt-Community-PJKT-Fest-2026"><img src="http://sockpuppet.band/static/_img/09/7053/pjkt-2026-30_3d0cc38ede_640x360_q50.webp" width="640" height="360" srcset="http://sockpuppet.band/static/_img/09/7053/pjkt-2026-30_3d0cc38ede_640x360_q50.webp 1x, http://sockpuppet.band/static/_img/09/7053/pjkt-2026-30_3d0cc38ede_1280x720_q50.webp 2x" loading="lazy" class="u-photo" alt="pjkt 2026-30.png"></a><a href="http://sockpuppet.band/live/643-Projekt-Community-PJKT-Fest-2026"><img src="http://sockpuppet.band/static/_img/40/e2f6/pjkt-2026-Sockpuppet_fd7d832c5c_360x640_q50.webp" width="360" height="640" srcset="http://sockpuppet.band/static/_img/40/e2f6/pjkt-2026-Sockpuppet_fd7d832c5c_360x640_q50.webp 1x, http://sockpuppet.band/static/_img/40/e2f6/pjkt-2026-Sockpuppet_fd7d832c5c_720x1280_q50.webp 2x" loading="lazy" class="u-photo" alt="pjkt 2026 Sockpuppet.png"></a></figure>

            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=PKJT">#PKJT</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=Projekt+Community">#ProjektCommunity</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=full+set">#FullSet</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=VRChat">#VRChat</a>
        

        ]]>



        </content>
        <category term="LiveShows" label="Live Shows" />
        
        
        <category term="PKJT" label="PKJT" />
        
        <category term="ProjektCommunity" label="Projekt Community" />
        
        <category term="FullSet" label="full set" />
        
        <category term="VRChat" label="VRChat" />
        

        

    </entry>
    <entry>
        
        <title>Scraps: Royals (player piano)</title>
        <link href="http://sockpuppet.band/scraps/3076-Royals-player-piano" rel="alternate" type="text/html" />
        <published>2026-06-24T14:55:50-07:00</published>
        <updated>2026-06-24T14:55:50-07:00</updated>
        <id>urn:uuid:b653ace3-359e-408d-87bb-96ef92062ad9</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>A version of <a href="https://www.youtube.com/watch?v=nlcIKh6sBtc">Royals</a> as arranged for chamber ensemble by me and performed by <a href="https://piano.alnwlsn.com/">Alnwlsn&rsquo;s player piano</a></p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>A version of <a href="https://www.youtube.com/watch?v=nlcIKh6sBtc">Royals</a> as arranged for chamber ensemble by me and performed by <a href="https://piano.alnwlsn.com/">Alnwlsn&rsquo;s player piano</a></p>

        
            
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=player+piano">#PlayerPiano</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=cover">#Cover</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=Lorde">#Lorde</a>
        

        ]]>



        </content>
        <category term="Scraps" label="Scraps" />
        
        
        <category term="PlayerPiano" label="player piano" />
        
        <category term="Cover" label="cover" />
        
        <category term="Lorde" label="Lorde" />
        

        

    </entry>
    <entry>
        
        <title>Scraps: Feed (player piano)</title>
        <link href="http://sockpuppet.band/scraps/468-Feed-player-piano" rel="alternate" type="text/html" />
        <published>2026-06-24T11:33:21-07:00</published>
        <updated>2026-06-24T11:33:21-07:00</updated>
        <id>urn:uuid:dcf0d9fe-a373-4ae2-93ab-db57fc865925</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>A version of <a href="http://sockpuppet.band/track/feed">Feed</a> as performed by <a href="https://piano.alnwlsn.com/">Alnwlsn&rsquo;s player piano</a></p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>A version of <a href="http://sockpuppet.band/track/feed">Feed</a> as performed by <a href="https://piano.alnwlsn.com/">Alnwlsn&rsquo;s player piano</a></p>

        
            
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=player+piano">#PlayerPiano</a>
        

        ]]>



        </content>
        <category term="Scraps" label="Scraps" />
        
        
        <category term="PlayerPiano" label="player piano" />
        

        

    </entry>
    <entry>
        
        <title>Blog: Deadnames, Ko-Fi and itch updates</title>
        <link href="http://sockpuppet.band/blog/3070-Deadnames-Ko-Fi-and-itch-updates" rel="alternate" type="text/html" />
        <published>2026-06-21T10:37:22-07:00</published>
        <updated>2026-06-21T10:37:22-07:00</updated>
        <id>urn:uuid:aa0f9621-f321-4755-831c-bb3f0739e2a0</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>When I first released <a href="http://sockpuppet.band/album/deadnames">Deadnames</a> I mostly only included the various in-progress forms of what would eventually end up on <a href="http://sockpuppet.band/album/transitions">Transitions</a>, but I also included the original and Plus 5 versions of <a href="http://sockpuppet.band/track/120-mph">120 MPH</a>, which I&rsquo;d updated for <a href="http://sockpuppet.band/album/love-and-monsters">Love and Monsters</a>.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>When I first released <a href="http://sockpuppet.band/album/deadnames">Deadnames</a> I mostly only included the various in-progress forms of what would eventually end up on <a href="http://sockpuppet.band/album/transitions">Transitions</a>, but I also included the original and Plus 5 versions of <a href="http://sockpuppet.band/track/120-mph">120 MPH</a>, which I&rsquo;d updated for <a href="http://sockpuppet.band/album/love-and-monsters">Love and Monsters</a>.</p><p>I think I had also meant to include <a href="http://sockpuppet.band/track/safety-in-numbers">Safety in Numbers</a> for the same reasons, but it ended up slipping my mind. Maybe I thought it would get its own separate release somewhere? But I have no idea when or where that might be.</p><p>So, last night I finally got around to remastering the original version and <a href="http://sockpuppet.band/track/safety-in-numbers-song-fight-2006">adding it to Deadnames</a>, so if you already bought that album digitally, you should now be able to redownload it and get the updated audio.</p><p>The CD version was already at pretty close to the maximum length of a CD, and adding Safety in Numbers to that pushed it way over, so the CD version that&rsquo;s available now is missing the two hidden tracks in favor of Safety in Numbers. I only know of one person who actually has a physical copy of Deadnames other than myself, so I don&rsquo;t think that impacts anyone.</p><p>But anyway, updating the files on <a href="http://sockpuppet.band/ko-fi">my Ko-Fi shop</a> made me also realize that Bandcrash had a stupid bug that was preventing the MP3 files from getting the cover art tags (which is something I really should have had a proper automated test for, but the state of that code&rsquo;s tests is kinda abysmal). So I&rsquo;ve now reuploaded all of the MP3 versions to Ko-Fi and itch.io, so in case anyone&rsquo;s actually bought any of my albums there, you&rsquo;ll want to redownload the MP3 version from the respective library.</p><p>This also wreaks havoc with the Musicbrainz metadata! I&rsquo;ve submitted some updates there although who knows how long it&rsquo;ll take to get accepted.</p><p>Anyway. This whole thing affects, like, ten people. But I figured I&rsquo;d post about it so people would know.</p>

        
            
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=releases">#Releases</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=updates">#Updates</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=corrections">#Corrections</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="Releases" label="releases" />
        
        <category term="Updates" label="updates" />
        
        <category term="Corrections" label="corrections" />
        

        

    </entry>
    <entry>
        
        <title>Live Shows: VRelium Pridefest!</title>
        <link href="http://sockpuppet.band/live/267-VRelium-Pridefest" rel="alternate" type="text/html" />
        <published>2026-06-20T13:30:00-07:00</published>
        <updated>2026-06-20T13:30:00-07:00</updated>
        <id>urn:uuid:d88ae90a-7b30-40ee-976c-59e2f88e6da4</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p> </p>

<p>I am, as always, pleased as punch to have done a half-hour set with <a href="https://vrelium.org">VRelium</a> for the 2026 Pridefest!</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        
<figure class="images"><a href="https://vrelum.org"><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>

<iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/FzlC0j8YenQ" 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>
<p>I am, as always, pleased as punch to have done a half-hour set with <a href="https://vrelium.org">VRelium</a> for the 2026 Pridefest!</p><p>For future VRelium shows, join group <a href="https://vrc.group/RELIUM.8220"><code>RELIUM.8220</code></a> for access, or watch <a href="https://twitch.tv/vrelium">on Twitch</a>.</p>

        
            
            

            

        
        <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="VRelium" label="VRelium" />
        
        <category term="VRChat" label="VRChat" />
        
        <category term="FullSet" label="full set" />
        

        

    </entry>
    <entry>
        
        <title>Scraps: Repair My Heart (player piano)</title>
        <link href="http://sockpuppet.band/scraps/1465-Repair-My-Heart-player-piano" rel="alternate" type="text/html" />
        <published>2026-06-20T10:18:50-07:00</published>
        <updated>2026-06-20T10:18:50-07:00</updated>
        <id>urn:uuid:649073d0-12c2-4a0b-b4d3-b159464bc3d2</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>A version of <a href="http://sockpuppet.band/track/repair-my-heart">Repair My Heart</a> as performed by <a href="https://piano.alnwlsn.com/">Alnwlsn&rsquo;s player piano</a></p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>A version of <a href="http://sockpuppet.band/track/repair-my-heart">Repair My Heart</a> as performed by <a href="https://piano.alnwlsn.com/">Alnwlsn&rsquo;s player piano</a></p>

        
            
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=player+piano">#PlayerPiano</a>
        

        ]]>



        </content>
        <category term="Scraps" label="Scraps" />
        
        
        <category term="PlayerPiano" label="player piano" />
        

        

    </entry>
    <entry>
        
        <title>Live Shows: Trans Academy: Music Production panel</title>
        <link href="http://sockpuppet.band/live/2785-trans-academy-music-production-panel" rel="alternate" type="text/html" />
        <published>2026-06-14T10:45:00-07:00</published>
        <updated>2026-06-14T10:45:00-07:00</updated>
        <id>urn:uuid:b433e36c-ef0b-44c5-b3a3-31eaab1c42a1</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p> </p><p><a href="https://transacademy.org/">Trans Academy</a> is hosting Trans Pride VR, and on June 14, which just <em>happens</em> to be fluffy&rsquo;s birthday, fluffy will be participating in a panel discussion about music production. Come on by to hear fluffy waffle about everything! Join group <a href="https://vrc.group/TRANS.7885"><code>TRANS.7885</code></a> for access.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        
<figure class="images"><a href="https://transacademy.org/"><img src="http://sockpuppet.band/static/_img/0b/3cf6/trans-academy_df09cc0614_240x240_q50.webp" width="240" height="240" srcset="http://sockpuppet.band/static/_img/0b/3cf6/trans-academy_df09cc0614_240x240_q50.webp 1x, http://sockpuppet.band/static/_img/0b/3cf6/trans-academy_df09cc0614_480x480_q50.webp 2x" loading="lazy" class="u-photo" alt="trans academy.png"></a></figure>
<p><a href="https://transacademy.org/">Trans Academy</a> is hosting Trans Pride VR, and on June 14, which just <em>happens</em> to be fluffy&rsquo;s birthday, fluffy will be participating in a panel discussion about music production. Come on by to hear fluffy waffle about everything! Join group <a href="https://vrc.group/TRANS.7885"><code>TRANS.7885</code></a> for access.</p><p>Afterwards, fluffy will likely be celebrating by jamming on instruments in places around VRChat. Alcohol and/or cannabis may be involved, venue permitting.</p>

        
            
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=Trans+Academy">#TransAcademy</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=VRChat">#VRChat</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=non-music">#NonMusic</a>
        

        ]]>



        </content>
        <category term="LiveShows" label="Live Shows" />
        
        
        <category term="TransAcademy" label="Trans Academy" />
        
        <category term="VRChat" label="VRChat" />
        
        <category term="NonMusic" label="non-music" />
        

        

    </entry>
    <entry>
        
        <title>Live Shows: Trans Academy: a short TPVR set</title>
        <link href="http://sockpuppet.band/live/1021-Trans-Academy-a-short-TPVR-set" rel="alternate" type="text/html" />
        <published>2026-06-13T13:30:00-07:00</published>
        <updated>2026-06-13T13:30:00-07:00</updated>
        <id>urn:uuid:596eedc7-8232-4037-aa3a-6a84c559d7ec</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p> </p>

<p>During this time I performed a short set during a break between panels at <a href="https://transacademy.org">Trans Academy</a>&rsquo;s Trans Pride VR festival.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        
<figure class="images"><a href="https://transacademy.org/"><img src="http://sockpuppet.band/static/_img/0b/3cf6/trans-academy_df09cc0614_240x240_q50.webp" width="240" height="240" srcset="http://sockpuppet.band/static/_img/0b/3cf6/trans-academy_df09cc0614_240x240_q50.webp 1x, http://sockpuppet.band/static/_img/0b/3cf6/trans-academy_df09cc0614_480x480_q50.webp 2x" loading="lazy" class="u-photo" alt="trans academy.png"></a></figure>

<iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/ejKAayO3LLU" 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>
<p>During this time I performed a short set during a break between panels at <a href="https://transacademy.org">Trans Academy</a>&rsquo;s Trans Pride VR festival.</p><p>For future Trans Academy events, join group <a href="https://vrc.group/TRANS.7885"><code>TRANS.7885</code></a>.</p>

        
            
            

            

        
        <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=short+set">#ShortSet</a>
        

        ]]>



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

        

    </entry>
    <entry>
        
        <title>Blog: Furality Ultra booth video: behind the scenes</title>
        <link href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes" rel="alternate" type="text/html" />
        <published>2026-06-04T00:00:00+00:00</published>
        <updated>2026-06-04T00:00:00+00:00</updated>
        <id>urn:uuid:325373e9-41af-40e9-aeec-509a38af3658</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>The <a href="https://youtu.be/J2pnu04Y_TI">video I made for my Furality Ultra booth</a> was a lot of work, and I&rsquo;d love to walk folks through the process!</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>The <a href="https://youtu.be/J2pnu04Y_TI">video I made for my Furality Ultra booth</a> was a lot of work, and I&rsquo;d love to walk folks through the process!</p>
<iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/J2pnu04Y_TI" 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>
<p>The assumption some people have is that I got a whole bunch of people together to perform in sync, but that is absolutely not the case. Instead, every single critter, and many of the visual props you see, are on their own separate chromakeyed layer, composited using <a href="https://www.blackmagicdesign.com/products/davinciresolve">DaVinci Resolve</a>, each one acted by me personally.</p>

        
            <p>I had learned a lot of lessons from the <a href="https://youtu.be/5oIwosuZW9s">video I produced for Furality Somna</a>; for that one I just recorded a simple looping scene with a fixed camera, and played every single character in it, and again composited everything in DaVinci. I ended up making it all up as I went along, which was fun but also added about 3x as much work as it normally would have taken, and this year&rsquo;s video being <em>much</em> more ambitious I knew I needed to do way more planning for it to come out well.</p><p>(The music in last year&rsquo;s video, incidentally, is a lo-fi version of <a href="http://sockpuppet.band/track/material-change">Material Change</a>.)</p><p>Here is a video showing some of the stuff that I&rsquo;ll be describing in further detail:</p>
<iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/K5jnrj0LUQI" 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>
<h3 id="2206_h3_1_Music-production">Music production<a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#2206_h3_1_Music-production" class="toc_link"></a></h3>
<figure class="images"><a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="http://sockpuppet.band/static/_img/11/692f/ultra-music-timeline_295bfd1645_640x345_q50.webp" width="640" height="345" srcset="http://sockpuppet.band/static/_img/11/692f/ultra-music-timeline_295bfd1645_640x345_q50.webp 1x, http://sockpuppet.band/static/_img/11/692f/ultra-music-timeline_295bfd1645_1280x690_q50.webp 2x" loading="lazy" class="u-photo" alt="ultra music timeline.jpg" title="The music production session"></a></figure>
<p>I wrote and recorded the song up-front, and used that to plan the visuals as I figured out which musical genres to use. Some of it I had planned out ahead of time but some of it I figured out what made the most sense while I was recording the music. As usual I produced the music in <a href="https://www.apple.com/logic-pro/">Logic Pro</a>, and I made heavy use of the folder stack functionality to keep my project organized. Each genre was recorded on its own separate set of tracks contained within a folder stack.</p><p>I did end up making some changes to the music during production. The jazz segment in particular changed a few times, both to improve the lyrics and the vocal delivery.</p><p>I went with a tempo of 128BPM, because the video is one minute long and there were exactly 128 beats in it. Sometimes you don&rsquo;t have to overthink it.</p><h3 id="2206_h3_2_Locations">Locations<a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#2206_h3_2_Locations" class="toc_link"></a></h3><p>After getting the music arranged, I wrote up a simple shooting script to plan out the scenes, and did a lot of location scouting to find places that would work well. My main criteria were:</p>
<ul>
<li>It needs to have decent performance (so I could record at a steady framerate)</li>
<li>It needs to be possible to turn off post-processing (so that it doesn&rsquo;t interfere with VRChat&rsquo;s stream camera green screen)</li>
<li>It needs to be somewhere that&rsquo;s recognizable to folks who are in my orbit</li>
</ul>
<p>The locations I ended up choosing were:</p>
<ul>
<li><a href="https://vrchat.com/home/world/wrld_898dcf4f-cdbe-4d75-a55d-f80b0213ab9c/info">Community Open Mic</a> (pop)</li>
<li><a href="https://vrchat.com/home/world/wrld_71ff0336-d86c-4095-b0f7-e628f1da3a02/info">Piano Lounge Freude</a> (jazz)</li>
<li><a href="https://vrchat.com/home/world/wrld_976e4d46-ba35-4c6d-a7f6-38714ee38fbf/info">Trans Academy</a> (choral)</li>
</ul>
<p>The first two are venues I&rsquo;ve performed at many times, and Trans Academy is an organization I <a href="http://sockpuppet.band/clients/1270-Trans-Academy">volunteer for</a> so it&rsquo;s special to me.</p><p>Originally I was going to record the first segment in <a href="https://vrchat.com/home/world/wrld_31ff6bb7-b2f5-4d2a-aa38-1dc93926bb53/info">Transitions Club</a>, where I&rsquo;ve also performed many times, but unfortunately there&rsquo;s no way to turn off the camera postprocessing there, which I only realized after doing a test recording and discovering that it affects the green screen.</p><h3 id="2206_h3_3_Avatars">Avatars<a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#2206_h3_3_Avatars" class="toc_link"></a></h3><p>All of the avatars I used were my own; in particular, I made several versions of my <a href="https://fluffy.itch.io/critter-avatar">standard critter base</a> with different instrument setups, and also a specific drummer version of the <a href="https://fluffy.itch.io/critter-junction-avatar">Critter Junction resident base</a>.</p><p>The guitar, electric bass, keyboard, and drum sticks were my own models. I also modified the following meshes (all of which are free to use in this way):</p>
<ul>
<li><a href="https://sketchfab.com/3d-models/instruments-violin-piano-double-bass-3abd06dc681144adaea89b295246be55">Instruments: Violin / Piano / Double Bass</a> by Tom Zimmermann (for the violin, viola, and double bass)</li>
<li><a href="https://sketchfab.com/3d-models/cello-ece053225f3a42f1939528b9c9014775">Cello</a> by VM-Models</li>
<li><a href="https://free3d.com/3d-model/drum-set-99664.html?dd_referrer=">Drum Set</a> by zaurian868</li>
<li><a href="https://sketchfab.com/3d-models/violin-bow-af332828a42f4f8cbbe81bea3de0b00d">Violin bow</a> by CharlotteMeehan</li>
</ul>
<p>All of these were extensively modified for my purposes (particularly to make them VRChat-compatible).</p><p>I also created a <a href="https://vrchat.com/home/avatar/avtr_6a332961-0201-42ca-a4bd-ce6e8fd1f3e9">simple green screen avatar</a> for part of the compositing workflow.</p><h3 id="2206_h3_4_Recording-layers">Recording layers<a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#2206_h3_4_Recording-layers" class="toc_link"></a></h3><p>VRChat has a <a href="https://wiki.vrchat.com/wiki/Camera_Dolly">camera dolly</a> system which allows you to set up and replay a camera path, but it doesn&rsquo;t provide any real built-in synchronization mechanism. To keep things in sync, I did the following:</p>
<ol>
<li>Created a basic lead-in click track (I used <a href="https://www.audacityteam.org/">Audacity</a> for this, but any music software will do)</li>
<li>Split the music into sections for filming</li>
<li>Downloaded <a href="https://github.com/yoggy/sendosc">sendosc</a> to trigger the dolly camera</li>
<li>Wrote a basic <a href="https://learn.microsoft.com/en-us/powershell/">Powershell</a> script to synchronize everything up</li>
</ol>
<figure class="blockcode"><figcaption>play.ps1</figcaption><pre class="highlight" data-language="ps1" data-line-numbers><span class="line" id="e2206cb1L1"><a class="line-number" href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#e2206cb1L1"></a><span class="line-content"><span class="nv">$click</span> <span class="p">=</span> <span class="nb">New-Object</span> <span class="n">System</span><span class="p">.</span><span class="n">Media</span><span class="p">.</span><span class="n">SoundPlayer</span> <span class="s1">&#39;click.wav&#39;</span></span></span>
<span class="line" id="e2206cb1L2"><a class="line-number" href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#e2206cb1L2"></a><span class="line-content"><span class="nv">$player</span> <span class="p">=</span> <span class="nb">New-Object</span> <span class="n">System</span><span class="p">.</span><span class="n">Media</span><span class="p">.</span><span class="n">SoundPlayer</span> <span class="nv">$args</span><span class="p">[</span><span class="n">0</span><span class="p">]</span></span></span>
<span class="line" id="e2206cb1L3"><a class="line-number" href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#e2206cb1L3"></a><span class="line-content"></span></span>
<span class="line" id="e2206cb1L4"><a class="line-number" href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#e2206cb1L4"></a><span class="line-content"><span class="p">.\</span><span class="n">sendosc</span><span class="p">.</span><span class="n">exe</span> <span class="n">localhost</span> <span class="n">9000</span> <span class="p">/</span><span class="n">dolly</span><span class="p">/</span><span class="n">Play</span> <span class="n">b</span> <span class="n">false</span></span></span>
<span class="line" id="e2206cb1L5"><a class="line-number" href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#e2206cb1L5"></a><span class="line-content"></span></span>
<span class="line" id="e2206cb1L6"><a class="line-number" href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#e2206cb1L6"></a><span class="line-content"><span class="nb">echo </span><span class="s2">&quot;Playing click&quot;</span></span></span>
<span class="line" id="e2206cb1L7"><a class="line-number" href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#e2206cb1L7"></a><span class="line-content"><span class="nv">$click</span><span class="p">.</span><span class="n">Play</span><span class="p">()</span></span></span>
<span class="line" id="e2206cb1L8"><a class="line-number" href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#e2206cb1L8"></a><span class="line-content"></span></span>
<span class="line" id="e2206cb1L9"><a class="line-number" href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#e2206cb1L9"></a><span class="line-content"><span class="nb">Start-Sleep</span> <span class="n">-Milliseconds</span> <span class="n">5000</span></span></span>
<span class="line" id="e2206cb1L10"><a class="line-number" href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#e2206cb1L10"></a><span class="line-content"></span></span>
<span class="line" id="e2206cb1L11"><a class="line-number" href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#e2206cb1L11"></a><span class="line-content"><span class="nb">echo </span><span class="s2">&quot;starting dollycam&quot;</span></span></span>
<span class="line" id="e2206cb1L12"><a class="line-number" href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#e2206cb1L12"></a><span class="line-content"><span class="p">.\</span><span class="n">sendosc</span><span class="p">.</span><span class="n">exe</span> <span class="n">localhost</span> <span class="n">9000</span> <span class="p">/</span><span class="n">dolly</span><span class="p">/</span><span class="n">Play</span> <span class="n">b</span> <span class="n">true</span></span></span>
<span class="line" id="e2206cb1L13"><a class="line-number" href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#e2206cb1L13"></a><span class="line-content"></span></span>
<span class="line" id="e2206cb1L14"><a class="line-number" href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#e2206cb1L14"></a><span class="line-content"><span class="nb">Start-Sleep</span> <span class="n">-Milliseconds</span> <span class="n">1000</span></span></span>
<span class="line" id="e2206cb1L15"><a class="line-number" href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#e2206cb1L15"></a><span class="line-content"></span></span>
<span class="line" id="e2206cb1L16"><a class="line-number" href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#e2206cb1L16"></a><span class="line-content"><span class="nb">echo </span><span class="s2">&quot;Playing song&quot;</span></span></span>
<span class="line" id="e2206cb1L17"><a class="line-number" href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#e2206cb1L17"></a><span class="line-content"><span class="nv">$player</span><span class="p">.</span><span class="n">Play</span><span class="p">()</span></span></span>
<span class="line" id="e2206cb1L18"><a class="line-number" href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#e2206cb1L18"></a><span class="line-content"></span></span>
<span class="line" id="e2206cb1L19"><a class="line-number" href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#e2206cb1L19"></a><span class="line-content"><span class="nb">Start-Sleep</span> <span class="n">-Milliseconds</span> <span class="n">16000</span></span></span>
</pre></figure><p>In order to film a pass, I would then invoke the script with a command like:</p><figure class="blockcode"><pre class="highlight" data-language="cmd" data-line-numbers><span class="line" id="e2206cb2L1"><a class="line-number" href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#e2206cb2L1"></a><span class="line-content">powershell -ExecutionPolicy Bypass -File play.ps1 &quot;.\1 pop.wav&quot;</span></span>
</pre></figure><p>I kept a single powershell instance open in the foreground so I could just press up and enter every time I wanted to film a take, which was quite often.</p><p>Anyway. This script will play the click track for five seconds, then starts the camera dolly path, then one second later starts the music playing, so that I could then perform my choreography in sync with the audio track.</p><p>I did several takes of each layer, and also kept an eye out for obvious rendering hitches during it, since those often cause the camera path to fall out of sync and cause other visual artifacts in the composite. Unfortunately, VRChat&rsquo;s dolly system is a bit limited when it comes to synchronization.</p><p>As far as synchronizing things in the timeline go, I found that there were 21 frames of latency between the display capture and the audio output capture from my headphones, and I used the click track to line the clips up in the composite.</p>
<figure class="images"><a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="http://sockpuppet.band/static/_img/df/a3a5/ultra-clicktrack-alignments_82cfcfa023_640x343_q50.webp" width="640" height="343" srcset="http://sockpuppet.band/static/_img/df/a3a5/ultra-clicktrack-alignments_82cfcfa023_640x343_q50.webp 1x, http://sockpuppet.band/static/_img/df/a3a5/ultra-clicktrack-alignments_82cfcfa023_1280x686_q50.webp 2x" loading="lazy" class="u-photo" alt="ultra clicktrack alignments.jpg"></a></figure>
<h3 id="2206_h3_5_Dolly-management">Dolly management<a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#2206_h3_5_Dolly-management" class="toc_link"></a></h3><p>I made heavy use of <a href="https://github.com/Duinrahaic/VRCDollyManager">DollyManager</a> to manage my camera paths, which was super useful whenever I had to do reshoots (which was often). Unfortunately, Camera Dolly does not store a bunch of settings when you export so I still had to make notes of a lot of things. And also it <em>does</em> store a bunch of settings that you don&rsquo;t actually want it to store, such as the green screen color. And the in-game editor is kind of a nightmare to actually use, especially for keyframes that are out of reach.</p><p>Basically, the camera dolly as it stands right now is kinda half-baked. Hopefully VRChat improves it over time.</p><h3 id="2206_h3_6_Dealing-with-in-world-props">Dealing with in-world props<a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#2206_h3_6_Dealing-with-in-world-props" class="toc_link"></a></h3><p>Most in-world props do not appear on the green screen, which is why I created the green screen avatar to mask those out. For those render passes I disabled the camera green screen, and stood behind the prop while recording another pass. This usually required a lot of extra work to make a clean plate in DaVinci, but it was worth it.</p><h3 id="2206_h3_7_The-rock-pop-scene">The rock/pop scene<a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#2206_h3_7_The-rock-pop-scene" class="toc_link"></a></h3><p>This scene I ended up redoing multiple times while I figured out the workflow. Fortunately it was the simplest of the composited scenes, so it was well worth the time spent experimenting so I could make the later scenes go more smoothly.</p><p>There are &ldquo;only&rdquo; seven layers in this composite:</p>
<ul>
<li>Background</li>
<li>Drummer</li>
<li>Drum kit (world prop)</li>
<li>Backup vocalist</li>
<li>Bass player</li>
<li>Lead critter</li>
<li>Microphone (world prop)</li>
</ul>
<p>I recorded this in three separate shots each with their own camera path; I ended up only using two of the shots.</p><p>During the first shot with the sweeping camera pan I had to do multiple cuts within the layers to change their ordering, which you can kind of see in the timeline:</p>
<figure class="images"><a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="http://sockpuppet.band/static/_img/12/3ad9/ultra-scene-1-cut-1_9dfc89d5be_640x168_q50.webp" width="640" height="168" srcset="http://sockpuppet.band/static/_img/12/3ad9/ultra-scene-1-cut-1_9dfc89d5be_640x168_q50.webp 1x, http://sockpuppet.band/static/_img/12/3ad9/ultra-scene-1-cut-1_9dfc89d5be_1280x335_q50.webp 2x" loading="lazy" class="u-photo" alt="ultra scene 1 cut 1.jpg" title="Furality Ultra scene 1 timeline view"></a></figure>
<p>I added a bit of blur to the background layer, mostly to hide some annoying aliasing artifacts from the render since I had antialiasing disabled in VRChat to get the maximum possible framerate. Lens blur hides many sins.</p><h3 id="2206_h3_8_The-studio-scene">The studio scene<a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#2206_h3_8_The-studio-scene" class="toc_link"></a></h3><p>For the scene where I&rsquo;m in the studio I just found a world where there was a chair I could sit on, disabled fullbody tracking (so that the chair would work right), and lined myself up over a photo of my actual messy studio. Pretty straightforward. In the composite I added some extra thick cartoon outline and some film grain to make things match a bit better. I also spent way too much time figuring out how to post-process a shadow onto the seat cushion, which mostly got covered up by the speech bubble. Oh well, it was a good learning experience.</p>
<figure class="images"><a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="http://sockpuppet.band/static/_img/0d/ff7e/ultra-scene-2-seatmask_113efc18f7_640x343_q50.webp" width="640" height="343" srcset="http://sockpuppet.band/static/_img/0d/ff7e/ultra-scene-2-seatmask_113efc18f7_640x343_q50.webp 1x, http://sockpuppet.band/static/_img/0d/ff7e/ultra-scene-2-seatmask_113efc18f7_1280x686_q50.webp 2x" loading="lazy" class="u-photo" alt="ultra scene 2 seatmask.jpg" title="The Fusion composition for the shadow on the seat"></a><a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="http://sockpuppet.band/static/_img/2e/76ae/ultra-scene-2-composite_594245817f_640x343_q50.webp" width="640" height="343" srcset="http://sockpuppet.band/static/_img/2e/76ae/ultra-scene-2-composite_594245817f_640x343_q50.webp 1x, http://sockpuppet.band/static/_img/2e/76ae/ultra-scene-2-composite_594245817f_1280x686_q50.webp 2x" loading="lazy" class="u-photo" alt="ultra scene 2 composite.jpg" title="The fully-composited scene"></a></figure>
<p>Incidentally, I am <em>not</em> singing along with the lyrics there, and instead am saying &ldquo;Why isn&rsquo;t this working?!&rdquo; which is a common utterance from me whenever Logic is misbehaving.</p><h3 id="2206_h3_9_The-pixel-art-scene">The pixel art scene<a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#2206_h3_9_The-pixel-art-scene" class="toc_link"></a></h3><p>This was another super-complicated composite. DaVinci doesn&rsquo;t really have any good way of doing pixel-precise positioning or scaling, so what I ended up doing here was to draw every layer at 320x180 with things lined up how I wanted them in the frame, then scaled those layers up 6x with nearest-neighbor filtering (using <a href="https://imagemagick.org">ImageMagick</a>) and then did the composite in DaVinci.</p>
<figure class="images"><a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="http://sockpuppet.band/static/_img/7f/5ca2/ultra-pixel-stage_432b2906d5_640x335_q50.webp" width="640" height="335" srcset="http://sockpuppet.band/static/_img/7f/5ca2/ultra-pixel-stage_432b2906d5_640x335_q50.webp 1x, http://sockpuppet.band/static/_img/7f/5ca2/ultra-pixel-stage_432b2906d5_1280x671_q50.webp 2x" loading="lazy" class="u-photo" alt="ultra pixel stage.jpg" title="A screenshot of the sprite setup work in Affinity Photo"></a><a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="http://sockpuppet.band/static/_img/e6/6c80/ultra-pixel-composite_bbef7ba2c4_640x343_q50.webp" width="640" height="343" srcset="http://sockpuppet.band/static/_img/e6/6c80/ultra-pixel-composite_bbef7ba2c4_640x343_q50.webp 1x, http://sockpuppet.band/static/_img/e6/6c80/ultra-pixel-composite_bbef7ba2c4_1280x686_q50.webp 2x" loading="lazy" class="u-photo" alt="ultra pixel composite.jpg" title="The pixel stage final composite"></a></figure>
<p>The note lanes for the rhythm game in the background were just drawn as sprite layers which I moved in sync to the music, and I did a Fusion composition to extract the few rows of pixels where those notes hit the bottom edge of the controller sprites and then applied a ridiculous glow with a directional blur to them.</p>
<figure class="images"><a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="http://sockpuppet.band/static/_img/9f/d46e/ultra-pixel-noteline-effect_76d978ec4c_640x343_q50.webp" width="640" height="343" srcset="http://sockpuppet.band/static/_img/9f/d46e/ultra-pixel-noteline-effect_76d978ec4c_640x343_q50.webp 1x, http://sockpuppet.band/static/_img/9f/d46e/ultra-pixel-noteline-effect_76d978ec4c_1280x686_q50.webp 2x" loading="lazy" class="u-photo" alt="ultra pixel noteline effect.jpg" title="A glimpse into how the noteline effect works"></a></figure>
<p>The bouncing coin is something I quickly modeled and rendered in Blender as a 6-frame sequence. I looped that sequence in DaVinci and then gave it a simple motion path, synchronized with the beat.</p>
<div class="images"><video src="http://sockpuppet.band/_file/4d6fb/f/ultra%20coin.mp4" playsinline autoplay loop muted controls></div>
<p>Each of the performers was multiple layers, typically a base sprite, a sprite for the instrument, and any additional sprites for hand positions (which I moved in 6-pixel increments using &ldquo;step&rdquo; interpolation) and so on. The falling sprites were done separately, of course.</p><p>When the entire stage falls apart, I just applied some simple motion paths to them and went with what felt right, rather than anything physically accurate (but it was fun to make the trellis bounce off the floor, a decision I came up with on the spot).</p><p>The main composite is around 20 layers, and many of those layers are also compound clips with 3-4 layers of their own. There&rsquo;s a <em>lot</em> going on. Watch it a bunch of times!</p><h3 id="2206_h3_10_The-cartoon-critter-head">The cartoon critter head<a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#2206_h3_10_The-cartoon-critter-head" class="toc_link"></a></h3><p>That was all just traditional hand animation! I made a layer for the head, the blinking eyes, and a bunch of mouth shapes, and then I did the usual thing one does. Resolve, incidentally, is not particularly great for animating this way, but it worked well enough. For a longer animation I&rsquo;d definitely want to use something else though.</p><p>The best thing that came out of this was when I was drawing the base layer and doing a symmetry check:</p>
<figure class="images"><a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="http://sockpuppet.band/_" class="u-photo" width="320" height="320" loading="lazy" style="background-image:url('http://sockpuppet.band/static/ultra%20critter.gif');background-size:contain;background-position:50.00% 50.00%;background-repeat:no-repeat;max-width:640px;max-height:640px" alt="wiggle wiggle" title="wiggle wiggle"></a></figure>
<h3 id="2206_h3_11_The-big-grid-of-games-and-videos">The big grid of games and videos and such<a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#2206_h3_11_The-big-grid-of-games-and-videos" class="toc_link"></a></h3>
<figure class="images"><a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="http://sockpuppet.band/static/_img/9b/77ee/ultra-gamegrid-composite_b6d382791a_640x343_q50.webp" width="640" height="343" srcset="http://sockpuppet.band/static/_img/9b/77ee/ultra-gamegrid-composite_b6d382791a_640x343_q50.webp 1x, http://sockpuppet.band/static/_img/9b/77ee/ultra-gamegrid-composite_b6d382791a_1280x686_q50.webp 2x" loading="lazy" class="u-photo" alt="ultra gamegrid composite.jpg"></a></figure>
<p>The Undertale-style critter sprite was a modified version of <a href="https://bsky.app/profile/beesbuzz.biz/post/3luvax42wts26">the one I drew</a> for the <a href="https://memories.undertale.com/">Undertale memories</a> microsite that went up for the 10th anniversary of Undertale&rsquo;s release.</p><p>The footage all came from things I&rsquo;ve worked on. Most of it was <a href="https://itch.io/c/289717/games-with-my-music">games I composed for</a>:</p>
<ul>
<li><a href="https://hoggtied.itch.io/ass-without-a-trace-2">Ass Without a Trace 2</a> by HoggTied (NSFW)</li>
<li><a href="https://madebyyamatsu.itch.io/psycho-burst">Psycho Burst</a> and <a href="https://madebyyamatsu.itch.io/airship-chef">Airship Chef</a> by Yamatsu (both NSFW)</li>
<li><a href="https://mitha.itch.io/snack-stacker">Snack Stacker</a> by Mitha</li>
<li><a href="https://sundewbry.itch.io/pawmune">Pawmune</a> by SundewBry</li>
<li><a href="https://rtwfroody.itch.io/treestoration">Treestoration</a> by rtwfroody</li>
<li><a href="https://chinniedraws.itch.io/currying-flavors">Currying Flavors</a> by chinniedraws</li>
<li><a href="https://definitely-a-fox.itch.io/magnolia-goes-for-a-walk">Magnolia&rsquo;s Early Morning Walk</a> by Definitely a Fox (NSFW-ish)</li>
<li><a href="https://the-firecrackers.itch.io/firecracker">The Balance of Sappho</a> by The Firecrackers</li>
<li><a href="https://sethpaxton.itch.io/hallowed-grounds">Hallowed Grounds</a> by Paxton</li>
<li><a href="https://glass-dragon.itch.io/hsp">The Herbal Spice Problem</a> by Glass Dragon Studios</li>
<li><a href="https://cloverfirefly.itch.io/admiralo-island-witches-club-demo">Admiralo Island Witches Club</a> by cloverfirefly</li>
<li><a href="https://fluffy.itch.io/brickris-tetout">Brickris Tetout</a> by Bamboy</li>
<li><a href="https://bzlsk.itch.io/elevate">Elevate</a> by Kamil Bazydlo</li>
<li><a href="https://z0lly.itch.io/hagglewaggleduckdoge">Haggle Waggle: Duck &amp; Doge</a> by z0lly</li>
<li><a href="https://spectrohaus.itch.io/spoooky-sushi">Spooky Sushi</a> by Spectronaut</li>
<li><a href="https://fluffy.itch.io/refactor">Refactor</a>, <a href="https://fluffy.itch.io/colorful-critter">Colorful Critter</a><sup id="r_e2206_fn1"><a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#d_e2206_fn1" rel="footnote">1</a></sup>, and <a href="https://fluffy.itch.io/cat-catcher">CATcher</a> by fluffy (that&rsquo;s me!)</li>
</ul>
<p>But I also included two of the sillier videos from my <a href="https://youtube.com/@fluffycritter">random crap channel</a>:</p>
<ul>
<li><a href="https://youtu.be/fY_t3z7oqXc">jukka wins it all</a></li>
<li><a href="https://youtu.be/9ktAV95mxtg">critter dance</a> (a test of my customized <a href="https://juliawinterpaw.gumroad.com/l/vrchatmouse">Winterpaw rodent</a> avatar)</li>
</ul>
<p>To actually animate the grid I just made two compound clips, each with its own 5x3 grid of cropped videos, and then scrolled each one across the screen. For most of the videos (which were 16:9) I could size and position them consistently by zooming them to 0.3333 and giving them a left/right crop of 384 (to make their effective resolution 1152×1080, the horizontal resolution being 1920×3/5, trust me this all makes sense mathematically). Horizontal positioning was in multiples of 384 (1920/5), and vertical was in 360 (1080/3). There were a couple of non-16:9 videos which I also had to deal with separately, but it was basically the same process, just with different numbers.</p><h3 id="2206_h3_12_The-jazz-club-scene">The jazz club scene<a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#2206_h3_12_The-jazz-club-scene" class="toc_link"></a></h3><p>There wasn&rsquo;t anything particularly different from this vs. the rock/pop scene, but in this case I recorded the background and microphone plates with postprocessing enabled, since Piano Lounge Freude&rsquo;s lighting is all done in the postprocessing step. For the microphone I was able to clean up the postprocessing glow well enough, mostly using the &ldquo;despill&rdquo; function built-in to 3D Keyer.</p><p>Oddly enough, the stage mic in Piano Lounge Freude <em>does</em> appear on the VRC stream camera&rsquo;s green screen, somehow. I assume there&rsquo;s some specific render tag set on the object. As a result it appeared in my avatar video layer. However, it was still good to have the properly-lit microphone to composite on top to improve the look. To account for the postprocessing-based lighting I used DaVinci&rsquo;s color grading to make the avatars look appropriately-lit in the composite.</p><p>On the background I was originally thinking of using a green screen and then tracking it to put some of my other random videos in the space, but I decided that would have been too much work and also too visually-busy, so instead I made a quick-and-dirty plaid background video to run in a loop and then composited in the one shot from last year&rsquo;s video more traditionally.</p><h3 id="2206_h3_13_The-choral-scene">The choral scene<a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#2206_h3_13_The-choral-scene" class="toc_link"></a></h3>
<figure class="images"><a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="http://sockpuppet.band/static/_img/a2/1a37/ultra-choir-shot-from-hell_f12d31d0b1_640x343_q50.webp" width="640" height="343" srcset="http://sockpuppet.band/static/_img/a2/1a37/ultra-choir-shot-from-hell_f12d31d0b1_640x343_q50.webp 1x, http://sockpuppet.band/static/_img/a2/1a37/ultra-choir-shot-from-hell_f12d31d0b1_1280x686_q50.webp 2x" loading="lazy" class="u-photo" alt="ultra choir shot from hell.jpg" title="The shot from hell"></a></figure>
<p>The choral scene was a <em>nightmare</em> to record and composite; in my Resolve project this clip eventually got the name &ldquo;the shot from hell.&rdquo; The final composite had around 35 layers! These are due to the following:</p>
<ul>
<li>There are 16 critters (11 in the choir, 4 in the string quartet, and the conductor)</li>
<li>Because of the sweeping camera motion I needed to change the composite order of many of the critters in places and it was easier to do that in additional layers</li>
<li>Because the critters are partially obscured by the fountain I needed to make a greenscreened <a href="https://muppet.fandom.com/wiki/Uncle_Traveling_Matt">traveling matte</a> of it</li>
<li>And of course the website that appears in the background is another layer</li>
</ul>

<figure class="images"><a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="http://sockpuppet.band/static/_img/45/c297/ultra-choir-traveling-matte_766bdf2251_640x343_q50.webp" width="640" height="343" srcset="http://sockpuppet.band/static/_img/45/c297/ultra-choir-traveling-matte_766bdf2251_640x343_q50.webp 1x, http://sockpuppet.band/static/_img/45/c297/ultra-choir-traveling-matte_766bdf2251_1280x686_q50.webp 2x" loading="lazy" class="u-photo" alt="ultra choir traveling matte.jpg" title="Dance your cares away"></a></figure>
<p>If you step through that scene frame-by-frame you will possibly notice some things sliding around a little weirdly, because VRChat&rsquo;s framerate is also not in sync with OBS&rsquo;s. I had OBS recording at 60 FPS, and VRChat generally renders at 75 FPS on my system, so it was the luck of the draw as to whether the frame timing would perfectly line up. Fortunately it&rsquo;s Good Enough. In future projects I will definitely try running my headset at 90 FPS to see if that helps any.</p><p>There were also some movements that fell out of sync due to render hitches, and for those I mostly fixed them in post by adding additional motion pathing to the layers. I didn&rsquo;t get them all. There&rsquo;s also a visual quirk in how the cellist&rsquo;s tail hangs through the floor but remains visible. Ideally I&rsquo;d have added a floor collider to the avatar to prevent this, but perfect is the enemy of done, and you probably didn&rsquo;t notice those issues until you read this text.</p><h3 id="2206_h3_14_Some-chromakey-tips">Some chromakey tips<a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#2206_h3_14_Some-chromakey-tips" class="toc_link"></a></h3><p>Most of the chromakeying was just using DaVinci&rsquo;s basic &ldquo;3D Keyer&rdquo; chromakey. In some spots I had to mask some things in separately from how I masked them out, because of color clashes between avatar parts and the key color. (This was especially problematic for my main critter&rsquo;s colorcycling-rainbow material, as well as my collar which is green in most forms.)</p><p>In a couple of spots I did find it useful to use &ldquo;magic mask&rdquo; as a pre-filter for 3D Keyer, but most of the time it was much easier to just do combinations of 3D Keyer and use its built-in garbage matte.</p><p>Also, while you can change the green screen color in the VRChat camera, you have to remember to set it up before you set up a camera path, or edit the saved path JSON. Fortunately, VRChat&rsquo;s green screen is a single solid color with precise values so you can generally get away with having a green object on a green background as long as you set the key mode to &ldquo;tight,&rdquo; although some of the mask refinements will still require extra work.</p><h3 id="2206_h3_15_That-halftone-wipe-transition">That halftone wipe transition<a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#2206_h3_15_That-halftone-wipe-transition" class="toc_link"></a></h3><p>DaVinci doesn&rsquo;t have a built-in halftone wipe or any sort of built-in halftone functionality at all, so I had to roll it myself. I approached it from a graphics programming perspective. You can think of a halftone as being similar to an <a href="https://en.wikipedia.org/wiki/Ordered_dithering">ordered pattern dither</a>, where the threshold pattern is given by:</p><p>\[
u = k(x\cos\theta - y\sin\theta) \\
v = k(x\sin\theta + y\cos\theta) \\
t = (\sin u + \sin v + 2)/4
\]</p><p>So, what I did for this was to generate a halftone screen function (I used a procedural texture in Affinity Photo for this but I could have probably figured out a way to do it all in DaVinci) and then merged it with a gradient with an additive blend, then applied a threshold filter to that, then used the resulting image as the blend mask to overlay the incoming clip over the outgoing clip. Animating the gradient&rsquo;s start and end points to sweep across the frame generated the wipe transition. Easy.</p>
<figure class="images"><a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="http://sockpuppet.band/static/_img/84/7d1c/ultra-halftone-wipe_ad380d97e4_640x343_q50.webp" width="640" height="343" srcset="http://sockpuppet.band/static/_img/84/7d1c/ultra-halftone-wipe_ad380d97e4_640x343_q50.webp 1x, http://sockpuppet.band/static/_img/84/7d1c/ultra-halftone-wipe_ad380d97e4_1280x686_q50.webp 2x" loading="lazy" class="u-photo" alt="ultra halftone wipe.jpg"></a></figure>
<p>(Someday I will release this as a template for others to use, because it&rsquo;s a really cool effect!)</p><h3 id="2206_h3_16_Some-basic-statistics">Some basic statistics<a href="http://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#2206_h3_16_Some-basic-statistics" class="toc_link"></a></h3>
<ul>
<li>Amount of raw footage recorded: 5 hours, 36 minutes and 25 seconds</li>
<li>Amount of time spent working on the music: around 14 hours, apparently (it sure didn&rsquo;t feel like that long though)</li>
<li>Amount of time spent editing video: I have no idea because it turns out <a href="https://manytricks.com/timesink/">Time Sink</a> wasn&rsquo;t running on my editing computer this whole time, <em>oops</em>, but I&rsquo;d estimate probably 40-60 hours?</li>
</ul>
<p>So this video took around 70-80 hours of work altogether. If someone wanted to hire me to make something like this it would probably cost around $5000 at a highly-discounted rate, or $8000 if I actually valued my time, which I clearly do not. Hopefully I get at least $5000 in music sales out of this. (<a href="http://sockpuppet.band/mirlo">Mirlo</a> and <a href="http://sockpuppet.band/bandcamp">Bandcamp</a> are probably the best choices for that.)</p>
            
                <hr/><ol><li id="d_e2206_fn1"><p>Technically Colorful Critter doesn&rsquo;t have music, but it does have (minimal) sound design, and it&rsquo;s one of my favorite little game-toy things so I don&rsquo;t regret including it here.&nbsp;<a href="/blog/2206-Furality-Ultra-booth-video-behind-the-scenes#r_e2206_fn1" rev="footnote">↩</a></p></li></ol>
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=behind+the+scenes">#BehindTheScenes</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=video">#Video</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=Furality">#Furality</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="BehindTheScenes" label="behind the scenes" />
        
        <category term="Video" label="video" />
        
        <category term="Furality" label="Furality" />
        

        

    </entry>
    <entry>
        
        <title>Live Shows: Skyline</title>
        <link href="http://sockpuppet.band/live/1561-skyline" rel="alternate" type="text/html" />
        <published>2026-05-31T19:00:00-07:00</published>
        <updated>2026-05-31T19:00:00-07:00</updated>
        <id>urn:uuid:9716bfbd-5f71-4a9c-963a-98552e5e5c83</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p> </p>

<p><a href="https://vrc.group/SKY421.1407">Skyline Festival</a>!</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        
<figure class="images"><a href="http://sockpuppet.band/live/1561-skyline"><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>

<iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/6AEynMlWAqI" 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>
<p><a href="https://vrc.group/SKY421.1407">Skyline Festival</a>!</p>

        
            
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=Skyline+Festival">#SkylineFestival</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=vrchat">#Vrchat</a>
        

        ]]>



        </content>
        <category term="LiveShows" label="Live Shows" />
        
        
        <category term="SkylineFestival" label="Skyline Festival" />
        
        <category term="Vrchat" label="vrchat" />
        

        

    </entry>
    <entry>
        
        <title>Blog: Some site updates</title>
        <link href="http://sockpuppet.band/blog/1478-Some-site-updates" rel="alternate" type="text/html" />
        <published>2026-05-24T23:05:30-07:00</published>
        <updated>2026-05-24T23:05:30-07:00</updated>
        <id>urn:uuid:8254c2ae-bd27-4770-94d4-25ea572933a2</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>Hey y&#39;all, I&rsquo;ve made a bunch of changes to this website, mostly structural.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>Hey y&#39;all, I&rsquo;ve made a bunch of changes to this website, mostly structural.</p><p>The big one is that now all of my albums are available for sale <a href="http://sockpuppet.band/kofi">on Ko-Fi</a>, and I&rsquo;ve also restructured the &ldquo;buy box&rdquo; under the player preview to better show what the various icons even are.</p><p>I&rsquo;ve also refreshed the website stylesheets to hopefully make them more maintainable, but in doing so it&rsquo;s possible I broke something. Please let me know if you come across any issues like that!</p>

        
            
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=meta">#Meta</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=sales">#Sales</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=website">#Website</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="Meta" label="meta" />
        
        <category term="Sales" label="sales" />
        
        <category term="Website" label="website" />
        

        

    </entry>
    <entry>
        
        <title>Blog: Welcome Furality attendees!</title>
        <link href="http://sockpuppet.band/blog/2231-Welcome-Furality-attendees" rel="alternate" type="text/html" />
        <published>2026-05-21T21:00:00+00:00</published>
        <updated>2026-05-21T21:00:00+00:00</updated>
        <id>urn:uuid:f8f41d0d-7462-450d-959a-98ebfeedd28c</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>Hello there! If you&rsquo;re reading this in or before June of 2026, it&rsquo;s quite likely that you have found me through the <a href="https://furality.org/">Furality</a> dealer&rsquo;s den. Thank you for visiting, and for being interested in my music and other creative services. I&rsquo;ll try to answer the most frequently-asked questions you may have here.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>Hello there! If you&rsquo;re reading this in or before June of 2026, it&rsquo;s quite likely that you have found me through the <a href="https://furality.org/">Furality</a> dealer&rsquo;s den. Thank you for visiting, and for being interested in my music and other creative services. I&rsquo;ll try to answer the most frequently-asked questions you may have here.</p>

        
            <h3 id="2231_h3_1_Why-aren-t-you-on">Why aren&rsquo;t you on&hellip;<a href="http://sockpuppet.band/blog/2231-Welcome-Furality-attendees#2231_h3_1_Why-aren-t-you-on" class="toc_link"></a></h3><h4 id="2231_h4_2_Spotify-All-I-can-find-is-The-Wa">Spotify? All I can find is <a href="http://sockpuppet.band/track/the-war-machine">The War Machine</a><a href="http://sockpuppet.band/blog/2231-Welcome-Furality-attendees#2231_h4_2_Spotify-All-I-can-find-is-The-Wa" class="toc_link"></a></h4><p>All of my reasons for not being on Spotify aside from The War Machine are explained in The War Machine.</p><p>If you want a bit more detail, read <a href="http://sockpuppet.band/blog/121-On-Spotify-and-listening-to-and-collecting-music">this older blog post</a>.</p><h4 id="2231_h4_3_Tidal">Tidal?<a href="http://sockpuppet.band/blog/2231-Welcome-Furality-attendees#2231_h4_3_Tidal" class="toc_link"></a></h4><p>I actually <a href="http://sockpuppet.band/tidal">am on Tidal</a>, but their artist management is currently broken in such a way that most of my releases don&rsquo;t appear on my actual artist page. Hopefully this gets fixed at some point, but in the meantime you can check <a href="https://tidal.com/artist/44840891">this dumping ground</a> where most of my stuff seems to end up (along with a few other artists who also release as &ldquo;Sockpuppet&rdquo;).</p><h4 id="2231_h4_4_insert-other-streaming-provider">[insert other streaming provider]<a href="http://sockpuppet.band/blog/2231-Welcome-Furality-attendees#2231_h4_4_insert-other-streaming-provider" class="toc_link"></a></h4><p>I try to keep my stuff on as many streaming providers as possible (except Spotify, for the reasons explained above), but not all of them accept my music for various reasons. If there&rsquo;s a specific one that you&rsquo;d like to see it on, please let me know and I&rsquo;ll see what I can do!</p><h4 id="2231_h4_5_One-of-your-releases-isn-t-on-st">One of your releases isn&rsquo;t on streaming<a href="http://sockpuppet.band/blog/2231-Welcome-Furality-attendees#2231_h4_5_One-of-your-releases-isn-t-on-st" class="toc_link"></a></h4><p>I&rsquo;ve been slowly rebuilding my streaming catalog after having an issue with a previous distributor. I&rsquo;m focusing just on making releases available that I think people will actually listen to; if there&rsquo;s something I&rsquo;ve released that you want to hear on your streaming provider of choice and which isn&rsquo;t there, please let me know!</p><h3 id="2231_h3_6_What-the-heck-is-your-avatar">What the heck is your avatar?<a href="http://sockpuppet.band/blog/2231-Welcome-Furality-attendees#2231_h3_6_What-the-heck-is-your-avatar" class="toc_link"></a></h3><p>I&rsquo;m a <a href="https://fluffy.itch.io/critter-avatar">critter</a>!</p><h4 id="2231_h4_7_What-s-that">What&rsquo;s that?<a href="http://sockpuppet.band/blog/2231-Welcome-Furality-attendees#2231_h4_7_What-s-that" class="toc_link"></a></h4><p>It&rsquo;s an <a href="http://sockpuppet.band/track/species-confusion">anthropomorphic human</a>.</p><h4 id="2231_h4_8_Oh.-...-Wait-what">Oh. &hellip; Wait, what?<a href="http://sockpuppet.band/blog/2231-Welcome-Furality-attendees#2231_h4_8_Oh.-...-Wait-what" class="toc_link"></a></h4><p>Don&rsquo;t worry about it.</p><h3 id="2231_h3_9_There-s-a-lot-of-music-here.-Did">There&rsquo;s a lot of music here. Did you make all of it?<a href="http://sockpuppet.band/blog/2231-Welcome-Furality-attendees#2231_h3_9_There-s-a-lot-of-music-here.-Did" class="toc_link"></a></h3><p>Unless otherwise specified, yep! Most of my music is my own original work, with a small handful of covers and collaborations.</p><h4 id="2231_h4_10_Where-do-I-even-begin-listening">Where do I even begin listening?<a href="http://sockpuppet.band/blog/2231-Welcome-Furality-attendees#2231_h4_10_Where-do-I-even-begin-listening" class="toc_link"></a></h4><p>Over on the <a href="http://sockpuppet.band/releases/">releases page</a> you can filter by genre, instrument, and topic, which might help.</p><h3 id="2231_h3_11_What-software-do-you-use">What software do you use?<a href="http://sockpuppet.band/blog/2231-Welcome-Furality-attendees#2231_h3_11_What-software-do-you-use" class="toc_link"></a></h3><p>For music I mostly use <a href="https://www.apple.com/logic-pro">Logic Pro</a>, which I started using in 2004 and has been my main DAW since 2005. I also make somewhat heavy use of <a href="https://www.native-instruments.com">Native Instruments</a> instruments.</p><p>For video editing I mostly use <a href="https://www.blackmagicdesign.com/products/davinciresolve">DaVinci Resolve</a> although for some things I still use <a href="https://www.apple.com/final-cut-pro/">Final Cut Pro</a>.</p><p>For artwork I generally use <a href="https://www.affinity.studio/">Affinity Studio</a> although I&rsquo;m not super thrilled with the direction it&rsquo;s going in so I&rsquo;m likely to switch back to <a href="https://krita.org/">Krita</a>, especially now that 6.0 is out.</p><h3 id="2231_h3_12_What-instruments-do-you-play">What instruments do you play?<a href="http://sockpuppet.band/blog/2231-Welcome-Furality-attendees#2231_h3_12_What-instruments-do-you-play" class="toc_link"></a></h3><p>Piano, cello, violin, viola, drums, guitar, bass, hand percussion, and a few other things to varying levels of proficiency.</p><h3 id="2231_h3_13_What-s-your-live-VR-performance">What&rsquo;s your live VR performance setup like?<a href="http://sockpuppet.band/blog/2231-Welcome-Furality-attendees#2231_h3_13_What-s-your-live-VR-performance" class="toc_link"></a></h3><p>I have a <a href="http://sockpuppet.band/blog/1302-VR-performance-setup-2.0">whole article on that</a>.</p><h3 id="2231_h3_14_When-where-can-I-see-you-perform">When/where can I see you perform live?<a href="http://sockpuppet.band/blog/2231-Welcome-Furality-attendees#2231_h3_14_When-where-can-I-see-you-perform" class="toc_link"></a></h3><p>I try to keep my <a href="http://sockpuppet.band/live/">live performance calendar</a> up-to-date (and there&rsquo;s also a <a href="http://sockpuppet.band/live/calendar">calendar</a> you can subscribe to via Google Calendar/iCloud/etc. if you&rsquo;re so inclined), and also try to remember to post upcoming shows to <a href="http://sockpuppet.band/vrchat">my VRChat group</a>. Past recordings usually show up on <a href="http://sockpuppet.band/youtube">my YouTube channel</a>.</p><p>I&rsquo;m also sometimes found doing karaoke or open mics with <a href="https://vrc.group/RELIUM.8220">VRelium</a> and Moonlit with <a href="https://transacademy.org/">Trans Academy</a>.</p><h3 id="2231_h3_15_How-else-can-I-keep-up-with-you">How else can I keep up with you?<a href="http://sockpuppet.band/blog/2231-Welcome-Furality-attendees#2231_h3_15_How-else-can-I-keep-up-with-you" class="toc_link"></a></h3><p>You could always join <a href="http://sockpuppet.band/discord">my Discord community</a>. This site also has feeds you can subscribe to via your favorite feed reader, via Mastodon/Fediverse/etc. at <code>@sockpuppet.band@sockpuppet.band</code> or at <a href="https://plush.city/@fluffy">@fluffy@plush.city</a>, and via Bluesky at <a href="https://bsky.app/profile/bsky.sockpuppet.band">@bsky.sockpuppet.band</a>.</p>
            

            

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

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="Furality" label="Furality" />
        

        

    </entry>
    <entry>
        
        <title>Releases: Species Confusion</title>
        <link href="http://sockpuppet.band/track/species-confusion" rel="alternate" type="text/html" />
        <published>2026-05-15T00:00:00+00:00</published>
        <updated>2026-05-15T00:00:00+00:00</updated>
        <id>urn:uuid:2afb93d0-5d67-4b7f-b05d-389f6018adc3</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[
]]></summary>
        <content type="html"><![CDATA[

		

        
        <figure><a href="http://sockpuppet.band/track/species-confusion"><img src="/static/_img/ed/144f/species-confusion_c6e5b777a0_350x350.jpg" width="350" height="350" srcset="/static/_img/ed/144f/species-confusion_c6e5b777a0_350x350.jpg 1x, /static/_img/ed/144f/species-confusion_c6e5b777a0_700x700.jpg 2x" loading="lazy" alt="species confusion.jpg"></a></figure>
        



        <iframe src="https://cdn.sockpuppet.band/species-confusion/#compact" seamless><a href="https://cdn.sockpuppet.band/species-confusion/">Species Confusion by Sockpuppet</a></iframe>


        
            <p>After one too many times being mistaken for a cow in VRChat I was <a href="https://plush.city/@fluffy/115977353579893357">late-night ranting about it on Mastodon</a> (as one does), during which I said I should write a song about this except it would probably make things worse.</p><p>I shared the thread with my friend <a href="https://linktr.ee/Neurocyon">Jax</a>, who is a fox, and she told me that she is always somehow getting mistaken for a wolf or a jackal, and she&rsquo;d love to hear a song about all the different ways that people get confused about species in VRChat.</p><p>So that made this song pop into my head, and I decided I&rsquo;d record it for my upcoming album, Misfits.</p><p>I tested it as new material at a couple of shows and the response was overwhelming, and several people asked me where they could get it right now. I told them it was going to be on my next album and I didn&rsquo;t know when that&rsquo;d be done, and they were very disappointed by this.</p><p>Anyway, after a bit more time and thinking I realized that maybe this song didn&rsquo;t really go with Misfits (ironically), and that it could be released as a single. So here it is.</p>
            

            
            <h2>More info</h2>
            <ul>
                
                <li>Lyrics: <a href="http://sockpuppet.band/releases/3576-Lyrics-Species-Confusion">Lyrics: Species Confusion</a></li>
                
            </ul>
            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=collection:popular">#Popular</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=genre:broadway">#Broadway</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=genre:comedy">#Comedy</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=genre:showtunes">#Showtunes</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=instrument:cello">#Cello</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=instrument:piano">#Piano</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=instrument:upright+bass">#UprightBass</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=instrument:violin">#Violin</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=mood:annoyed">#Annoyed</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=mood:humorous">#Humorous</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=mood:silly">#Silly</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=topic:VRChat">#VRChat</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=topic:furry">#Furry</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=topic:fursonas">#Fursonas</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=type:lyrical">#Lyrical</a>
        

        ]]>



        </content>
        <category term="Releases" label="Releases" />
        
        
        <category term="Popular" label="collection:popular" />
        
        <category term="Broadway" label="genre:broadway" />
        
        <category term="Comedy" label="genre:comedy" />
        
        <category term="Showtunes" label="genre:showtunes" />
        
        <category term="Cello" label="instrument:cello" />
        
        <category term="Piano" label="instrument:piano" />
        
        <category term="UprightBass" label="instrument:upright bass" />
        
        <category term="Violin" label="instrument:violin" />
        
        <category term="Annoyed" label="mood:annoyed" />
        
        <category term="Humorous" label="mood:humorous" />
        
        <category term="Silly" label="mood:silly" />
        
        <category term="VRChat" label="topic:VRChat" />
        
        <category term="Furry" label="topic:furry" />
        
        <category term="Fursonas" label="topic:fursonas" />
        
        <category term="Lyrical" label="type:lyrical" />
        

        

    </entry>
    <entry>
        
        <title>Blog: Subvert launched, yet another music sale platform</title>
        <link href="http://sockpuppet.band/blog/1743-Subvert-launched-yet-another-music-sale-platform" rel="alternate" type="text/html" />
        <published>2026-05-12T19:09:20-07:00</published>
        <updated>2026-05-12T19:09:20-07:00</updated>
        <id>urn:uuid:ff271fc0-342e-412b-a817-9ec4996c0a61</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>Hey y&#39;all! <a href="https://subvert.fm/">Subvert</a> officially launched today, and of course I have <a href="https://subvert.fm/sockpuppet">some of my music up on it</a>. Having more options for independent-friendly music shops is generally a good thing, but I do have some thoughts about where things are going and how things could be a lot better.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>Hey y&#39;all! <a href="https://subvert.fm/">Subvert</a> officially launched today, and of course I have <a href="https://subvert.fm/sockpuppet">some of my music up on it</a>. Having more options for independent-friendly music shops is generally a good thing, but I do have some thoughts about where things are going and how things could be a lot better.</p><p>Subvert is getting a lot of hype because it&rsquo;s new but I don&rsquo;t see it as my long-term solution for music sales. I&rsquo;m not sure what I&rsquo;d consider to be my primary platform right now (probably <a href="https://mirlo.space/sockpuppet">Mirlo</a>), but in the long term I think the future is self-hosting and self-distributing.</p>

        
            <h3 id="1743_h3_1_The-current-state-of-things">The current state of things<a href="http://sockpuppet.band/blog/1743-Subvert-launched-yet-another-music-sale-platform#1743_h3_1_The-current-state-of-things" class="toc_link"></a></h3><p>So, right now there are a whole bunch of indie music stores. The ones I currently have a presence on include:</p>
<ul>
<li><a href="https://sockpuppet.bandcamp.com/">Bandcamp</a></li>
<li><a href="https://fluffy.itch.io">itch.io</a></li>
<li><a href="https://mirlo.space/sockpuppet">Mirlo</a></li>
<li><a href="https://subvert.fm/sockpuppet">Subvert</a></li>
</ul>
<p>And additionally when I want to put stuff into streaming I have to also upload it to</p>
<ul>
<li><a href="http://sockpuppet.band/symphonic">Symphonic</a> (for the mainstream platforms)</li>
<li><a href="https://bandwagon.fm/@fluffy">Bandwagon</a> (to get it on TheIndieBeat and other things)</li>
<li><a href="https://kvrradio.com">KVRR</a></li>
</ul>
<p>That&rsquo;s a <em>lot</em> of things to have to upload my stuff to, each one requiring separate metadata setups and agreements and so on, and frankly, it&rsquo;s super tiring.</p><h3 id="1743_h3_2_Canimus">Canimus<a href="http://sockpuppet.band/blog/1743-Subvert-launched-yet-another-music-sale-platform#1743_h3_2_Canimus" class="toc_link"></a></h3><p>What I really want is a future where people can self-host their stuff with their publishing engine of choice (<a href="https://faircamp.org/">Faircamp</a> or <a href="https://publ.beesbuzz.biz/">Publ</a> or whatever), trivially sell their downloads, and from their own site also get their stuff circulated in the various discovery feeds out there.</p><p>This idea was the impetus behind <a href="https://github.com/PlaidWeb/Canimus">Canimus</a>, a protocol for sharing collection metadata in a lightweight, platform-agnostic manner.</p><p>Basically, the idea of Canimus is the following:</p>
<ul>
<li>Music publishers can provide a collection (also known as a &ldquo;feed&rdquo;) as a simple JSON format that includes albums, tracks, titles, purchase links, and streaming preview links</li>
<li>Music collectors can provide an access-controlled collection</li>
<li>Listeners can link their player application (web-based or otherwise) to multiple collections</li>
<li>The player application can also provide feeds of peoples&#39; listening activities and use that to build federated discovery and recommendations (by people following each other there as well)</li>
</ul>
<p>And all of this just lives natively on the web.</p><p>Right now, <a href="https://fairplayer.band/">Fairplayer</a> is a thing that&rsquo;s in development that shares many of the same goals as me. They&rsquo;re working on specifically supporting Faircamp websites as a streaming music source, but I&rsquo;ve also been in communication with them regarding Canimus, and similarly the folks behind Mirlo also share these goals. We&rsquo;ve been talking a lot about some of the ways that things can move forward.</p><p>This website already has a Canimus feed. I also added one to <a href="https://songfight.org/">Song Fight!</a>. At some point I want to make a plugin thingy so that FairCamp users can easily add a Canimus feed to their sites (although maybe the Fairplayer folks are already working on that? I need to touch base with them).</p><h3 id="1743_h3_3_Funkwhale-and-ActivityPub-and-su">Funkwhale and ActivityPub and such<a href="http://sockpuppet.band/blog/1743-Subvert-launched-yet-another-music-sale-platform#1743_h3_3_Funkwhale-and-ActivityPub-and-su" class="toc_link"></a></h3><p>Whenever I talk about this stuff I always get people insisting that I should really be looking into ActivityPub and specifically Funkwhale. The promise is always that ActivityPub is somehow a magical protocol that solves all these issues, but only with a lot of hand-waving. The thing is that ActivityPub doesn&rsquo;t actually solve any issues; it just pushes them down the stack, in ways that are even less approachable for everyday people.</p><p>ActivityPub things don&rsquo;t just naturally interoperate. Heck, Funkwhale 2.0 won&rsquo;t even talk to Funkwhale 1.0!</p><p>In order to actually build interoperability between things, the process involves building a <a href="https://codeberg.org/fediverse/fep">FEP</a>, a process that is arduous and results in a specification at the end that is very difficult to navigate or even find. Supposedly there are existing FEPs for music sharing and discovery, but damned if I can find any of them myself! They&rsquo;re all just opaque numbers.</p><p>And everything ActivityPub seems to <em>really</em> want to use push-based notifications for all data exchange. Forget about backfilling, as well. It turns everything into a stream of ephemera, and requires two-way handshakes and peering relationships and, in many cases, PGP key exchanges. It&rsquo;s a mess and trying to support anything in ActivityPub on a static website is pretty much a lost cause. Also the idea of being able to move to a new domain, or host the same site on multiple domains, is a lost cause. And every single means of interacting with ActivityPub stuff requires building yet another identity on whatever single-purpose service consumes it. Like, it&rsquo;s not like it makes any sense to follow a Funkwhale user from a PeerTube user. You <em>can</em> do it but what information gets exchanged?</p><p>Basically, ActivityPub is full of a bunch of empty promises, and in order to fulfill the promise you have to write another protocol on top of it, get everyone to agree to that protocol, and fit it into a shape that might not work for things to begin with.</p><p>I just really don&rsquo;t see what it brings to the table, in any practical terms.</p><h3 id="1743_h3_4_The-future-is-indie-and-distribu">The future is indie and distributed<a href="http://sockpuppet.band/blog/1743-Subvert-launched-yet-another-music-sale-platform#1743_h3_4_The-future-is-indie-and-distribu" class="toc_link"></a></h3><p>Right now things are such a mess. Fragmentation of streaming services, the downplaying and outright dismissal of the idea of owning music, myriad platforms that want to be the <em>only</em> platform that anyone uses for all the things, and everything being funded by the endless churn of venture capital and rent-seeking.</p><p>And musicians end up needing to spend so much time trying to feed these platforms.</p><p>We each only have so much time to spend here on this Earth, and personally I&rsquo;d rather not be spending it on repetitive tedium like having to re-upload and re-format my music based on the historical artifacts of a dying industry.</p><p>My vision for the future of how people publish music:</p>
<ol>
<li>The musician posts the music on their website using whatever tools (<a href="https://faircamp.org/">Faircamp</a>, <a href="https://fluffy.itch.io/bandcrash">Bandcrash</a>, etc.) and payment mechanisms (or lack thereof) work best for them</li>
<li>The music goes out in their own sharing feed</li>
<li>Their fans listen to it, buy it (or otherwise send payments to the musicians they want to support), add it to their collections, populate it into whatever distributed discovery mechanisms emerge, use whatever compatible player/receiver/streaming service makes the most sense for them</li>
</ol>
<p>There is no need in this world for investors or rent-seeking platforms that exist to be The One And Only Thing. Protocols emerge and evolve and change and adapt based on the actual needs as they shift. People can focus on being creative and finding things they love, and not have to worry about where they&rsquo;re doing it.</p><p>The web itself can be a perfectly good platform for all this stuff. Let&rsquo;s try to make it happen.</p>
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=subvert">#Subvert</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=marketplaces">#Marketplaces</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=indie+music">#IndieMusic</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=Canimus">#Canimus</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=distribution">#Distribution</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="Subvert" label="subvert" />
        
        <category term="Marketplaces" label="marketplaces" />
        
        <category term="IndieMusic" label="indie music" />
        
        <category term="Canimus" label="Canimus" />
        
        <category term="Distribution" label="distribution" />
        

        

    </entry>
    <entry>
        
        <title>Live Shows: Tune Together presents: Star&#39;s birthday party</title>
        <link href="http://sockpuppet.band/live/3531-Tune-Together-presents-Star-s-birthday-party" rel="alternate" type="text/html" />
        <published>2026-05-01T14:00:00-07:00</published>
        <updated>2026-05-01T14:00:00-07:00</updated>
        <id>urn:uuid:56fb4006-5977-4508-951d-91ebbc00ee85</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p> </p>

<p>Hey y&#39;all! I took April off from performing to work on some projects, but in May I was ready to be back on stage.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        
<figure class="images"><a href="https://vrc.group/TUNES.1004"><img src="http://sockpuppet.band/static/_img/2d/afe9/tune-together_c7f797795c_240x240_q50.webp" width="240" height="240" srcset="http://sockpuppet.band/static/_img/2d/afe9/tune-together_c7f797795c_240x240_q50.webp 1x, http://sockpuppet.band/static/_img/2d/afe9/tune-together_c7f797795c_q50.webp 2x" loading="lazy" class="u-photo" style="border-radius:100%" alt="Tune Together"></a></figure>

<iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/7Zn_y3-fxm0" 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>
<p>Hey y&#39;all! I took April off from performing to work on some projects, but in May I was ready to be back on stage.</p><p>I performed an hour-long set with <a href="https://vrc.group/TUNES.1004">Tune Together</a> to help celebrate the birthday of Star, one of their members! The show was 18+ and cozy.</p><p>I also streamed it <a href="https://live.sockpuppet.band">over on Owncast</a>.</p>

        
            
            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=Tune+Together">#TuneTogether</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=birthday">#Birthday</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=full+set">#FullSet</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=VRChat">#VRChat</a>
        

        ]]>



        </content>
        <category term="LiveShows" label="Live Shows" />
        
        
        <category term="TuneTogether" label="Tune Together" />
        
        <category term="Birthday" label="birthday" />
        
        <category term="FullSet" label="full set" />
        
        <category term="VRChat" label="VRChat" />
        

        

    </entry>
    <entry>
        
        <title>Live Shows: Skyline</title>
        <link href="http://sockpuppet.band/live/3424-skyline" rel="alternate" type="text/html" />
        <published>2026-03-29T14:00:00-08:00</published>
        <updated>2026-03-29T14:00:00-08:00</updated>
        <id>urn:uuid:34cabf87-dd22-4b05-813e-c1351c218e88</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p> </p><p><a href="https://vrc.group/SKY421.1407">Skyline Festival</a>!</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        
<figure class="images"><a href="http://sockpuppet.band/live/3424-skyline"><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><a href="https://vrc.group/SKY421.1407">Skyline Festival</a>!</p>
<iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/h9gsZwtGKjA" 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/3424-skyline"><img src="http://sockpuppet.band/static/_img/4f/ebf9/20260329-skyline_7d3045db8f_640x569_q50.webp" width="640" height="569" srcset="http://sockpuppet.band/static/_img/4f/ebf9/20260329-skyline_7d3045db8f_640x569_q50.webp 1x, http://sockpuppet.band/static/_img/4f/ebf9/20260329-skyline_7d3045db8f_1280x1138_q50.webp 2x" loading="lazy" class="u-photo" alt="20260329 skyline.png"></a></figure>

            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=Skyline+Festival">#SkylineFestival</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=vrchat">#Vrchat</a>
        

        ]]>



        </content>
        <category term="LiveShows" label="Live Shows" />
        
        
        <category term="SkylineFestival" label="Skyline Festival" />
        
        <category term="Vrchat" label="vrchat" />
        

        

    </entry>
    <entry>
        
        <title>Live Shows: VRelium x Trans Academy: Trans Day of Visibility show</title>
        <link href="http://sockpuppet.band/live/1852-VRelium-x-Trans-Academy-Trans-Day-of-Visibility-show" rel="alternate" type="text/html" />
        <published>2026-03-29T12:30:00-07:00</published>
        <updated>2026-03-29T12:30:00-07:00</updated>
        <id>urn:uuid:028265a9-5d77-4d74-add0-76e33c3d7270</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p> </p><p><a href="https://vrc.group/RELIUM.8220">VRelium</a> and <a href="https://transacademy.org/">Trans Academy</a>, two of my very favorite VRChat-based organizations, put on a joint show for Trans Day of Visibility 2026! I performed a set with them on what turned out to be an <em>exceptionally</em> busy weekend for me, oh gosh.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        
<figure class="images"><a href="https://vrc.group/RELIUM.8220"><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><a href="https://transacademy.org/"><img src="http://sockpuppet.band/static/_img/0b/3cf6/trans-academy_df09cc0614_240x240_q50.webp" width="240" height="240" srcset="http://sockpuppet.band/static/_img/0b/3cf6/trans-academy_df09cc0614_240x240_q50.webp 1x, http://sockpuppet.band/static/_img/0b/3cf6/trans-academy_df09cc0614_480x480_q50.webp 2x" loading="lazy" class="u-photo" alt="trans academy.png"></a></figure>
<p><a href="https://vrc.group/RELIUM.8220">VRelium</a> and <a href="https://transacademy.org/">Trans Academy</a>, two of my very favorite VRChat-based organizations, put on a joint show for Trans Day of Visibility 2026! I performed a set with them on what turned out to be an <em>exceptionally</em> busy weekend for me, oh gosh.</p>
<iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/xNfk3f548bs" 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/1852-VRelium-x-Trans-Academy-Trans-Day-of-Visibility-show"><img src="http://sockpuppet.band/static/_img/3a/4e87/ta-vrelium-tdov-2026_9026692839_640x360_q50.webp" width="640" height="360" srcset="http://sockpuppet.band/static/_img/3a/4e87/ta-vrelium-tdov-2026_9026692839_640x360_q50.webp 1x, http://sockpuppet.band/static/_img/3a/4e87/ta-vrelium-tdov-2026_9026692839_1280x720_q50.webp 2x" loading="lazy" class="u-photo" alt="Trans Weekend of Visibility 2026
Hosted by
VRelium
TRANS ACADEMY
March 28-29, 1pm-1am EST.
Relium.8220 | Poor or Better Avatars"></a></figure>

            

            

        
        <a rel="tag" href="http://sockpuppet.band/?tag=VRelium">#VRelium</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=Trans+Academy">#TransAcademy</a>
        
        <a rel="tag" href="http://sockpuppet.band/?tag=VRChat">#VRChat</a>
        

        ]]>



        </content>
        <category term="LiveShows" label="Live Shows" />
        
        
        <category term="VRelium" label="VRelium" />
        
        <category term="TransAcademy" label="Trans Academy" />
        
        <category term="VRChat" label="VRChat" />
        

        

    </entry>
    

    
</feed>