<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>neume</title>
  <subtitle></subtitle>
  <link href="https://neume.network/feed.xml" rel="self"/>
  <link href="https://neume.network/"/>
  
    <updated>2023-05-29T00:00:00Z</updated>
  
  <id>https://neume.network</id>
  <author>
    <name>neume</name>
    <email>contact@neume.network</email>
  </author>
  
    
    <entry>
      <title>Hello World</title>
      <link href="https://neume.network/posts/hello-world/"/>
      <updated>2022-05-19T00:00:00Z</updated>
      <id>https://neume.network/posts/hello-world/</id>
      <content type="html">
        <![CDATA[
      <blockquote>
<p><em><a href="https://en.wikipedia.org/wiki/Neume">Neumes</a> were some of the first forms of music notation, the predecessor of modern musical notes. It was early technology that empowered those that could decipher it with the knowledge of how to play any music written in it.</em></p>
</blockquote>
<h2>Intro</h2>
<p>HIFI Labs launched the <a href="https://musicos.mirror.xyz/">musicOS</a> project last month, with a focus on providing a homepage for Web3 Music by building an application on top of open data.</p>
<p>Through our discovery phase we’ve realised that it will be beneficial to separate the data layer out under its own name and organisation, giving it full freedom to operate in a decentralised manner and be entirely open source. We call this neume and are supporting it as a standalone project.</p>
<p>There’s a careful balance to strike when straddling product discovery and open-source; perceived conflicts, promoting genuine positive engagement, while ensuring that momentum and funding are in place to build what’s needed. By supporting open source projects alongside musicOS, HIFI Labs is committing to the future of public goods while ensuring speedy and iterative application development.</p>
<p>We believe that open source is fundamental to the future of Web3 and we want to lead by example. To this end, <a href="https://twitter.com/dan_djfnd">Dan</a> has joined HIFI Labs to drive forward open source projects; to focus on initiating, supporting, and backing open source development, and working with the HIFI team to look at how we can work in more collaborative ways across all our activities. <a href="https://twitter.com/timdaub">Tim</a> is leading the technical development of neume.</p>
<h2><strong>neume</strong></h2>
<blockquote>
<p><em>neume’s goal is to build a socially scalable and open-source metadata retrieval, indexing, and management infrastructure for Web3 Music.</em></p>
</blockquote>
<p>neume is tasked with indexing all activity within the emerging Web3 Music industry. It will provide the infrastructure needed to easily spin up platforms that experiment with showcasing Web3 Music and the endless potential of deeper connections between Artists and Fans.</p>
<p>Activity within neume, at least within the first three months, can be categorised across three distinct areas:</p>
<ul>
<li><strong><a href="https://github.com/music-os/music-os-schema">Schema</a></strong>: Collaboration with the wider Music NFT space to align on more standard methodology to organise the data and relationships generated through minting activity.</li>
<li><strong><a href="https://github.com/music-os/music-os-strategies">Strategies</a></strong>: Developing data retrieval through Extract Transfer and Load (ETL) strategies to a point where any engineer can bring their own code/platforms and execute.</li>
<li><strong>Use Cases:</strong> Working with projects that are experimenting in the space to explore further specific use cases to expand the utility of neume.</li>
</ul>
<p>Our documents within the neume github provide a deeper look at the current and planned <a href="https://github.com/neume-network/documents/blob/main/architecture.md#neume-network-architecture">technical</a> and <a href="https://github.com/neume-network/documents/blob/main/social-architecture.md#social-architecture-of-the-neume-network">social</a> architecture.</p>
<p>The focus within neume is to build infrastructure that will underpin future platforms in a public and open way, so that we don’t repeat the mistakes of the current music industry where data is siloed and innovation is stymied.</p>
<h2>Building towards Social Scalability</h2>
<p>The defining quality of the neume project is its drive towards increasing <a href="http://unenumerated.blogspot.com/2017/02/money-blockchains-and-social-scalability.html">social scalability</a> through facilitating an implementation process that seeds and builds the momentum of decentralised contribution through network effects.</p>
<p>Social Scalability is the idea that modularisation, trust minimisation, standardisation, and an integrative approach toward dealing with conflicts can vastly accelerate and, most importantly, scale an open source project’s number of participants:</p>
<ul>
<li>Having observed the lessons of prolific modern web3 projects, we aspire for <a href="https://github.com/music-os/music-os-strategies">neume’s strategy GitHub repository</a> to be maintained by hundreds of contributors by outlining the ETL process’s interfaces as <a href="https://github.com/snapshot-labs/snapshot-strategies">snapshot.org did with their brilliant strategies</a> repository.</li>
<li>With our intentionally heavy-descriptive and rule-based reliant approach for <a href="https://github.com/music-os/music-os-schema">defining a new metadata schema for music</a>, and built-in semantic versioning, we’re hoping to instigate an explosion of neatly version-tagged schemas. Setting the scene and seeing what happens can be <em>programmer’s anarchy</em>, but it has worked fantastically well in the open source space for years.</li>
<li>By prioritising licensing code under the <a href="https://www.gnu.org/licenses/gpl-3.0.en.html">GPL</a> where possible, we set forth in creating a lasting and interest-driven ecosystem; non-captive by legacy corporate interest and thus trust-minimising among the diverse set of newly emergent Web3 Music projects.</li>
<li>While the threat of “exit to the courts” will always exist, a well operating neume will reduce the requirement for out-of-system post-event recourse through social scalable mechanisms; reducing the potential risks for individuals collaborating online by mandating adherence to the system’s architecture.</li>
</ul>
<p>We’re conscious of our approach’s apparent fragility at the moment, for example, “Why aren’t you using IPFS? What about TheGraph?”. Through implementing prototypes that interface with both of these technologies and by talking to our peers, it’s clear that significant foundational effort is required to bring the music industry’s infrastructure into the 21st century and therefore a novel approach is required.</p>
<p>In the meaning of Glen Weyl’s “<a href="https://www.youtube.com/watch?v=uj186urDU8c&amp;ab_channel=TalksatGoogle">Radical Markets</a>”, we at neume are “music radicals”. To bring about productive change and accommodation for the changing media landscape, we’re committing ourselves to help with the best of our abilities.</p>
<h2>Looking forwards</h2>
<p>Regarding the data types that neume will seek to provide access to, the first step is around activity generated through the sale of music NFTs. As artists continue to experiment with social tokens they too represent an area of significant value for aggregation and indexing.</p>
<p>Thinking longer-term, identity and its resolution across multiple accounts, social interactions (follows, playlists), next-generation NFTs (such as “<a href="https://github.com/ethereum/EIPs/pull/4973">account-bound</a>” tokens), all present interesting opportunities to further the contextual picture that neume can provide to developers.</p>
<p>Furthermore, once a foundation has been established, we can look into things like the right to state claims (for example, identity x a claim = relative authority around that claim), thinking about licensing relative to web3 music, e.g. can we build standard licenses that people can use similar to the different popular OSS license types.</p>
<p>As has been said many times, we are very early on this collective journey towards forging a new music industry. neume represents an opportunity to build in the true spirit of Web3; a credible neutral public good.</p>
<h2>How you can get involved</h2>
<p>Activity towards this goal is already underway and we’d love your help.</p>
<ul>
<li>neume <a href="https://www.github.com/neume-network">github</a>: take a look and see if there’s anything you can contribute towards.</li>
<li>neume section within the <a href="https://discord.gg/P5rrpZN4ds">HIFI discord</a>: come and join the discussion.</li>
</ul>
<p>Success for neume comes through collaboration; to this end we are rolling out an <a href="https://github.com/orgs/neume-network/projects/2">Open Tasks Board</a> that catalogues issues available for open source development. Equally, we’d love to chat if you have any ideas or think you can assist in its development in a more involved capacity.</p>
<hr>
<p>Dan</p>

    ]]>
      </content>
    </entry>
  
    
    <entry>
      <title>Unsolved Problems in the Neume Network</title>
      <link href="https://neume.network/posts/unsolved-problems-in-the-neume-network/"/>
      <updated>2022-06-14T00:00:00Z</updated>
      <id>https://neume.network/posts/unsolved-problems-in-the-neume-network/</id>
      <content type="html">
        <![CDATA[
      <p>gm!</p>
<p>In this post, I'm elaborating on the most pressing challenges we're currently
facing in the neume network. And just for context, this isn't a conclusive
post. We expect more technical challenges as we're building this: But with this
post, I want to make the broader neume network community aware of the problems
we're currently hitting when developing neume.</p>
<p>But first of all: if you end up finding what's written here interesting and
you're thinking of contributing: We have a <a href="https://github.com/neume-network/core/blob/main/contributing.md">contributors guide on
GitHub</a>, and
you can get paid.</p>
<h2>Neume's short-term target</h2>
<p>Neume's primary goal is to enable <a href="https://www.hifilabs.co/">Hifilabs</a> to ship
the first version of <a href="https://musicos.mirror.xyz/">music-os</a>. For that, the
neume crawl shall produce new data roughly every five minutes from
<a href="https://www.sound.xyz/">sound.xyz</a> and <a href="https://beta.catalog.works/">catalog</a>
(v1 and v2). We've agreed that it's sufficient to dump this data into the
<a href="https://github.com/neume-network/data/">neume-network/data</a> repository.
Additionally, we want to structure <a href="https://www.sound.xyz/">sound.xyz</a>'s data
download so that it is &quot;editions-aware,&quot; meaning, e.g.,
<a href="https://www.sound.xyz/">soundxyz</a> track titles don't include the &quot;#3&quot; edition
number anymore.</p>
<p>Finally, we want each music NFT to have a universal and unique identifier. In
talking with the <a href="https://musicos.mirror.xyz/">music-os</a> team, we've agreed
that the priority of those issues is as follows:</p>
<ul>
<li>Most important is crawling regularly and producing new data.</li>
<li>Then creating &quot;editions-aware&quot; data models</li>
<li>And &quot;least important&quot; is giving any music NFT a unique and universal identifier.</li>
</ul>
<p>Now, from my side as the project's architect, I want to second and highlight
the importance of these goals. Within the next few weeks, we want to start
having these issues addressed as it enables a real customer
(<a href="https://www.hifilabs.co/">Hifilabs</a>) to ship a real product
(<a href="https://musicos.mirror.xyz/">music-os</a>). So it is our chance to build
something useful people want, and we must take advantage of it.</p>
<p>Given that I've now established the project's context, here are technical
challenges and generally components that need work in the neume ecosystem.</p>
<h2>Crawling the Ethereum mainnet directly</h2>
<p>Currently, neume-network uses <a href="https://www.spinamp.xyz/">Spinamp</a>'s <a href="https://github.com/spinamp/web3-music-subgraph">minimal
web3 music NFT subgraph</a> to
download all of Ethereum mainnet's tracks from platforms like
<a href="https://beta.catalog.works/">catalog</a>, <a href="https://www.sound.xyz/">sound</a>, and
<a href="https://noizd.com/">NOIZD</a>. However, we ultimately don't want to rely on this
level of intermediation for receiving our data. We want to minimize the amount
of infrastructure necessary to run the neume network: Ideally, an Ethereum full
node suffices. Additionally, there are benefits from interacting with immutable
contracts: They never change.</p>
<p><a href="https://www.spinamp.xyz/">Spinamp</a>'s <a href="https://github.com/spinamp/web3-music-subgraph">web3 music NFT
subgraph</a> currently crawls the
three platforms mentioned above: But <a href="https://neume.network/posts/hello-world/">neume's
mission</a> is greater than that: It's a
socially scalable extraction and transformation engine for web3, and so
supporting as many platforms, and dapp's data as possible must be our target.</p>
<p>For that matter, we're aiming to replace the <a href="https://github.com/neume-network/strategies/tree/main/src/strategies/web3subgraph">subgraph
strategy</a>
with directly extracting blocks from a certain block height and then extracting
their logs on a case-by-case basis, e.g., depending on the emitted topics.</p>
<h2>Integrating an embedded database</h2>
<p>Then, if you're looking at our code and the <a href="https://github.com/neume-network/documents/blob/main/architecture.md#visual-overview">technical
overview</a>
of neume's architecture - you'll find that we're currently writing in flat
files. So far, this had the benefit of not committing to, e.g., a database
schema. But it's starting to bother me that we haven't figured out a good way
of storing and ordering data in neume.</p>
<p>For now, each strategy can write directly to disk into a flat-file. So,
essentially, we're appending to files, and the outcome is what I'm showing over
at
<a href="https://github.com/TimDaub/temp-neume-data-dir-results">TimDaub/temp-neume-data-dir-results</a>.</p>
<p>However, this type of handling of new data has the problems:</p>
<ul>
<li>Duplicate entries aren't detected.</li>
<li>We don't have a universally unique identifier, e.g., each track has an ID.</li>
<li>We're generally not handling the &quot;load&quot; in
<a href="https://en.wikipedia.org/wiki/Extract,_transform,_load">ETL</a> yet.</li>
</ul>
<p>We can't generate an order for the data that we've successfully extracted and
transformed (e.g., we can't sort by &quot;newest songs&quot;)</p>
<p>We still do not understand what type of database we want to use. However, we
know what we want: It has to be embedded, meaning it cannot ask for additional
installation or configuration of a neume network user. And it has to be able to
handle many writes - ideally concurrently and even within separate threads.</p>
<p>So to recap, another unsolved problem in the neume network ecosystem is
integrating a fitting embedded database into the stack towards enabling
<a href="https://www.hifilabs.co/">Hifilabs</a>'s <a href="https://musicos.mirror.xyz/">music-os</a>
use-case of showing &quot;the latest tracks.&quot;</p>
<h2>Controlling the user experience during onboarding</h2>
<p>Another problem is that we're currently doing a bad job controlling the
onboarding experience when finding and wanting to use the neume network.
Already we've had three or four seriously interested users that ended up being,
e.g., confused about our way of working with git submodules and npm packages.</p>
<p>In my opinion, this is not so much about teaching users how to do things. And
either is it about artificially simplifying the stack so that everybody can use
the tool. It may also not be about documentation. Rather it is about us as the
neume core contributors being able to control the user experience, meaning
that, e.g., we're immediately aware of issues when we push new code.</p>
<p>So this problem is about building scalable mechanisms for working together as a
team of async workers. E.g., can we run a nightly integration test for
<a href="https://github.com/neume-network/core">neume-network/core</a> that tests the
entire user flow until finishing downloading all the data? What problems did
the user experience? Did they end up reporting them to our GitHub repository?
Did they find our Discord channel? How well-received were our existing
documents?</p>
<p>Controlling the user experience during onboarding means being vulnerable to
embarrassment and creating issues that you don't want to see publicly. But, on
the other hand, when we do this frequently and adamantly, we get great open
source software that changes people's lives because it is useful.</p>
<h2>Building Neume as an Organism</h2>
<blockquote>
<p>A &quot;Living System&quot; is one that grows into its environment, by self-organizing
around opportunities. Living systems can last for a long time, adapt well to
change, and thus be highly successful. By contrast, &quot;Planned Systems&quot; tend to
be fragile, poor at coping with change, and thus short-lived.</p>
</blockquote>
<ul>
<li><a href="https://hintjens.gitbooks.io/social-architecture/content/chapter6.html">Social Architecture, Chapter 6</a></li>
</ul>
<p>Neume must be built to become a living system or an organism. We can't just
ship computer code - that'd be unsustainable as it'd stop working the day we
discontinued maintaining it. Rather, to truly build something useful, we must
strive to create the neume network as an organism or a living system. One that
can adapt to the challenges ahead that can grow and shrink according to its
environmental factors: And one that tends to have more <a href="https://taylorpearson.me/ergodicity/">upside than
downside</a> (anti-fragile): It should be
<a href="http://www.paulgraham.com/aord.html">default-alive</a>.</p>
<p>Throughout countless meetings and working together for months now, we've been
trying to not only continuously ship the neume network software: but also the
neume network <a href="https://github.com/neume-network/documents/blob/main/social-architecture.md#social-architecture-of-the-neume-network">social
architecture</a>
that details how we collaborate.</p>
<p>Specifically, e.g., the universally unique identifiers, the work on a track's
normalized schema, and properly parse and integrate
<a href="https://www.sound.xyz/">soundxyz</a>'s edition data: We've now created
<a href="https://github.com/neume-network/neuIPs/blob/main/neuIPs/neuIP-1.md">neuIP</a>, a
standards track allowing us to express and reflect on consensus decisions in
the community.</p>
<h2>Conclusion</h2>
<p>With the neume network, we're on the brink of shipping useful software for
<a href="https://www.hifilabs.co/">Hifilabs</a> and the broader Ethereum and music NFT
ecosystem. However, we're facing several technical and social challenges, like
not downloading Ethereum blocks directly from their source, not having a clear
database directive, not controlling the user experience, and building a
scalable social system.</p>
<p>At neume, we're capable of welcoming new contributors quickly through a <a href="https://github.com/neume-network/documents/blob/main/roles%26responsibilities.md">staged
process of
engagement</a>
where tomorrow, you could get paid for contributing. So we don't only want to
advertise the neume network as socially scalable: We also want to do it and
think that in its current form, the existing software architecture can absorb
more eager brains.</p>
<p>If you're a neume regular, we eagerly await your tickets to solve the above
problems. If you're new to neume and this read was interesting: Head over to
<a href="https://discord.gg/uP4nTrQKPT">our Discord</a> and say &quot;hi!&quot;.</p>
<hr>
<p>Tim</p>

    ]]>
      </content>
    </entry>
  
    
    <entry>
      <title>Engaging with neume</title>
      <link href="https://neume.network/posts/engaging-with-neume/"/>
      <updated>2022-07-05T00:00:00Z</updated>
      <id>https://neume.network/posts/engaging-with-neume/</id>
      <content type="html">
        <![CDATA[
      <p>neume, as an open-source project, is dependent on the community surrounding it. As the project develops it’s important that we grow and refine the basis on which the community is encouraged to engage.</p>
<h2>Discussion</h2>
<p>Currently we have three preferred communication channels:</p>
<ul>
<li>On-going text chat within the neume channels in the <a href="https://discord.gg/P5rrpZN4ds">HIFI Labs discord</a></li>
</ul>
<p>Any and all questions around the project can be asked, across #neume-dev (technical) and #neume-chat (general). The neume core team often provide ad-hoc updates and requests to the community for discussion.</p>
<ul>
<li>&quot;neume open office hours&quot; audio / screenshare sessions once every two weeks, held within the neume-office channel in the HIFI Labs discord, <a href="https://calendar.google.com/calendar/u/3?cid=Y190bmcxYjUwZm5naGlvN2NsYnFiMjY5Y3ZpOEBncm91cC5jYWxlbmRhci5nb29nbGUuY29t">google calendar link</a></li>
</ul>
<p>An opportunity for the community to ask specific questions and spark discussion around ideas in a voice chat format. Previous open office hours are recorded and saved in the #neume-achives channel on discord.</p>
<ul>
<li>This blog where the neume core team will give regular updates on progress and direction</li>
</ul>
<p>The neume core team are also relatively active on Twitter if that is your preferred format (<a href="https://twitter.com/timdaub">Tim</a>, <a href="https://twitter.com/dan_djfnd_">Dan</a>), and we plan to ramp up activity through the <a href="https://twitter.com/neumenetwork">neume</a> Twitter in good time.</p>
<h2>Contributing</h2>
<p>We are constantly trying to improve the processes by which anyone can contribute to neume, detailed in a couple of key living documents:</p>
<ul>
<li><a href="https://github.com/neume-network/documents/blob/main/roles%26responsibilities.md">neume roles &amp; responsibilities</a>: Describes the tiers of engagement that we have defined for the neume project and the path from &quot;Contributor&quot; to &quot;Core Contributor&quot; to &quot;Core Team&quot;</li>
<li><a href="https://github.com/neume-network/documents/blob/main/neumehandbook.md">neume handbook</a>: Document that describes the engagement protocol for Contributors, how to identify areas for development, write proposals, and get paid</li>
</ul>
<p>Further to task-wise contribution we have also established a process for &quot;neuIPs&quot; (neume improvement proposals) where the community can suggest more fundamental changes to the protocol, as defined in <a href="https://github.com/neume-network/neuIPs/blob/main/neuIPs/neuIP-1.md">neuIP-1</a>.</p>
<h2>Suggesting your Use Case</h2>
<p>neume is useful when it is being utilised in real world experimentation; core to our development mentality is letting use cases drive the prioritisation of building.</p>
<p>The world of blockchain/crypto/web3 is a constantly evolving and ever-changing environment and while we feel like we have a pretty good idea around what neume needs to become to support the next generation of music and the creative industries, there will no doubt be examples along the way that we can build towards to accelerate that journey.</p>
<p>If you feel like neume is something that could enable your idea, then please reach out across any of the channels detailed above and we can discuss further.</p>
<hr>
<p>Dan</p>

    ]]>
      </content>
    </entry>
  
    
    <entry>
      <title>How EIP-4973 Account-bound tokens could drive curation in the music NFT industry</title>
      <link href="https://neume.network/posts/how-eip-4973-account-bound-tokens-could-drive-curation-in-the-music-nft-industry/"/>
      <updated>2022-09-15T00:00:00Z</updated>
      <id>https://neume.network/posts/how-eip-4973-account-bound-tokens-could-drive-curation-in-the-music-nft-industry/</id>
      <content type="html">
        <![CDATA[
      <p><em>(<a href="https://ethereum-magicians.org/t/eip-4973-account-bound-tokens/8825/125">Initially posted on the Ethereum Magicians
forum</a>)</em></p>
<p>In the following post, I want to highlight a problem we've encountered in the
music NFT industry. As a quick aside, these days, I work as a tech lead on
<a href="https://neume.network">neume.network</a>, and we're essentially building a
socially scalable data pipeline to extract and augment on-chain data. For all
of the music NFTs hosted on Ethereum, in contrast to the Graph Protocol, at
Neume, we're not trying to make contract storage data more accessible. Instead,
we want to build a list of music NFTs that users can listen to via an app like
Spotify.</p>
<p><img src="/images/curation-1.jpg" alt=""></p>
<p>As it's a lot of work to extract music metadata from smart contracts, today we
got some users' feedback, and to my surprise, it sounded like we had
unconsciously optimized for indexing the big curated music NFT platforms like
<a href="https://sound.xyz">sound.xyz</a>,
<a href="https://beta.catalog.works">beta.catalog.works</a>, <a href="https://zora.co">zora.co</a>,
and <a href="https://www.mintsongs.com">mintsongs.com</a> V2.</p>
<p>But truly, this was never our intention: But I was caught off guard by the user
feedback, and so this post is somewhat a reflection on what happened and led to
problematic emergent effects.</p>
<p><img src="/images/curation-2.jpg" alt=""></p>
<p>See, for <a href="https://musicos.xyz">musicos.xyz</a>, as it's an audio player like
Spotify, we naturally wanted to index the best possible and probably also most
popular platforms. So when starting the project, we intuitively went for the
popular ones - those that we knew provided nicely sounding songs.</p>
<p>And when they launched musicos a few days ago, I suddenly found myself
confronted with the following user feedback questioning the credible neutrality
of the Neume Network indexer. Here's what users said:</p>
<p><img src="/images/curation-3.png" alt=""></p>
<p><img src="/images/curation-4.png" alt=""></p>
<p>Additionally, an artist I am I fan of had this to say on
<a href="https://mobile.twitter.com/thepark/status/1568127129203920896">Twitter</a>:</p>
<p><img src="/images/curation-5.png" alt=""></p>
<h2>Welcome to the Machine... The &quot;Attention Economy&quot;</h2>
<p>So let us unpack what is being discussed here. In my own words: Guspy,
Supersigil, and thepark.eth are all asking for their tracks to be listed on the
music-os app we had just released. And they did so by pointing out an
interesting dynamic in the music NFT space. guspy mentions that the music they
had minted through a custom contract on
<a href="https://www.manifold.xyz">manifold.xyz</a> isn't showing up on music-os. They're
saying that having their contract being indexed is posing a challenge: And that
instead, had they minted their song on Catalog, Sound, or MintSongs, then it
probably would have made it into music-os.</p>
<p>Extrapolating their statements here, too, we can reason that any track that
gets lots of exposure through a music player may fare better on first and
secondary sales. So potentially, for guspy et al., having their songs exposed
on music-os can potentially mean an improvement in income. Or anyways that
their songs are listened to at all.</p>
<p>In the post by Supersigil below, they help double down on the argument, namely
that artists need to be given the option to &quot;be their own platforms&quot; and that
hence the favoritism of Neume Network to implement the big music NFT platforms
first is a challenge to all artists hosting independent contracts.</p>
<p>There's also an interesting insight in their posts: Namely that the platforms
are curated by genre or type of music. And so, despite some artists' work
having the potential for popularity - they may never end up being exposed to
larger audiences given the moderation policies of the respective platforms.</p>
<h2>Experimenting with Music NFTs</h2>
<p>And there's actually more context to unpack here: Historically, the big
platforms like sound.xyz and catalog.works have been heavily curated - or at
least that's how their music sounds to my ears. I can back this up with visitor
data, too, as I had played around with a minimalist website that allowed users
to listen to sound.xyz and catalog.work's songs on a website I called
<a href="https://tracks.lol">tracks.lol</a>.</p>
<p>For a brief moment in time after its release, it gathered a notable listener
community and was widely shared on Twitter despite the website having any
meaningful web design or other functionality. Below's a screenshot of the page,
or you can see it yourself by visiting: <a href="https://tracks.lol">tracks.lol</a>:</p>
<p><img src="/images/curation-6.png" alt=""></p>
<p>And what my intention had been here is that I had been experimenting in the
true sense, and so I carefully controlled the website's utility to test the
music's popularity.</p>
<p>As you can see, there weren't any fancy animations - no marketing website to
convert users. All there was a single page that played music from sound.xyz and
catalog - with the hypothesis being that people would still like this arguably
&quot;shitty&quot; website because it played nice music! And oh boy, did they! Here's a
screenshot of my plausible.io tracker, and you can access the numbers yourself
by clicking the following link
<a href="https://plausible.io/tracks.lol">plausible.io/tracks.lol</a>.</p>
<p><img src="/images/curation-7.png" alt=""></p>
<p>So clearly, it couldn't have been my sick web design skills or the amazing
utility you got from the website's controls. The reason people briefly shared
the page was the music on it was nice.</p>
<p>And let me reassure you, this is also the qualitative feedback I'm gathering
from anyone that I manage to expose to sound.xyz and catalog's tracks! They're
doing a great job in properly curating NFTs to seed the initial consumption
network.</p>
<p>And I'm capable of negating that argument, too: Where if you'd built a website
that focuses on listing the highest grossing NFT sales on OpenSea, you'd end up
not with an aesthetically pleasing newsfeed of NFTs: You'd just get a seemingly
random list of Bored Apes, and, in fact, I can prove this to you right away by
asking you to visit: <a href="https://context.app/trending">context.app/trending</a> where
at the time of writing, the four latest updates in the feed are apes - boring!</p>
<p><img src="/images/curation-8.jpg" alt=""></p>
<h2>Curation, a double-edged sword</h2>
<p>But despite curation platforms like sound.xyz and catalog.works accelerating
the music NFT industry in the first place, there is a sort of tragic story in
this utility provision too, which are the problems pointed out today by
thepark.eth, Supersigil, and guspy: Namely, that while curation can excel an
artist's work, it's also gatekeeping other artists from putting their latest
tracks in front of a larger audience. And it discriminates against genres.</p>
<p>In the end: This capability to curate who and what song is gonna be popular
comes with a lot of influence, and so: curating, gatekeeping, and/or censoring:
Those actions create power structures. Structures that are actively being
misused today to seek further self-serving profit.</p>
<p>It is actually well documented, and just a recent prominent example is
<a href="https://www.youtube.com/watch?v=GaHcnPDcUOE">CoryxKenshin's rebellion about Youtube's arbitrariness, favoritism, and racism
in moderating potentially harmful
content</a>. It highlights a few
faults.</p>
<p><img src="/images/curation-9.jpg" alt=""></p>
<p>The fact that those who moderate do so opaquely - with non-consistent guideline
interpretation. With potential implicit bias and little public accountability.
Governance, as we say in the crypto-sphere, doesn't seem to be a meaningful
keyword.</p>
<p>But OK - what has any of this to do with EIP-4973 and Account-bound tokens? And
yes, at least for now, this post has been overfocusing on the <strong>problems</strong> and
not a solution. It's a principle I work by called &quot;problem-driven development,&quot;
and so now, since we're sufficiently informed, let's discuss a potential
solution.</p>
<h2>Thesis first: &quot;Broad commoditization of infrastructure creates newfound equity&quot;</h2>
<p>A thesis I have been pursuing with
<a href="https://rugpullindex.com">rugpullindex.com</a>, the Neume Network, and now also
with Account-bound tokens is how infrastructure provision and making it broadly
available to any players in a market can produce a wealth-transfer or generally
broader equity. With rugpullindex.com I've seen this because others built
mobile apps based on my API. With Neume Network, we'll see this effect emerge
as developers are capable today of replicating the
<a href="https://musicos.xyz">musicos.xyz</a> experience by using our GPL-3 licensed Neume
Network crawler or by simply using our data set at
<a href="https://github.com/neume-network/data">neume-network/data</a>.</p>
<p>As pioneered by Sabre and Amadeus in the airline industry, by commoditizing and
co-owning the infrastructure - namely the database that holds all future
flights - similarly, we're able to create competition around the supply of good
music NFT metadata offerings: And we postpone what Ben Thompson calls
&quot;<a href="https://stratechery.com/">Aggregation Theory</a>,&quot; an effect of profit-seeking
and monopolizing a market's supply side.</p>
<p>But enough with the theory: Simply put, what the above means is that EIP-4973
can make the data structure for consensual music curation available to anyone
with a wallet using account-bound tokens to express agreements on-chain. And it
simultaneously removes relevancy from the big curation platforms like sound.xyz
and catalog. So how would it work?</p>
<h2>Consent-based Music Curation using Account-bound tokens</h2>
<p>See EIP-4973 is a truly peer-to-peer contract in the sense that no single
individual or group has different privileges when interacting with the
contract. This isn't true for many contracts, by the way! Most EIP-20 contracts
implement permissioned minting, and so do EIP-721 tokens to preserve artificial
scarcity.</p>
<p>But EIP-4973 doesn't implement such hierarchical logic. It's flat, and instead,
for two addresses (EOAs or contracts), if both addresses provide a valid signed
message, then an <code>Agreement</code> over a document hosted at <code>string tokenURI</code> may be
etched to the chain.</p>
<p><img src="/images/curation-10.jpg" alt=""></p>
<p>That storing of a consensual agreement can be done two ways - and surprisingly,
it's NOT done through minting, but instead, we implement two bulky functions
called <code>function give</code> and <code>function take</code>. Here's a drawing of how they work.</p>
<p><img src="/images/curation-11.jpg" alt=""></p>
<ul>
<li><code>from</code> can <code>give</code> an ABT to <code>to</code> and is the sender of the transaction.</li>
<li><code>to</code> can <code>take</code> an ABT from <code>from</code> and is the transaction's sender.</li>
</ul>
<p>I'm linking the reference implementation code snippets below in case you want
to dive deeper. But for continuing to read this post, it's not necessary to
understand them deeply.</p>
<ul>
<li>
<p><a href="https://github.com/rugpullindex/ERC4973/blob/1c8d612d78739c2f7bd8cae95be808bcbf3a1cae/src/ERC4973.sol#L78-L88"><code>function give</code></a></p>
</li>
<li>
<p><a href="https://github.com/rugpullindex/ERC4973/blob/1c8d612d78739c2f7bd8cae95be808bcbf3a1cae/src/ERC4973.sol#L90-L100"><code>function take</code></a></p>
</li>
</ul>
<p>To clarify: The result of both of these functions is that a new token is minted
to <code>address to</code>: And their validation method is similar. Namely, both need two
valid signatures of <code>string tokenURI</code> from <code>address from</code> and <code>address to</code>.
Their difference is who represents the active part on-chain and who just
provides a signature. The figure below outlines the difference in both cases:</p>
<p><img src="/images/curation-12.jpg" alt=""></p>
<p>For <code>function give(address to, ...)</code>, <code>address from</code> must wait for <code>address to</code>'s signature to arrive and can only then send the transaction on-chain to
cement their agreement. Whereas in the case of <code>function take(address from, ...)</code>, <code>address to</code> takes the ABT from <code>address from</code> and hence has to include
their signature.</p>
<p>So these primitive functions have been deliberately called &quot;give&quot; and &quot;take.&quot;
It's because, in the World of Warcraft universe, where Soulbound items were
first implemented and since this in-game metaphor has become EIP-4973's
baseline, players could also &quot;give&quot; and &quot;take&quot; certain items.</p>
<p>In case a player completed a quest, the NPC often &quot;gave&quot; the player items: But
it was at the player's discretion to preserve them in their bag. Likewise,
although this challenges the &quot;consent&quot; metaphor, players could &quot;take&quot; items
from a dragon or firelord they had slain earlier.</p>
<h2>On-chain consent agreements for music NFT curation</h2>
<p>So going back to our initial story of how EIP-4973 Account-bound tokens can
help the music NFT industry's curation problem, here's what I'd like to say:</p>
<p>Right now: It is a one-way street where artists are practically dire for having
their tracks minted on popular curation websites. It's also a problem as the
infrastructure for curation is proprietized - so assuming this moat strengthens
further over time: It'll also negatively raise the bar for unestablished
artists to publish.</p>
<p>And we must acknowledge that the above-mentioned dynamic won't go away
overnight too. Instead, given our thesis that commoditizing infrastructure can
break markets, I think by using EIP-4973 for consensual on-chain curation of
music NFT playlists, I think we could achieve more equitable outcomes if more
people could become curators.</p>
<p>It is because standard adoption can initially level the playing field of access
to attention. Instead of one website being able to promote their tracks and
build potentially proprietary solutions, with EIP-4973, we have a primitive
that can express bidirectional agreements between curator and artist.</p>
<p><img src="/images/curation-13.jpg" alt=""></p>
<p>And sure, we could implement contracts where the curator is in charge of
administering the listing. But I think that's an unwise design, given how
reproducible content is curated nowadays. Rather, if the authors and the
curators mutually agreed on which tracks end up on what lists - I believe this
would carry a higher signal when compared to curator-only feeds.</p>
<p>Additionally, by making the curation infrastructure usable by anyone, a greater
degree of competition would improve outcomes and reduce the risk of a single
party monopolizing.</p>
<p>Wide-scale adoption of this standard would incentivize indexers and other NFT
infrastructure providers to implement its interfaces and make the on-chain data
symbolizing publicly-visible agreements broadly available.</p>
<p>If you're deep in the traditional music industry, you probably know how
complicated moral rights can get - and here's a standard that can potentially
solve some of this domain's questions.</p>
<p>So how would this end up looking? Here's a sketch:</p>
<ul>
<li>Similar to <a href="https://presentmaterial.xyz">presentmaterial.xyz</a>'s on-chain <a href="https://etherscan.io/address/0x6422Bf82Ab27F121a043d6DE88b55FA39e2ea292#code">curation contract</a>, we should come up with a standard agreement JSON template that the curator and artist can collaboratively sign.</li>
<li>The active part in the agreement (who sends the transaction), would then upload the agreement on a network like IPFS, where the JSON's context-addressability is guaranteed</li>
<li>They'd send over the agreement to the passive party where it gets signed</li>
<li>Once the signature is back at the active part: They can start etching the agreement on-chain. The smart contract and the Ethereum consensus algorithm check the validity of both parties' signatures, and if they're valid, the Account-bound token gets emitted, and an <code>event Transfer(address from, address to, uint256 tokenId)</code> is sent.</li>
</ul>
<p>Now, it'd be great if, additionally, a &quot;curation release signal&quot; could be
emitted that clarifies to music NFT indexers when a new song is released. And
that could happen after having reached an agreement between the artist and
curator.</p>
<p>Remember, minting an NFT is not laying claim to license your work permissively.
An artist retains all copyright, and so technically speaking, unless there's a
specific agreement put in place, reproduction of a music NFT is simply a legal
grey zone many seem to tolerate for now.</p>
<p>Hence this whole essay on chainifying two parties' agreement - Since the
<code>string tokenURI</code>'s content would detail the conditions under which curator and
artist have decided to collaborate to release the NFT.</p>
<p>For the curator, there's no clarity on whether they're allowed to reproduce the
artist's song on their site. And for the artist, there's transparency regarding
what can be done with their work and what can't.</p>
<p>So that's it, that's why EIP-4973 Account-bound tokens could drive curation in
the music NFT industry. Anyways, this is a very long post, so I'd now like to
start concluding it.</p>
<h2>How EIP-4973 can be used for music NFT curation</h2>
<p>In this post, we're documenting the problems of the emerging music NFT industry
and how the aggregation of music NFT supply creates suboptimal outcomes for
independent artists. Our thesis is that well-curated media content is useful
to anyone but that it can also easily lead to power abuse.</p>
<p>To combat this potential negativity and to &quot;break the curation market,&quot; our
thesis is that the commoditization of infrastructure can help level the playing
field. And specifically, it means that by mainstreaming consensual content
curation, a new ecosystem of dApps could emerge that serves curators and
artists alike.</p>
<p>EIP-4973 Account-bound tokens are the basis for expressing consensual
agreements on-chain. Their lack of permissions in minting makes them ideal to
be applied broadly and in a true peer to peer fashion.</p>
<hr>
<p>Tim</p>

    ]]>
      </content>
    </entry>
  
    
    <entry>
      <title>Why neume&#39;s only tightly-coupled dependency must be an L1</title>
      <link href="https://neume.network/posts/why-neume-s-only-tightly-coupled-dependency-must-be-an-l1/"/>
      <updated>2022-10-21T00:00:00Z</updated>
      <id>https://neume.network/posts/why-neume-s-only-tightly-coupled-dependency-must-be-an-l1/</id>
      <content type="html">
        <![CDATA[
      <p>Recently, I've heard the efficient optimizers' voices more loudly again. They come to the neume project, saying: &quot;Oh, but you're downloading all block event logs from an Ethereum full node only to filter them down to respective music NFT events.&quot; And: &quot;man, that's such a waste of time; why don't you just use our API or this subgraph here.&quot; And clearly, they have a good point: If instead of focusing our efforts on becoming autonomous with only using an ETH node as a hard requirement, we had concentrated on horizontally integrating with music NFT subgraph providers, then customers of neume like music-os would now have many more tracks for their users, and potentially we'd also have less code to maintain.</p>
<p>Additionally, I think it'd also mean that we'd save tons of money on cloud server costs, running infrastructure, and we could also maintain a much smaller team.</p>
<p>In fact, when I tell others that we're &quot;reinventing&quot; parts of the graph protocol, they almost sound offended and start asking very skeptical questions as to why we've decided to go down that path. So please let me outline some reasons why we've tried to steer clear of any hard dependencies for neume other than an L1 node, namely Ethereum mainnet.</p>
<h2>&quot;Not Invented Here&quot; Syndrome</h2>
<p>Many software engineers will immediately point to a key fallacy in our domain, namely that of the &quot;Not invented here&quot; syndrome - what I almost make out to be a conspiracy theory of Saas companies secretly plotting their way into developer culture.</p>
<p>It states that teams tend to &quot;chauvinistically&quot; avoid buying products or services with external origins. It is usually a pejoratively used term by those who favor externally originated services.</p>
<p>And while there are a million arguments to be made about the improved scalability, modularity, separation of concerns, and economies of scale FOR using externally originating services, in this post, my goal is to make it abundantly clear that I see it as critical to almost entirely steer clear from these purposefully addictively solutions as much as possible in the neume case. And I want to say: You may not be able to fully comprehend this argument if you've never been in my shoes and proverbially &quot;sat downstream of a service provider.&quot; But let me try to explain my case anyways.</p>
<h2>Adoption comes with future responsibilities</h2>
<p>There's a reason why we use the term &quot;adoption&quot; when we're talking about adding new dependencies to our software. Speech-manipulative, I've actually tried using the term &quot;adoption&quot; over &quot;addition&quot; in this context as it more precisely carries the notion of responsibility that comes with additional dependencies. &quot;Addition&quot; may suggest that &quot;subtraction&quot; is commutatively possible (read: &quot;easily&quot;). But that's not precisely what a react.js developer would tell you about their front-end stack and the respective lock-in. They'd say that subtracting isn't the inverse of addition, and so while generally &quot;integrating react&quot; may be reversible - it's not as easy as &quot;removing all react.js specific code previously added.&quot;</p>
<p>And so, rather, I think the term &quot;adoption&quot; is more appropriate here as adding a dependency then also means &quot;taking care of it in the future.&quot; And for react.js, that means also following their kind-of-crazy roadmap towards ever-ongoing front-end &quot;innovation.&quot; It also means being &quot;OK,&quot; with Facebook pivoting to &quot;Meta.&quot; And that although you initially had an idea of where the project may be heading - that over time, you stop having this sound understanding and that your supposed change sets towards adjusting the project to your use case may also be rejected upstream.</p>
<p>So adopting a dependency is anything but straightforward, and I'd actually argue that it can kill or strengthen your software product immensely. And let me be clear: this is not some theoretical example that happens on the fringes of the react.js roadmap: We have the famous &quot;pejorative&quot; fallacy in our software developer language because some are vehemently pro while others aren't. And it is also where I'd like to point out Charlie Munger's fat-tony quote, namely:</p>
<blockquote>
<p>Show Me the Incentive, and I'll Show You the Outcome</p>
</blockquote>
<p>It's those that argue for the negativity of &quot;Not invented here&quot; that have something to sell - while it is those that see it skeptically who have been burned.</p>
<h2>Control is power</h2>
<p>And this leads me to a simpler but first-principle-based conclusion of this dilemma. Yes, on one side, we're potentially wasting time &quot;reinventing the wheel,&quot; and &quot;absolutely,&quot; we'd be faster and more cash efficient by &quot;just&quot; using turn-key solutions to build neume.</p>
<p>But, on the other hand, at least personally in my career, I've come to observe the immense power of having control over the software and how it's being run. Control is power, control is money, and retaining control is compounding future power and cash flows. And although these are just a few words in sequential order, they couldn't be more significant in the context of open source or, generally, software development.</p>
<p>Let me ask you: Have you recently seen Apple's announcement to add consent tracker warnings in front of all app dialogs that mine a user's data? Have you seen what that did to Facebook's stock price? And do you realize that this may lead to Facebook's unheard-of pivot into the metaverse? Yes, that's right - control is everything: Billions of dollars if you want. And for Facebook and its bullies (the operators of Android and iOS), this is just the end of a year-long fight in which Facebook also attempted to launch its own phones for control and so on.</p>
<p>But my anecdote on this topic is maybe a bit different, and it has to do with my previous project rugpullindex.com, where the problem was of similar nature: And it's simply that sitting downstream of a busy upstream river &quot;pollutes the water unreasonably&quot; that it may end up affecting the product.</p>
<p>So much so that you may need to &quot;begging for upstream changes&quot; or that you're staling to innovate given properties like &quot;water quality,&quot; quantity, or other unforeseen diplomatic issues. It can lead to a project's failure or the necessity to take the entire infrastructure, rearchitect it and start from scratch elsewhere.</p>
<h2>Neume's origin story is us agreeing with the &quot;Not Invented here&quot; syndrome</h2>
<p>When I started neume, it was very much rugpullindex's crawler 2.0. A re-architecture away from the graph protocol, steering clear of implementing platform-specific services, only hard-coding the Ethereum node, and also not using any fragile SaaS offers &quot;to speed up and simplify&quot; things. I had to learn the hard way: By bug reports waking me on Sunday mornings, by endless discussions and frustration with upstream maintainers - by getting burned out.</p>
<p>With the neume network, I'm confidently giving away these key lessons within its architecture. And I'm also committing myself to not repeat my past mistakes by becoming addicted to software as a service middlemen.</p>
<p>We've built neume with composability in mind. It's free software, and technically it doesn't really &quot;run anywhere.&quot; It's credible neutrally constructed, and I'm holding myself accountable for the relationship that it maintains with everything using it. Neume should be like Linux: You may regret using it because it won't function well all the time - but you should never regret adopting it because you find out later that its maintainers are playing a power game for the bucks in your wallet.</p>
<p>And that's why we're steering clear of any major dependencies but Ethereum mainnet or other potential L1s. It's because this extractive property of software services wanting to monetize is potentially transitive, meaning that if we were to integrate, e.g., the graph protocol, and they'd be &quot;turning on monetization,&quot; then that'd affect us too and we want to avoid that.</p>
<hr>
<p>Tim</p>

    ]]>
      </content>
    </entry>
  
    
    <entry>
      <title>On the importance of permanence and alegality of digital art</title>
      <link href="https://neume.network/posts/on-the-importance-of-permanence-and-alegality-of-digital-art/"/>
      <updated>2022-10-25T00:00:00Z</updated>
      <id>https://neume.network/posts/on-the-importance-of-permanence-and-alegality-of-digital-art/</id>
      <content type="html">
        <![CDATA[
      <p>It was a moonless night, and the three of us were sitting on a desk facing a wall, all eating his leftover egg salad with bread and hot sauce.
I mean, we were trying to eat that - but really, we were also trying not to get our hands too dirty, considering the mission we were on.</p>
<p>In the process, one of them had taught me the basics of <code>xargs</code> - or at least they were trying. And so, using <code>curl</code>, we sequenced through the natural numbers API we had once architected - hoping to rescue what remained.</p>
<p>I don't know if it was the beer or the egg salad - but something made us feel triumphant, although it would turn out that we had failed.</p>
<p>I mean, our efforts were not totally without effect, and so we were indeed able to back up some of the data. But in the grand scheme of things, we failed - because we didn't back up the artists' manifestations and because, years later, the metadata turned out to be useless.</p>
<hr>
<p>This, my friends, is the story of a failed startup and how some colleagues, now friends, tried to back up digital art. It's the story of ascribe and &quot;ascribed.&quot; And it's not fiction - What you just read is an actual account of a night we spent trying to back up data from an S3 bucket. Sadly though, we weren't diligent enough, and so when public access was revoked - almost all ascribe metadata but more importantly, all digital art files ended up being deleted.</p>
<p>But let's backtrack a second: In 2015, I started working as a front-end developer for a company called ascribe and what we did was registering digital art on the Bitcoin blockchain. Bitcoin because Ethereum had simply not been around yet. Digital art? Yes, really like a precursor to the modern-day NFT.</p>
<p>It were the early days, and browser plugins like Metamask didn't exist yet - but our idea was not uncensorable media. Instead, it was to decentralize digital art's ownership layer and make it ownable like you could own a Bitcoin.
And we ended up doing an OK job on that as the SPOOL protocol is still accessible through the blockchain and so technically, ownership can still be tracked and viewed.</p>
<p>But then, in 2016, the early-stage startup ended up getting into funding issues as back then, having daily active web3 users wasn't a criteria VCs valued. And so this meant that we pivoted the company to build a scalable blockchain database called BigchainDB instead - ascribe as a product development focus was cast aside but remained online for quite some time post-pivot.</p>
<p>Still, and this is somewhat reasonable, when refocusing its attention, BigchainDB Limited eventually decided to shut down ascribe, and unfortunately, they took down most of the art too.</p>
<p>So that story at the beginning of this moonless night, that's from a moment shortly before ascribe's official shutdown date when, I think, I wasn't even working there anymore, but we still felt compelled to save what the artists had uploaded.</p>
<p>Today, I felt motivated to share this story publicly as I think it needs more recognition from those contributing to the NFT space. When NFTs popped in 2021, some of the OG's narration was on restoring ascribe and its pre-historical art.
I and others were asked: What was ascribe? What were the artworks? How can I access them, and are there any archival or restoration projects?</p>
<p>The sad story is: We didn't have answers. In fact, we tried getting together on GitHub, and we did some reverse engineering on the open-sourced backend.
With a restoration project we founded called &quot;ascribed,&quot; we thought: Maybe it's possible to re-instantiate ascribe as an NFT-native platform by migrating the SPOOL protocol stored on Bitcoin over to Ethereum.</p>
<p>But my frank assessment is that it's going to be close to impossible, and potentially, that I'm now also OK with that.
It's because I'm seeing some other good projects embodying the spirits and visions of ascribe - of making digital art permanent, to archive it, and to fundamentally alegalize it by using crypto-native protocols.</p>
<p>Today, seven years later, ascribe is an integral part of the space's story and a stark reminder that, contrary to what our parents kept telling us, namely to cautiously use the internet as it never forgets - the internet actually has forgotten a lot of important stuff, for example, the ascribe library.</p>
<p>So I want to take this moment and motivate two critical aspects of digital art and media platforms that we should strive to implement: It's (1) permanence and (2) alegality.</p>
<p>Permanence is the temporarily independent and content-integer accessability of content. IPFS implements permanence through content-addressability, hence creating integrity through file hashing and by making everyone capable of replicating the said file. The Internet Archive makes past websites available through the Wayback Machine, creating a permanent web of all versions throughout time. Bitcoin and Ethereum keep all ledger data available to all network peers so as to enable peers to recompute the entire accounting history and preserve the network's integrity.</p>
<p>Alegality is a subtractive measure to decrease reliance and dependency on institutional law. Alegality means putting a minor emphasis on legality - not in opposition to legality (as this would be &quot;illegal&quot;) but rather as to conceptually solve legal problems without the law being a relevant aspect of the solution. Bitcoin solves the double spending problem by building an uncensorable permissionless consensus network that never requires the intervention of legal recourse. TheDAO's white hat hackers settled the recourse of the then-defunct smart contract. And NFTs solve the problem of attribution and monetization of art through on-chain registration financialization and not through copyright defense.</p>
<p>Permanence and alegality are some tools of Jaya Klara Brekke's hacker engineer towards creating autonomous digital policy. The story of ascribe shows us the importance of autonomy, alegality, and permanence - as had we treasured those aspects, then more of its art would be available today.</p>
<p>Tools of the hacker engineer are to be applied with care but are vitally important to understand, practice, and implement to preserve on-chain music, art, and culture.</p>
<hr>
<p>Tim</p>

    ]]>
      </content>
    </entry>
  
    
    <entry>
      <title>Taking neume towards escape velocity</title>
      <link href="https://neume.network/posts/taking-neume-towards-escape-velocity/"/>
      <updated>2023-03-08T00:00:00Z</updated>
      <id>https://neume.network/posts/taking-neume-towards-escape-velocity/</id>
      <content type="html">
        <![CDATA[
      <p><em>This blog is intended to give some clarity on short and medium term areas of prioritisation of neume development. It is a guide based on the author (Dan Fowler) ’s best view at this time. Development may take different paths depending on the wants and needs of the neume community.</em></p>
<h1>Summary</h1>
<p>The goal of neume should be that it can hit “escape velocity”, defined as:</p>
<ul>
<li>Financial independence from one single party</li>
<li>Multi-party requirements informing the development roadmap</li>
<li>Compounding growth of developers and users of neume</li>
</ul>
<p>All three of the above criteria strongly relate towards pushing onwards from the incubation that HIFI Labs has generously provided to neume over the past year.</p>
<p>Successful transition to escape velocity will see self-perpetuating growth of the project, building on the social scalability foundations that we have already laid.</p>
<h1>Financial independence</h1>
<p>To date, neume has been solely financially supported by HIFI Labs. The next stage of neume will be built upon more varied funding.</p>
<p>To this end, despite great progress over the past couple of years in the development of DAO methodology and infrastructure (e.g. Nouns Builder), I personally don’t think that this is the right model for neume at this time.</p>
<p>While there is clearly a lot of cross-over between DAOs and Open Source projects, my view is that a project like neume shouldn’t be “owned” by any distinct parties, and funding through some form of token creates divergent incentives. The values and social contract that we started neume under; social scalability, credible neutrality, open infrastructure; require the project to be “unowned”, permissionless, and free (as in libre).</p>
<p>It would probably be the easiest route to spin up some kind of token, but the medium term implications are severe if motivation turns to token value, which is ultimately inevitable.</p>
<p>So, if we discount tokens as an option, then we can focus on the following routes towards financial independence…</p>
<h3>1. Grants</h3>
<p>Grants from independent bodies (such as gitcoin) or aligned projects are a likely source for some funding that neume should pursue. They can provide supplementary funding free of restrictions.</p>
<p>However, there are challenges with the grants approach, especially those applied for via an independent programme. There is usually significant front-loaded effort, writing bids and cutting through the noise of other applications. Funding can often be delayed, and require matched finance.</p>
<p>For these reasons, I think that the optimal approach for neume in the short to medium term is to engage with larger projects in the music &amp; blockchain and web3 open source development communities, and seek support.</p>
<h3>2. Donations</h3>
<p>Similar to grants, though even more unrestricted, donations are a viable option for supplementing neume’s financial independence, albeit unlikely to provide the foundation for funding compared to other routes.</p>
<h3>3. Project development contribution</h3>
<p>Not specifically a route towards financial independence, but a very important accelerant towards escape velocity and beyond for neume will come through development contribution provided by affiliated projects.</p>
<p>The purpose of open infrastructure and composability is to alleviate the need for parallel development within organisations, a core issue in traditional industries. And thus, our aim at neume should be for it to be attractive for projects to develop within it, rather than in parallel to it.</p>
<h3>4. Not-for-profit service company built alongside neume</h3>
<p>A more adventurous, but ultimately sustainable, route towards financial independence for neume will be to start a service company alongside neume that funds the project out of revenue that it generates.</p>
<p>Examples of services that could be built: platform integrations, NFT database caching and provision, rights and authority database, NFT accuracy insurance, etc.</p>
<p>In a well functioning ecosystem, a not-for-profit service company run by neume would be in competition with other companies for the services that it provides, and ultimately the majority of which would become commoditised into the network over the time.</p>
<p>And thus, this funding route can essentially be seen as building a business around elements that are not yet ready to be ingested and open-sourced by the protocol, and then continuously developing the product line as previous elements are commoditised.</p>
<h1>Multi-party development requirements</h1>
<p>neume’s development roadmap to date has been solely driven by HIFI Lab’s requirements for musicOS.</p>
<p>This has been extremely useful to focus our prioritisation while establishing the project over the first year, but reaching escape velocity requires a more varied set of use cases and needs to form the network into something that is useful and used by the entire ecosystem.</p>
<p>Development requirements will come from two key sources - projects that are building music NFT distribution platforms, and projects that are building music NFT experiences.</p>
<p>neume’s priority to date has been to focus on the few, largest, music NFT distribution platforms, Sound and Catalog (and Mint Songs, and Noizd), which provided the highest value for development effort while establishing the architecture. Moving forwards, we are looking towards the Lens and Decent ecosystems as the potential next additions, as well as “custom contracts”, for example those released through factory contracts from Zora and Manifold.</p>
<p>However, I am aware that this prioritisation remains driven by myself, and HIFI Labs, and may not in fact reflect the needs of the ecosystem at large.</p>
<p>Bringing projects on to neume will not be an overnight victory, and should be seen as a constant endeavour, though it is hoped that there will at some point be a break point where it becomes the de facto infrastructure to build on, and ship to. We should do everything that we can to make neume this.</p>
<h1>Compounding user and developer growth</h1>
<p>A product of the previous escape velocity conditions, but likely the most important of all. neume will be successful once projects (users) and developers using and shipping to it are growing at a steady and then increasing rate.</p>
<p>There are probably reward mechanisms that we can build to encourage this behaviour, however, as with the comment above about tokens, I am personally cautious of disguising genuine active users for those more financially minded.</p>
<p>This area is something that we should develop going forwards. As it stands, we have github commits and open office attendance as measurable indicators, but we should think about more comprehensive metrics to understand how active the project is becoming.</p>
<h1>Managing neume</h1>
<p>A final section to discuss, though not directly a condition of escape velocity, is the management of neume the project itself.</p>
<p>As thing stand I am somewhat the default director of proceedings, but as the above elements grow  we may need to think about more democratic approaches.</p>
<p>With that said, my personal approach to governance is of simplicity, only where requirement, and subtraction rather than addition. One of my frustrations with recent developments within DAOs has been the over-complication of decision making (usually to justify a “governance token”).</p>
<p>For now, I would propose that we continue management of the project as it is, but remain alert to where we may need to alter things due to there being friction or deviation from our values.</p>
<p>A specific element that is worth highlighting though, in context especially to the funding options above, is that some will likely require the establishment of a treasury, and the accompanying legal and financial requirements that come with that.</p>
<p>For this, I suggest that we would likely want to establish a “neume LLC” (or equivalent), which could then be the vehicle for the “not-for-profit services company” detailed above.</p>
<hr>
<p>Dan</p>

    ]]>
      </content>
    </entry>
  
    
    <entry>
      <title>Project update - April 2023</title>
      <link href="https://neume.network/posts/project-update-april-2023/"/>
      <updated>2023-04-10T00:00:00Z</updated>
      <id>https://neume.network/posts/project-update-april-2023/</id>
      <content type="html">
        <![CDATA[
      <p>Hello all. It's been a busy few weeks.</p>
<p>This project update represents a move towards more regular and higher quality external communication. There's a lot going on and it's important that we celebrate the wins as well as make it as easy as possible to stay up to date with the project.</p>
<h1>neume update: Highlights</h1>
<ul>
<li>Secured 3 months grant from Lens to build integration into the Lens ecosystem</li>
<li>Moved core project communication to <a href="https://github.com/orgs/neume-network/discussions">github discusssions</a></li>
<li>Community continues to grow, with a focus on cross-open source project collaboration (e.g. with <a href="https://www.public---assembly.com/">Public Assembly</a>)</li>
<li>Continued exploration of grant opportunities</li>
</ul>
<h2>Lens</h2>
<p>As I stated in my last post through this blog, <a href="https://neume.network/posts/taking-neume-towards-escape-velocity/">Taking neume to escape velocity</a>, we have three key goals over the next few months:</p>
<ul>
<li>Financial independence from one single party</li>
<li>Multi-party requirements informing the development roadmap</li>
<li>Compounding growth of developers and users of neume</li>
</ul>
<p>The opportunity to build into the Lens ecosystem hits across all three objectives, supported by a very kind grant.</p>
<p>Lens offers specific questions, not less in that it challenges some of our previous architecture decisions - the use of &quot;publications&quot; (and &quot;pubID&quot; identifiers) vs. our current build of building around &quot;tokenID&quot;s for example.</p>
<p>The first month of our Lens engagement will focus predominantly on generalising the neume architecture, moving into the development and implementation of Lens specific strategies to also focus the crawler towards Polygon and Lens contracts.</p>
<p>Additionally, we are thinking hard at the moment around indexing &quot;curation&quot; and &quot;agreements&quot;, with Lens offering the perfect environment in which to explore some ideas.</p>
<p>We are currently discussing the Lens engagement in depth in a github discussion <a href="https://github.com/orgs/neume-network/discussions/15_">here</a>.</p>
<h2>Communication</h2>
<p>As alluded to above, we decided last month that we had hit the limit in what discord could provide the community in terms of effective communication and sought to find a more suitable alternative.</p>
<p>After much research, looking at discourse and other options, we decided as a group that github discussions hits the mark in terms of well structure topics, open-ness, and closeness to the code.</p>
<p>We are in the process of fully moving over to this new home for communication. If you have any questions, thoughts, feelings, emotions, or otherwise, then please come and join us <a href="https://github.com/orgs/neume-network/discussions">here</a>!</p>
<p>As part of this move we have also moved our weekly open office to google meet, which is open to anyone to join. <a href="https://calendar.google.com/calendar/event?action=TEMPLATE&amp;tmeid=NXA1aTQwMDNkYzgzZWw0aGNqNGRrdTRqdTBfMjAyMzAzMjNUMTUwMDAwWiA4MzhiNzE1NThiZjM4OTRlNWYzZTZhMTI1MzFiODIzMjZhZGFiN2E0NTZjZTQxYTU0ODBjMjY2YTk0OTUwOGVlQGc&amp;tmsrc=838b71558bf3894e5f3e6a12531b82326adab7a456ce41a5480c266a949508ee%40group.calendar.google.com&amp;scp=ALL">Add to your calendar</a>.</p>
<p>Finally, I know that these updates are a useful addition to interested parties that don't have the time to engage on a day-to-day, so I will be utilising the blog a lot more going forwards. I promise.</p>
<h2>Community</h2>
<p>The community building neume continues to grow, both from a shipping and discussion perspective. A key highlight from our last few open office sessions being the engagement of a number of guys from the Public Assembly community, special shout out to KD!</p>
<p>The beauty of open source projects is that it is not only the code that is open and composable, but the people surrounding it also. I find the pursuit of common edges personally very exciting and can't wait to see how this develops going forwards.</p>
<p>To facilitate a group group of active participants, we decided as a group to expand the project maintainers, promoting <a href="https://github.com/il3ven">il3ven</a> and <a href="https://github.com/neatonk">neatonk</a> to join <a href="https://github.com/djfnd">myself</a> and <a href="https://github.com/reimertz">reimertz</a> as stewards of the project.</p>
<p>At the very core of the values that we are building neume towards is the belief that the best open source projects are open to anyone to join, at whatever level they wish, and to pursue whatever interests them. The net summation of our efforts defines the overall output of neume. So, please join us. We want to hear your thoughts.</p>
<h2>Grants</h2>
<p>As mentioned, in this blog and the one previously, financial independence for neume remains my number one priority. Aka, it's grant szn bby.</p>
<p>I am thinking through greater plans of public goods funding for the wider onchain music ecosystem, and so if anyone else is interested in this topic then please <a href="https://twitter.com/dan_djfnd">hit me up</a>.</p>
<p>In the meantime though, our short-term focus will be on augmenting the grant that we have received for building into the Lens ecosystem with putting together a strong application for the incoming Gitcoin &quot;Beta&quot; round.</p>
<p>Gitcoin rounds operate on &quot;quadratic&quot; match funding, and so we will be putting together a marketing campaign for neume alongside the bid to build as much interest as we can. Please keep an eye out for this and support us wherever you can.</p>
<hr>
<p>Dan</p>

    ]]>
      </content>
    </entry>
  
    
    <entry>
      <title>Project update - May 2023</title>
      <link href="https://neume.network/posts/project-update-may-2023/"/>
      <updated>2023-05-29T00:00:00Z</updated>
      <id>https://neume.network/posts/project-update-may-2023/</id>
      <content type="html">
        <![CDATA[
      <p>Hello all. Time for an update on activity at neume.</p>
<p>May has been spent predominantly on building out indexing capacity for <a href="https://www.lens.xyz/">Lens</a>. We have now completed one third of the three month grant that we were offered and done a lot of thinking required to deal with the requirements of the Lens ecosystem.</p>
<p>In addition to this, with an eye on the future, we have been exploring the “network” aspect of “neume network”. At this stage we are thinking through how users could use neume to index for specific queries (rather than having to crawl for the whole dataset). This is likely going to be a key element of research and development going forwards, with some exciting work going towards how different neume nodes should communicate and sync with each other.</p>
<p>Finally, we also ran a <a href="https://explorer.gitcoin.co/#/round/1/0x12bb5bbbfe596dbc489d209299b8302c3300fa40/0x12bb5bbbfe596dbc489d209299b8302c3300fa40-20">very success gitcoin round</a>, in the Open Source Software category. At the time of writing the matching calculations still need to be ratified, but it appears that we will be in line for c.$600 in addition to the c.$2,000 raised from donations. Thank you so much to everyone that contributed. We have an <a href="https://github.com/orgs/neume-network/discussions/28">open discussion</a> in our github forum right now to consider where the highest value use of those funds will be, please feel free to contribute to this discussion!</p>
<h2>Operations</h2>
<ul>
<li>We have two active grants on-going, from Lens and Gitcoin, which have been 100% allocated towards development activity to date</li>
<li>Our current proposal for month 2 of the Lens grant allocates some grant budget (20%) towards business development activity in the Lens ecosystem</li>
<li>Our community conversation has now fully migrated to the <a href="https://github.com/orgs/neume-network/discussions">neume github discussions forum</a>, which is proving very effective to maintain open visibility as the project grows</li>
<li>We have maintained the weekly cadence of our Open Office calls, though some weeks this has been done asynchronously due to irl limitations; for minutes from each, see the corresponding thread in our discussions forum</li>
</ul>
<h2>Development workstreams</h2>
<h3>1. Generalise neume architecture to facilitate the indexing of Lens</h3>
<p>We have made good progress on this stream, writing strategies for Lens and testing how this work with the current neume architecture. This has resulted in an updated schema, as defined within this <a href="https://github.com/neume-network/schema/pull/60">PR</a> which has been merged into the codebase.</p>
<p>Inevitably we have met some expected challenges with regards to scale, there are of course many more records coming through from Lens than the other contracts that we have been previously indexing. Which has triggered an <a href="https://github.com/orgs/neume-network/discussions/24">interesting discussion</a> within the community around the best way to focus the indexer and filter results.</p>
<p>The discussion has culminated in three potential options:</p>
<ul>
<li>Crawl for known frontends using Lens API. This is the fastest but comes at the cost of decentralisation.</li>
<li>Crawl for known frontends using onchain events. This is slow (initial crawl will take 5-6 days to get upto speed).</li>
<li>Crawl for audio files. This is slow too.</li>
</ul>
<p>Our estimate is that there isn't much difference between 2nd and 3rd with respect to speed. The 3rd option is better because it will cover more area and opens up the potential for future collaborations with front ends.</p>
<p>So, we will start from the 3rd option and move towards 1st if needed.</p>
<h3>2. Move neume to new database structure</h3>
<p>After much discussion about the right database structure to output crawled data to, we have moved neume from levelDB towards SQL, as can be seen in this merged <a href="https://github.com/neume-network/crawler/pull/9">PR</a>.</p>
<p>In addition to this, we have started to look forwards towards the next version of neume where by we want to make it easy for new users to be able to run a node in an efficient and effect way (see discussion <a href="https://github.com/orgs/neume-network/discussions/29">here</a>). This is still an area of active research as we progress neume towards its future network state.</p>
<h3>3. Initial work into indexing based on an array of pre-determined wallets</h3>
<p>Starting out with the goal described, this stream has expanded into a neuIP to create a more generalised methodology for neume users to be able to index only for the data that they require (rather than everything).</p>
<p>The goal of this month's work was to conduct research in this area and then propose a neuIP, which can be seen here: <a href="https://github.com/neume-network/neuIPs/pull/15">neuIP-5</a>.</p>
<p>Next steps for this workstream are likely to include:</p>
<ul>
<li>Create a proof-of-concept implementation of the crawler with the proposed changes. This could highlight one or more of the use cases proposed in the neuIP (e.g. derived subsets focused on a block range or set of wallet addresses).</li>
<li>Introduce a second neuIP which builds on this by using Merkle Patricia Tries and subset schema identifiers for efficient subset reconciliation in neume.</li>
</ul>
<p>A specific outcome will be an updated schema and reference implementation which can be used to generate subset schema IDs and derive subsets via constraints. This would also aid discussion by making the proposal more concrete.</p>
<p>An additional area that we are keen to add to the neuIP-5 discussion are ways to link datums across related schemas, like tracks and NFTs. Alternatively, related datums can be embedded to simplify access. Ideally we could support both use cases and let node operators choose the trade-offs that make sense for their use case.</p>
<h1>Next month milestone targets</h1>
<p>Lens grant</p>
<ol>
<li>Get the Lens crawl up and running</li>
<li>Onboard front ends in the Lens community to neume</li>
<li>Refine and further develop the specification of neuIP-5</li>
</ol>
<p>Gitcoin grant</p>
<ol>
<li>Assess proposals and assign projects to the gitcoin grant allocation</li>
</ol>

    ]]>
      </content>
    </entry>
  
</feed>