Relational Database for our shared Music Library

Dear all

My name is Marco, I am from Switzerland and I work in IT. I run Audirvana on an IMac, my Peachtree DAC/AMP is connected via async USB. Everything works like a charm.

I work on relational Databases all day long and enjoy the advantages that come along with them contrary to file based data storage.

So here is my proposition: We use a relational Database in the Cloud, AWS, where we store files as BLOB. We create a Rest API, where a user uploads his files, if the file is not yet in the database, we add it. Then we store that the user owns this song. If a second person uploads the same file, we already have the file in the database, then we only add the song to the user.

Then, Audirvana simply connects to the database similar to the known streaming services and lets you play all your songs.You only see the songs that belong to. We would maintain the meta data, make sure there is a nice picture for every album, the moment one person adds the picture to the database, every user that owns a song from this album would see the picture.

If you want the files, you could download a Zip file with all the files your user has.

Please let me know what you think about it

1 Like

Hi Marco,

Copyright issues would kill this idea immediately. It might have made sense in a world with plantfull bandwidth but limited and expensive storage.

In the world where the bandwidth is mostly enough (at least in the developed world) and the storage is cheap, there is little incentive to implement something like this. Just imagine all the streaming services all storing pretty much the same content.

Storing files in a local database as BLOBs also doesn’t make sense due to the processing overhead associated with the retrieval and storage.

What would be nice is to have a single database shared across multiple system in the same network. Even better, a database running on a server or NAS, but then you’re in a Music Server territory (like Roon). At that point Audirvana could become just an endpoint and a controller and the music would be streamed to it. I assume that most of the users of Audirvana use some sort of external storage for the music files.

and by the way, many usability issues come with remote storage, even on a NAS on the same LAN… believe me! just browse through complaints in this forum around duplicate tracks showing in Audirvana, ghost folders etc … They all happen when someone (like me) stores music on a NAS …

nice try though! :slight_smile:

I mean copyright, no one gets a file he does not already own, this is a general approach in multitenant systems.

Traffic can be reduced by client cache, Audirvana would first check the client cache, SQLite for example, and if the song is not there, download it to the cache ( I have been doing this for years ).

For the upload, first add the file to the local cache, then the user would provide certain patterns or fingerprints of the file to our service, max 1MB, and if this matches a song in the server DB, this song would be added to the user’s owned songs. If the song is not found in the server DB, we would have to upload it once for all members of our multitenant library.

Well, Megaupload tried that same approach and it didn’t work that well for them.

Copyright holders don’t like those approaches where the same copyrighted file is shared among multiple users, regardless of how they got entitlement to that file.

But then again, Apple Music Match service allows you to add your content to the library and they replace it with the Apple Music version of it in AAC. In this case though Apple is the license holder of the tracks it holds, so I guess it’s different.

Any feedback from Audirvana?