<?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: Blog</title>
    
    <subtitle><![CDATA[Updates, articles, and behind-the-scenes content.]]></subtitle>
    
    <link href="https://sockpuppet.band/blog/feed?id=2206&amp;tag=behind-the-scenes" rel="self" />
    
    <link href="https://sockpuppet.band/blog/feed?tag=behind-the-scenes" rel="current" />
    <fh:archive/>
    

    <link href="https://busybee.superfeedr.com" rel="hub" />
    
    
    <link href="https://sockpuppet.band/blog/" />
    <id>tag:sockpuppet.band,2026-05-14:blog</id>
    <updated>2026-06-04T00:00:00+00:00</updated>

    

    <entry>
        
        <title>Furality Ultra booth video: behind the scenes</title>
        <link href="https://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="https://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="https://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="https://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="https://sockpuppet.band/static/_img/11/692f/ultra-music-timeline_295bfd1645_640x345_q50.webp" width="640" height="345" srcset="https://sockpuppet.band/static/_img/11/692f/ultra-music-timeline_295bfd1645_640x345_q50.webp 1x, https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="https://sockpuppet.band/static/_img/df/a3a5/ultra-clicktrack-alignments_82cfcfa023_640x343_q50.webp" width="640" height="343" srcset="https://sockpuppet.band/static/_img/df/a3a5/ultra-clicktrack-alignments_82cfcfa023_640x343_q50.webp 1x, https://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="https://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="https://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="https://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="https://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="https://sockpuppet.band/static/_img/12/3ad9/ultra-scene-1-cut-1_9dfc89d5be_640x168_q50.webp" width="640" height="168" srcset="https://sockpuppet.band/static/_img/12/3ad9/ultra-scene-1-cut-1_9dfc89d5be_640x168_q50.webp 1x, https://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="https://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="https://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="https://sockpuppet.band/static/_img/0d/ff7e/ultra-scene-2-seatmask_113efc18f7_640x343_q50.webp" width="640" height="343" srcset="https://sockpuppet.band/static/_img/0d/ff7e/ultra-scene-2-seatmask_113efc18f7_640x343_q50.webp 1x, https://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="https://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="https://sockpuppet.band/static/_img/2e/76ae/ultra-scene-2-composite_594245817f_640x343_q50.webp" width="640" height="343" srcset="https://sockpuppet.band/static/_img/2e/76ae/ultra-scene-2-composite_594245817f_640x343_q50.webp 1x, https://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="https://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="https://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="https://sockpuppet.band/static/_img/7f/5ca2/ultra-pixel-stage_432b2906d5_640x335_q50.webp" width="640" height="335" srcset="https://sockpuppet.band/static/_img/7f/5ca2/ultra-pixel-stage_432b2906d5_640x335_q50.webp 1x, https://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="https://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="https://sockpuppet.band/static/_img/e6/6c80/ultra-pixel-composite_bbef7ba2c4_640x343_q50.webp" width="640" height="343" srcset="https://sockpuppet.band/static/_img/e6/6c80/ultra-pixel-composite_bbef7ba2c4_640x343_q50.webp 1x, https://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="https://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="https://sockpuppet.band/static/_img/9f/d46e/ultra-pixel-noteline-effect_76d978ec4c_640x343_q50.webp" width="640" height="343" srcset="https://sockpuppet.band/static/_img/9f/d46e/ultra-pixel-noteline-effect_76d978ec4c_640x343_q50.webp 1x, https://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="https://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="https://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="https://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="https://sockpuppet.band/_" class="u-photo" width="320" height="320" loading="lazy" style="background-image:url('https://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="https://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="https://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="https://sockpuppet.band/static/_img/9b/77ee/ultra-gamegrid-composite_b6d382791a_640x343_q50.webp" width="640" height="343" srcset="https://sockpuppet.band/static/_img/9b/77ee/ultra-gamegrid-composite_b6d382791a_640x343_q50.webp 1x, https://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="https://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="https://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="https://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="https://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="https://sockpuppet.band/static/_img/a2/1a37/ultra-choir-shot-from-hell_f12d31d0b1_640x343_q50.webp" width="640" height="343" srcset="https://sockpuppet.band/static/_img/a2/1a37/ultra-choir-shot-from-hell_f12d31d0b1_640x343_q50.webp 1x, https://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="https://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="https://sockpuppet.band/static/_img/45/c297/ultra-choir-traveling-matte_766bdf2251_640x343_q50.webp" width="640" height="343" srcset="https://sockpuppet.band/static/_img/45/c297/ultra-choir-traveling-matte_766bdf2251_640x343_q50.webp 1x, https://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="https://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="https://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="https://sockpuppet.band/blog/2206-Furality-Ultra-booth-video-behind-the-scenes"><img src="https://sockpuppet.band/static/_img/84/7d1c/ultra-halftone-wipe_ad380d97e4_640x343_q50.webp" width="640" height="343" srcset="https://sockpuppet.band/static/_img/84/7d1c/ultra-halftone-wipe_ad380d97e4_640x343_q50.webp 1x, https://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="https://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="https://sockpuppet.band/mirlo">Mirlo</a> and <a href="https://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="https://sockpuppet.band/blog/?tag=behind+the+scenes">#BehindTheScenes</a>
        
        <a rel="tag" href="https://sockpuppet.band/blog/?tag=video">#Video</a>
        
        <a rel="tag" href="https://sockpuppet.band/blog/?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>Behind the Lyrics: Behind a Mask</title>
        <link href="https://sockpuppet.band/blog/2039-Behind-the-Lyrics-Behind-a-Mask" rel="alternate" type="text/html" />
        <published>2024-12-05T00:44:25-08:00</published>
        <updated>2024-12-05T00:44:25-08:00</updated>
        <id>urn:uuid:91f175f4-9456-539b-af57-424acfaedf53</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>Back in 2021 I wrote a song, <a href="https://sockpuppet.band/track/behind-a-mask">Behind a Mask</a>, for <a href="https://songfight.org/songpage.php?key=behind_a_mask">Song Fight!</a>. I&rsquo;d like to go into some detail about how the song came to be and what it means.</p>]]></summary>
        <content type="html"><![CDATA[

		

        



        <p>Back in 2021 I wrote a song, <a href="https://sockpuppet.band/track/behind-a-mask">Behind a Mask</a>, for <a href="https://songfight.org/songpage.php?key=behind_a_mask">Song Fight!</a>. I&rsquo;d like to go into some detail about how the song came to be and what it means.</p>
<!-- https://plush.city/deck/@fluffy/113489677844883863 -->


        
            <h3 id="2039_h3_1_Context">Context<a href="https://sockpuppet.band/blog/2039-Behind-the-Lyrics-Behind-a-Mask#2039_h3_1_Context" class="toc_link"></a></h3><p>Once a year, Song Fight! people get together to do a show, <a href="https://songfight.org/live/">Song Fight! Live</a>, where we basically get together and do Song Fight! as an in-person live event. The original format from the first three years was that we&rsquo;d have basically an in-person reprise of prior title challenges (with different musicians taking turns to play their songs for the titles), followed by what was essentially an open mic for songs people wanted to perform. In keeping with the challenge of Song Fight!, the event&rsquo;s host would also provide a title for people to make a new song for, to be debuted at the show.</p><p>Starting in the fourth year, the title-based format stopped being feasible (due to the growing number of titles and the rarity of any two participants having had any of them in common), and it switched to a concert-festival format, with each participant doing a short performance set, but the final &ldquo;live fight&rdquo; challenge (with the debut of a new song) remained.</p><p>In 2020, due to the COVID-19 pandemic, the format had to change; rather than meeting in person, we prerecorded videos that we would submit for presentation, and there would be a separate video presentation of the &ldquo;live&rdquo; fight songs, with a vote conducted online. The title in 2020 was &ldquo;Better Luck Next Year,&rdquo; which was&hellip; <em>optimistic</em> about how soon the pandemic would subside enough for us to reconvene in person.</p><p>2021 was still online-only, and the title selected for the live fight was &ldquo;Behind a Mask.&rdquo;</p><p>When this challenge was ongoing, I had recently moved from Seattle to a nearby small town in order to have more space for gardening and working on music, although I had not yet set up my new recording studio.</p><h3 id="2039_h3_2_Inspiration">Inspiration<a href="https://sockpuppet.band/blog/2039-Behind-the-Lyrics-Behind-a-Mask#2039_h3_2_Inspiration" class="toc_link"></a></h3><p>With the context of the world and everyone&rsquo;s isolation, I was struck by just how much everyone had withdrawn and started to rely on social media for all interpersonal contact, and with how much this reliance on social media was distorting peoples&#39; attitudes to one another.</p><p>At the same time, in this isolation, many people were forced to spend a lot of time alone, which leads to introspection and self-discovery. At the same time, Snapchat&rsquo;s &ldquo;gender swap&rdquo; filter was leading a lot of people to experience gender euphoria for the first time, making them realize just how much dysphoria they were normally under without realizing it.</p><p>Meanwhile, so-called &ldquo;deepfake&rdquo; technology was getting extremely powerful and scary, and this was leading to a huge uptick in the number of scams being perpetrated on unsuspecting/unaware people, who didn&rsquo;t realize that the person they thought they were dealing with did not exist.</p><p>The various algorithms that were impacting everyone&rsquo;s lives were changing the way we thought about ourselves and others.</p><h3 id="2039_h3_3_Lyrical-meaning">Lyrical meaning<a href="https://sockpuppet.band/blog/2039-Behind-the-Lyrics-Behind-a-Mask#2039_h3_3_Lyrical-meaning" class="toc_link"></a></h3>
<blockquote>
<p>Feeling lost in an elephant&rsquo;s dream</p></blockquote>
<p>This is in reference to how elephants purportedly never forget, and how the Internet is essentially a non-forgetting collection of facts that can be recalled at will, perhaps inaccurately. The specific phrase comes from the name of <a href="https://orange.blender.org/">an open-source short film</a>.</p>
<blockquote>
<p>Caught up in the digital stream</p></blockquote>
<p>This is, of course, in reference to how awash everyone is in a never-ending stream of social media posts, especially when trapped inside with nothing better to do than to sit at the computer.</p>
<blockquote>
<p>Cave of shadows, can&rsquo;t say what I mean</p></blockquote>
<p>This is a reference to <a href="https://en.wikipedia.org/wiki/Allegory_of_the_cave">Plato&rsquo;s Allegory of the Cave</a>, in combination with the acts of self-censorship people have to undergo in order to remain &ldquo;polite&rdquo; or to avoid hurting others&#39; feelings, especially with regards to invalidating other peoples&#39; truths.</p>
<blockquote>
<p>A million miles far from home</p></blockquote>
<p>Being stuck inside made one&rsquo;s home feel like an unfamiliar, oppressive place. Many of us just wanted to get back to simpler times.</p>
<blockquote>
<p>Best foot forward, take a step back</p></blockquote>
<p>A reference to the Overton window and its related allegory: &ldquo;Meet me halfway,&rdquo; says the reasonable person; you step forward, they take a step back, and then once again say, &ldquo;Meet me halfway.&rdquo;</p>
<blockquote>
<p>Play defense while on the attack</p></blockquote>
<p>Bad actors have a tendency to play the victim while being the ones who are committing an offense. Figuring out who is really wronged, and what steps we must take to address that injustice, can be quite challenging.</p>
<blockquote>
<p>Sowing discord, can&rsquo;t cut them no slack</p></blockquote>
<p>This line has a double meaning; the primary one is that people who spread misinformation and disinformation online have a tendency to then decry anyone who tries to correct their lies and mistruths, and how difficult it is to hold one&rsquo;s ground in light of that.</p><p>The other meaning is that <a href="https://discord.com/">Discord</a> and <a href="https://slack.com/">Slack</a> very quickly took over as the communication platforms of choice, especially as alternatives to in-person communication and collaboration since offices had finally become recognized as unsafe breeding grounds for disease.</p>
<blockquote>
<p>Everybody so alone</p></blockquote>
<p>Because, you know. Isolation.</p>
<blockquote>
<p>If everyone could see<br>
themselves through some other eyes</p></blockquote>
<p>Perhaps it was a wish for folks to try to understand where other people were coming from, perhaps it was a cry for a fresh perspective in general.</p>
<blockquote>
<p>Innocent, caught up in the machinery<br>
An algorithmic disguise</p></blockquote>
<p>The entire premise of the song.</p>
<blockquote>
<p>Making everything great again</p></blockquote>
<p>A reference to a certain Presidential candidate and his tendency to always frame his positions as being a &ldquo;common sense&rdquo; return to greatness.</p>
<blockquote>
<p>Forget about your family and friends</p></blockquote>
<p>So many people I knew went down political rabbit holes never to emerge; factions formed, contact was broken off, so much hurt happened as a result of people getting caught up in particularly virulent cliques.</p>
<blockquote>
<p>Looking for a means to an end</p></blockquote>
<p>So many people got downright Machiavellian when it came to justifying their beliefs and opinions, especially through vilifying the &ldquo;other.&rdquo;</p>
<blockquote>
<p>Just don&rsquo;t want to be alone</p></blockquote>
<p>Many destructive online communities became self-sustaining cliques where people are so caught up in their community that they dare not abandon the specific belief system that makes it a community to begin with.</p><p>Back in September, 2020, Dan Olson released <a href="https://www.youtube.com/watch?v=JTfhYyTuT44">an incredible video about the Flat Earth community</a> which goes deep into this, and draws connections between it and some of the other communities I am indirectly addressing in this song.</p>
<blockquote>
<p>Fragile gem, split in two</p></blockquote>
<p>This line has another specific double meaning.</p><p>First of all, I saw a huge uptick in people who began to identify as <a href="https://en.wikipedia.org/wiki/Multiplicity_%28subculture%29">plural</a>, possibly because of how much time they were spending with themselves and where they started to notice (or perhaps build) lines around the different aspects of their personalities that make them whole. Sometimes it felt like people were purposefully breaking themselves apart, shattering into little shards that could never be reassembled.</p><p>Secondly, and more generally, this just referred to the much deeper political divide that had formed, separating society fully into diametrically-opposed camps.</p>
<blockquote>
<p>Internal dialog of them versus you</p></blockquote>
<p>This refers to both of the meanings of the previous line. Some of the plural systems were having a very difficult time agreeing with themselves. Radicalized people with strong political views would engage in <a href="https://en.wikipedia.org/wiki/Straw_man">straw man</a> tactics to decide that people on the other side were inherently wrong because of what they believed each other to believe, even if those beliefs were not, you know, actually present.</p>
<blockquote>
<p>Find acceptance with nothing to do<br>
The voices there are all your own</p></blockquote>
<p>And this continues the double meaning, with somewhat opposing meanings depending on which side you&rsquo;re looking at.</p>
<blockquote>
<p>If everyone could see<br>
Themselves through some other eyes<br>
Innocent, caught up in the machinery<br>
An algorithmic disguise</p></blockquote>
<p>No new meaning to this repeat of the chorus.</p>
<blockquote>
<p>A deeper body ache</p></blockquote>
<p>The stress of the Everything made a lot of chronic pain sufferers feel everything to the core.</p>
<blockquote>
<p>And make a bad mistake<br>
A million jumping on</p></blockquote>
<p>Nobody ever wants to become the Internet&rsquo;s main character. Make a fool of yourself in public by sharing an opinion, and you might just be branded a monster forever.</p>
<blockquote>
<p>Sharing a bad take<br>
Nobody can quite shake<br>
The feeling that you&rsquo;re gone</p></blockquote>
<p>But sometimes people just dig in their heels, regardless of any impassioned pleas to the contrary, and sometimes everyone else just has to cut their losses and mourn the person they once knew.</p>
<blockquote>
<p>[Caught up in/Woke up from] the elephant&rsquo;s dream</p></blockquote>
<p>This lyric was originally recorded as a repeat of the first line of the song, but when I perform it live it is now changed, to show a progression and an understanding that it&rsquo;s possible to pull yourself out of these algorithmic traps.</p>
<blockquote>
<p>Getting washed away by the digital stream</p></blockquote>
<p>But being aware of the situation doesn&rsquo;t itself solve the problem.</p>
<blockquote>
<p>If it feels better to share another meme<br>
Doesn&rsquo;t make you less alone</p></blockquote>
<p>A lot of people use memes and cultural touchpoints to bond with each other. There&rsquo;s nothing wrong with that, but life needs to be more than just sharing the latest weird in-jokes with your circle, right?</p>
<figure class="images"><a href="https://sockpuppet.band/blog/2039-Behind-the-Lyrics-Behind-a-Mask"><img src="https://sockpuppet.band/static/_img/06/3a7b/behind-a-mask-circle-meme-literary-analysis_b542942f7c_640x409_q50.webp" width="640" height="409" srcset="https://sockpuppet.band/static/_img/06/3a7b/behind-a-mask-circle-meme-literary-analysis_b542942f7c_640x409_q50.webp 1x, https://sockpuppet.band/static/_img/06/3a7b/behind-a-mask-circle-meme-literary-analysis_b542942f7c_1280x817_q50.webp 2x" loading="lazy" class="u-photo" alt="circle factory meme, &#34;i guess we doin literary analysis now&#34;" title="no pun intended..."></a></figure>
<h3 id="2039_h3_4_Some-notes">Some notes<a href="https://sockpuppet.band/blog/2039-Behind-the-Lyrics-Behind-a-Mask#2039_h3_4_Some-notes" class="toc_link"></a></h3><p>My explanation of the &ldquo;fragile gem&rdquo; section might be seen as saying something that I am not, and I want to go into further detail.</p><p>In no way am I calling for a centrist idea of civility between warring camps. Nor am I saying that there are correct ideas on &ldquo;both sides.&rdquo; Instead I&rsquo;m expressing frustration on how there even are tribal &ldquo;sides&rdquo; to begin with, and how much the nature of the modern Internet and social media in particular have lead to this societal partitioning.</p><p>I am very much of the opinion that we need to do what&rsquo;s best for each other, and that happens to put me firmly on one side of the divide that shouldn&rsquo;t even exist to begin with. I&rsquo;d love to see the gap get filled in, ideally with the corpses of the capitalist systems that created it to begin with. From where I&rsquo;m standing I feel like things are too far-gone.</p><p>I hope I&rsquo;m wrong, but things are likely going to get way worse before they can get better.</p><p>And regarding plurality, I am certainly not making a judgment call or claiming what&rsquo;s right for people. I&rsquo;m just observing that the state of the world has led to these internal fractures and that sometimes people are left duct-taping the pieces back together. Really, my belief is that everyone is made up of separate constituent parts, and what defines someone&rsquo;s &ldquo;self&rdquo; as an integrated whole has no true objective basis. I just want to remind people that even if they are multiple individual shards, they still form a singular being, even if it doesn&rsquo;t feel like it sometimes.</p><h3 id="2039_h3_5_Making-of-the-video">Making of the video<a href="https://sockpuppet.band/blog/2039-Behind-the-Lyrics-Behind-a-Mask#2039_h3_5_Making-of-the-video" class="toc_link"></a></h3><p>Most of the videos produced for the live fight were just people performing their song in front of a camera, sometimes with loved ones, sometimes overdubbing and editing things into a &ldquo;live&rdquo; assemblage. (If you like, you can see <a href="https://www.youtube.com/live/iFsgd_AyfT0">the entire event as it unfolded</a>.)</p><p>I took a different approach, and in I went all-in on the &ldquo;algorithmic disguise&rdquo; aspect, using Snapchat filters to make myself appear to be a number of different things (including, at one point, an <em>actual</em> sockpuppet!), as well as a bunch of other video filters for various effects. All of the video footage was taken while I recorded those parts for the Song Fight! submission, although for the album I rerecorded the vocals. (Regrettably I hadn&rsquo;t yet thought to make the &ldquo;woke up&rdquo; change at that point.)</p>
<div class="images"><iframe width="560" height="315" src="https://www.youtube.com/embed/nQ1oOnWALz8?si=fVXLebCZJcQf8KAf" 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></div>
<p>As mentioned earlier, I had not yet set up my recording studio, so I recorded different parts of it in different rooms of my house. There was also a segment that I animated (the making of which was shown in a timelapse during the post-bridge instrumental). Some commenters thought that this was also a Snapchat filter (which I&rsquo;d looked into doing and is the style I was going for), but I&rsquo;d actually keyframed it manually and used <a href="https://ebsynth.com/">EbSynth</a> to interpolate the keyframes, with additional video effects to take stylistic advantage of where EbSynth fell short. I was specifically inspired by <a href="https://www.youtube.com/watch?v=tq_KOmXyVDo">Joel Haver&rsquo;s animation technique</a> (and Joel was kind enough to watch my video and leave a nice comment on it).</p><p>The bit with Animal Crossing was in reference to how <a href="https://animalcrossing.nintendo.com/new-horizons/">New Horizons</a> came out at just the right time to become <em>the</em> game of the pandemic. By mid-2021 I was pretty bored with it, but I also happened to have an in-game wardrobe that reflected my real-life clothing and some accessories; I&rsquo;m not sure how well it comes across in the video, but during the segment where I&rsquo;m changing my clothes in-game, those changes are also reflected in real life.</p><p>I am not too ashamed to admit that playing with my appearance in Animal Crossing actually inspired some real-life stylistic changes at the time, too, including me adopting a new hairstyle for a while.</p><p>During the DDR segment I&rsquo;m actually playing <a href="https://fluffy.itch.io/sockmania">one of my own charts</a> (specifically the one I made for <a href="https://sockpuppet.band/track/delicious-candy-every-anime-theme-song">Delicious Candy</a>). I thought that imperfectly playing DDR to the lyrics &ldquo;A deeper body ache / and make a bad mistake / a million jumping on&rdquo; was too good to pass up. I was also purposeful at tearing the mask off (to breathe better) only for the camera to cut away just before my face becomes visible.</p><h3 id="2039_h3_6_Aftermath">Aftermath<a href="https://sockpuppet.band/blog/2039-Behind-the-Lyrics-Behind-a-Mask#2039_h3_6_Aftermath" class="toc_link"></a></h3><p>I did the entirety of the song &mdash; video and all &mdash; in just over two days.</p><p>A couple people complained about it being &ldquo;over-produced&rdquo; and losing sight of the purported Song Fight! Live ethos, even though I was working in the same time constraints as everyone else, while simultaneously dealing with not yet being fully set up in my new home. But people love to find things to complain about, I guess. (Which is what I&rsquo;m doing right now, too.)</p><p>Neither the song nor the video won anything in Song Fight!, but it was the song that sparked me to finally complete the album <a href="https://sockpuppet.band/album/songs-of-substance">Songs of Substance</a>, which I&rsquo;d been planning for a few years at that point. There&rsquo;s some pretty good songs on that album, if I do say so myself! None of them are as deep or meaningful as &ldquo;Behind a Mask,&rdquo; but I&rsquo;m particularly fond of <a href="https://sockpuppet.band/track/a-long-plastic-hallway">A Long Plastic Hallway</a>.</p>
            

            

        
        <a rel="tag" href="https://sockpuppet.band/blog/?tag=lyric+meanings">#LyricMeanings</a>
        
        <a rel="tag" href="https://sockpuppet.band/blog/?tag=deep+dive">#DeepDive</a>
        
        <a rel="tag" href="https://sockpuppet.band/blog/?tag=behind+the+scenes">#BehindTheScenes</a>
        

        ]]>



        </content>
        <category term="Blog" label="Blog" />
        
        
        <category term="LyricMeanings" label="lyric meanings" />
        
        <category term="DeepDive" label="deep dive" />
        
        <category term="BehindTheScenes" label="behind the scenes" />
        

        

    </entry>
    

    
</feed>