source: content/projects/ensemble.org

Last change on this file was cf4ca54, checked in by Mikhail Kirillov <w96k@…>, on Mar 24, 2021 at 4:54:12 PM

Add GNU Ensemble project org file

  • Property mode set to 100644
File size: 5.5 KB
Line 
1* GNU Ensemble
2** Abstract: Can you explain the whole project and its expected outcome (limit 1200 chars)
3 Ensemble is a web platform for collaboration between music composers
4 and performers with the goal of creating free cultural works.
5
6 Composers share their compositions in musical notation while
7 performers bring them to life. One could say that bands can be formed
8 irrespective of their location, or possession of certain musical
9 instruments.
10
11 Users can start new music projects, that are instances of GNU
12 Ensemble, or join and contribute existing projects.
13
14 A new project gets instantiated once a name, a musical genre, a free
15 license and a list of instruments are chosen for the future
16 composition. The files can then be uploaded - pdf, musicxml or
17 lilypond in the case of musical notation; or users can start with bare
18 audiotracks and upload flac, mp3 and other popular free audio
19 formats. Users can explicitly request others users to compose new
20 tracks, rather over existing tracks or you can ask to just play and
21 record what you have. Users can also decide how much can the other
22 project member change their initial ideas. For instance, if a certain
23 piece can be improvised or if it needs to be played strictly as it was
24 composed.
25
26 The outcome of this project is a federated network of web resources
27 with free music cultural works created on a collaborative effort
28 basis.
29
30** Have you been involved with projects or organisations relevant to this project before?
31 And if so, can you tell us a bit about your contributions?
32
33 I have experience in developing proprietary web services. When it
34 comes to contributing to free software
35 communities I have done small contributions and I'm eager to engage
36 more with the community.
37
38 I'm committed to free software and I run GNU Guix on my Librebooted
39 Thinkpad. I have contributed 2 packages to Guix.
40
41** Requested amount
42 10000€
43
44** Explain what the requested budget will be used for?
45 Does the project have other funding sources, both past and present?
46
47 This project has never received any funding.
48
49 The budget will be used for hosting the first instance (buying a
50 domain name, a server and building the infrastructure). Also I expect
51 to dedicate at least 6 months of full concentration on this
52 project.
53
54 A small part of the budget will be spent on a logo.
55
56** Compare your own project with existing or historical efforts.
57 - Mutopia is a place for hosting free licensed and public domain sheet
58 music. While GNU Emsemble may seem related, it actually focus in on
59 creating new music rather than sharing pieces of music.
60
61 https://www.mutopiaproject.org/
62
63 - Musescore's website. It allows you to host your pieces made in
64 Musescore and enables playback. It doesn't use libre
65 JavaScript and doesn't encourage the use of free software licenses. I
66 want to support Musescore files in this project.
67
68 https://musescore.com/
69
70 - Most collaboration tools are either non free or limited
71 in some way or another. For example, there's a web service called
72 Kompoz but users can only collaborate by sharing recorded audio
73 files. This project promotes collaboration both in the process of
74 composition and performance.
75
76 https://www.kompoz.com/
77
78 - GNU Lilypond is a great Scheme-like language which generates
79 music sheets from text format to PDF, making it suitable for
80 collaboration. Its syntax is clearer than XML-like MusicXML. This
81 project will support GNU Lilypond.
82
83 https://lilypond.org/
84
85** What are significant technical challenges you expect to solve during the project, if any?
86 Creating a federated network will be a challenge. Also, a version
87 control system will have to be implemented for music project
88 contributions, so that users will be able to track the changes.
89
90 I plan to use GNU Guix for development and deployment, which can be
91 challenging due to the fact it's still a relatively new tool.
92
93 Also there's this hard dilemma regarding JavaScript. I want to avoid
94 using it, but that can cost some user comfort.
95
96** Describe the ecosystem of the project, and how you will engage with relevant actors and promote the outcomes?
97 I will use Python as the main language for the web server
98 realization, and OCaml for parsers and tools that need to be
99 compiled. Python is a popular language choice for this kind of
100 task, thus I think it's the right choice.
101
102 I will use Flask, some of Flask's extensions, SQLAlchemy and
103 PostgreSQL. I will use GNU Guix for development and deployment; a
104 virtual environment will be created for development and deployments
105 will either happen in a generated docker container or using Guix's
106 deployment system.
107 (https://guix.gnu.org/blog/2019/towards-guix-for-devops/)
108
109 SourceHut (https://sr.ht/) will be used as a platform for hosting the
110 git repository, providing mailing lists and bug tracker.
111
112 Probably I will need Kubernetes and Devops tools.
113
114 For promoting I will record series of screencasts videos which will
115 then be uploaded on PeerTube.
116
117 English and Russian versions of this project will provided by
118 me. Hopefully the community will help me to support as many languages
119 as possible.
120
121 I will be the only developer, but anyone is welcome to contribute as
122 the repository is available on my SourceHut account
123 https://git.sr.ht/~w96k/
124
125 After some functionality will be in place, I would like to add this
126 project to the list of GNU software to gain interest and make sure it
127 will get maintenance.
Note: See TracBrowser for help on using the repository browser.