Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Import ERC-721 token (NFT) Music Tracks from User's Wallet #23

Open
chrishobcroft opened this issue Aug 30, 2021 · 3 comments

Comments

@chrishobcroft
Copy link

chrishobcroft commented Aug 30, 2021

User Journey

This feature request is for a new user journey, described thus:

as a user of Odeon, I want to be able to connect Odeon with my Wallet, and show my ERC-721 tokens (NFTs) (audio tracks, playlists).

Odeon

Below is a screenshot of the existing Odeon music player app:

Screenshot_20210830-183319_Odeon

Music for the player is currently served from the device's own filesystem.

Proposed Architecture

Components

An architecture to enable this can include the following components:

  • WalletConnect is a protocol for connecting to Wallet Apps on a device. This allows a user to transact on an Ethereum Virtual Machine (EVM)-compatible blockchain.

  • Optimism is an EVM-compatible blockchain-based network, used for minting and transferring ERC-721 tokens (NFTs).

  • IPFS is a distributed file system, used for storing files, such as mp3 audio files, and JSON metadata files.

Approach

Odeon could:

  1. Connect with the wallet app on the user's device using WalletConnect
  2. Read / write ERC-721 token (NFT) data from / to Optimism
  3. Retrieve audio files and metadata content from IPFS
  4. Play audio
  5. (Advanced feature) to cache audio tracks on your device for offline playback.

Additional Thoughts

Implementation

This kind of functionality can very easily extend the existing excellent UX that Odeon already has.

For example, a "Connect Wallet" (step 1) option can live in the main Hamburger underneath "Settings", or even in "Settings". It need only require a few steps in the app to "Connect Wallet", and WalletConnect makes this veery easy!

Odeon Connect Wallet

Everything else can happen in the background... pulling in metadata and audio files (steps 2 and 3 above). It may perhaps need some extension in order to stream content from an IPFS gateway though.

As for playback (step 4), Odeon's existing audio player UI is more than capable of this.

For the advanced feature, a "Keep for Offline" checkbox for each track can live beneath "Add to playlist" and "Delete" in the options for each track:

Keep for Offline

"Delete" might need to be disabled for NFT audio tracks because it's not really possible to "delete" from IPFS.

Future Features

Future features could include:

  • Publish new playlists as NFTs to store in your wallet, or to send to your friends' wallets
  • Publish new original music as NFTs to send to music collectors.

Notes

I accept that this may appear a somewhat esoteric concept to propose. But I believe it to be based in a very sane context.

The world is very slowly coming to terms with jpeg NFTs, indicating clearly that gif, then mp3 then mp4 will follow.

NFTs for Music are emerging, as evidenced by Jonathan Mann's recent release "Right Click Save As".

Further, zero-knowledge rollup networks such as Optimism, Arbitrum and zksync are substantially increasing the capacity of blockchain networks, meanwhile reducing their cost of use.

And finally, IPFS is emerging as the default go-to storage for decentralised content and metadata, and while still maturing in some aspects, it represents a sustainable part of the architecture. This is especially true in light of the progress made by Filecoin project.

Credits

All the credit goes to you for reading all this. Bravo to you!

@chrishobcroft
Copy link
Author

It is also very interesting to consider this in the context of odeon-web.

odeon-web currently integrates into Spotify as the back end. Could be interesting to adapt this to a) connect wallet via WalletConnect, b) integrate into a user's music NFTs as the back end. Then users can play content through the browser, retrieved from an IPFS gateway.

It also gives food for thought re: a data model for a music NFT.

@chrishobcroft
Copy link
Author

Summary of my earlier private conversation with @mul1sh:

  • Target platform towards empowering musicians releasing their own original works. Give them a stage through which their music NFT releases can be played. Like a decentralised iTunes.

  • Research topics:

    • Android data storage permissions
    • Music NFT standards
    • Odeon codebase
  • Required lifting:

    • extending existing UI with a few minor mods
    • build wallet connect flow
    • reading data from an IPFS gateway and storing it to the device
  • Target an MVP to release for community testing.

  • Publishing platform needs to exist for mass usage. For user testing, aim to make contact with artists looking to release their own work independently. Maybe also link to Audius?

  • Potentially "subtract" Odeon's functionally for audio files stored on the device, and make it only use IPFS (and app's local cache from IPFS)

  • Publisbing playlists as NFTs can be a game changer for the world, especially on a L2 rollup

  • Proposed to launch a sidechain DAO to govern the project.

@chrishobcroft
Copy link
Author

Project has a Gitcoin Grant here: https://gitcoin.co/grants/3432/open-source-music-software-for-evm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant