Sunrise at the mountain lake

Show off original scores and recordings made with Linux!

Moderators: MattKingUSA, khz

Post Reply
PieterPenninckx
Established Member
Posts: 62
Joined: Sat Jul 04, 2020 1:01 pm
Has thanked: 17 times
Been thanked: 39 times

Sunrise at the mountain lake

Post by PieterPenninckx »

Hi all,

I made a new piece of music, you can listen to it on my website. I hope you like it :-)

It ended up being a new age jazzy type of thing. I wanted to make some techno/edm, but I started by improvising a metronome-free chord progressions in Qtractor with a ZynAddSubFX pad, and that put me on a completely different track. After the pads, I layered in some more ZynAddSubFX instruments: a bass pad and a wind noise. With LinuxSampler, I added the glockenspiel from the VSCO community edition. I was still missing an instrument in the medium frequencies (around central C) and then I discovered the VSCO muted French horn. I immediately fell in love with that sound. That was going to be the main instrument. So I improvised a lead voice on top of the chord progression. This required some manual midi-editing afterwards as I wasn't always able to quickly read the chord name from the markers that I had added. Now this muted French horn has only two velocity layers for most notes and these layers don't blend very well: it's either soft or very brassy. I split the sfz file into two sfz files: one with the piano layer and one with the forte layer. I rendered the midi into two audio tracks: one with each sfz file, and then I tried to automate the volume between the two in Ardour. This didn't work out very well since it's hard to synchronise a volume change exactly with a note onset. So I adapted my workflow and did the automation in Qtractor: I split the midi track in three midi tracks: one for each sfz file that I had creaded + I also added the non-muted (sustain) French horn. I then changed the midi velocity and volume (MIDI CC 7 events) for each track. This approach gave me more flexibility than the audio-based approach, since I could for instance stop a note in one layer earlier, which gives a longer time window where I can place the MIDI CC event to turn the volume back up for the next note. By then, I had already recorded the ZynAddSubFX instruments as separate tracks in Ardour and now my setup was Qtractor -> LinuxSampler -> Ardour, where Ardour already contained the ZynAddSubFX instruments as separate audio tracks. Qtractor and Ardour can synchronise with each other, so that if you start playback in one program, the other also starts playing at the same position. I then started mixing. This is very new to me. I added some EQ to the French horn to filter out some unwanted frequencies. I also had to find a solution for the following problem: at the beginning, the French horn is not very loud. If I want it to be clearly audible in that part, I have to mix it very loud compared to the other instruments. The consequence is that the other instruments are very soft at the beginning, but the French horn is still very loud at other times. My "listening panel" (ahem, some family members) turned up the volume at the beginning in order to hear the background instruments and then had to turn down the volume afterwards in order to not become deaf when the French horn reached its peak (I'm maybe exaggerating a little). I now hear all you experienced LinuxMusicians saying to your computers: "Use a compressor, Pieter!". So that's what I did. The compressor makes the soft parts in the French horn track stand out a little more, so that I can turn the overall volume down and it doesn't become uncomfortable when it reaches its peak volume. I also used some reverb and a stereo delay.

What I like about this forum is that there are people in different stages of their (multi-dimensional) learning journey and you can learn from those who are a few steps ahead of you. Some members apologise for explaining their workflow, but I usually find this very interesting, so I've posted my workflow as well.

Lessons learned:
  • Sfz files can be edited manually in a couple of minutes if the file is not that complex.
  • Manually cross-fading between velocity layers is much easier by editing midi then by volume automation on audio.
  • Routing Qtractor midi to a synth and then the audio to Ardour over jack allows to combine the best of Qtractor and Ardour. (A prerequisite is that the synth can work with multiple audio output channels.)
  • Use compression to avoid having to choose between drowning the lead track in the background or making your audience deaf when the lead track reaches its peak volume.
  • If you want to make EDM, start with a beat and not with a pad, otherwise you will end up making New Age music :D
User avatar
Fmajor7add9
Established Member
Posts: 218
Joined: Sun Dec 31, 2017 3:56 am
Location: Might be moving to Montana soon
Has thanked: 48 times
Been thanked: 27 times
Contact:

