Daydreaming Waltz (classical)

Show off original scores and recordings made with Linux!

Moderators: MattKingUSA, khz

Post Reply
User avatar
Rainmak3r
Established Member
Posts: 888
Joined: Sat Mar 02, 2019 12:24 pm
Has thanked: 49 times
Been thanked: 180 times
Contact:

Daydreaming Waltz (classical)

Post by Rainmak3r »

Hi all,

I'm sure we all had our share of New Year's resolutions, a list of things that we may or may not ever accomplish! :lol: Mine, this time, was one that I hope I'll manage to pull through... I decided to make 2020 the year I finally focus on the Symphony and Symphonic Poem I always wanted to write, and that in part I've composed already (but never written down). I announced this publicly among friends too, which means that this is supposed to be the trigger that sparkles, using the power of shame, my otherwise very procrastinatory engine :mrgreen:

While I started with both already, I knew I had to first chew something shorter and more manageable to get a little practice with the tools, and more importantly train and improve my orchestration skills, which is how the Waltz I'm sharing here came to light. I actually did compose this almost 20 years ago, and it was part of a larger (non-orchestral) track I since lost; since I never forgot it, I decided to sit down to rewrite and orchestrate it, as an excercise for what's to come:

https://soundcloud.com/lminiero/daydreaming-waltz

It's short as it's basically the same theme repeated twice: once with very few instruments (violas, horns, pizzicato celli and basses), and then joined by more on the way. You'll likely find it very derivative and, I suspect, quite predictable as well (I've been listening to it in mind for 20 years so I can't tell anymore :wink: ), and I'm not particularly happy with the end result, but I hope you'll enjoy it nevertheless! Just for the fun of it, I added a small bit of intro and outro to highlight the fact this waltz comes from daydreaming... The main point of this post was to share the process I followed to come up with this, in order to get some feedback on where I could improve.

