flosstudio - CC0-licensed database for FLOSS music-making programs

Discuss anything new and newsworthy! See http://planet.linuxaudio.org for more Linux Audio News!

Announcements of proprietary software may fit better in the Marketplace.

Moderators: raboof, khz, MattKingUSA

Basslint
Established Member
Posts: 561
Joined: Sun Jan 27, 2019 2:25 pm
Location: Italy

flosstudio - CC0-licensed database for FLOSS music-making programs

Post by Basslint »

In the last few months @baj, @Kott and myself have worked on flosstudio, a YAML-based freely licensed database for libre music-making programs.

As you might know, there have been many attempts to build such a database over the years but many of them are just plain lists, have been discontinued or are released under nonfree licenses. In response to that, we built a flat searchable text-based database under a free license (Creative Commons Zero) that will be easy to maintain for the years to come.

Our hope is for flosstudio to become a central hub for all things musical on GNU/Linux, a place where users can easily discover new programs and find the ones that might suit their needs. It might also help packagers share metadata across distros.

The source code of the database is released under the GNU AGPLv3+ here. In the future we'd like to implement a browsing interface like the one @occulkot (which I thank for inspiration) developed for his website.

You can submit entries via the web interface or directly via YAML and you can also submit screenshots - but even if you don't, any feedback will be appreciated! :D
The community of believers was of one heart and mind, and no one claimed that any of his possessions was his own, but they had everything in common. [Acts 4:32]

Wanna make music on openSUSE? Check out GeekosDAW!

bmarkham
Established Member
Posts: 25
Joined: Mon Oct 01, 2012 3:04 pm

Re: flosstudio - CC0-licensed database for FLOSS music-making programs

Post by bmarkham »

Really great idea!

User avatar
SpotlightKid
Established Member
Posts: 177
Joined: Sun Jul 02, 2017 1:24 pm

Re: flosstudio - CC0-licensed database for FLOSS music-making programs

Post by SpotlightKid »

I just submitted an entry - where do these submission end up?

What if I want to make a correction or addition?

Not that I need to right now, just asking in case I do.

Addendum:

Also, are there any guidelines for creating screenshots?

* Preferred size and aspect ratio?
* With window decorations or without?
* Preferred desktop/GTK/KDE theme?
* Language?
* File naming?
* File format?

It would be a good idea, I think, to add a README with these points to the flosstudio-screens repository.

Basslint
Established Member
Posts: 561
Joined: Sun Jan 27, 2019 2:25 pm
Location: Italy

Re: flosstudio - CC0-licensed database for FLOSS music-making programs

Post by Basslint »

First of all, thanks @bmarkham and @SpotlightKid!
SpotlightKid wrote:
Sat Sep 05, 2020 2:37 pm
I just submitted an entry - where do these submission end up?

What if I want to make a correction or addition?

Not that I need to right now, just asking in case I do.
I suppose you submitted jack_mixer. It ended up on our web server for manual review, after which it will be submitted to our git repo which I linked in the OP.

Is this fine or do you think it should do more? We've thought about automatically opening a Github PR for each submitted entry but they would still need to be manually checked.

Addendum:

Also, are there any guidelines for creating screenshots?

* Preferred size and aspect ratio?
* With window decorations or without?
* Preferred desktop/GTK/KDE theme?
* Language?
* File naming?
* File format?

It would be a good idea, I think, to add a README with these points to the flosstudio-screens repository.
@Kott and I discussed about some of those but you are right that we need to put them in the README. We'll come up with some guidelines in a couple of days, stay tuned!
The community of believers was of one heart and mind, and no one claimed that any of his possessions was his own, but they had everything in common. [Acts 4:32]

Wanna make music on openSUSE? Check out GeekosDAW!

User avatar
SpotlightKid
Established Member
Posts: 177
Joined: Sun Jul 02, 2017 1:24 pm

Re: flosstudio - CC0-licensed database for FLOSS music-making programs

Post by SpotlightKid »

Basslint wrote:
Sat Sep 05, 2020 4:58 pm
We've thought about automatically opening a Github PR for each submitted entry but they would still need to be manually checked.
I think that would be a good idea. It allows the submitter to check, whether the submission arrived correctly, and to follow its status.

A challenge would be handling of spam then, though.

Basslint
Established Member
Posts: 561
Joined: Sun Jan 27, 2019 2:25 pm
Location: Italy

Re: flosstudio - CC0-licensed database for FLOSS music-making programs

Post by Basslint »

SpotlightKid wrote:
Sat Sep 05, 2020 5:02 pm
A challenge would be handling of spam then, though.
That's the reason why I did not go through with it in the first place :? PRs on Github are permanent, they can only be closed, and giving random users on the Internet the power to open them without a Github account would be bad. One workaround would be to allow GIthub login but I am not too keen on linking core functionality to Github, since it's proprietary and ideally everyone should be able to contribute even if they don't have an account there (or any account at all).
The community of believers was of one heart and mind, and no one claimed that any of his possessions was his own, but they had everything in common. [Acts 4:32]