Re: Sunrise at the mountain lake

Post by Fmajor7add9 »

Thanks for method details, helpful and inspiring to learn about for me.

so
many
questions

First one, re.
PieterPenninckx wrote: Sun Mar 28, 2021 7:40 am [*] Manually cross-fading between velocity layers is much easier by editing midi then by volume automation on audio.
does that involve manually moving an assigned fader or other controller after recording and editing the MIDI notes you want?

I'm thinking about automation curves and not sure if that's the same as your layers
jeanette_c
Established Member
Posts: 730
Joined: Tue May 12, 2020 5:53 pm
Has thanked: 347 times
Been thanked: 270 times

Re: Sunrise at the mountain lake

Post by jeanette_c »

A nice track, a pity it was so short. More please! Good ensemble, the French horn blends in very well!
--
distro: ArchLinux, DAW: Nama, MIDI sequencer: Midish
All my latest music on https://www.youtube.com/channel/UCMS4rf ... 7jhC1Jnv7g
Albums, patches and Csound on http://juliencoder.de
PieterPenninckx
Established Member
Posts: 62
Joined: Sat Jul 04, 2020 1:01 pm
Has thanked: 17 times
Been thanked: 39 times

Re: Sunrise at the mountain lake

Post by PieterPenninckx »

Thank you @Fmajor7add9 for the nice words. It's an honour to inspire you :D

About the cross-fading: what I mean by "layers" is that I duplicate my midi track (and unlink, in Qtractor, so that I can edit them separately), so now I have two midi tracks playing exactly the same notes. I assign each track to a different version of the same instrument: there is a "brassy" version of the instrument and a "non-brassy" version. These tracks are what I call "layers".

So suppose for example both tracks play an F and then immediately thereafter a G. Suppose that I wanted the F to sound "rather brassy" and the G to sound "less brassy".

The first thing I tried was to render both midi tracks into audio tracks (in Ardour), so then I have two audio tracks playing the same, but with a different sound. I then tried to use automation curves (in Ardour) between the F and the G, so on the "brassy" track, the volume goes down between the F and the G and on the "non-brassy" track, the volume goes up at the same time. The problem with this approach is that the automation needs to be timed very carefully: if for instance the volume of the "brassy" track goes down a little too late, then the second note (the G) will start brassy and suddenly become non-brassy, which is very strange.

The second thing I tried was to edit the midi tracks instead. In the same example, I could simply adjust the velocities of the notes: in the "brassy" midi track, I would increase the velocity of the F and lower the velocity of the G. In the "non-brassy" midi track, I would do the converse: decrease the velocity of the F and increase the velocity of the G. That's much simpler.

Now, it was a little more complicated than only adjusting the velocity since I wanted to evolve the volume (and also the "sound-colour") of one note. Qtractor does have automation curves, but since my synth is a stand-alone jack application and not a plugin, I don't think that would be of any help. So instead of automation curves, I used a midi feature: the controller events. I can't find any good documentation of this feature, so let me try to describe. If you're in the "piano roll editor" in Qtractor, you can "drag up" something from the bottom part of the screen. This is the area in which you would normally edit the velocity of the individual notes, but this area can also be used to draw controller events. In order to use this area for the purpose of drawing controller events, go to the drop-down box at the top of the screen and choose "Controller" instead of "Note velocity". Then the grayed-out drop-down box next to it becomes enabled and you can choose the type of controller event you want to edit. Not all controller events are supported by the synth, but "7 - Volume (coarse)" is supported by LinuxSampler, so I used that. This can be used as a not-so-fancy alternative to automation curves and it has its quirks, but hey, it works.

I hope this makes it more clear.

Anyway, this is a little tedious and I wouldn't consider it a "best practice". Ideally, there is an automation curve that maps to the colour of the sound (in this example "brassyness") of the synth, but that's not the case here.