Long story short (if you don't want to read the whole description below), I used MuseScore to score the whole thing, exported to a MIDI file, imported the MIDI tracks in Ardour, assigned the right Virtual Playing Orchestra (VPO) SFZ instrument to each track using LinuxSampler, attempted some panning to simulate orchestra placements, and added a bit of reverb with Dragonfly Reverb. While this sounds like a relatively straightforward process, it was a huge pain, especially in Ardour: the Ardour/LinuxSampler combo basically crashed or freezed Ardour after a few seconds any time I tried to listen to the piece, something that in the past only happened with some specific SF2 I then learned to avoid. 95% of the times it also crashed even when I tried to just export the track. It may be my poor laptop is just not powerful enough to handle ~20 SFZ tracks, but with 4 cores and 8GB of ram I thought it could do a little better than that. To get the audio for the track I published I had to do several attempts at exporting, which means it's by all means not a viable solution, especially for much longer tracks where experimenting with mixing may be much more important. The options I see for the future are the following:
  • Try a better orchestral template in Ardour: the work Michael Willis has shared in a recent post may be an option, so I'm quite interested to see if it might help overcome the challenges I had (unless it really is an hardware limitation)
  • Render MIDI tracks to audio one at a time in Ardour, and then get rid of the MIDI (painful)
  • Render MuseScore staves to separate audio tracks from MuseScore itself, and then import them in Ardour as audio (a bit painful too, since MuseScore doesn't support it; I'd have to set the right SFZ in the Sequencer, "solo" each staff one at a time, and do separate exports; would give less flexibility in fine tuning in Ardour)
  • Buy a more powerful laptop, I guess :mrgreen:


That said, if you're interested in a longer and more detailed here, here it follows. As anticipated, this gave me the opportunity to start looking into MuseScore. This past year I've used Lilypond a lot, and I love it: I've never written ideas down faster than I did with Lilypond, and I still use it regularly as a musical note-taker any time I come up with a new idea. That said, it is more awkward to use when you have to work on a larger scale project, when you have to move/copy things around, use placeholders for things you know won't be added until later, or more in general preview things that exceed the limits of generic MIDI files. This led me to test MuseScore, which a lot of people recommended, especially for classical scores: I particularly liked the idea that it provided ways to automatically use different sounds for different instrument "profiles" (e.g., pizzicato or tremolo strings).

I must say that on the scoring part I was pleasantly surprised: I thought I wouldn't be able to go back to a WYSIWYG score editor, after falling in love with Lilypond, but the fact that with MuseScore you can get basically everything done with shortcuts and the keyboard was quite the revelation. I'm still not very fond of the "IDE"-like user interface (the fact that properties appear when you select something, like it's a button in a GUI editor, is something I never liked much, and I feel it makes it harder to control rather than easier), and I think some features are a bit intricate (but that may be because I still have much to learn), but all in all it was a very smooth experience, and I ended up writing things quite fast.

On the sound part I have mixed feelings. MuseScore comes with a soundfont of its own that has a decent quality, and I think quite good for previews and getting an idea of what you're writing will sound like in the end. The problem comes when you want to do something more than that. To start, getting different sounds for some instruments was a bit of a pain, as while some instruments have built-in alternatives (I mentioned pizzicato and tremolo for strings, for instance), if you want, let's say, a muted horn, or want to use slow strings instead of fast strings, the process is a bit convoluted, even though I got there eventually. But the Mixer and Synthetizer part leave a bit to be desired, and I feel they could be improved. The Synthetizer does support SFZ via a feature called Zerberus, which is cool: it also makes it quite unusable when you have ~20 tracks, though, and it's very slow to load them all. This is reasonable, due to the hardware limitations, and as anticipated the default soundfont is enough for the scoring part, but it's relationship to the Mixer is what I currently find a bit lacking. Specifically, AFAICT there's no way to jump, let's say, from the default configuration (quick scoring) to one I might have saved where I've set different .SFZ files for each instead (good preview). It does provide a way to save it in the score file, but then that becomes the default, and so you have no way to switch between the two, and the process of changing the soundfont for each intrument is very long and cumbersome.

This is why I chose to stick to the default soundfont in MuseScore, and leave the rendering process to Ardoud instead. As I've anticipated, though, that proved to be quite a failure for a few different reasons. Before the issues I documented already, in fact, there was another problem I anticipated: while MuseScore does support switching the instrument on a staff (e.g., go from fast strings to pizzicato, and then back to fast strings), this is far from trivial in Ardour. To be more precise, Ardour does support instrument changes, but apparently LinuxSampler doesn't: if you've set LinuxSampler as a plugin for that MIDI track, then you're stuck with it. This forced me to copy the tracks that had changes to new tracks, and manually trim the notes that didn't belong from both, which was a mess even for this relatively simple score (I only had to do it towards the end for violins and violas, that all become pizzicatos). The real source for endless frustration was the mixing part though, where I simply couldn't even play just a few seconds: even if I solo-ed some instruments, Ardour would freeze or crash, which meant all I did with the track (panning, intro, outro), was basically done by guess-work. The frustration became even higher when the same happened when exporting the track, which I thought would be fine instead: sometimes it would die 30s in the track, other times 1m45s, other times who know when. It was basically a try-and-try-again-until-you succeed process, which felt very bad. Be it because of the hardware, or because Ardour+LinuxSampler just aren't that stable when you exceed certain limits, that won't the way to go.

I'll probably experiment with the "separate audio tracks exported in MuseScore" option first, if not because it might be the easiest to accomplish: on the plus side, this would take care of instrument changes automatically (MuseScore would do that), and apparently MuseScore does support WAV and FLAC as high quality output options. I expect that to be a quite suboptimal solution, though, for a few different reasons:
  1. As I anticipated, importing a soundfont and setting it in the Mixer is a bit painful in MuseScore, even if I do it for a single track; I'd then have to solo that track and export to audio one track at a time.
  2. While WAV and FLAC are supported, I'm not sure I can trust the decisions the Mixer will take, in particular with respect to normalization and other things that may invalidate any effort on dynamics: this might make the mixing in Ardour harder, not easier.
  3. Having to work with audio streams in Ardour would prevent me from making tweaks to the MIDI when needed: e.g., fine tune some velocities, get rid of some notes or add new ones, etc, all things that would require regenerating the whole track from scratch in MuseScore and replace it in Ardour.
Do you have any idea on how the whole process might be streamlined, or possibly on what I'm doing very wrong? As usual, I apologies for the extremely long post, but I really like to share my process, as I always get very useful tips from you guys!

If you've reached this far, thanks!
User avatar
Rainmak3r
Established Member
Posts: 888
Joined: Sat Mar 02, 2019 12:24 pm
Has thanked: 49 times
Been thanked: 180 times
Contact:

Re: Daydreaming Waltz (classical)

Post by Rainmak3r »

PS: I just gave Michael Willis' Ardour template a go, and it was much nicer to my CPU! In case you guys want to compare it to the one I put on soundcloud, the end result is here:

https://drive.google.com/file/d/1Eb5QE5 ... sp=sharing
User avatar
Michael Willis
Established Member
Posts: 1451
Joined: Mon Oct 03, 2016 3:27 pm
Location: Rocky Mountains, North America
Has thanked: 69 times
Been thanked: 164 times
Contact:

Re: Daydreaming Waltz (classical)

Post by Michael Willis »

Wow, I like the composition a lot. I understand how it is to have something in your head forever, and then finally get it down and after going over it about a hundred times it just doesn't have the same magic anymore.

I'm surprised at how well it worked to import the midi tracks from your MuseScore project and finish it in Ardour. I'm double surprised at how little trouble you had adapting it to my template! It's not too bad for how quickly you did it. As for things like the Perf vs. Standard VPO, you can just open the sfizz plugin and point it to a different SFZ. Be aware that you may have to adjust the mixing if you do that.

I think that your waltz "oom pah pah" will sound better if you make the brass section have more of a staccato sound. Without making too many changes, if you want to stick with the Perf SFZ, just bump the velocity of those brass notes to somewhere around 100 or so, shorten the notes a bit, and at that point if it is too loud, drop the mod controller (CC1) to 60 or lower.

Also, for the parts with long sustained notes, try giving them a "swelling" effect with automation on CC1 - The template defaults it to 80, which I consider to be a mezzo-forte. Try starting it around 60, then a crescendo to 80 by the middle of the note (or phrase), and then a small decrescendo back to 60 or lower near the end of the note or phrase.

I would also suggest doubling up instruments for some of the parts, like double the viola melody part with one of the violin sections, maybe copy the contrabass pizzicato part to the tuba track, and double up the trombone with the horn. You don't have to do all of those, but you might find that it fills out the sound a bit.
User avatar
Rainmak3r
Established Member
Posts: 888
Joined: Sat Mar 02, 2019 12:24 pm
Has thanked: 49 times
Been thanked: 180 times
Contact:

Re: Daydreaming Waltz (classical)

Post by Rainmak3r »

Michael Willis wrote:Wow, I like the composition a lot. I understand how it is to have something in your head forever, and then finally get it down and after going over it about a hundred times it just doesn't have the same magic anymore.
Thanks for listening, and glad you liked it! Yeah, I get that feeling often with my tracks... one part of the aspect is of course that my orchestration skills could be improved, and nothing ever sounds like it does in my head :)
Michael Willis wrote:I'm surprised at how well it worked to import the midi tracks from your MuseScore project and finish it in Ardour. I'm double surprised at how little trouble you had adapting it to my template! It's not too bad for how quickly you did it. As for things like the Perf vs. Standard VPO, you can just open the sfizz plugin and point it to a different SFZ. Be aware that you may have to adjust the mixing if you do that.
I'll probably experiment with those a little, since from what I read the "performance" in the PERF package doesn't stand for more optimized, but is just a different way of interpreting MIDI input. As such, the load on the CPU should be the same in both cases, meaning my issues were very likely caused by LinuxSampler then.
Michael Willis wrote:I think that your waltz "oom pah pah" will sound better if you make the brass section have more of a staccato sound. Without making too many changes, if you want to stick with the Perf SFZ, just bump the velocity of those brass notes to somewhere around 100 or so, shorten the notes a bit, and at that point if it is too loud, drop the mod controller (CC1) to 60 or lower.

Also, for the parts with long sustained notes, try giving them a "swelling" effect with automation on CC1 - The template defaults it to 80, which I consider to be a mezzo-forte. Try starting it around 60, then a crescendo to 80 by the middle of the note (or phrase), and then a small decrescendo back to 60 or lower near the end of the note or phrase.

I would also suggest doubling up instruments for some of the parts, like double the viola melody part with one of the violin sections, maybe copy the contrabass pizzicato part to the tuba track, and double up the trombone with the horn. You don't have to do all of those, but you might find that it fills out the sound a bit.
Before touching velocities and automation, I want to better investigate how crescendos and diminuendos in the score can help. Many classical scores have plenty of those around to highlight when things need to sound a certain way, which means that in part they should provide a bit of automation directly in the MIDI file. But your suggestion is quite interesting and helpful, as it would give a more natural feel of how a string instrument sounds when touched by a bow, independently of any particular effect the score is aiming for.

On doubling, this is indeed what I tried to do in the second part, when it starts to fill in with more instruments. I guess I should have added something in the first one as well, as it does sound too bare. Thanks for the tips!
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: Daydreaming Waltz (classical)

Post by milo »

I really like the composition. You have a nice melody, and I think the orchestration builds to a nice climax.

It's hard to say which version I like better. The horns at the end sound better on the first version, I think. The dynamics seem a bit better on the second version, though. I agree with Michael that the strings need to be doubled up in the early part of the song.

MuseScore is a nice tool for notation, but I'm not sure if I will use it for recording. It's hard to get the phrasing just right because you don't have granular control over the individual note velocities. (At least, not that I have been able to figure out.) If I were to use your workflow I would probably spend a lot of time in Ardour tweaking the velocities in the midi tracks. And by the time you do that, you might as well just author it within the DAW in the first place because you didn't save any time.
User avatar
Rainmak3r
Established Member
Posts: 888
Joined: Sat Mar 02, 2019 12:24 pm
Has thanked: 49 times
Been thanked: 180 times
Contact:

Re: Daydreaming Waltz (classical)

Post by Rainmak3r »

milo wrote:I really like the composition. You have a nice melody, and I think the orchestration builds to a nice climax.
Thanks, I'm glad you enjoyed it! I guess I could have expanded on it more, maybe with a few more themes, and turned it into a "scherzo", but if I keep on thinking like that I'll never get things done for good :mrgreen:
milo wrote:It's hard to say which version I like better. The horns at the end sound better on the first version, I think. The dynamics seem a bit better on the second version, though. I agree with Michael that the strings need to be doubled up in the early part of the song.
I guess the improved dynamics come from the "performance" SFZ used by Michael's template, which probably add some more "life" to the piece using the existing velocities more. I think it also comes from a much better panning and reverb in Michael's template, which give more room to each of the instruments, where some are more hidden and muddied in my first version instead, making everything more flat (it that makes sense?)
milo wrote:MuseScore is a nice tool for notation, but I'm not sure if I will use it for recording. It's hard to get the phrasing just right because you don't have granular control over the individual note velocities. (At least, not that I have been able to figure out.) If I were to use your workflow I would probably spend a lot of time in Ardour tweaking the velocities in the midi tracks. And by the time you do that, you might as well just author it within the DAW in the first place because you didn't save any time.
The problem is that none of the tools I used so far provide that kind granular control: the ideal would be some kind of visually modifiable graph of velocities for phrases, but that's hardly ever going to be easy to find (if not because it would be a mess with chords). That said, I'll never use Ardour for authoring: I find its MIDI editor just atrocious, and even just tweaking velocities is often a pain (select node, middle wheel to change velocities... the problem is my mouse sucks :lol: ). I like MuseScore so far, and I think that by adding more crescendos and diminuendos (maybe some that are hidden in the score) I'll be able to get a better result: if then some additional tweak is needed, then I can bite the bullet and open the dreadful Ardour piano roll :mrgreen:
User avatar
GMaq
Established Member
Posts: 2774
Joined: Fri Sep 25, 2009 1:42 pm
Has thanked: 520 times
Been thanked: 555 times

Re: Daydreaming Waltz (classical)

Post by GMaq »

Wow!

This sounds really good, what an ambitious arrangement!? To me if it had some period appropriate settings with the Calf Vinyl plugin it would sound like a very legit Classical recording on a 78RPM record from 100 years ago..
User avatar
Rainmak3r
Established Member
Posts: 888
Joined: Sat Mar 02, 2019 12:24 pm
Has thanked: 49 times
Been thanked: 180 times
Contact:

Re: Daydreaming Waltz (classical)

Post by Rainmak3r »

GMaq wrote:Wow!

This sounds really good, what an ambitious arrangement!? To me if it had some period appropriate settings with the Calf Vinyl plugin it would sound like a very legit Classical recording on a 78RPM record from 100 years ago..
Thanks for the nice words, glad you liked it! I'll have to play with that plugin, who knows, it might make the end result sound cooler 8)
Post Reply