Okay, hello everybody, well I thought this new music room was going to be a small room somewhere
in the back completely empty, but turns out it's quite a big room, that's nice, I'm not nervous at all.
So this talk is going to be about one of my hobbies, my job is to work for an outlet where
we fund open source, so have a look at that, this was a nice plug, but in my hobby I also like to write
code and I like to make music. If you combine those things, well you're wasting your time on writing
apps to read music, and that's what I've been doing and I'm going to talk about that. So just to make
sure, I mean I saw a lot of people, wow, this is interesting. A lot of talks here as about using
your computer to make music, but what I like to do is make music with other humans, and here's a group
of them now and then, and wow, they're really glitching. I think it's because of the shirts they're
ready. So yeah, this is a big band, and before I start, I would like to say a few things about
a big band. It consists of wind instruments, you have trumpets, trumpets, saxophones, and a rhythm
section to play this music in a group, you need some kind of coordination, right? You need to start
at the same time, you need to end at the same time, preferably play at the same speed, but you also need
to have a coordination about the volume. The equalizer, as you will, was in front, that's the
conductor, and he determines who is loudest or less loud, because the melody should be louder,
sometimes the melody is in trumpets, sometimes in the saxophones, and on a lead day it's with
the trumpones. Yeah, I play in two big bands, this one has fancy costumes, the other one is plain
clothes. Okay, let's continue. Oh, no. Oh boy, the screen is really little at me down.
Yeah, I'm going to set my monot, it's on performance now, that doesn't really help.
And disconnecting it, waiting, maybe somebody has a computer, I uploaded this slide, so I
could just download them from the webpage, if I can borrow it. Yeah, sorry about that.
You have them open already? No, not yet. No webpage. Yeah, if you.
Shh.
Can be Jason?
Yeah, I'll give him an offer.
Oh, yeah, have you a little offers? No, no, little offers. Well, then I'm going to do it from PDF, which will not be a school, but
doing it or doing it just set it up, it doesn't really matter. Okay, and now presentation mode,
this thing, this question.
Anyway, what are we seeing? The most, the largest part of this presentation will be about sheet music,
if you would play Trombone, like I do, then jazz piece, like this big bend place, is usually one or two pages,
sometimes three or four. If you're the piano player, you have two staves, so you have a lot more pages,
and if you put the conductor, you see the music from all of the instruments, so you have like 10 to 20 pages,
to manage.
This is all very sad.
What I can do. I'm going to change the refresh frequency.
Maybe, yeah, maybe, no other display, no other display.
It was a projective, writing that.
So, just to make sure, I'm going to disable the laptop screen, then edit each view of this
mic. This is the native from the projector.
Very quickly, thank you for that encouraging applause. Wow, and I only had 30 sheets. 10.
So, yeah, sheet music. In the old days, people had actual paper. That's why we have this A4 format.
And there's a lot of them. You had a librarian, and the librarian used to store all that.
And in the paper era, there was a large archive with all the songs. Have you bind us with sheet music
musicians? Only have their own score. So, if they want to see the score of somebody else, they don't have it,
because they have a big binder of only those stuff. There's a lot of time lost between songs,
because you have to switch and you hope that all of your band members have alphabetised the songs.
Usually, they have different opinions of what the alphabet looks like exactly.
So, that doesn't always work. So, distributing new songs takes a long time. You have to
sort them out, give them a little bit. Number, somebody's not here, and we have to get it later.
Lots of inconvenience stuff. You have to put pieces in order before performance.
And then after the performance, put them back in your version of the alphabet.
And if somebody substitutes it in for you, you have to coordinate how they get your binder.
So, I knew of sheet music becomes messy because of all the handwriting in it.
But as a bright new era, we have tablets now. Great. So, the digital era, individuals they buy tablets,
and these tablets are mostly only come into operating systems. Unfortunately, both of them are closed.
And there's proprietary apps for viewing sheet music, very inconvenient.
The sheet music is usually put on a cloud drive and people have to get their own parts out of a big PDF.
And annotations are stored on the devices. So, there's a dependency of big tech. That's not nice.
Most use tablets are closed. The apps need to be approved. If you're writing one,
the app store revenue model leads to decent apps initially, but eventually there's a lock-in and
sheetification. So, that, to me, it also feels bad to use, right? So, this tablet is a third device for me.
I usually have a laptop, a mobile phone, to have enough getting operator systems that are open on
there, but for the tablet there's a new problem. However, I have a creative solution. I just
topple the laptop. Great. However, I also have a second-hand iPad because, you know, most
musicians they just buy iPads or Android tablets. So, I can test this software and present them today.
But I need a better digital era. I want to self-host this app and it should be independent of the
operating system and the notes should be shared. So, let's write an app. I'm going to skip this
because I'm late. It requires, so I want to have a way to rehearse with recordings. That's a bit
out of the scope now and it should be a very good archive. It should also be a sheet reader,
but that's optimal because most people have their own sheet reader software. However, I like to use my own,
even though it's not yet as good as the commercial offerings. It's going to be built as a progressive
web app that means it's just running on a server and you can say, add this to my desktop on iOS
and Android and it looks like a normal app. You have local storage which is great because then also,
if you're playing in the park, there's no Wi-Fi, you have your sheet music still.
Oh, yeah. A small thanks to all the, what's this? Am I?
Okay, one button needs to go back a bit. I would like to thank all the people that write the
rest of this deck, because there's so many libraries in here. It's amazing how much
software that they're on the internet that you can reuse. So, a progressive web app, if you want to
look up the benefits you can do that later, I'm not going to skip that now. The server side is no
address, not particularly interesting. And yeah, so the initial reason to write this app is I wanted
to rehearse with recordings. Sometimes you have a piece and need to moment layer where lucky
if you get a nice piece of melody in the middle somewhere, but then you want to look that so that
you can play along while you're rehearsing. That's inconvenient in a normal music player, so I wrote
an initial app for that and I'm going to show you what that looked like in a minute. So here's the
overview of the app that's, in this case, for three bands in that, the Brussels Jazz Orchestra
is not somewhere I'm often invited to join, but real Brussels, so I thought let's add them.
When you click on one of the bands, you see the agenda, the playlist arrangements and recordings
and recent pieces that you have read on this thing, so you can quickly go back to songs that you
have been rehearsing. So you can upload audio that you get a list of all the recordings in there
and then the cool thing is, I'm going to not try to demo it because it's crossed here.
But what you can do is, at certain times, this is a time bar, you just say this is measure five,
measure 21, 37, and then here with big thumbs you can click on these buttons to loop, in this case,
from 21 to 105. It's very simple, this was the whole app initially and turned out,
somebody else during COVID, had been writing an app called Rehors with exact same functionality,
but on the app store. It's really weird. Yeah, so the advantage here is that only one person
has to put in these markers, it's a bit of a job and then everybody has the advantage that they
can rehearse with this. So yeah, managing sheet music, what most bands have is they have
a Google Drive somewhere or a next-low Drive and you download the PDF with the music for the entire
piece and then from pages 42 to 46, you cut and then you upload it into your tablet and then you're
done, that's very inconvenient. We want to improve that. So the best way to do this is with this app,
I'm going to show you how that works. One person uploads the music, he adjusts the pages,
assigns the pages to the parts, adds watermarks. We have people that compose their own music and they
want it to be secure and not leak it out, so there's a bit of protection there and everybody can
download their parts with a zip file or they can use the embedded viewer. So this is a list of
arrangements and if you click that, you go into an arrangement as you can see that I, as a
Trombone player, I can see Trombone 3, which is my part about I can also see the other Trombones
if I want to have a look there and if I click this, I can listen to a recording of this song.
You can edit the arrangement or what you see then, as you can input through the range
of the composer who will deliver you can choose the PDF and here is a bit of interface where you
can, if you upload the PDF files, you can say okay, the conductor, the pages have, do not have
to be rotated and they are from page 2 to page 14 and the female vocals and so on and so on.
And here you get a nice preview of which page that is. So what that leads to is that when you have
a concert, you put it in the agenda and then each concert has a playlist, so that's like 20 songs
here and you can just press download and you get a zip file with all of the files that you
are supposed to be playing, that's concert. There's also a huge user management in there
to make this possible because, obviously, you know, to know who's account has access to what
and so in this case, there's a player, there's a primary player always, can be two people
who can read the same parts and these are the backup players who also have access to those
parts. Yeah, you can read and annotate by the way, I want to go back briefly.
Oh yeah, there's also a message functionality here and that means that I can send an email,
a personalized email to everybody. People that play in big bands, some big bands tend to be of age
and not that good with technology, so what this does is it sends an email with a link which
directly leads to a login, so they click it, they're logged in, if I post a request, not if I
get request and then they click that, they logged in and then they can pass this download button,
so it's made super friendly for everyone to use it. Yeah, then the last bit, so there's also
the functionality to read the PDF files and to annotate them and the annotations are sent back to the
server, so when a substitute comes, they have the same annotations that you have.
Interestingly, there's a special music font that really helps to implement this because the
numbers of the glyphs have been standardized for all the musical symbols, so that really helps,
the musical symbols are in there so that you don't have to try to write a query or whatever,
you can just click one, so it looks nice in a decent font. It works offline, I will be so told
that the scrolling is vertical, and that's just because I'm lazy, so you have the tablets,
you have two pages below each other and you scroll up like this, so if you have a bit of rest,
you scroll up, put the rest on the top and below it. The commercial apps, what they do, they allow
you to scroll by half a page or actually swap half a page, which is also nice, but I haven't
implemented that yet, it's similar to the list. This is what this looks like, so this is two
screens, first I choose that I'm from both three, and here are some annotations on the big causes
to delete it again, you can choose colors, you can use glyphs which are on there or just choose
a pen to annotate something. The future, yeah, I'm just going to fix the paper cuts,
it needs to be working on newer devices, sometimes a very high resolution, you need to change the
CSS a bit, documentation can be easier, maybe I'll make a website, and I hope this use of this
app will grow organically, so just because it's really a user-facing application, which means that
if a band adopts this, I would like a competent person to be responsible for helping the people
that use it. Thank you, that's it.
I guess you don't want to try the demo, just because we can give you some a bit more time if you
want to be okay. So, in the meanwhile, I'll run miles and miles just to get to the
music, whoa, what happens? I don't know if the audio will be playing.
Yeah, we'll get it here, so. So, what you can do is you want to start the loop at B and to see the
press here, and now it's just going to go around and around, that's just a whole demo.
I'll put it a bit lower, so this video doesn't get the lead of a copyright issues.
Hi. Do you have any plans for adding some kind of offering tools for PDF, so maybe you could put
an ABC notation or something like that, or really fun or something like that?
Yeah, so the most offering that this tool does now is cutting the pages, rotating and putting
a watermark on it, and I don't plan to do more for the future, because that becomes very complicated
in UI, and there's other more important things that have precedence.
So, what happens when you update a PDF, the notes are still retained?
No, not at the moment. No.
Question is, is any of the playback state synchronized, like during a rehearsal as well, the cross-players?
Can you speak a bit louder? Is any of the playback states synchronized in real-time across the
different players? No, this is for practicing at home on your own. I see, so every player has to
skip pages or scroll to the correct page by themselves, or yes, so the PDFs, I guess people know
music or hear where you have a nice music XML, this type of band plays with scanned PDF files.
That's the state of the art. Going to something like music XML would require to input all of the
arrangements that we play, and that's not going to happen. Maybe if some AI tool can do it in the
future, but I'm just focusing on doing PDFs well. One short question, I was interested in doing
something similar for a choir as well. How difficult be to add support for MIDI files?
I would suggest to convert MIDI files to MP3 or another audio format and upload them like that.
It wouldn't be that hard, because for example, the PDFs have server-side rendering, so if you have
a command that can be one on the server-side to convert a MIDI to a different audio file, that's fine.
Unless for some reason you would want MIDI features in the front end, that's not going to happen.
Hi, I was wondering whether there is a calendar function because
is there a calendar function and is it collaborative? My collectors, we have a gigomatic,
where you can select who is coming when and for gig planning all in one platform and there's
a big convenient. The area of the Netherlands where I play, there's a big band in every village,
so if you're not there for your her, so you are assumed to find a substitute for yourself,
so that the band can play in full session, and there's a nice mix of getting to know each
number from the other bands as well. So I'd like to add a feature, this is very high on the list,
where you can say, I'm not coming the next rehearsal, send out meals to the list of
substantial substitutes and they will then get added. So that would, I think, answer your question
about knowing who will be there at what concert or rehearsal.
First of all, thank you very much, this is brilliant. The last question is regarding user
management, is there any integration with the central authentication tools such like key
clothes through some or IDC or is it something for the future? So right now the thinking of the
data is done over web sockets and there's no current functionality, for example, if the
conductor says this is next piece, then everybody automatically gets set in front of them,
that would be fairly low level to do. However, moving the pages like somebody else suggested
it would be difficult because the page on which it certain part of the music is at is different
for everyone. So we can't sing that, but we could sing just switching over to a new piece.
That wasn't the question, the question what you have a system to manage users? Yes.
And is this system only internal to the program or can it be interfaced with an external user
management system so that you can have just one account to use your app and other apps for the
band? Yes, so right now, no, it's just a JSON file with a hash password. Well, thank you.
Yeah. Okay, time's up. Thank you very much.