Alternatively, you can edit the sfz files in a more advanced way (for inspiration, see @Rainmak3r's technique, described in this thread). I feared it required a lot of work upfront (more advanced editing of sfz files), so I used the more manual approach described above.
PieterPenninckx
Established Member
Posts: 62
Joined: Sat Jul 04, 2020 1:01 pm
Has thanked: 17 times
Been thanked: 39 times

Re: Sunrise at the mountain lake

Post by PieterPenninckx »

jeanette_c wrote: Sun Mar 28, 2021 3:14 pm A nice track, a pity it was so short. More please! Good ensemble, the French horn blends in very well!
Thank you, @jeanette_c, I was hoping you would comment since your comments show that you have a good ear :D
User avatar
Rainmak3r
Established Member
Posts: 892
Joined: Sat Mar 02, 2019 12:24 pm
Has thanked: 49 times
Been thanked: 180 times
Contact:

Re: Sunrise at the mountain lake

Post by Rainmak3r »

PieterPenninckx wrote: Sun Mar 28, 2021 3:17 pm Anyway, this is a little tedious and I wouldn't consider it a "best practice". Ideally, there is an automation curve that maps to the colour of the sound (in this example "brassyness") of the synth, but that's not the case here.
In Italy we say "fare di necessità virtù" (roughly "quality out of necessity", or "make the best of it"), and I think you did a great job there! I definitely saw creativity in how you had a problem and how you solved it, and I think it was a smart way of dealing with that.
PieterPenninckx wrote: Sun Mar 28, 2021 3:17 pm Alternatively, you can edit the sfz files in a more advanced way (for inspiration, see @Rainmak3r's technique, described in this thread). I feared it required a lot of work upfront (more advanced editing of sfz files), so I used the more manual approach described above.
I wouldn't say my editing was advanced (I still know very little about the SFZ format and how it really works), but if that gave any inspiration I'm glad :D
User avatar
Fmajor7add9
Established Member
Posts: 218
Joined: Sun Dec 31, 2017 3:56 am
Location: Might be moving to Montana soon
Has thanked: 48 times
Been thanked: 27 times
Contact:

Re: Sunrise at the mountain lake

Post by Fmajor7add9 »

thanks a lot Pieter,

I don't have Qtractor up and running yet, when that happens your explainer will be a reference for advanced MIDI editing. I've done something similar for audio drum loop tracks before, duplicated them (before I learned about busses :) ) and applied some different processing on either track.

Also noticed elsewhere that Qtraktor dev simply promptly fixed a MIDI export bug TAERSH had reported, was quite impressed by that kind of quick response. FLOSS at its best.
rncbc wrote: Sat Mar 27, 2021 4:32 pm [UPDATE] now it seems it's solved, thanks
folderol
Established Member
Posts: 2080
Joined: Mon Sep 28, 2015 8:06 pm
Location: Here, of course!
Has thanked: 227 times
Been thanked: 400 times
Contact:

Re: Sunrise at the mountain lake

Post by folderol »

Very promising. The method you get there is only important in how easy it is for you to use. In other words whatever works for you :lol:
The Yoshimi guy {apparently now an 'elderly'}
User avatar
milo
Established Member
Posts: 1242
Joined: Wed Sep 06, 2017 2:55 am
Location: Southern Utah, USA
Has thanked: 275 times
Been thanked: 218 times
Contact:

Re: Sunrise at the mountain lake

Post by milo »

That was a heroic effort to get the sound you wanted, but it was worth it. I think it sounds more like a trumpet than a French horn. But it is very expressive.

I think back to songs I worked on years ago and marvel at how I struggled to do things the hard way. I spent weeks on a song about 20 years ago that I could largely do in one afternoon with my current tools. But that's not the point. The point is that I struggled and learned things. And honestly it was fun the whole time.
Basslint
Established Member
Posts: 1516
Joined: Sun Jan 27, 2019 2:25 pm
Location: Italy
Has thanked: 385 times
Been thanked: 299 times

Re: Sunrise at the mountain lake

Post by Basslint »

Nice experiment! :wink:
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]

Please donate time (even bug reports) or money to libre software 🎁

Jam on openSUSE + GeekosDAW!
Post Reply