Introducing: 🎉 JAMS MVP! 🎉

The moment is finally here, and it’s my utmost pleasure to announce to this amazing community the official release of JAMS Minimum Viable Product (MVP)!

But first..

Acknowledgments

Two remarkable community members, @loziniak and @safemedia, have created a stunning and functional cross-platform desktop application from the ground up. This app has been recognized as the JAMS MVP, which is an incredible achievement! :star_struck:

Huge personal thank you to you both @loziniak and cobite. Let’s keep kicking ass!

It’s worth mentioning that these rockstars also have their own individual Autonomi projects in the works. The Autonomi Community Token and Autonomi Browser Extension. Check them out!!!

A massive thank you to @maidsafe for the years of dedication as well as @bamboogarden and the Autonomi foundation for getting Autonomi to this point.

Technical Rundown

The focus was previously on a web based app but we recently shifted to a desktop approach in order to get something into the communities hands sooner without having to rely on a non existent browser. This comes with a lot of cool advantages as well!

JAMS MVP is cross platform, written in Rust and built with Tauri. There are bound to be some unforeseen bugs and we want to collect reports of such issues as well as general user feedback.

Currently we are using the now deprecated register data type but will very soon be adapting to the new upcoming data types and API release. Then the plan is to build out features for a full release, though the MVP provides some nice features out of the gate.

Back End - @loziniak

Only data we keep on the network are songs. Playlists and accounts are local. Keys for logging into Autonomi are derived from imported (or generated by app) EVM private keys, encrypted with a password and stored locally, so we don’t need to integrate MetaMask or any other wallet. For those, who feel uncomfortable with that, we advise having separate account just for JAMS and top it up from main account. In case of accounts created by JAMS, private keys can be exported to other wallets.

JAMS was started when Register datatype was existent, so we used it, and since new datatypes were introduced, we emulate Register with compound structure of Scratchpad, Transactions and Chunks. Our implementation differs from high-level official one in that our register entries can contain unlimited amount of data. This implementation is included in Safe lib.

We plan to implement dividing media files to be able to pre-fetch headers with metadata (file format and multimedia tags like title, artist etc.) for faster loading. The best option though would be Autonomi supporting data streaming, which we’d happily help with. Until then we’ll start with download-only operation.

Another feature we would like to have is a node integrated with the app binary, so the user automatically would earn tokens after registering, and hence contribute to network decentralization and resilience.

Front End , App Logic and Integrations - @safemedia aka Cobite

The application was created from scratch using the Tauri framework. For the frontend side of the stack used react & tailwind, along with shadcn for styling.

Some of the features we added are:

  • in-built wallet logic & UI

  • connection detection & routing updates

  • testnet connection

  • user management

  • account (create/recover/update/sign-in/sign-out)

  • upload/download interfaces with metadata

  • secondary navigation panels

  • audio player

  • animation effects

  • settings panel (console logger/network config/toast/status/storage)

  • playlist creation, updating & adding/removing songs

  • song creation & updating with drag-drop/browse

  • song/player scroller

  • favorites

  • translations

  • themes

(Upcoming) Full Release Features

  • MVP Feature Set +
  • Discover Page
  • Unverified Artist Profile
  • Follow
  • Tipping Button
  • Listener Metrics

After Eventual PirateRadio Integration

Read more about PirateRadio (previously JAMStand) here.

  • MVP + Full Release +
  • Verified Artists
  • Paid Plans (highly competitive)
  • Collectibles (NFTs)
  • Exclusive Content
  • Embedded Player
  • Curation Rewards
  • Streaming Payouts (highly competitive)
  • Partnerships

Beyond

  • Personal Soundtrack AI

@maidsafe, if Jams Player could be added to the AlphaNet for continuous developer testing, that would be much appreciated! @rusty.spork?

Final Words

Jams was once just a name and a napkin sketch of an anthropomorphic jam jar jamming on a guitar that I had drawn years and years ago. The solution born out of the need to ensure the safe and redundant storage of personal music files, along comes Autonomi (previously Safe Network). JAMS quickly evolved into a dream to solve much bigger problems within the music industry after conceiving JAMStand (now PirateRadio).

