Okay, then we continue with music with the next talk which is become a rock star using
free and open source software.
Please welcome Lorenzo.
Thank you.
Thank you very much.
And it's going to be a hard job following up a guided broad, a synthesizer and an amplifier.
I didn't bring anything to the table, so you'll just have to endure me talking about it.
I hope it's fine anyway.
And first of all, this is my first talk in open media, and I already feel like a fraud
because clickbait alert, I'm not a rock star at all.
I mean, this is an email that I got from Spotify last month.
I got two listeners last month.
One of those was me.
So I think on average, you need a bit more than that.
We actually call the rock star, but it doesn't really matter.
I had a lot of fun in the past few years just playing with music and open source, I mean,
and I had to use this for something rather than just show them around the home.
And for a living, of course, I don't do any music at all.
I'm just a hobbyist musician, and that's what I'm going to be talking about today.
In the real world, I am a WebRTC developer, for instance, involved in some of the things
that Dan mentioned in this previous talk.
I love a lot hard rock, metal, orchestral music, symphonic music, when they work together
as well.
And this is something that I've been trying to do in my own music as well.
And here you can find some links if you want to get in touch.
For instance, you can get in touch on mastodon, a couple of links to my music as well, and
so on and so forth.
And this is just a very basic and completely out of order table of content.
So I talk about a few different things, and I will not follow this order because I will
mostly follow the order by which I learned how to do things with music and Linux in the
first place.
So how I tried to dip my toes into a few different things, and how I eventually learned how to
do some more complex things in the process.
And of course, it will be a very, if you pass the term, a very dumb presentation because
I will only scratch the surface.
I'll try to introduce several different concepts, and really just to tickle your interest enough
so that maybe you have your own guitar getting dusted.
You don't know how to get it started with, for instance, using your laptop to do some
music, and maybe this presentation will tickle your interest and you start doing something.
And besides, there is a very good chance that I'll say something dumb as well, or maybe
something incorrect.
So if I do, please bear with me.
It's really a high-level presentation and something that's really meant as an introduction,
not really something that goes very much in detail.
And when I first started learning about all these, I was really surprised by how mature,
for instance, Linux and the audio ecosystems was to actually do music production on those
machines because you always assumed the world around was Linux is not good enough to do
real-time music.
You have to use Windows or MacOS or whatever, and I disagree with that because especially
when I started with Jack at the time, I found a very interesting ecosystem to do things.
And especially, I really loved the port-based approach that allowed you not to use monolithic
applications to do things, but you have different applications that you can just connect arbitrarily
any way you want, possibly use the same source to connect to multiple applications, implement
very complex workflows, and all in real-time and very low latency, which was really amazing.
And the fact that you can have all these different applications talking to each other means that
you also often have a lot of different applications implementing more or less the same requirements.
So you will have different synthesizers or different ways of implementing effects for
your guitars and so on.
And often, they don't really need to be a substitution for one or the other.
Maybe for one genre, it's better to use some applications, for some others, it's better
using others.
It's really up to your preference and how you like to work with music, and some tools
may make sense more than others in that sense.
And it's probably useless to make this distinction right now because we just had a very interesting
presentation by Ernst, who explained a bit what MIDI signals are.
So when we talk about music production, especially on Linux and Jack, you do have to know basically
that you have audio signals, so a sound that has already been processed, recorded or something
away from of some sort.
And MIDI signals that just carry information that is then used to produce sounds.
And so of course, these two can go through very different workflows.
Different applications can handle just one or both or maybe none at all.
What's really important though is, again, how you can actually have different applications
that you connect arbitrarily on your own way.
That was at the very basis of how Jack was conceived at the very beginning.
And Jack a few years ago was really the way to do very low latency audio on Linux systems.
The downside of that, it was that it was a bit complex to set up and manage.
And luckily, and we've seen a presentation by WIM this morning, PipeWare has made this
so much simpler.
So I was a bit skeptical at the beginning.
I just jumped the bag on a couple of weeks ago.
And basically, PipeWare comes with an implementation of Jack that basically hides all the complex.
I mean, the applications think they're still using Jack, but in practice you're using
PipeWare instead, which means that you can start using also applications that were not
specifically conceived for Jack purposes and work on them together while you work on music
production of some sort.
And all of these small boxes that you see over there are basically different processes.
And you see that some of them have inputs, some of them have outputs, either one or both
these sort of things.
And this is what allows you to basically just arbitrarily connect different applications
to each other to, again, create more complex workflows that you can get out of what a single
application can do.
And I'll show a couple of practical examples in a minute.
So let's assume that you have that whole guitar getting dusted home and now you want
to get some noise.
You want to connect it to your laptop and do something.
So what you don't do is, of course, just plug it in the microphone slot because that
will cause problems.
What you need is some sort of an audio interface instead.
So something like an external sound card that has some inputs that do accept your instrument
instead.
And often these interfaces come with USB interfaces and so are very easy to plug.
Your reprinting system will very likely recognize them out of the box.
And they will be available as a system capture.
And so as one of these boxes that we saw over there.
So something that you can connect to something else.
And the one that I have at home, and spoiler alert, it didn't come with the cat.
The cat came with something else.
I personally bought this Focusrite Scarlett Solo because it's quite inexpensive.
It's very common among hobbyists because it already provides decent enough quality for
recording at home.
It's very flexible and I really like it a lot.
And basically the one that I bought basically comes with two separate inputs.
So it has a USB interface which recognizes an external USB sound card by the operating
system.
And mine in particular, I think later versions changed this a bit.
But it comes with one input that is XLR, the typical cable that you use for microphones
for instance.
And another one is the cable, the typical guitar jack slot.
And since it's two different inputs, when you connect it to the operating system, the
box that you see, which may have this name or an entirely different name depending on
what you're using, shows two different channels, which means that depending on where you're
actually plugging what you want to plug, it will come out of one of those two different
channels for what you want to do, which opens the door to a lot of different things that
you can do.
Because for instance, I could plug my guitar directly into this external sound card.
In this case, I'm plugging it into the jack slot.
That's capture number two, which means that I can then use this capture number two to
do something.
And the best thing that I can do is just connect it to the playback system so that I hear what
I'm playing just unencoded.
So I don't hear any effects, it's just the raw sound of the guitar, but it's something
that I can do.
Of course, I can do something more interesting and we'll show an example later.
Or maybe you have a very good amplifier at home and a very good microphone.
You put the microphone in front of the amplifier, you connect it to the first slot.
And what you get when you're on your laptop is an already distorted, for instance, sound
of your guitar out of your amplifier.
Or maybe you can use them both at the same time, which is what I do often for classical
and acoustic guitars, for instance, where I attach both the pickup of the guitar, whether
it's integrated or added.
And I put the microphone in front of the guitar just so that I capture different frequencies,
different sounds.
Together, they give me a more full sound than what they would give me individually.
I mean, again, it's just very simple examples that show you that before you couldn't do
anything with an external sound card like this, now you have ways to put your instrument
and get it part of a workflow in your own laptop and do something cool.
And one cool thing that you could do, for instance, is just launch Guitarix.
Guitarix is a very complex and effective guitar simulator, basically.
So it has different beats that you can, it's very configurable, so you can create your
own configuration, you can choose the different beats, what you want, how you want your amplifier
to look like.
I'm really stupid in that sense, so I never really tried to do it myself.
I work a lot with presets shared by the community.
But if you are savvy enough, you can just do things on your own to create, to really
shape your own sound so that the guitar sounds exactly how you want it to sound like.
And when you launch Guitarix, it basically spawns two different boxes, as far as jack
or slash pipe, again, when I'm seeing jack, you can assume I'm also just implying pipe
or usage as a consequence.
Basically it comes with two different boxes, one as an amplifier and one for effects.
And then it means that since we had the jack in my Scarlett Focusrite was capture number
two, I connect that to the amplifier, I connect the amplifier to the effects, I connect the
effects to whatever I want, playback, something that records it, it's really that simple.
So you have already created a workflow out of that beat that you manage to capture thanks
to the external audio interface.
Another application that I love a lot as a guitar player is Racka Rack.
I'm not sure if I'm pronouncing it correctly or not, which is not a guitar amplifier simulator
as Guitarix is, it's basically a pedal board simulator instead.
So it has a lot of different effects that you can use and combine.
It also comes with a lot of different presets.
I particularly love the clean sounds that you can get out of Racka Rack.
And again, similar approach.
You connect whatever capture you add your guitar on to Racka Rack and then the output
of that, so the processed sound of the guitar, it's something that you can end up using.
You can do something more complex or, in some cases, also damned by just possibly using
both Guitarix and Racka Rack at the same time, so putting them one after the other.
This is a very simple example and probably doesn't make sense to have the effects box
in between there, but this is a similar approach is what I use, for instance, myself in one
of the songs because I add an effect that I like in Guitarix, but I also need a sustainer
effect in Racka Rack as well.
So I basically just chain them in my workflow.
I plug my guitar in the sound card, that Guitarix distorted and then Racka Rack do some more
things with the sound before I actually used it for something.
And again, this is just very simple examples that are meant to show you how easy it is
to create a workflow using different applications out of sounds that you have access to, to
do some interesting and really cool things.
And so let's assume that basically now we managed to get a decent sound.
Now we just want to record something because we want to either write a song or whatever.
And of course, if you want to do something very simple, so just record the sounds and
then use them somewhere else, you can use any tool that is actually able of consuming
these sources.
And so Audacity or Gstreamer come to mind, but there's so many more.
If you want to do something more complex, maybe work to write a song no matter how complex
it is, you'll want to work within some sort of a project instead.
So maybe in an application that is capable of handling multiple tracks at the same time
and that maybe can add different filters to all these tracks that you're having.
So because you need a compressor on one or maybe reverb on some tracks or you need equalization
or something like this.
And this is the kind of application that you use a digital audio workstation for.
And DAV is a short term for that.
And mostly because these kind of applications are specifically conceived to do exactly that.
So possibly record things in real time or use existing assets, edit and produce, although
these are different audio files in different ways, they often support media as well.
And especially most of them have a modular nature that allows you to use existing models
that are part of the open source ecosystem to add different effects to any of those tracks,
either as a whole, for instance, a filter that applies to multiple tracks at the same
time or just one of them and so on and so forth.
Because you may want equalization, compression, I mean whatever is part of the usual audio
editing process in a regular music studio, if you want, it's something that a digital
audio workstation can provide for you.
So if you've ever heard, for instance, of Pro Tools and stuff like this, this is exactly
what a digital audio workstation can do for you.
And the one that I personally use is called Ardour, which is a very powerful component.
I personally use this because it was the first one I stumbled upon.
I fell in love with it at the time and I just kept on learning.
But again, there are more than that you can use out there.
There's Qtractor, there's Reaper, which is not open source, but it's also very used in
the open source applications as well.
And one thing that you'll notice when you start using an application like this is that
the box is in that graph that I showed, for instance, on Jack or Piper, is going to explode
because a digital audio workstation is going to handle a lot of tracks and those tracks
are going to be connected to a lot of things.
And so you'll see a huge amount of connections out there.
And luckily for you, you don't really have to create those connections on your own because
otherwise you will go crazy.
Often it's the digital audio workstation that does this for you and there are easier ways
to change those connections if you need to from the user interfaces of all those applications.
And most importantly, this shows that no matter how monolithic now this application can look
like, it's still able to communicate with all those external applications that we mentioned.
So you can still have, for instance, an outdoor session open, a guitar rig session open, you
connect your guitar to guitar rigs and then you connect your guitar rigs to that in order
for it to record it, or maybe you have guitar rigs as a plug-in so that you just record
the clean sound and then you have it processed in different ways any time that you needed
these sort of things.
And so let's assume that we have now bass and guitars.
I am assuming that bass and guitars, you can process them pretty much the same way.
I'm sure that there are bass players that will disagree with me, but the concept is
like this.
Let's say that you now need drums and let's assume that you're like me, I'm a WebRTC developer,
I have no friends, so I don't have any drummer friend either.
So I have to create a virtual one instead, so something that plays drums for me because
I am at home doing nothing.
And which means that this is the very first good example of a virtual instrument.
So I need to write the drum parts somehow and then I need to sequence them somehow,
which means that the drum parts will be the instructions so what I want to be played and
then something will actually translate them to a kick sound, there's an air sound, these
sort of things.
And of course you can just play, write the MIDI manually or use something like Melrose
as we've seen.
What I found out that is for drums, it's much easier to work with a pattern bass instead,
mostly because of the rhythmic nature of the instrument and the fact that you can often
do some repetitions, maybe some variations and then just play a bit with those instead.
And personally I like hydrogen a lot in that sense, because it allows you to create multiple
patterns for instance, it has all the different parts of a drum, you can say within the context
of a measure, play this, this, this, this and this point, a kick here and here and here,
you create different patterns, you specify the sequence of those patterns or even some
patterns in parallel if you use some patterns just to create variations, these sort of things.
And then you basically hydrogen plays drums for you out of what you just wrote basically.
And while hydrogen comes with its own sounds, which is really cool, I personally just use
hydrogen to write the parts but then use drum gizmo to actually render them mostly because
drum gizmo is probably the most advanced drum renderer that is out there because it's basically
a lot of drum keys that were captured and recorded by professional drummers, they created samples
and then using drum gizmo you can replay them also using, I mean, I'm not even going to try and
explain how drum gizmo works because it's very complex but it's suffices to say that it has so
many channels that it's the best way to actually get drum sounds out there and also work with them
in within the mixing process, which means that from a jack perspective, I just use hydrogen to
generate the drum parts and then I connect the MIDI output of hydrogen to drum gizmo and then
whatever drum gizmo generates I use within the context of my own application. That's basically
how it works. And now that we dipped our toe in the MIDI world, what can we do with other instruments
because maybe we want a keyboard background, a pad or a piano solo or even a full orchestra
behind our music. And again, this is what MIDI is for because basically we don't have access to a
whole orchestra because I don't have 30,000 euros to pay a lot of players. So what I do is I just
sketch and write the notes for all the different instruments that are involved and then those
notes, that information will be translated to actual sounds. So something will be played by
something that simulates strings, something else will simulate a trumpet, these sort of things.
And of course, these notes can come from different places. It can come from an hardware keyboard,
as we saw in the previous presentation with Melrose or it can come from something that you wrote,
for instance, using Melrose or other approaches. And I am not a keyboard player, but I did buy
this small tiny thing over here that again is just plug and play. You plug it in there, it becomes a
MIDI input that you can use for different things. And once you have it, you can have a lot of
different ways of rendering MIDI sounds. Soundphones are historically the oldest and easiest way to
do that. And Q-Synth, thanks to FluidSynth, is one of the most popular ways to actually play them.
So you download a soundphone from somewhere that contains all the sounds that are associated
to different instruments. And then, for instance, you just connect your keyboard to FluidSynth
using the MIDI part and that is, that eventually gets generated to actual sounds that you can
then use for something else. If you don't want to use soundphones, maybe you want to use a
synthesizer instead. There's plenty of those as well. I use Yoshimi a lot, but there's also
Xena, that's, uh, Xena, so by effects, so very complex name, but they are basically, they share
a lot of code because Yoshimi was actually a fork of death. There is Surge, which is also
another excellent synthesizer. So in that case, there is no sound bank they start from. They
actually generate the sound depending on what you want to do. And again, I'm, I'm dumb, so I never
aim at creating my own synthesized sounds, but if you are more, if you know more about that, it's
something that you can do. And again, it works pretty much the same way. You can connect your
keyboard to Yoshimi and Yoshimi. You can connect the sound to that as well. And in this example,
I also wanted to highlight the fact that, again, you can connect the same source to multiple
things. So in this example, I'm connecting my keyboard to both Yoshimi and that sound from
the application that I showed before. So that's whatever I play sounds both like a synthesizer
and a piano at the same time. Oh yeah, I'm, I'm, okay, I'm just, I'll just fly over the last slide.
So for sound files are also very interesting to do the same thing. You can use Windows VSTs
over there as well via Lean VST, for instance. If you want to write music, you can use Lilipon,
Melrose, MuScore, which I personally like a lot. If you don't know music notation, you can use
piano rolls. And if you want to read, to then publish this, you can, there's a lot of places
where you can publish your music. But what I really encourage to do, however you publish your music,
make sure that you engage the community in order to exchange information. So for instance, I,
I use, I use a lot of Linux musicians and the main author of Linux musicians is there as well. He
asked me to tell you there's a lot of stickers that you can get from here if you want. It's an
excellent place to get in touch with other musicians working, you know, in the open space so that
you exchange ideas. You publish a piece, they give you advice. It's, it's an excellent place to learn.
You may want to add video like I did with my Viking Metal cover of All You Want for Christmas
by Mariah Carey. And that's a fun watch if you want to see it. I thought about about, I,
I thought also a bit about WebRTC used for musicians as well, which in a previous presentation that
you may want to look at. And then that's basically it. These are again my contacts if you want to,
to have a look at that. Unfortunately, I, I didn't speak fast enough, so.
I, I.
Oh, thank you.
Yeah.
Yeah. Basically, I personally use, oh, sorry. Yeah. The question was,
does PipeWire also have the, the way of showing those different boxes that you can connect in
order to create a workflow? I personally still use QJack control, which was a front end specifically
conceived for Jack mostly because PipeWire implements Jack as well. And so QJack controls
allows you to, to create the same connections from the Jack perspective, but there are some
applications that are specifically conceived for PipeWire as well. It's, it really works the
same way. You have, you have these different boxes and you can connect them any way that you want.
No, no, it's, you can script it if you want, but you cannot definitely use a GUI. I always use a
GUI because otherwise you go crazy. Any other question? I'm sorry.
Yeah. The, the one that I use, since I work a lot with metal, the one that I prefer is called
Mould Your Kids, which yeah, I personally love that one a lot, but there are a lot of excellent
tools out there. So thank you. Which one? Sorry.
Yabridge. No, for Windows VSTs, the one that I use the most are some free, free VSTs by Spitfire
Audio, the Spitfire Labs Audio. They have a lot of free different VSTs that are very interesting
and experimental sounds. And those are the ones that I like the most.
Yeah, there are different ways. So Lean VST is the one that I found to be the easiest, but you
can use DSSI, VOS, for instance, is another way to do that. But there are different approaches.
Personally, the one that worked consistently for me was Lean VST. That's just why I use that.
Sorry. If I install PipeWire, can I get rid of Pulse Audio?
Yeah, no, because PipeWire is basically a replacement for both Pulse Audio and Jack,
even though it's compliant with both of them. So you can just...
Yeah, exactly. While you record your guitar, which is something that you couldn't do before. And
besides, PipeWire also does an excellent thing. For instance, with just playing Jack, I couldn't
attach two different audio interfaces to my computer. I had to choose one or use Zeta to add
another. Instead, with PipeWire, I can plug as many as I want, and they all appear, which is great.
I think I have to...
Thank you.
Do you have time for a question afterwards?
Yeah, absolutely. Just...
Yeah, yeah, I'll come outside in a second, sure.
Nice to meet you, Lorenzo. Nice to meet you, Lorenzo. Nice to meet you, too.
Yeah, yeah, yeah, yeah, yeah, yeah, yeah.
I'll just come outside in a second, because I think I have to wait for him. Sorry.