Wanna make music on openSUSE? Check out GeekosDAW!

User avatar
SpotlightKid
Established Member
Posts: 177
Joined: Sun Jul 02, 2017 1:24 pm

Re: flosstudio - CC0-licensed database for FLOSS music-making programs

Post by SpotlightKid »

Then maybe just create a commit in a new branch for each submission and push it to Github?

occulkot
Established Member
Posts: 39
Joined: Thu Nov 23, 2017 8:14 am

Re: flosstudio - CC0-licensed database for FLOSS music-making programs

Post by occulkot »

@Basslint awesome work! looking forward to check it in some spare time

Basslint
Established Member
Posts: 561
Joined: Sun Jan 27, 2019 2:25 pm
Location: Italy

Re: flosstudio - CC0-licensed database for FLOSS music-making programs

Post by Basslint »

SpotlightKid wrote:
Sat Sep 05, 2020 6:31 pm
Then maybe just create a commit in a new branch for each submission and push it to Github?
This is a good idea but it would mean doing something akin to giving commit rights to random people over the Internet...most crowdsourced databases (like https://alternativeto.net/) have an account system for submissions. If we decided to adopt it, we could have a real "submission queue" for pending submissions, instead we went with an accountless approach like Wikipedia's to make things easier for contributors.

Since we don't want to give any sitting ducks to spammers, probably the best compromise we can come up with for now is a static, HTML-based submission queue which does not show file contents.

Maybe we can put an "open PR on Github" button next to each pending entry so that if people want to take it upon themselves to do participate to the review process, they can. In the meanwhile I would set a day for weekly manual reviews, let's say on Saturdays.
occulkot wrote:
Sat Sep 05, 2020 7:45 pm
@Basslint awesome work! looking forward to check it in some spare time
Thank you, your opinion is highly appreciated since we actually came up with the idea on your thread :D
The community of believers was of one heart and mind, and no one claimed that any of his possessions was his own, but they had everything in common. [Acts 4:32]

Wanna make music on openSUSE? Check out GeekosDAW!

User avatar
SpotlightKid
Established Member
Posts: 177
Joined: Sun Jul 02, 2017 1:24 pm

Re: flosstudio - CC0-licensed database for FLOSS music-making programs

Post by SpotlightKid »

Code: Select all

instead we went with an accountless approach like Wikipedia's to make things easier for contributors. 
Here's another idea. Create a landing page for the form submission, which displays a link with a URL token. With this link the submitter can access the submission form again, update the entry (before it is accepted), check it's status, etc.

If the user gave an email address in the submission form, send the link to that email address too.

Flask probably has some extension to handle the URL token authentication.

User avatar
baj
Established Member
Posts: 21
Joined: Tue Jun 16, 2020 1:34 pm
Contact:

Re: flosstudio - CC0-licensed database for FLOSS music-making programs

Post by baj »

SpotlightKid wrote:
Sun Sep 06, 2020 6:21 pm

Code: Select all

instead we went with an accountless approach like Wikipedia's to make things easier for contributors. 
Here's another idea. Create a landing page for the form submission, which displays a link with a URL token. With this link the submitter can access the submission form again, update the entry (before it is accepted), check it's status, etc.

If the user gave an email address in the submission form, send the link to that email address too.

Flask probably has some extension to handle the URL token authentication.
This is a great idea. Also, What if the user wants to update an already published entry?

Maybe we can add a selector on the form that if user select 'update' their get to choose what plugin to edit and load the corresponding yaml.
Maybe he can also select a 'pending' submission using that generated code and we use that to fetch the pending yalm. Make sense?

Nachei
Established Member
Posts: 135
Joined: Fri Feb 17, 2012 3:32 am
Contact:

Re: flosstudio - CC0-licensed database for FLOSS music-making programs

Post by Nachei »

Thank you for this initiative. It was really refreshing this morning seeing a non-evil development going on in the world. I really needed some good news :D

I'm curious about two two things:
--What end user do you have in mind? Someone who wants to know "what's cooking" in open software, or fill a certain need? More of a developer, or of a musician, or both? And how do they find this service? Through a search engine query, style "open source music making programs?" Of course they can always ask in this forum "what programs are available, etc...", and be referred to the site by someone, but that's a very minority option...

--I'm also curious about the procedure to update entries in the database. At the very minimum, the "Latest Version" field must be updated, or the database will become obsolete. And what could be a good way to get developers, who have a lot in their minds, to add their programs to this database? Are they supposed to add and entry, and update it after every release, just "out of the kindness of their hearts"? Someone has mentioned there are other similar initiatives, like alternativeto.net, and I'm sure there are others; I guess my question is how do you get a site like this to acquire critical mass, so people contribute to it without fail and the information is really comprehensive...
Black Sheep Riot - Hardcore punk with a pinch of thrash metal
Maple Dye - Blues rock
My blog

Basslint
Established Member
Posts: 561
Joined: Sun Jan 27, 2019 2:25 pm
Location: Italy

Re: flosstudio - CC0-licensed database for FLOSS music-making programs

Post by Basslint »

Thank you all, I have very busy weeks ahead so I can't promise anything but we'll try to look into what @SpotlightKid suggested.
Nachei wrote:
Mon Sep 07, 2020 12:30 pm
I'm curious about two two things:
--What end user do you have in mind? Someone who wants to know "what's cooking" in open software, or fill a certain need? More of a developer, or of a musician, or both? And how do they find this service? Through a search engine query, style "open source music making programs?" Of course they can always ask in this forum "what programs are available, etc...", and be referred to the site by someone, but that's a very minority option...
I'll answer for myself but @Kott and @baj might have additional insights!

It'd be great if people built stuff on top of it, such as websites and lists like https://github.com/nodiscc/awesome-linuxaudio

I think both packagers and musicians can benefit from it. Developers can benefit from some visibility for their programs, if the community picks up this database.
--I'm also curious about the procedure to update entries in the database. At the very minimum, the "Latest Version" field must be updated, or the database will become obsolete. And what could be a good way to get developers, who have a lot in their minds, to add their programs to this database? Are they supposed to add and entry, and update it after every release, just "out of the kindness of their hearts"? Someone has mentioned there are other similar initiatives, like alternativeto.net, and I'm sure there are others; I guess my question is how do you get a site like this to acquire critical mass, so people contribute to it without fail and the information is really comprehensive...
We will build some tools to make things easier, right now we pretty much have an idea and a basic (but functional) workflow. I guess we can already go the old-school way and manage everything via git + mailing lists - our database is entirely text-based to allow that - but we don't want to cut away people who aren't very technical, that's why we made a web interface.

We don't need a contributor-base as big as AlternativeTo's because our project does not have voting. The critical mass doesn't have to be huge - 3-5 people would be enough, especially once the 200-300 most popular programs and plugins are filed (and most of them are rarely ever updated; I know because I am a packager :lol:).

As for tracking new versions, we can implement a way to fetch them automatically if we really want but I feel that belongs to a more general project - maybe I will code it as a side project, if it doesn't already exist! :D
The community of believers was of one heart and mind, and no one claimed that any of his possessions was his own, but they had everything in common. [Acts 4:32]

Wanna make music on openSUSE? Check out GeekosDAW!

User avatar
SpotlightKid
Established Member
Posts: 177
Joined: Sun Jul 02, 2017 1:24 pm

Re: flosstudio - CC0-licensed database for FLOSS music-making programs

Post by SpotlightKid »

Basslint wrote:
Mon Sep 07, 2020 2:20 pm
We will build some tools to make things easier, right now we pretty much have an idea and a basic (but functional) workflow. I guess we can already go the old-school way and manage everything via git + mailing lists - our database is entirely text-based to allow that - but we don't want to cut away people who aren't very technical, that's why we made a web interface.
A great thing to have for developers would be an API. So that you can incorporate updating the entry of your app into your release scripts or CI.

It shouldn't be too hard to take the Flask endpoint, which accepts the form submission now, and build upon it to take submissions as a POST/PUT request with a Yaml body. You'd need some kind of token authentication for this and of course a way for developers to obtain such a token for their app.

Having the possibility to submit / update an entry via a GH pull request is already a great thing, though. Making that PR could probably automated via the GH API too, but I've never done that yet.

Chris

User avatar
baj
Established Member
Posts: 21
Joined: Tue Jun 16, 2020 1:34 pm
Contact:

Re: flosstudio - CC0-licensed database for FLOSS music-making programs

Post by baj »

SpotlightKid wrote:
Mon Sep 07, 2020 2:44 pm
It shouldn't be too hard to take the Flask endpoint, which accepts the form submission now, and build upon it to take submissions as a POST/PUT request with a Yaml body. You'd need some kind of token authentication for this and of course a way for developers to obtain such a token for their app.
Nachei wrote:
Mon Sep 07, 2020 12:30 pm
-I'm also curious about the procedure to update entries in the database.
This part of the workflow is bugging me , we can't seem to find the best approach
Obviously the end goal is to hit the repo with a PR. The problem is that you need token and a potential app would eventually need to use it to be able to PR (security, span issues)

As for now we have two methods:
1 - Fill the form on the website and then some mantainer of the server, manually make the PR to update the DB.
2 - Make a PR on github
3 - (here I'd like some method combining the simplicity of filling the form and automatically make the PR on the repo but make it public code (CI probably) so we don't depend on having a server and we don't depend on a mantainer to do double work (mantainer should focus on merging the PR (which autovalidates anyways)

If we get to #3 I'm happy. I'm open to any suggestion and ideas of how to get there.
Nachei wrote:
Mon Sep 07, 2020 12:30 pm
--What end user do you have in mind?
The goal is to have an easy-updatable, public, open and shared database for any kind of usage, for example, to make a website about all available plugins using the db as source or to query information about a specifics or group of plugins. The database its a plain JSON file available for public consumption (the final json, not available yet, but will be soon).

If you mean what end users will submit the plugins, then I don't know, but we should try to make it as easy and automatic as possible...

Post Reply