Someday, I think it will further evolve into a grass roots movement that could become a global revolution for artists but also for fans alike. Change is needed in how artists and fans engage, are compensated and incentivized, and even how we interact and relate to our music in the moment with a Personal Soundtrack. :wink:

With your ongoing support and word of mouth, we can grow Autonomi and this movement to unthinkable heights.

Come Join the JAMS Discord! There will be some additional focus there in the future. We’d like to know, what’s your jam?

Thank you everyone

Visit our site to Download the Latest Release:

Download Here For Now!

https://jams-webpage.pages.dev

51 Likes

Apologies this took so long folks!

No fault of the amazing developers, I take 100% responsibility.
I’ve been swamped lately but hope the community has fun uploading and importing files!!!

16 Likes

No apologies needed.

This has been your baby for so long. And now it is being birthed and congratulations are in order to you and your team

17 Likes

Congrats @Nigel for dedication and persistance! It was a pleasure working for you.

That’s probably just some dev work. I’ll see what I can do. @safemedia ? :wink:

12 Likes

Incredible work and dedication @Nigel!

Yessss!

13 Likes

Kudos for the hard work @Nigel @loziniak @safemedia !
Super excited to use it !

I just tried, onboarding was smooth.
Aaaand hate to be that guy, but can’t use the “Add network song” feature for now. After looking at the settings console, it seems it requires a format :

[ERROR] Download error: {“Common”:“Cannot read file data for tagging : No format could be determined from the provided file”}

But there is no field to input the format.

I tried with those songs from Community Public File Directory for example :
cc62ca079e8c3e649a134c0ff80da86c393ad16d6c40c002e0643afd7c51d55b - Deep_Feelings_Mix.mp3
c859818c623ce4fc0899c2ab43061b19caa0b0598eec35ef309dbe50c8af8d59 - BegBlag.mp3

9 Likes

If these were uploaded as Archives, this won’t work. Only data uploads. Perhaps try new --no-archive option?

edit: yes, these are archives:

ant analyze "cc62ca079e8c3e649a134c0ff80da86c393ad16d6c40c002e0643afd7c51d55b"
🔗 Connected to the Network                                                                         PublicArchive stored at: cc62ca079e8c3e649a134c0ff80da86c393ad16d6c40c002e0643afd7c51d55b
PublicArchive with 1 files
PublicArchive {
    map: {
        "Deep_Feelings_Mix.mp3": (
            dac40db90cf37832e6b00cbbbfe736df18208fdc27c80f8f0a95fcfbff31ace4,
            Metadata {
                created: 0,
                modified: 1733590368,
                size: 164243376,
                extra: None,
            },
        ),
    },
}
11 Likes

nice is all i have to say about this :slight_smile:

18 Likes

Awesome @Nigel :partying_face: :musical_notes:

Will you allow folk to upload podcasts like spotify?

10 Likes

Historic! Amazing. Brilliant!

8 Likes

Heartfelt appreciation @nigel, superb , we’re on our way!

8 Likes

Very cool!! Thanks for your steadfast faith and persistence.
You’ve been one of the real anchors in the community thru the process. Not to mention providing great music and help for the SAFE Crossroads podcast!! Much appreciated.

11 Likes

podcasts feels like the 2020’s heroin, like guitar hero was around 2010. :joy:

3 Likes

podcasts are just audio files so should already be possible.

Just create a playlist and add/upload the files to it :saluting_face:

7 Likes

I’m looking forward to playing with this.

Well done @Nigel, @loziniak and @safemedia :partying_face: :clap:

9 Likes

just checking - does jams create a global index/colony style data discovery already? :exploding_head: or am I my only listener if I create a podcast on jams now? :smiley:

3 Likes

Currently jams creates local playlists, which are simple collections pointing to the xornames. Which can be then exported and shared to people who wish to import them.

On the roadmap is the ability to store these playlists directly on the network, and just share the link to them.

But yeah for now you can export your playlist and send to to people via your friends apps webrtc channels I would think :smiling_face_with_horns:

6 Likes

Did you manage to upload songs at the first try, I have been trying a few times but no success yet.

1 Like

it takes ages but it gets there eventually

Now share your playlist so that everyone could import it! :slight_smile:

2 Likes