<?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>MecaGorp: Whitepapers</title>
    <subtitle><![CDATA[How everything fits together.]]></subtitle>
    <link href="https://mecagorp.com/whitepapers/feed" rel="self" />
    

    <link href="https://busybee.superfeedr.com" rel="hub" />
    
    
    <link href="https://mecagorp.com/whitepapers/" />
    <id>tag:mecagorp.com,2026-08-18:whitepapers</id>
    <updated>2026-11-02T17:22:15-08:00</updated>

    

    <entry>
        
        <title>Ecosystem design</title>
        <link href="https://mecagorp.com/whitepapers/ecosystem" rel="alternate" type="text/html" />
        <published>2026-11-02T16:23:28-08:00</published>
        <updated>2026-11-02T16:23:28-08:00</updated>
        <id>urn:uuid:a3612689-68d7-4c2e-a85f-4d3072a2f669</id>
        
        <summary type="html"><![CDATA[How the various parts might fit together]]></summary>
        <content type="html"><![CDATA[

		

        <p><a href="/chorus/">Chorus</a> is, by design, just one piece of a larger puzzle of how the world of post-corporate music streaming can work. Here are a few high-level descriptions of how this can all fit together.</p>
        <h3 id="32_h3_1_Chorus-receiver">Chorus receiver<a href="/whitepapers/ecosystem#32_h3_1_Chorus-receiver" class="toc-link"></a></h3><p>The primary use case for Chorus is providing people a means of subscribing directly to artists&#39; output to put it into their music collection, to then be played through their own mobile app. The intention is that the subscribed music would then become a part of their collection that can be played at any time, living alongside their purchases from other platforms.</p><p>To this end, a Chorus receiver would be a piece of software that connects to the Internet and subscribes to a number of Chorus feeds. This could be a single-user instance, or it could support multiple users, and provide the ability for the users to select music to put into their collections. The receiver would then track individuals&#39; music play activities for the purposes of discovery and determining <a href="/whitepapers/payments">fair payments</a> or making purchase suggestions.</p><p>Playback could occur from a browser-based application or, more likely, via connected applications.</p><p>The receiver should also handle caching and transcoding of music files, both to support lower-bandwidth connections and also to avoid overwhelming a popular musician&rsquo;s webserver or causing them a large bandwidth bill.</p><h3 id="32_h3_2_openSubsonic-integration">openSubsonic integration<a href="/whitepapers/ecosystem#32_h3_2_openSubsonic-integration" class="toc-link"></a></h3><p><a href="https://opensubsonic.netlify.app">openSubsonic</a> is a client protocol for connecting a player application to a collection. At its core it is basically a means of streaming an iTunes-style collection to a mobile device, and it is supported by a number of existing music collection servers, such as <a href="https://subsonic.org/">Subsonic</a> and <a href="https://www.navidrome.org/">Navidrome</a>, and some sales channels such as <a href="https://bandcamp.com/">Bandcamp</a> support the protocol as well.</p><p>There are also quite a few player applications that work with openSubsonic, but they tend to either only support a single collection at a time, or at best treat each collection as a separate &ldquo;silo&rdquo; without the ability to browse and play music from multiple collections simultaneously.</p><p>To that end, an openSubsonic aggregator could connect as a client to multiple openSubsonic accounts, and would send the same query to each account, aggregating the results together into a single view for the player application. It could also allow setting a priority for which sources take precedence when multiple sources have the same items (for example, most listeners would want to use purchased content from Navidrome or Bandcamp before going with the versions that come from a Chorus feed).</p><p>Such an aggregator would be easy to self-host or to provide as a community-hosted option.</p><p>Ideally, the aggregator would also have a Chorus receiver built-in, to reduce the complexity of an individual user&rsquo;s setup; this would allow users to only have to connect to a single receiver, and configure it with a connection to their private collection infrastructure. For that matter, it could also be where the private collection is hosted.</p><p>There is a lot of flexibility in how this may be implemented.</p><h3 id="32_h3_3_Internet-radio-stations">Internet radio stations<a href="/whitepapers/ecosystem#32_h3_3_Internet-radio-stations" class="toc-link"></a></h3><p>Another potential use case for Chorus is to provide a means for Internet radio stations (i.e. shared livestreams) to get the latest releases from new artists and then add it to various playlists that are on continuous broadcast.</p><p>In this setup, Internet radio stations could subscribe to participating musicians&#39; Chorus feeds directly (and download the files and metadata that way), which would be simple to integrate with most existing Internet radio systems (such as <a href="https://icecast.org/">Icecast</a> or <a href="https://icecast.org/">AzuraCast</a>).</p><h3 id="32_h3_4_Other-platform-integrations">Other platform integrations<a href="/whitepapers/ecosystem#32_h3_4_Other-platform-integrations" class="toc-link"></a></h3><p>In theory it should be straightforward to have a Chorus receiver also adapt its discovered content into ActivityPub, such as for <a href="https://funkwhale.audio">Funkwhale</a>, <a href="https://bandwagon.fm/">Bandwagon</a>, or any of the many other efforts to put music on the Fediverse.</p>
        

        

        ]]>



        </content>
        <category term="Whitepapers" label="Whitepapers" />
        
        

        

    </entry>
    <entry>
        
        <title>Payments</title>
        <link href="https://mecagorp.com/whitepapers/payments" rel="alternate" type="text/html" />
        <published>2026-09-24T13:10:17-07:00</published>
        <updated>2026-11-02T17:22:15-08:00</updated>
        <id>urn:uuid:677de694-d45e-43ad-a3e6-851066ad245d</id>
        
        <summary type="html"><![CDATA[Equitably supporting artists]]></summary>
        <content type="html"><![CDATA[

		

        <p>Payments are the most challenging part of the streaming ecosystem and the area most subject to abuse. Global money pools that are split up on a per-stream basis encourage bot listeners and ultra-short content, and pooling payments across listeners means that disproportionate numbers of listens from single users will give an outsized influence on the payments sent to the artists they listen to, at the expense of other artists.</p><p>While it&rsquo;s out of scope to insist on a particular payment strategy (and payments are specifically <em>not</em> a part of the Chorus protocol), this document will explain a few ideas for how listeners can fairly compensate the artists that they listen to.</p>
        <h3 id="19_h3_1_Support-ledger">Support ledger<a href="/whitepapers/payments#19_h3_1_Support-ledger" class="toc-link"></a></h3><p>In this system, listeners would be able to choose what &ldquo;streaming rate&rdquo; is fair, ideally based on a unit per time. For example, with the assumption that a typical user listens for 100 hours per month and that they would be willing to pay $10/month for their listening, their stream rate would be 10¢/hour.</p><p>The receiver then keeps track of a balance for every listener and artist. As a listener listens to music, their balance decreases, and the balance of the artists they listen to increase by the same rate.</p><p>Whenever an artist reaches a payment threshold, the system notifies the listener with the largest negative balance that they should send that artist&rsquo;s balance over to them. When given proof of payment, the artist&rsquo;s balance decreases by the transaction amount, and the listener&rsquo;s balance increases by the same.</p><h3 id="19_h3_2_Monthly-support">Monthly support<a href="/whitepapers/payments#19_h3_2_Monthly-support" class="toc-link"></a></h3><p>As a variant on the &ldquo;support ledger&rdquo; strategy, there could be a monthly collection of funds, and at the end of the month, any artists whose balance exceeds a payment threshold would be paid their full balance.</p><p>Anything left over would be split up among the artists with the top balances that fall below the threshold; for example, if the threshold is $5 and the coffer has $127 in it, then the top 25 unpaid artists would then receive $5.08, and their balances would be decreased by that amount (going negative, as an advance on future payment thresholds).</p><p>This strategy could also be used to allow for things like community support or ad revenue or the like to offset the costs of people who are unable or unwilling to pay.</p><h3 id="19_h3_3_Implementation-notes">Implementation notes<a href="/whitepapers/payments#19_h3_3_Implementation-notes" class="toc-link"></a></h3><p>The recorded duration should be based on actual play time instead of the reported duration in the collection; this is to avoid things like collections overreporting the length of the track, or allowing people to game the system by repeatedly listening to just a few seconds of a track, or filling their feed with 10-second songlets. This also allows for prorating based on partial listens or the length of a track.</p>
        

        

        ]]>



        </content>
        <category term="Whitepapers" label="Whitepapers" />
        
        

        

    </entry>
    

    
</feed>