Friday, March 26, 2010

My actual patches

I've been considering making my own patches, the one's I'm blogging about, available for download. I figured a good way to try was to find a file-sharing website. Let's see how this works!




Wednesday, March 24, 2010

Return of Thor

So I'm getting deep into sampling with the Akai S2000 and have made some great progress. It's good to have a lot of things going on to break up the monotony of working in one particular soft synth. I figured out a good trick, something that's easy to implement--keep the old Mac and the sampler at home and ONLY edit Akai programs at home. That doesn't mean I can't prepare new samples while I'm at work. It just means I have to wait until I get home to really work on putting everything together.

So I'm back to programming Thor. Still just one or two patches a day, but I'm moving forward with it. I'll be sure to share a new patch in the next day or so. The good news is I'm slowly grinding towards the end of the DX7 ROM 2a. I really am down to the final stretch!

Friday, March 19, 2010

More on sampling...

This week it seems I've been non-stop sampling with the S2000. I've made a few changes in the way I'm working which makes things faster. But it can also be a pain. Here I'll try to explain as briefly as possible what happened yesterday up until the early hours of this morning.

I started out by getting a high-powered breakfast, my ritual when I've got a big day ahead of me. That consists two pints of milk--one white, one chocolate because I don't like white milk and store-bought chocolate milk is too sweet--and a cinnamon twist from local donut shop Shipley's. Normally I'd prefer a chocolate iced donut, but my wife and I had stopped in too early. I made a pot of coffee when I got home. And let me tell you, there is NOTHING quite like working all day on a project on just a quick morning sugar rush and a steady stream of java. I made 8 cups and slowly sipped about half a cup at a time, roughly once an hour. Something else that helps is drinking LOTS of water.

First step is identify your source and record. For me this is easy: Absynth. I choose this one because it's the easiest way to draw waveforms, and I've built up a nice library of single waves. I use Absynth's record feature to get a 1/4 second snippet of 4 octaves: C0, C2, C4, and C6.

Next step is trim the samples. I've found this works best, even if the note is just slightly out of tune: C0=1348 samples, C2=337, C4=84, and C6=21.

Before I continue, let me say these samples will be out of tune and, for the moment, will have to be tuned manually. Why is that? Notice that the sample length (at 44.1k) of all 4 notes is a whole number. That's because samples are absolute; there are no fractions of samples. I forget the exact frequencies of those notes, but I do know that those frequencies do not fall neatly into any subdivision of the 44.1 kHz sample rate. What this means for us is that each new cycle is going to be a variation of the source sound until enough cycles have passed that it falls back right again. Don't ask me how many time it takes because I don't know, nor do I care. If you know how to use a calculator, you can figure it out. I'm perfectly comfortable tuning samples. Anyway, because those sample lengths are only approximations of the full wave cycle, each sample will tend to be slightly sharp.

Notice that the lengths of C4 and C6 don't fall in the same logical pattern as C0 and C2. Why is that? Notice that C2 is an odd number of samples but directly proportional to C0 4:1 based on a cycle of 1348 samples. Remember, there's no such thing as a fraction of a sample. For C4 and C6 to work, they have to be based on a slightly lower number that can be further divisible: 1344. That way, you can maintain the 4:1 ratio with C4 and C6. But what's the obvious problem here? The tuning will be pushed further sharp, a problem which will have to be corrected later.

So the samples are trimmed. A hard lesson I learned early on was that the S2000 only likes samples of a certain length. I haven't been adventurous enough to find out exactly what that is, but I did learn that 1348 samples seems to be long enough. The S2000 doesn't seem to like looping a full sample, either. So I do know that the sample length for a full wave cycle at C0 has to be at least twice that. I also figured out that the S2000 doesn't necessarily leave the loop points where I set them. Assuming that the points will be shifted somewhat, we need a third wave cycle as a safety. So that's 1348 3 times.

The next step, then, is to copy the wave onto itself to yield an appropriate length, 1348*3 for low notes and 1344*3 for high notes. This is where the samples part ways with the MBP. I load 'em up to a convenient floppy disk and transfer 'em to my almost 10-year-old PC, still running Win98SE perfectly stable! I have an audio editor that, though extremely dated at this point, works wonders with sample information. Now if only it had batch processing... The procedure goes like this: Select all, copy, move cursor to end of sample, hold down paste until the desired length is reached, tab to next window, repeat. This goes very quickly using only shortcut keys, no mouse.

After lengthening the samples, loop points have to be set. Since each sample is the same length and there is no variance in the waveform, the loops can also be all the same length. It's not a hard guess: 1348 for low notes, 1344 for high notes! The difficulty has been that this is a lengthy mouse operation, selecting an exact length and looping to selection. I'm wondering if manually typing in the info would be faster, since it should be the same for all samples.

The next step would not have made sense to me had I not learned a hard lesson last night: My particular sample editor works best in wav format and doesn't seem to output aif properly, at least not in a way that's compatible with the S2000. When I tested the samples, there were not looping. When I checked to see what the problem was, the loop length had been increased by one sample. It worked fine after I jiggled the alpha dial, but I'll leave it to the reader to guess what happens when the loop length gets jacked with! So for the way I work, the output has to be all wav from the Mac to the PC.

After the WAV files (NOT aif) have been trimmed, lengthened, looped, and root keys set, they have to be saved in a format friendly to the Akai, which IS aif. My earlier mistake had been trying to work all in aif in order to cut out a few steps which shouldn't be necessary (they are). I herd all my growed-up samples back onto floppies for the drive back to the MBP. The floppies are then erased (again, for the third time, by the way) after the wavs have been transferred to the Mac. I fire up Logic, load all samples into the bin, and then batch convert the whole lot of 'em to aif.

These go BACK to the floppies which are then loaded into the old PPC Power Mac and copied to a desktop folder. Mesa is already up and running, so it's a simple drag-and-drop into the sampler memory. Finish line!

For now, I'm fine tuning all samples from the face of the sampler. This works for now because all samples have a strong fundamental. The trouble will be when sidebands cause enough trouble to confuse the tuner or when additive waveforms emphasize an overtone which will be detected as being out-of-tune even if it isn't. In the future, fine-tuning information will have to be included in the wav file. It will certainly be less time-consuming.

Beyond that, there are a few nit-picky items to handle. For example, this process leaves the file extension in place. I like to rename all samples so that they don't have the extension. It takes a little time, but MESA makes that much easier.

Here's a wrap-up of the entire procedure:

1. Record samples with Absynth, save in wav format.
2. Trim waveforms in Logic.
*Cycle lengths are (in samples): C0=1348, C2=337, C4=84, C6=21
3. Transfer to PC
4. Copy/Paste samples to proper length
5. Set loop. Length is 1348 samples for low notes, 1344 for high notes.
6. Transfer back to MBP, load into Logic.
7. Batch-convert to aif.
8. Transfer to Mac PPC.
9. Use MESA to transfer to S2000.


Tuesday, March 2, 2010

How to make small samples that WORK

Let me start by telling where I am with the Thor project. Right now I'm having a lot of trouble staying motivated and inspired to work. I've taken some time off from the Thor project. While it was refreshing, I've also found that I'm getting lazy. It's very difficult to stay focussed. At this point, I'm feeling like working on that project is a chore.

It's the BRICK WALL. We all hit it at different times in various projects. It's not a good feeling. So how do we get through it?

The answer comes from advice I give my piano students: Proceed slowly. Getting in a hurry causes us to slip up, make mistakes, overlook important details, and form bad habits. Some brick walls are easily knocked down with a big hammer. But what if we lack the strength/discipline to wield that hammer or the wall is just too thick? Easy. Just get a smaller, lighter hammer and a chisel. SLOW DOWN. Conserve your strength. What you find is that the creative ability is strengthened through slow, deliberate work. The bricks in my wall are called Distraction and the mortar is Fatigue.

I moved my S2000 to my evening office. That went a long way to bustin' up some bricks. But that does nothing for feeling mentally, creatively, and even emotionally worn out. No biggy.... Just slow down. And that leads to the next piece of advice I give my frustrated piano students: Slow progress DOES NOT EQUAL no progress. It takes time to develop a skill in music. Chip away. Having said that, I might have a lot of time during the day, but I'm reserving that for only one or two patches a day and not the four to eight I've done in the past. Perhaps there will be a big sprint to the finish line, but it will have to wait until I can chip away at some more of this brick and mortar. We'll make it!

What I really want to write about are a few little discoveries I've made working with the Akai S2000.

I started out creating waveforms in Absynth that ranged from silly simple, like saw waves, triangle waves, pulse waves, to complex FM variations of those as well as "classic" FM (sine operator modulating up to four additive waveforms) and simple sinusoids. My next task was transferring them to the Akai. This was no big deal. I took the shortest sample I could get away with and attempted to loop a single cycle. I also thought it would be a good idea to leave off the anti-aliasing filter for a good "digital" sound. After spending many days on this, I thought I had a good things going.

Apparently I thought wrong. When I began assembling these first attempts, there were pops everywhere, and I didn't even want to think about how long it would take to fix the problem. I made it a point to stay away from the sampler for about a week because I knew there was no end to that frustration. I was also having a lot of trouble keeping my mind on Thor. Ultimately, this led to moving the sampler to my other office late last week.

Here's what I think happened: Absynth (hard lesson learned here) does not output a consistent waveform. I checked. I turned the unison random setting all the way to 0. It really made no difference. That makes it impossible to find a decent loop point consistently.

The other problem had to do with aliasing. Because of all the digital noise introduced in the upper registers, it's really impossible to find the wave cycle. And if you can't find the wave cycle, it's impossible to set the right loop point.

I discovered all this purely by listening. I can't stress that enough. When my ears could no longer explain what they were hearing, I had to resort to a visual editor to see if I could figure out the problem or confirm my suspicions.

What I found with my eyes was exactly what my ears were telling me: Absynth is horribly inconsistent. I have some theories. I'm running Absynth at the standard 44.1 kHz. My guess is that running up against the Nyquist frequency is causing some phasing problems. It could be that would happen anyway, though. If Absynth uses dithering to handle noise with anti-aliasing turned on, there should consistently be some differences in the waveform from cycle to cycle. Again, this makes looping a single cycle impractical. To check waveforms, I used Absynth to record itself (standalone version) and ported the results to Logic for trimming. It became a contest to see which cycle ought to be sampled, and it's not to be won without difficulty.

The logical conclusion is that I'd have to resort to a visual editor (Logic) to pick out these single cycles and loop the full sample. That takes all the guesswork out of setting loop points and should, in theory, render it a non-issue. Away from the Akai, I decided to test this theory in NN-XT. The result was flawless! I was making some great pads within seconds.

After getting my method down, I tested this theory on the Akai. This time I took an old Dell Inspiron with software capable of sending SDS and MIDI'd it up to the Akai (still don't have SCSI yet). The sample transfer felt almost instantaneous. At first, the loop sounded automatic (it was a saw wave). It was good like a good loop should. But the higher samples didn't sound right. So I scroll through Akai pages to try to get to the bottom of the loop problem. I got to the sample trim and the Akai got totally confused. The sample was smaller than what the Akai was prepared for, so it stopped working entirely. Complete failure. The workaround is to use the group buttons to scroll past the trim pages. After accidentally causing a few more failures, I got to the sample loop page and found there was very little room to adjust. I'm not sure why, but Akai just refuses to simply loop an entire sample, especially one that small. Am I missing something here?

Now, one mistake I made that I won't repeat was using saw waves. The problem with saw waves is they inherently have that "pop" when the cycle restarts. That makes them easy to tune. Another side benefit is looping various numbers of saw cycles for a syncing effect. This will introduce more harmonics or sub-harmonics (and they say audible loop points are a bad thing--bah!). The down side is this really only works for saw and pulse waves. While this CAN be useful for other kinds of waveforms, I generally advise against it. But the point is that tuning the "perfect" saw wave is impossible because you can't really tell whether the wave is "syncing-up" with the loop point or if it's the beginning of the cycle. Another analogy is to visualize a physical ramp. If you were to cut off the upper portion of a ramp, you'd just have a shorter ramp. If you cut the ramp in half, you'd still have a ramp. Same phase, same angle. Due to this fact, every point on the saw ramp is potentially a loop point. Good luck actually finding the right one. Using a tuner will help you get closer, but you still have to wonder if you got it exactly right.

So here are some observations: The samples have to be longer. Let's say that we make the lowest note we sample (C0) a point of reference. My ideal would be to make it 3x longer and loop the 3rd cycle. Easy. Next, we need to make all higher, shorter samples equally as long in terms of time and number of samples as the lowest sampled note. Also easily done. Finally, every wave cycle must be identical to the first. By fixing the first two problems with a simple cut-and-paste operation, each successive waveform WILL be identical.

Hold on, we're not done yet! Because of problems with Absynth not producing a consistent waveform, we can't simple relegate loop points and length to a simple function of proportion to our lowest-pitched sample. Theoretically, you should be able set all loops made this way (cut-and-paste) to exactly the same length. But what will happen with higher notes is a greater degree of variance. So start out by using the longer loop length as a point of reference and gradually shorten the loop until the loop point is inaudible--shouldn't take long. A quick SDS dump to the Akai will wrap up this part of the sample editing process.

Before I move on to further editing the samples in the Akai, I want to point out that this process really does create a perfectly flawless sample. But the real trick is listening. Ever notice how EVERYTHING in life/nature/etc. works perfectly in theory but fails in practical application? The reason why our plans fall apart so often is that changing some of the factors involved and even unintentionally introducing outside factors causes variances in the result. For example, when sampling C4 and C6, I should have gotten identical results by setting the loop length to be the same as the C0 sample with absolutely no audible loop points. Playing back those samples did not yield the expected results.

So what do you do about it? Well, on the one hand, you can freak out and consult your visual editor to figure out how to exactly line up the end of one cycle with the beginning of another. I think a common misconception is that visual editing is faster than listening. Personally, I disagree. Scrolling back and forth comparing two ends of a wave is time consuming itself. A solution is using a loop tuner to compare both ends of a loop at once, scrolling through until you find a closer match. But upon listening, you'll find that the cycle is still audible. Visual editors are great for larger-scale sampling, but ultimately you'll want to be sure that what you hear is what you want everyone else to hear. A visual editor simply will not do the same job your ears will.

Now for my final observations! An SDS dump will quickly get small samples to the Akai. Don't forget that we're now dealing with much longer samples than the single cycles I was going for in the beginning, so SDS transfers are going to take a lot more time. At least the extra time involved is still reasonable, only a few seconds.

The samples still have to be edited on the Akai. The loops so far have been perfect in the few tests I've run. You'll want to rename them. You'll also want to set a root key. We're dealing with a small number of samples for each instrument we create, so many of the inconveniences we have to put up with aren't quite so bad.

Time to go make some more Thor patches. Perhaps my future blogs will be more about sampling with the Akai S2000! I've got big plans for the sampler.


Monday, March 1, 2010

"What's Love Got To Do With It?": Harmonica 1

The DX7 in all it's glory was, as most know, featured on a plethora of recordings back in the 80s. It's this sound designer's understanding that included THE harmonica sound on Tina Turner's "What's Love Got To Do With It?" If so, it's a real FM synthesis treasure.

As I worked on this, I was once again reminded of the vast difference between the DX7 and Thor. The Harmonica 1 sound, at least the way I envisioned it, is a bit richer than most patches I've written so far. And yet for it's complexity, it's really a simple patch.

We'll start with that. FM8 shows it as a 4-op patch. So judging between the visual data behind Harmonica and the actual sound, we see it's a DECEPTIVELY simple patch. No, there won't be any need for using a resonant filter as a 4th oscillator. But we do need all our modulation resources. I'm not necessarily going to attempt a direct emulation of the Harmonica structure. Rather, this time, I'm going for a somewhat imitative timbrel quality which will be modulated by three EGs and an LFO.

Let's start by getting the basic timbre down. We have a chain of 4 ops. We'll get a better approximation if we use Osc1 in place of A and B, Osc2 in place of C, and Osc3 for the carrier. Initially, we'll ignore using any FM amount in osc2 and 3. A and B have the ratio 7.62:5.056. What do we know about decimal values in Thor? Thor doesn't like them. So let's think about them in terms of notes in the C scale. 7=Bb, 5=E. 7.62 is equivalent or approximate to the leading-tone 7th, B natural. So we'll set the ratio for the nearest harmonic interval of a 5th--5:4, or G:C. To make this work for us, we set the semi to 4, raising them both a major 3rd to get closer to the ratio we need.

The next part arises from an ongoing complaint I have about Thor's implementation of FM. This specifically has to do with how Thor handles oscillators modulating each other and all the pitch instability it causes, radically shifting the pitch in most cases. This is obviously avoided by using Key Note to scale the effect. The inherent problem with this approach, however, is that the effect cuts out at C3 with scaling at 100. I'm not going to take the time to further fix the problem now for this patch, but I think what happens next is interesting.

Route Osc1, amount 100, to Osc2 FM. You'll need two scales. Set the first amount to 63, Filter Env, and the second to 60, Mod Env. Route Osc2, amount 68, to Osc3 FM, and scale first amount 40, Amp Env, and second amount 90, Key Note. What this does is link up all 3 oscillators without making them TOO perfect. I didn't use keyboard scaling with the first set because I thought a little instability and noise in that part of the chain wouldn't be such a bad thing, and I wanted to use the mod and filter envelopes to try to recreate a kind of breakpoint effect that the DX7 uses and is absent in Thor.

We don't need filters for this one. We do need a little vibrato, however, and this is where the designer's ear comes into play. The original DX7 patch has a dramatic vibrato whose rate is keyboard scaled (the higher you play, the faster the vibrato). I don't really like doing things that way, so I'm going to keep the vibrato constant. Set LFO1, amount 13, to Osc3 Pitch. Set LFO1 rate to 5.26Hz, triangle wave. Mod Env A 9.0 ms, D 3.2 ms, and R 3.2 ms. Filter Env A 78.8 ms, D 423 ms, S -3.7dB, R 7.50 s. Amp Env A 34.9 ms, D 4.73 s, S -13.4 dB, and R 423 ms.

To finish up, notice that FM8 oscillators are not perfectly tuned to harmonic ratios. The differences are mostly very slight and subtle. You can detune the oscillators to reflect that. For my taste, however, the timbrel variation strays to far from the sound I'm trying to get, so I just substitute the chorus effect. It should be very subtle, and I'll leave the reader his/her own judgment as to what it needs.

And that's it for a simple FM harmonica!

Monday, February 15, 2010

Complicated Relationships : Gong 1

So it's been a couple weeks since my last post when I was still fooling around with the Akai. That's going to be an ongoing thing, especially since I have much work to do. But it's time to get back to my original project: Thor versions of DX7 patches.

I have to remind myself of the importance of this project. It's not so much recreating DX7 sounds in the Thor synthesizer. It's more about what kinds of sounds we can spin off from them.

It's also about learning the synthesizer and coming up with ways of solving problems. We've already established that there can be no perfect replication of the DX7 architecture in Thor. We have, though, also established that by mimicking DX7 architecture (feedback loops, long chains or stacks of modulators and carriers) we can get results that approach the DX7 patch. I think that certain kinds of sounds are enhanced by these differences.

But sometimes these differences can make life really complicated for us. This week, we'll examine Gong 1.

Gong 2 is actually more difficult. But in looking at Gong 1, we can gather some clues that will hopefully make the variation a little easier to understand.

In making a synthesized FM gong sound, someone spent some good time working out how to emulate some of the nuances of a real gong. So imagine the sound of a lightly-struck gong. The initial sound is a pretty but deep, slightly ominous bell sound. Along those same lines, consider that the gong will have similar properties as bells and cymbals. This means a strong fundamental with unstable harmonics, maybe even some pitch instability as the gong settles into its core sound. There might also be a slow, gentle rise in those upper partials.

Translated into FM terms, this means at least two distinctively different envelopes--immediate attack and a slow attack, long decay times on both. We need a solid fundamental tone but with a first partial that is relatively close by. We'll have to be creative in picking out inharmonic partials and ratios and devise interesting ways of maintaining sidebands.

This is very much unlike any patch I've created up to this point!

Looking at the FM Matrix in FM8, we have a single carrier (at the bottom) modulated by 2 mod/carrier pairs and a single modulator. I don't normally consider this to be a problem. Big deal... Start at the top and work our way down, right?

Here's the problem with the usual routine: Look at ops A and B, C and D as mod/carrier pairs and consider their ratios. We have 1.2:1.4 and 3:0.745. OK, no problem. We'll simply use the chorus effect since this is obviously a product of detuning. But what about the last mod/carrier pair, the carrier being the only real carrier in this algorithm? Here the ratio is 0.8:0.5. This tells me that if what we're doing is a product of detuning, it's going to be a wild effect.

While I'll always champion the art of listening, I think what we need here is some basic mathematics to help us rebuild this FM gong timbre.

I'm not very good at math, so let's go ahead and get that straight right now! I'm not worried about getting everything exactly right: My satisfaction is in whether or not I like the results. We have to start with the core sound, and since the other oscillators will be routed to this one, let's start with oscillator 3.

Here's what I did: To get something like a ratio of decimals, I went ahead and multiplied the numbers by 10 to get 8:5. The 5 (carrier ratio) represents a tone that is 1/2 the fundamental--in other words, an octave lower. Here, however, I like to think in terms of a pitch class relative to scale, quite simply, in the key of C. In this case, it would be the note E. 8, by contrast, represents the note C three octaves up. What we're really talking about here is the difference of a minor 6th. So what we need to do is set the octave not 3 but 4 octaves down (oct 0) and semi up by 8 (to account for the minor sixth). That will convert the carrier ratio back to 0.5.

As you can already see, a top-down approach wouldn't take this kind of tuning into account. As we've succeeded in created a core sound by looking at the math, we'll need to continue on in the same way to get the proper ratio for oscillator 2.

The ratio here is 3:0.745. Note the carrier ratio. Thor doesn't allow anything less than whole numbers, but in some cases we can use approximations. Let's round this up to 0.75. What do we know about this? Well, 0.5 is an octave lower than fundamental. That means 0.75 (halfway between 0.5 and 1.0) is analogous to a perfect 4th below fundamental, or the note G in the key of C. What about the 3 mod ratio? Simple: It's a 12th up, or the note G. This is serendipitous. All we need to do is tune these operators in octaves and reset the oct and semi settings to get a note a 5th above our lowest partial (octave below fundamental). Very simple. Set carrier at 1, mod at 4, oct 3, semi 7.

Now let's look at the top of the chain. The ratio is 1.2:1.4. This one took me a while. I decided to look at the decimals as 10ths of an octave. This is unusual in normal circumstances because we tend to think in terms of octaves divided into 12 equal parts. We do have one convenient way into re-dividing the octave, though. The distance from one semitone to another is divided into 100 cents. So 1 octave=12 semitones. 1 semitone=100 cents. Add them up, and you get 1 octave=1,200 cents. That means that 0.1 octave=120 cents. Makes sense in theory, but how do we put this in practice?

Let's look at that ratio again. 0.2 octave (do the math)=240 cents=2 semitones+40 cents. 0.4 octave=480 cents=4 semitones+80 cents or, in Thor terms, 5 semitones-20 cents. What we're looking at here is sharp D and a seriously flat F, so somewhere in the neighborhood of a minor 3rd. This could easily be done now that we have the information we need. So even though we won't get exact results, I think what we'll have will be interesting.

To do this without resorting to some severe octave tuning not possible in Thor, I went with 6:7, or G:Bb. To get it in the right octave, the setting has to go one more lower than our target. That means 3 octaves lower or oct 1. Semi has to be a perfect 5th up, so semi 7. I chose to further tune this just 20 cents sharp.

I suppose I could also have gone 8:7 and brought the interval even closer together. It's just a personal preference of mine that inharmonic ratios have a little bit of spread to them. When I say inharmonic, remember that Thor doesn't do inharmonic ratios. They have to be created artificially within Thor by using combinations of FM oscillators that are detuned relative to each other enough to count. So even though the ratios of one oscillator are harmonic ratios, they are heard as inharmonic when used in concert with other oscillators and displaced by an octave or other interval.

Now that we are beyond our relationship issues, we need to tie everything together. Keep in mind when you use an osc to mod another osc, you should use two scalings: An envelope and a voice key note. Scaling by voice key helps alleviate some of the pitch instability that occurs in this line of work. I'd also normally route FM pairs to osc 3 pitch, but after experimenting with this for a while, I conceded that the gong sideband effect just wouldn't be pronounced enough where I needed it in the spectrum. So here's the routing: Osc2, amount 37, Osc3FM, scale 100 Mod Env, 100 Key Note. Osc1, amount 30, Osc3 FM, scale 100 Mod Env, 100 Key Note. Over in the "single" section, Amp Env, amount 29 Osc3 FM Amt; Mod Env, amount 57, Osc2 FM Amt; Amp Env, amount 28, Osc1 FM Amt.

The Mod Env. settings are: Delay 1.12 sec, A 4.63 sec, D 11.9 sec, R 10.8 sec. Amp Env. settings are: A 1.9 ms, D 19.2 sec, R 552 ms.

Only Oscillator 3 is routed to Filter 1 (bypass). You might try applying chorus to this one, but I preferred using the Delay only with no mod amount. The lower registers are more effective and noisy (don't stray below C2) while the higher octaves have a very bright, pretty asian bell kind of character. The synth crescendo is less noisy here, but doesn't really sound much like a gong. As always, these notes could be used for other kinds of effects or as inspiration for more variations of this sound.

Wednesday, February 3, 2010

Back to work: Sampling with the Akai S2000

As soon as a create a schedule, I'm doomed to fall behind. Maybe that's for the best!

Anyway, I got some good get-to-know-you time with my Akai S2000 yesterday. Considering what I want to do, my goals in using a sampler, I've made some observations which I'll share here.

I decided for the sake of practice I'd create an additive waveform in Absynth and sample that directly to the Akai and do all the necessary edits on screen. Now, if you aren't familiar with the Akai S2000, you need to know that the only user interface is a tiny, 2-line LCD with that classic green glow. There is no graphic editing whatsoever, and this came as a complete shock after having used NN-XT for so many months now. Actually, the Casiotone side-project has been the first in-depth use of NN-XT for me. It's easy to set the zones, automap, and so on in NN-XT. Using the trackpad or my handy trackball mouse, fine-tuning is easy--on the head, on the eyes, and on the wrist!

Not so on the Akai. Anyone out there who takes the plunge and gets an Akai S2000, here's a little advice: My new eBay friend who sold it to me sent a disk with MESA, which is a graphic editor for the Akai S-series samplers. He told me I should pick up a Mac with SCSI running OS 9.22. Absolutely right! If you go the route of buying an old sampler like the S2000, you'll probably want a graphic editor. So go ahead and bid on an old Mac while you're at it.

I'm too poor, though. I'm going to stick with original plan and program this thing right from the face of the machine.

So I figured out how to record a sample. I'm not to the mapping phase yet, just doodling around. I also figured out how to loop that sample. The steps to do this aren't difficult. I sampled an additive sound from Absynth to start with. Here's the hard part: Akai has a "find" function that will find loop points for you, except they aren't really that accurate, at least not the way I'm working. I have to set the "loop at" point all the way at the end of the sample. Also, I found this works best (for me) if the entire length of a sample is 100 ms. The loop length is set at 0.

Here's where I unhappily discovered one of the most useless features of this sampler. The loop length apparently is in samples, but there are 3 decimal places after that. I'd like to know why! I adjusted that thing with the data wheel until I thought my thumb would fall off! Useless. So I went back to spinning around through samples until I found a proper loop point. Because I've practiced this in NN-XT without a graphic editor, it wasn't long before I found a perfect fit.

On to my next experiment: I created another wave in Absynth, loaded it into another oscillator, and detuned it for an inharmonic effect. I sampled it. Before I continue, let me just say that I've never been diagnosed an Aspie, but I think it's obvious that I am one. While I do enjoy the effects of my creative focus, some of the more harmful effects of the condition came out during this experiment. I must have spent hours trying to find a loop point! Now, if there are any more experienced sound designers out there reading this, you're probably laughing because you already know what I found out yesterday: inharmonic sines will never line up, which makes it impossible to find loop points in a few cycles. Mathematically I'm sure it can be done, but I'm no good with math.

Solution: Sample each Absynth oscillator separately and create a layered sample instrument in the same way as the Absynth patch. Even though this eats up just a little more memory, it's worth it. This will create some lovely bells and similar pad sounds. I also found that by re-detuning the second wave you can create different inharmonic effects. I'm talking here about complex waveforms, not generic chorusing that we normally do by detuning. Take this and run it through Mainstage to add chorusing or other effects, and you got quite a powerful little instrument!

I'm still fumbling around right now and I still have so much to learn. Time to put on a pot of coffee and get to work...

Monday, February 1, 2010

Sound Vacation part 3

My vacation is over as of this week. I've spent enough time in NN-XT sampling an old Casiotone MT-205, although I have just three more voices to loop--I've already trimmed and normalized them. I think I'm going to extend my vacation just slightly to finish that bit of work. I'm shooting for 16 more Thor patches and two more blogs this week before I slow my pace down again. I think that's reasonable, anyway!

I'm also entering another composition contest, and the postmark deadline for that is February 8. So here's a tentative schedule for this week:

Monday, Feb. 1: Finish the Casiotone samples. Revise Mainstage concert to fix problems encountered at last week's rehearsal. Band rehearsal tonight.

Tuesday, Feb. 2: 8 Thor patches, work on Mainstage concert, work on blog after work.

Wednesday, Feb. 3: 4 Thor patches, Korg T2 programming if time permits. Begin editing composition. Spend an hour on Mainstage.

Thursday, Feb. 4: 4 more Thor patches, work on blog in the evening. Edit composition afterwards. Spend an hour on Mainstage.

Friday, Feb. 5: Edit/post blog if not done already, spend at least 8 hours editing the composition, 4 hours tweaking Mainstage.

Saturday, Feb. 6: Take 3 hours in the morning tweaking Mainstage, get ready for gig; spend rest of day working on composition, extract parts; DO NOT SLEEP.

Sunday, Feb. 7: Edit parts, take breaks to write Thor patches, try to get at least two in; print and copy parts, prepare for mailing.

Monday, Feb. 8: Mail off composition score and parts; pick where left off Sunday with Thor patches for a total of 8 patches; begin writing blog.

Tuesday, Feb 9: Post blog if not done already, absolutely NO PROGRAMMING for the rest of the day!!!

At some point from Monday, Feb. 8, through the rest of next week, I plan on taking one day to completely decompress, which means NO MUSICAL ACTIVITY beyond piano lessons. I'd like to add that I've succeeded in not touching Thor at all last week. There have also been days when I only picked up my computer to goof off on the internet. I even got on Second Life a couple of times to say hello to some virtual friends!

While it has been a successful week off from Thor, I've also had this experience that I need a vacation from my vacation. I don't feel fully rested, and I'm not looking forward to getting back to work. The reason is, as you can see, that there's SO MUCH to do. I also received notification that my Akai sampler arrived over the weekend and I'm very eager to get to work on it. I don't think the mail runs until later in the day, so I'm resisting the temptation to run to my studio to get to work on it right away (if it isn't there, what's the point?). I also really want to finish this NN-XT side project so I can get back to work on Thor.

So in wrapping up my vacation, I have a few immediate goals in working with the new sampler. My first goal is to create a large number of waveforms in Absynth that I'll sample with the S2000. I want to try to max out 32 MB, and theoretically this should be difficult to do. I'm aiming these sounds at my own live performances, so forget about stereo samples! Low notes will be sampled at a lower sample rate, no more than 3 wave cycles will be used--really anything to keep memory usage down and still get good results.

I plan to experiment with the Akai for a long time. If I use a single instrument for all 16 available channels, I shouldn't even come close to the 32 MB limit. That allows for layering, velocity splits, and a vast combination of possibilities.

I'll also return to Absynth, maybe when I finish with the initial phase of the Thor experiment. I'd like to use Absynth to re-synthesize sounds I've retrieved from other sources, such as the Casiotone and Thor. And once I have a good collection of those sounds in Absynth, I can--you guessed it!--sample those sounds with the S2000. So it's like sound design/redesign/re- redesign, on and on and on. My ultimate goal is to be an unstoppable force in sound design--muah ha ha ha ha ha ha haaaaaa!!!

OK, all kidding aside, I'm not looking forward to getting back to Thor. But on the other hand, I feel about sound design much the same way as composition: It's not something reserved for those time we WANT to work on it. It's something we HAVE to do. So I'm committed to the Thor experiment and will see it through to the end. When I finish all 128 patches, I'll take more than a week off! But there will be an explosion of output when I come back to it, and probably more of the kind of work I DO want to do.

I'll be back later in the week with updates on the Casiotone and Thor progress as well any news of the S2000. There are yet greater things to come, which means I've got phone calls to make and emails to write. It's gonna be AWESOME!


Monday, January 25, 2010

Sound Vacation part 2

When most people take a vacation in the truest sense, it means much more than a simple absence from the job. The word "vacation" stems from "vacate," which means in Beckham speak "Get Out!"

Considering that I've been working only in Thor (and FM8 as a analysis tool), it's only fitting that I completely get out of sticking with that synthesizer and move on to something else. I knew NN-XT was a joy to use before. Spending all my time there reconstructing the Casio MT-205 is something like a sound safari. I'm thinking about all the techniques I simply ignored or laughed at and taking them much more seriously. So far I'm pleased with the results.

The great thing about getting out and exploring sound in new ways is the time spent coming up with new ideas for future work. For example, the work I'm doing on the Casiotone involves distilling the decay and sustain phases down to a single waveform. Why not take that a step further? Using Absynth, I could analyze any given sample and split it into 12 different waveforms. With Absynth's morph waves and double oscillators, I could easily make wavetable versions of these same instruments! I doubt I'd use all 12 possible waveforms--the job should be done with 4 waves at most. Another possibility is using Absynth's sample-playback to get just the attack portion of the sound and fill in the rest with re-synthesized waveforms.

There are other lovely possibilities one can take from this. Re-synthesized sounds can serve as templates for other sounds using waves from other sources. Most of my work on the Thor FM sounds will be applied towards new sounds using the same architecture. Perhaps I'll also try transferring those same Thor sounds to Absynth.

Yet another idea I've had related to sampling is to take 1- or 2-cycle waveforms created in Absynth (additive synthesis, most likely) and load those in a sampler such as EXS24, NN-XT, or the Akai. This is similar to what I'm doing with the Casiotone except my goal with Casiotone is to try to capture some of its native chorusing and vibrato. The possibilities and opportunities are great.

So while I am trying to clear my head somewhat, I'm also trying to keep it from exploding sometimes. The MT-205 side-project is going well so far. Perhaps next time I'll report a little more specifically on what I'm doing with it.

Friday, January 22, 2010

Sound Vacation

While I'm taking a vacation from Thor patches, that doesn't mean that I've stopped working. It also doesn't mean I'm taking a vacation from working out ideas and charting possible new courses.

Some concerns that I have relating to my current setup are that I've been too unprepared to work with real synthesizers, which is where this whole thing is going. I should have my Akai S2000 (thank you, eBay!!!) by the end of next week. Yes, I'm perfectly well aware of the limitations of a 32MB system. But that has made me all too aware of my own limitations as well. You see, back in the day I used Gigastudio v. 2.5. I'd wanted to use it live, but with all the clicks and pops in that cheap computer, this just wasn't meant to be. I've been absolutely amazed with EXS24 since I started using Logic. I've also been really impressed with the few instruments I have "powered by Kontakt" and have often wondered if I shouldn't invest in Kontakt. I thought perhaps of getting a new PC for the purpose of running Emulator, which I might still do one day. Now I'm totally addicted to NN-XT in Reason. I like the ease of use, the filters and envelopes, and the overall flexibility/versatility of NN-XT. So yes, that's certainly going to make it into my live setup with Mainstage.

What I've realized, though, is how fabulously spoiled I've become in using these software samplers. I think what I need is a new way of thinking. It's only a matter of days before the Akai gets here, so I think now is the time to get used to a whole different approach to sampling.

I think most of us would agree that the ideal when sampling is to sample as much of an instrument as possible. Take a piano, for instance. You're going to want to sample each note for as long as the note sounds. You want this pedal up, pedal down, upper string resonance, inside the piano, out in the concert hall, and each for at least 4 velocity layers, all at the highest sample rate and bit depth available. OK, so we're talking about an instrument that's going to take anywhere from 4 to 8 GB.

That's well and good if you absolutely CANNOT let that Bosendorfer get away! But it's perfectly unacceptable when dealing with a vintage 32 MB sampler.

So what exactly is Kyle Beckham up to now? Here's my goal for the next week: Sample the entire soundset of the Casio Casiotone MT-205. You might ask, "What's the big deal?" It's mostly sentimental, to be honest. When I was a little kid, my aunt had one of those in her piano room. I'm not exactly sure why she got it, but I do recall thinking the sounds were incredible. This was a tiny "toy" keyboard with a sound that could fill up a room! I always wanted that keyboard. Sentimental reasons aside, there is a nostalgia factor I think anyone can appreciate. It's a bit of a relic, preserving quite well the kinds of sounds that were really popular in the 80's.

My aunt had a nasty smoking habit. The last time (and it's been years) I played that thing it was already having some trouble. As both my aunt and uncle worsened in health, it became obvious that even if the thing still worked, I'd never get my hand on it. Thanks to the miracle of eBay, I found one in perfect condition and have played with it off and on over the last few years.

I've tried sampling it before, but it was the typical "make long samples, play the entire decay," and so on approach that's a killer on memory and processor resources. After completing the sound design course, I thought now would be a good time to return to it with a more sensible and relevant approach to sampling.

The point I'd like to make here is my change in thinking and general approach to sampling. Samplers can often be used as synthesizers in their own right. The S2000 is such a sampler with a wide range of envelopes, lfos, filters, and effects. Lets suppose, for instance, I want basic analog sounds. All I really need is a cycle or two of geometric waves and the S2000 can do the rest (lead, pad, classic synth sounds, etc.). Or if I want the kinds of sounds I get from Absynth, I can just use Absynth to create whatever waveform I want and let the S2000 do the rest. From that perspective, I could program all the instruments I would need for playing live from a single floppy disk.

32 MB begins to look like a lot of memory!

I'm trying to practice this. Just today I reconstructed the Casiotone MT-205 Vibraphone using NN-XT. The way I did that was to record both stereo channels separately. The next step was to create two mono vibraphone patches, one to represent its respective channel. I trimmed each sample so that each retained a strong attack transient and a little of the decay/sustain. When I imported these into NN-XT, I set loop start and end points at the very end of the sample and slowly pulled back on the start time until I had at least two cycles. While the ends of the loops may not exactly line up, there is one important advantage to this approach: The loop pop or click is always cyclical. So as you pull the loop start down towards the beginning of the cycle, the apparent pitch lowers and fades as you approach it. While there will always be some noise with this approach, it is masked by the pitch and timbre of the sampled waveform. By pulling this back to as many as 1 or 2 cycles, the quality of sound improves. You have to take care though, because this can create something that sounds like a sub-oscillator. If you like this pulse sound, of course, it can be shaped with filters to get completely different results than what you might have initially gone for. Personally, I choose to avoid this because it seems to defeat the purpose of sampling waveforms to begin with. So far the only instruments I've made this way are a MT-205 piano (for testing only, but will revisit) and the aforementioned vibraphone. I'm very pleased with the results!

The downside is that Casio seems to use its own reverb/chorus/vibrato for its programs, nothing I can manipulate for the keyboard. Making such a short loop destroys this effect, so I have to compensate by using my own chorus and reverb in addition to making the appropriate settings for vibrato or tremolo using NN-XT's LFOs. It's an unfortunate reality, but it beats searching for hours finding loops points that preserve the original effect! There is so much modulation going on in the vibraphone that it's a next to an impossible task. I'm trying very hard to minimize hard disk consumption during this process, so the good news is that the vibraphone samples occupy less than 2MB of memory. Looking ahead to the S2000 arrival, this means that keeping all single programs to 2MB or less will allow for a multi of 16 different instruments. That's a good thing since the S2000 is 16 parts multi-timbrel. And it will occupy close to the maximum 32 MB.

That's very exciting for me not only as a sound designer but also as a composer and electronic musician. I'll be expanding my setup with real synthesizers and samplers in addition to the virtual ones I keep with me; however, for live playing that's not really a portable option. I'm hoping by changing my approach to sampling and getting some practice in that area I'll be best prepared for developing road-ready instruments.




Wednesday, January 20, 2010

Halfway Point

I've completed my 64th Thor FM patch, which means I've worked through ROMs 1a and 1b. I want to take some time to review and reflect on the work done so far and consider how I'd like to proceed from here.

Number one, I need a break! As I mentioned in a previous blog, I took a few days just to refresh my ears and break the tedium. My usual process involves more listening than looking at algorithms. Why, aside from the obvious? Thor and DX7 do not handle the same. The settings are so radically different between the two that the ear has to be the ultimate judge when a patch sounds "right." The problem is that the DX7 patches are full of variations, sometimes using completely different algorithms to get the same kinds of sounds. So after repeating the same settings and routings across multiple patches, trying to differentiate between similar-sounding patches, and creating variation among patches that are too similar-sounding, the ear is exhausted. I actually find on some days I need to sit around, turn the brain off, and only passively listen. I also found sitting in a quiet room to be refreshing. I sometimes think I can hear the sonic energy of the day slowly dissipating, fading echoes of all the sounds of the day. I'm constantly surrounded by sound, whether I'm listening to a piano student, engaging in conversation, watching a movie, making a new instrument, trying to keep my kids from killing each other, or even sleeping. I actually have trouble sleeping without a box fan on. Yes, I even require noise to fall asleep! The ears never get a break. So I need some time to clear my head before I listen to new sounds.

Number two: I've learned a few lessons and tricks along the way. Big example is Thor can't reproduce the same feedback loops as the DX7. There are a few options, though. I typically like to route an oscillator to itself, preferably with 0 FM amount and modulating its own pitch. This makes the pitch highly unstable, but it can be partially rectified with keyboard scaling. Also, the effect has to be very subtle. Such a low level can't be effective across the entire keyboard. The effect can also be enhanced by allowing just a little of the self-oscillating signal to leak into the mix rather than strictly using it to modulate another oscillator. This happens because in FM, part of the modulator signal is present in the waveform. You can get closer to a true DX7-style FM sound by mixing the signal of a self-modulated oscillator with the rest of the oscillators, even oscillators that are modified by another.

Number three: Oscillators that modulate the pitch or FM frequency of others create pitch instability and upward shift (downward if using negative values, which we never do). For solution, see Number Two.

Number four: Due to issues with Two and Three, oscillators can mod themselves or each other at such high extremes as to create some characteristically colored noise effects. This is useful for drums and other sound effects related to noise, such as the Train patch.

Number five: The DX7 often includes sets of operators that are almost identical except for subtle detuning. This is modeled after analog detuning and can be replicated using the chorus effect in Thor. Seriously, if it's not necessary to detune pairs of oscillators, why bother? Another approach is taking advantage of the pitch instability of oscillators routed to each other or themselves. I love doing this! But the main idea here is it's not always necessary to use all three oscillators to replicate DX7 patches. If all it takes are two FM oscillators to get the sound you want (or even just one), that opens up the patch for more complexity--such as mixing a percussive bell sound and a pad, or even two completely different timbres. Patches such as the tubular bells, any kind of chime patch, chime/bell patches with flute, strings, and synth pad, are just begging to be tweaked. Every chance you get, look for detuned operators that only serve the purpose of chorusing effects. That will allow for a tight, economical approach to patching which will open you up to new possibilities.

Number six: Use the second filter as a 4th sine oscillator. Avoid using this too often, but don't be afraid to use it when it comes up. Technically, of course, it's possible to add filter 1 as an oscillator as well. I prefer to leave this alone because I may want filter 1 for timbre variation. We tend to associate FM timbres with bright, metallic, cold, digital kinds of sounds, but DX7 presets typically (not stereotypically) are very dark, warm sounds. Feedback loops get a nice analog-like sound. So it's not fair to dwell on the percussive bell and electric piano sounds when there are so many different possibilities. In fact, the DX7 was sold on the idea that its sounds were life-like, more so than analog synths. Unfortunately, with some of the odd routings in pure Thor FM patches, this concept is completely lost and we have to rely on filters to regain some of that warmth. So while using filter 1 is possible, I think it's better to leave it alone. I also don't stress overusing filter 2 as a 4th oscillator because sufficient care should be taken that Thor's resources are used wisely. But I also recognize that many DX7 algorithms leave you with little choice. It's a nice option to have if you need it.

Number seven: In relation to my points about feedback loops, using the shaper is also an option. At issue here is the shaper changes the timbre of all voices summed, which can make for nice guitar distortion. So while this works for some sounds, it doesn't work for all, and care should be taken if using the signal from the shaper as a modulation source.

Number eight: Certain algorithms are best reproduced by splitting them apart and using the sum of the halves to express the full timbre of the original DX7 program. For example if you have this algorithm: A+B:C where A and B are modulators and C is the carrier, you can plug the value of A:C into oscillator 1 and B:C in oscillator 2. This is cool because it allows greater control of FM amounts with your envelopes. The result are often, in my opinion, much richer than the original DX7 and could make for some nice evolving lead and pad sounds.

Those are some of my observations on what has been happening so far. I've resisted the temptation to create variations of these patches. There are just so many possibilities! I do look forward to finishing the next two ROMs, at which point I will refine my current library and create variations on the work that's been done. I really want this to be a good thing, so it really will be fast and furious back to work after I take some time off. I really can't wait!

On to other news...

I've been too content with gigging my computer. That's not likely to stop any time soon with Mainstage having become absolutely critical to what I do playing in a band. But I've gotten too addicted to software samplers for live use.

Here are some drawbacks to soft samplers onstage: Along with processor power used in running a soft sampler, the samples themselves take up a lot of memory. This isn't a problem if your MBP has 4GB RAM installed, but I only have 2GB. Mainstage 2 is decidedly fatter in terms of memory usage than the previous version. Something must change. There are two options here: Create low memory samples and treat them like basic waveforms the same way the big workstations do. Or you can buy a hardware sampler and do the same thing, just take all the number crunching off the computer and have Mainstage do all the patch changes in performance. I've already saved a lot of my resources by moving a lot of what I used to do in Mainstage to Reason. I'm also already putting my sounds to use. While I do like Logic's version of the B3, the FM version I made in Thor isn't half bad. I simply added a Leslie sim to the appropriate channel strip in Mainstage and I'm off and running. I'm thinking now towards doing the same thing, only in a hardware environment.

I took the plunge today and bought a cheap Akai S2000 off eBay today. It's a well-known fact I'm broke, so I'm really careful about these kinds of things. It was a steal! I had to jump on it. So here's the challenge: Develop a library of sounds for a machine with only 32MB of RAM. In a previous life, I thought working under these conditions was totally unacceptable. But the truth is that a good programmer ought to be able to get all the information he needs in a couple of seconds and use the sampling hardware as a synthesizer, molding and shaping the sound the same way anyone else would with a conventional synthesizer. There are certain kinds of sounds I need to produce, and it just can't be done without sampling. So it's a very exciting time. I may be taking the week off next week from designing sounds in Thor, but there will be plenty other work to do.

I also want to say that I'm not without a few secret weapons, at least one which should be here in the next few weeks hopefully. One of those is the Casiotone MT-205. It doesn't have a lot of different sounds on it, but it does have the key sounds you need in a performance or studio setting. To me, that makes it a must-have in a sampling environment.

Eventually I hope to get to some acoustic pianos, electric guitars, and so on. I've got this cheap bass guitar that is very unique-sounding. That thing will work its way into my rig at some point. I also have an extensive collection of bass clarinet sounds I think would be useful. And then there's this pipe organ I really want to get my hands on. All in good time!

I'll blog again after I've done some work. I'm really having fun with this, but it's time for a break. I can't wait for some time off so I can get started on the new patches.



Tuesday, January 19, 2010

LFO As FM Modulator: Pipes 2

I'm blogging on this patch because I found it terribly difficult to pull off.

Pipes 2 is another one of those patches that has 2 stacks of three operators. The trouble with this patch is in the first stack. Op A has a ratio of 19, B is fixed frequency of 1Hz, and C is 2. I started out by trying to modulate the LFO rate with an oscillator and have the LFO modulate the pitch of another oscillator. I experimented with this in several different ways, and the results were too uncontrollable. The thing is you can get away with using up two oscillators for this kind of thing because you can always use a filter as an oscillator in the second stack. But there was no appeasing the gods on this one.

It took some reverse engineering to pull this one off. I started out by just listening to the first stack. I noticed two things: First, there was some modulating of the brightness caused by a high modulation ratio. That translates here into amplitude or FM Amount. Second, there was a very slight variation in pitch. This means that the second operator is itself acting as an LFO (which was obvious from the start, but how?) and is affecting both amplitude and carrier pitch.

I found this discovery to be exciting. All I have to do is use LFO1 to mod Osc1 FM amt and Osc1 Pitch in very subtle ways. The other stack will need two oscillators regardless, but by eliminating an operator between A and C, there's no need for the "4th Oscillator" effect.

With that in mind, it's almost a very simple patch. First set up the oscillators: Osc1 is 19:2, FM amt. 2. Osc2 8:1, FM amt. 0. Osc3 1:2, FM amt. 0. Next set the LFO rate to 2.02 Hz. This isn't a mistake: Originally the OP B fixed frequency is 1 Hz, but what we hear seems to be positive phase only, or a sine wave with only absolute values. Hence the LFO has to be twice the original setting to replicate the effect (like I always say, this isn't an exact science). We also need a MG to scale each effect according to the percussive chiff of real organ pipes (again, not an exact science!). Set MG A 25.1 ms, D 77.2, R 45.2. Another detail is the timing on all DX7 envelopes are slightly different--modeled after the air moving through pipes, I imagine. Let' set one more envelope, the filter envelope, to A 29.8, D 29.7, S -27 dB, R 23.5. The S level accounts for some amount of FM in the original patch, therefore it should be present here. Amp EG is a standard sustain envelope but accounting for pipe acoustics in the attack transient. Something else I find useful is altering the release transient so that it includes the sound of the pipe cutting off and leaving just a little sine wave action after the initial release.

Now we have everything set up. Let's go to the router. LFO1 to Osc1FMAmt, amount 75, scale 99 Mod Env. LFO1 to Osc1Pitch, amount 22, scale 99 MG. FilterEnv to Osc2 FMAmt, amount 59 (no scale). Osc2 to Osc3Pitch, amount 34, scale 82 MG.

For little details, I added a LPF to filter 1 because I thought some of the noisy components of the sound were a bit bright and harsh. Since you're using the filter EG elsewhere, I recommend turning the env amount all the way down. Chorus could also be used tastefully here, but it is optional. I set this the way I like it, disabled it, and then saved the patch so it will be there if I ever need it.

In conclusion, we're essentially "faking" the sound of a fixed-frequency FM op by setting the LFO to modulate the sonic components that we hear change. This is not a true substitute for the real deal, of course. But at the very least it help you miss it a little bit less!

Monday, January 18, 2010

Double Stack: Harp 2

Previously we've seen how easy it is to include a 4th modulator by tricking a filter into thinking it's a sine oscillator. As I'm often quick to say, it's not a perfect, ideal, or exact science; but it does yield results. In this walkthrough, we'll take a look at a common DX7 algorithm that breaks 6-op FM into a pair of 3-op stacks. We'll be rebuilding the Harp 2 patch.

I've been away from blogging for a while for different reasons. One reason is that my MBP is fixed and I've resumed using it. Partly due to that is the distraction (ironically) of having a computer that works so well--maybe too well. Another reason hand-in-hand with the distraction is not being able to keep focused on programming. Some of the tasks are too repetitive and mind-numbing. I think what happens is I get used to hearing these patches. Even with the DX7, many of these patches are simply variations of others more or less complicated. Thor fails at accurate representation of them. My tendency is to rebuild each patch from the beginning rather than recycling similar patches. It's good for practice. But it's frustrating when working through 6 different guitar patches and they all start to sound the same.

The way to combat this problem for me is to stop relying on the visual part of the software, shut off my brain, and listen while making adjustments. That helps me come up with unique-sounding patches that may not necessarily have been what I was going for but still sound great. For example, I came up with a guitar patch while attempting to model a DX7 patch in a series of guitar patches. I decided I liked what I'd come up with even though it didn't sound exactly like the DX7. Mine was rough and edgy compared to the mellow DX7. The next DX7 patch was rough and edgy, however. I started out modeling that sound and then tweaked some of the FM and routing amounts to mellow it out. So those two are opposite their DX7 counterparts. But so what? Now I have some interesting guitar patches.

I realized at that point I had to get away, effectively giving my ears a vacation. I was ahead of schedule at the time. I'd love to have kept going, but it was just too much. And I did continue with other work--I programmed some pipe organ patches for the Korg T2 at church and spent another entire day programming the new version of Mainstage (Rewire compatible so I can go live with my Reason instruments). But as of last night, it's back to work. After this blog, I'll have only 11 patches to go before I get to my halfway point.

So here we go.

In FM8, I'm looking at Harp 2. In comparison with Harp 1, there's much more op detuning here. My first instinct is to use chorus, but I think I have a better way for our purposes. Op A has a feedback loop. The approximate ratios are 3:3:1 for the first stack. I'm thinking ahead to how I'm going to create this in Thor, so my first impression is that I'll have to use two FM pairs for this part. The ratios for the second stack are 3:2:1. This is making me nervous. I'm used to converting filter 2 into a 4th sine oscillator, but this is typically done as a sub oscillator, a fundamental, or an octave. I don't see an easier way. Filter 2 will have to be at the top of the chain. Otherwise, ignoring the detuning issues, I expect this to be a fairly easy patch.

One little note: Unlike my prior modus operandus, I want the detuning aspect of sound design as a central idea of this patch.

In FM8, I can see that Op A serves as the percussive, attack transient for this patch. I've already made up my mind that this stack will need two oscillators due to Op A's feedback loop. So I'm starting with Osc. 1 with FM amount all the way down to 0, carrier 3. The routing for this is standard procedure by now, though this one will have a little more kick. The router allows for two scaling options, so I'm taking it. In the 3rd router section, set Osc1 as source, Osc1 pitch, Scale 1 Key Note (full range), Scale 2 Mod Envelope. This is necessary because in a true feedback loop, the effects are heard proportionally to the level of the signal. As the level drops off, the signal returns to a sine wave. Scaling amounts should be 100 for KeyNote and 91 for ModEnv. I set MG D 65.3 ms. Osc1 amount is 44. While this works nicely, my ears want to hear a little bit richer sound than a simple sine wave. Change the osc1 mod to 3, amt 4. I can use FM amt to enhance this attack, so route MG to osc1 FM amt, amount 47. That will give you a nice percussion sound.

So Osc1 will mod Osc2 FM Frequency--in this case there's no way around it because of the feedback loop. So what we need to do first is make sure that Osc2 already has the kind of sound we want. It needs to have a nice acoustic guitar sound--a bit on the mellow side. Set the ratio 3:1 for that classic FM guitar sound. You could route MG to Osc2 FM amt, but I don't think that's necessary--and not really what I'm going for. There is a difference between Op B and Op C envelopes, but not enough for me to be concerned. The FM amount should be just enough to work, so I set this for 8.

Now route Osc1 to Osc2 FM frequency. This could be scaled with KeyNote and/or Mod envelope. This time, however, I want to take advantage of the pitch instability caused by routing oscillators to each other. Simply turn up the amount to 25.

We want something similar to happen in our second stack, except this time we want a more "core" harp sound.

First we need a 4th oscillator. Route osc. 2 to filter 2. Additionally you can route osc. 1 here as well. Here's the tricky part: The filter has to be tuned an octave+5th above the fundamental. I start this by tuning to the fundamental and working up from there. The following settings should be automatic by now: Cutoff 260 Hz, Res 127, env/vel 0, kbd 127. Now, just by doing simple math and multiplying our fundamental frequency 260 Hz by 3, you should have the correct tuning frequency for the filter: 780 Hz. The problem now is that Thor doesn't allow tuning this precise. One click too low sounds grossly out of tune while one click too high sounds like an overused chorus effect. We don't have much of a choice, do we? I say go with the higher frequency: 815 Hz. We have to take some comfort in that this is only a small component of our sound. Everything is important, of course, no matter how small or subtle. And since detuning is a big part of this patch, this one "flaw" might actually help us.

Route Filter 2 to Osc. 3 FM Frequency, amount 11, scale with MG, amount 54. The idea is balancing the modulation effect with scaling to produce a subtle percussive brightness to the sound. Ideally this would sound a bit more like a xylophone, but all we have is all we have. Osc3 is 2:1. Set the FM amount to 2. Route MG to osc. 3 fm amount, amount 50.

At this point we're really finished. I made a few tweaks here and there. For one, I have all 3 oscillators routed to filter 1, balance favoring oscillator 2, and 1+2 level way down in relation to osc. 3. I have a LPF on filter 1 to take a little of the edge off the sound. I want to be true to the harp timbre, so a lot of added chorus isn't going to help anything.

So there you go! Another patch using a 4th oscillator and some very subtle routings. Enjoy!








Monday, January 11, 2010

Would You like some Cheese With That Whine? Adding a 4th oscillator in Thor with E.Organ 5

Previously in the Celeste patch, we see how taking it easy and using plain sine waves every now and then can result in very open-ended kinds of patches than can be hybridized or repurposed for a variety of musical applications. While we generally want to stay away from sine waves, they are still useful for additive sounds in which we aren't concerned much with timbre-variation via filters. Most often these will crop up in electromechanical organ sounds--the most notable of these being the hammond B3. Today, however, will be a slight departure from what we expect from organ sounds since we'll be exploring the cheesy/psychedelic timbre of the Farfisa.

No patch collection is complete without an emulation of the Farf. You'll need this for the 60's organ sound and New Wave styles. Proceed with caution if playing this live, though. It's really cheesy, and your band members may beat you if overused!

Before I forget, I should probably publish my "default" patches. I always start with one of these, and it saves so much time since i don't have to clear out default values or individually load oscillators, etc. My amp EG's don't stray far, and sometimes I don't even bother with setting AEG. I'll save those details for another blog, but you should always have a default patch for different instrument types. I also find that certain instruments, especially the ones I'm working on now, become templates for other sounds. Much of my collection will end up being variations and variations of variations of patches that appear in my blog.

I digress. I have my default sustained instrument patch loaded and ready to go. We all know what a Farf sounds like. Looking at FM8's FM Matrix, we can see ops A/B and C/D are the only mod/carrier pairs. E and F are standalone sine oscillators and are liable to create problems for us when we get close to finishing the patch. For now, let's start with the easy, obvious stuff.

Setup osc. 1 with a 1:3 ratio. The original patch has a feedback loop, so let's effect this in the router. Routing to FM frequency causes for instability than we want, so route Osc. 1 to Osc 1 pitch instead. This sound should have a slightly nasal but full reedy sound. Set FM amt to 8. In the router, set amt to 24 and scale with key note, amount 56.

Now we have a basic organ sound. Let's cheese it up. Route Osc. 2 to filter 1. Set ratio 3:3. This sound has to be really bright to work, so set FM amt. to 79. In the mixer, adjust the 1:2 balance to slightly favor osc2, about 78.

You're almost there. You have some really high, bright partials but not enough fundamental. You need an octave and a sub oscillator. But there's a problem: You only have one oscillator left. So how do you fix this? You can compromise one for the other--say, you think the sub osc. is more important or you'd rather keep the octave. You could use one as a modulator and the other as carrier, experiment with different setups this way until you come up with a sound you like. This is fine except you have to consider that, while you aregetting sum-and-difference signals of both, you're still faced with the problem that one is still modulating the other, hence altering the timbre--however slight. If you can, you need to find another oscillator. It can be done in one instance of Thor.

Activate Osc. 3 routed to filter 1 bypassed. Also route it to filter 2 and plug in a LPF. Make sure the filter signals are running parallel and you have output from both. Change filter type to Type I. Set res. all the way up to self-oscillate. Back off the env. and vel. all the way to 0. Turn keyboard scaling all the way up. Now you have your 4th sine wave. All you have to do now is make sure your cutoff frequency is 2 octaves about the oscillator frequency. Change the Osc. 3 octave to 3. I find the proper cutoff frequency by first matching filter cutoff to the osc frequency, which I find at 130 Hz. That's not frequency you actually hear, of course, because keyboard scaling is all the way up. Now adjust for 2 octaves. By doing simple math, you find this occurs at 520 Hz, except the closest you can get is 521 Hz. This is actually ok because we want to allow for some degree of anomalous tuning--makes the timbre a little more natural-sounding.

Final step: We've got cheese, but not quite the kind you can smell. We really stink it up by adding obscene amounts of vibrato. Route LFO1 to Osc 1, 2, and 3 pitch with amounts 22, 22, and 19 respectively.

One think I like about this patch is how it actually sounds better without effects. I firmly believe in avoiding effects if you can get results inside the tone generation, such as detuning you find in so many DX7 patches. This patch could also go the way of so many B3 patches in which you'd want a rotor or chorus effect. You certainly don't want to overuse this patch. But every now and then, feel free to cheese it up!

Saturday, January 9, 2010

Takin' It Easy: Celeste

One thing I'd like to say as an addendum to my previous post regarding the look and feel of your setup is that one thing you really can't live without is a trackball. That's the best invention since bottled beer, lemme tell ya. Mine is a Logitec, the one with the big marble in the middle of it. It's one of those that's been made symmetrically so lefties like myself won't be uncomfortable for all those hours of never-ending tweak sessions. It is a beautiful piece of work. I think the only way it could be better is if they made a wireless version.

Seriously, if you spend more time moving virtual knobs and sliders, you need one of these.

OK, I promise no more pimpin' Logitec, but it's a great product.

There was something else I forgot throughout my previous postings. Yes, I do have a small number of go-to patches that save a lot of prep work. I also have a few variations of patches I make along the way. What I forgot was that I was working through my collection of patches alphabetically before my computer died. While I'm on my backup machine, I'm going alphabetically from ROM to ROM. I was pleasantly pleased, considering my goal for today, that more than half of my work was already done! Not wanting to break momentum, of course, I'll push on if I still have the energy and the time.

The title of this post is "Takin' It Easy," and here's I'm going to discuss some of the lazier ideas of the task of making keyboards. Michael Bierylo in his sound design course will tell you to stay away from sine waves. It's not that sine waves are evil, necessarily. It's just that one sine wave here or there won't really do anything. There are some things you CAN do, of course. For example, you can add a sine wave to a saw wave to emphasize certain partials. Or you can add a sine wave to a triangle wave, several partials up, of course, and detune it for some inharmonic effects. But you won't hear a sine wave if it's the fundamental. Using it as a sub oscillator can be nice, but it still doesn't speak as well as other waveforms.

Add a bunch of them together and you can get some interesting sounds. Or use them as FM oscillators as in DX7 and Thor. But one lonely sine wave?

It appears that's what we're working with here.

Let's start with FM8, ops A and B. There's a feedback loop here--no big surprise, right? Hey, if it were easy, everyone would do it! There's only a tiny bit of feedback and FM going on. In fact, just on computer speakers I can barely hear any sound at all from these two. Let's try something different. Instead of going for some recondite frequency-shifting modulation from feeding an FM pair into itself, let's use the shaper to add just a hint of sine wave distortion. Activate osc 1 into filter 1, leave it bypassed, activate the shaper. Add in a little drive, say, 42. Osc 1+2 level should read -3.5 dB. Activate the left arrow pointing towards filter 2, but don't activate it's arrow. You'll see why in a minute. In Osc1, set a 5:1 ratio (remember, modulator first, then carrier, backwards from what is displayed), leave FM amount all the way down.

We shouldn't really hear anything at this point. That's a good thing since what we'll be doing depends on signal routing. In the router, route amp EG to Osc1 FM amt, amount 27. Route the shaper, amount 59, to Amp Input, scaled with mod EG amount 85. Set MG D to 29.7 ms. This will give you a nice, sharp attack that is barely audible. It is a subtle part of the sound, and if I were going for authenticity, it wouldn't be audible at all. For whatever reason, it's there, and I feel like an effect is no good if it can't be heard. Just my opinion! I'm adjusting my amp EG settings: D 1.24s and same for R.

It's the next part one might find difficult to digest. From the default setting for Osc2, turn FM amount to 0. I want to avoid a sharp attack for this timbre, but I don't want to sacrifice the percussive attack of Osc1. In the router, route Osc2, amt. 82, to Amp Input, scale amount 100 with Filter Env. I recommend leaving S all the way up, although you could turn it off and use a long decay.

You're as good as done at this point. I noticed in the original there's some slight chorusing. Just turn on the chorus, delay 0, F.Back 0, rate 1.21 Hz, amt. 22, dry/wet 42.

Sine waves aside, what else is unusual about this? The chorus takes over the role of detuned oscillators, so there's no need to program another oscillator. The DX7 programming on this is for the most part useless. We've freed up Osc. 3, which is perfect if we ever want to come back to this patch and add more complexity, as in a layered type of instrument. And since all we have is a subtle bell percussion sound, the sines in this patch aren't going to get in the way of other timbres. Another possibility is to get rid of Osc. 2 and have 2 hybrid kinds of sounds in this patch for even greater complexity and versatility.

It's good to take it easy every once in a while. Easy patches like this are versatile and good source programs for a variety of different applications.


32nd DX7 patch

I've just reached my 32nd DX7 patch named "Voice I." That brings my total number of Thor FM patches to 70. W00h00!!! I mentioned in an earlier blog that my number include 7 patches that are only building blocks for others, so that really means I have 63 that are somewhat useful. You can see, of course, that roughly half of those are variations of others while a few others were "discovered" along the way.

This is a big milestone for me as a beginner sound designer on what I hope will turn out to be a huge project when finished. For this post, I'm not going to do a walkthrough of a patch I find noteworthy--I'm just going to take some time to write some ideas I've had over the past two weeks.

One thing I think is important is having a goal. My goal is simple, of course: to build a comprehensive library of sounds using Reason and Absynth along with a few other synthesizers. To reach that goal, I need small, intermediate steps. My current level is just learning the software, specifically Thor. In the process I'm building my skills using FM synthesis to rebuild DX7 patches in Thor. I don't know the next step yet, but there's still plenty of time!

Another thing I think is important is writing things down, like this blog. I enjoy reading the SCI email list, and there's a debate that comes up from time to time about handwriting compositions vs. doing all work at the computer. Personally, I prefer writing all my music at the computer. I understand what they're trying to do, but that doesn't mean I'm into it! Besides, my handwriting ability is poor. I thought about that for a while, though, and I got inspired to do something similar: I'm keeping a sound design journal. That's right. I'm writing (by hand) in a little notebook describing the work I'm doing at any given point in time. It looks almost like a recipe book, and I'll try to describe what I'm doing.

When I start work on a patch, I write the date at the top of the page and the name of the program. Underneath that, I draw a diagram of the DX7 algorithm (derived from FM8. I don't exactly have the algorithms memorized, but I do try to reconstruct the algorithm to look more like the DX7 diagrams rather than the FM8 version). In the diagram, I write the ratios and FM amounts and indicate which ops have feedback loops and the amount. I prefer FM8's values for some parameters because they're a little more precise than DX7.

Next I draw a sort of key that relates operators or op chains to their actual function in the timbre. If something is a percussion attack, or if it's a pad within a more complex patch, or if it's a center frequency in a detuned chorus effect scheme, I write that down.

If I feel the need, I make some comments about the FM8 patch. That helps me solidify what I want to do when recreating it in Thor.

Then I'll make some notes on how I'll make 2 or 3 core sounds that make up the Thor variant.

Before I write anything else down, I go oscillator by oscillator, EG by EG, filter by filter, line by line in the router to find what it is I need to do to accomplish the previous step. Because of the differences between the DX7 and Thor, I can't set parameters in stone until I actually hear what they're going to do. The only part that corresponds exactly to the DX7 is the mod:carrier ratio. All of these have to be tweaked because DX7 patches almost always have ops detuned for chorusing effects. You can't do this in Thor. You compensate for it by detuning entire oscillators. When I get the results I want, I write the settings down. In my notebook, this happens in a semi-random way. My notebook routings don't appear in the same order as in the Thor UI. But they are good enough that I could copy patch settings straight from my notebook into Thor and get identical results.

I don't generally pay much attention to Amp EG settings because my default patches already have those programmed. If I need a pad, I load a pad and forget all about tweaking the amp EG. This becomes necessary when the amp EG is used to scale or mod something, but generally this is one of the parameters I leave out of my notes.

When I'm done listing my settings, I make a few comments on the sound, how it stands up to the original (if at all), and what it can be used for.

So basically that's my patch notebook. The best part is having a reference when I'm about to change another parameter. I don't have to worry about forgetting what I just did or what the next step should be. It also shortens the time it takes to create new patches. All I do is invest a few seconds here and there on writing these things down and be amazed at how easy making patches seems to be.

Anyone who reads this should consider doing something similar. Along the way you'll discover tricks other sound designers came up with to make a certain sound or you'll stumble on something accidentally that you'll want to use later. Write those tricks down, whether yours or others, and you'll find you have a valuable reference when those elements are needed.

OK, aside from keeping a notebook, I had another idea that I put into practice yesterday. I invested in an external floppy drive and a box of 10 floppies. Don't laugh, I know how archaic that seems, but hear me out.

I have a deep love for vintage equipment. I love it, but I just don't own it! So I'm stuck with a DX7 and an Alpha Juno until I can financially justify getting new things in. Floppy drives were common on older instruments although newer instruments have internal hard drives and slots for different memory cards. For me it's the image of the once-ubiquitous floppy drive that contributed to (or detracted from, either way) the look and feel of older synths and synth workstations.

My thinking is that the look and feel of equipment, no matter how irrelevant it SHOULD be, does influence in some way the work we do. I want to get in the mindset of working with hardware synthesizers despite my work now being primarily at a laptop. So I'm saving all my patches to floppy disk. I think I'll stop when I fill up all disks that I have at the moment. In the case of Thor, one patch is about 2k. The practical capacity of a floppy is about 1.2MB. So we're talking about at least Thor patches! That may seem like a lot coming from just one programmer, especially if you're a synth programmer with limited time and only program a few patches here and there for very specific purposes. But think about it: I've just finished 32 patches and some variants of them. Let's say, for the sake of argument, I make 10 variations of each. That's 320 patches. So if I go another round of 32 patches, make 10 variations of each, I'll have 640! In that sense, 640 patches aren't really a whole lot. My ultimate goal isn't rebuilding DX7 patches. Anyone can do that. I need to learn the ins and outs of my software and extend that knowledge and skill to creating good patches. Perhaps old-skool FD storage is a good way to set limits on how far to go with the work I'm doing right now. My iBook is starting to FEEL more like a synth workstation with it, anyway!

More to come later today: I want to get through 8 more patches and 1 more blog entry in which I'll discuss making one of those patches.



Friday, January 8, 2010

SFX 2: TRAIN

I want to start today's blog by saying in the process of making good sounds, learning by imitating others' work, something I've had to really work hard at is letting go of my perfectionsism. I may not report on my work EVERY day, but progress is being made. As of this writing I have 66 Thor patches, 7 of which are "default" settings for certain basic types of sounds: Bass, Decay, Ensemble, Lead, Pad, Sustain, and Main Blank Patch (sus transient only). A few of those are variations. For example, I found in the process of creating a banjo patch I'd made something that sounds very much like a cello. That spun off a number of related cello patches. Although not part of this blog topic, I'm also creating some pipe organ patches for the Korg T2 at my church--needed occasionally when the real pipe organ blows a fuse or is otherwise temporarily of unsound operation (take that as you will!). Michael Bierylo (sound design instructor, berkleemusic.com) is fond of saying we should be deliberate about creating the sound we want, not rely on "happy accidents" to achieve interesting sounds. Although I completely agree, we can't deny that these "happy accidents" do happen. I was working on the DX7 Orchestra patch, which is a string/brass combination when I completely screwed it up. The end result was something akin to a big-band brass section that can certainly be useful one day. While I didn't achieve the perfect "orchestra" sound, I'm convinced it would have been a horrible mistake to throw this patch out.

Part of the inspiration behind this blog is the idea that synth sounds can be recreated in a variety of ways. The final project involved reorchestrating classmates' projects. One of my classmates used samples for almost the entire Reason project. I couldn't resist. using Thor and Subtractor, I reconstructed his sampled instruments from scratch. You know what else I did? I saved the patches I created! They might come in handy one day.

This kind of work gets really frustrating really fast when trying to get that EXACT sound when it's really not possible, at least not without some extension of the method being used. For example, I was working on some DX7 strings patches that rely heavily on feedback loops to get an almost analog saw waveform. The original DX7 patches are just gorgeous. But without those feedback loops in Thor, the sound is very nasal and flat sounding. I spent hours trying everythging I could think of to get that sound, even reverting to making three less complex versions of the basic string sound and trying to combine them in different ways to get something more accurate. Nothing worked at all. So after taking something for my headache, I broke down and inserted a PM synth oscillator. I didn't want to! But sometimes you just have to let these things go.

I think a sound designer is better for it, admitting the limitations of a synthesizer or software. At the very least I can say I know what I'm doing!

Let's get on to the patch of the day. Last post was about an FM sound effect. I'm going to continue with that idea with a little trip to the island of Sodor.

That's right, ladies and gentlemen, we're going to build a train using Thor! I'm dedicating this post to my little boy who, being 2 years old, is hopelessly addicted to Thomas the Train videos (thank you, Santa) and is not a happy camper when his half-hour is up. We're also a bit late with potty training, and not even those fits come close to having to forcefully detach the little man from the TV when it's time for Thomas to go night-night!

Now, you don't really have to have a DX7 or FM8 to follow along with these blogs--I see these writings as more like ways to generate ideas for creating sound, maybe even some helpful hints and tricks to creating other kinds of sounds. But if you DO have FM8, it will be easier to follow along. You can also google Dave Benson's DX7 website, which is about as comprehensive as anything else I've ever seen on that synthesizer and related boards/boxes. If you have FM8 but don't have the patches yet, you can find them on Dave's website.

As always, I'm starting out with FM8, and I've got "TRAIN" loaded. By playing a few keys in the middle of the keyboard, I notice that steam engine sound varies with the key that's pressed. I would think you could do the same thing with an amp or filter EG. Even better, you can sync the steam engine sound to song tempo.

Playing lower notes brings in the "choo-choo" whistle. It's exactly the kind of sound you'd expect on a toy or model train set. Playing higher on the keyboard brings in a train bell not unlike what you might hear at a railroad crossing.

So there's a lot going on for one patch. Very complex indeed compared to what we're used to, but there are a few things about this sound we need to pay attention to.

The main thing is there are three completely different timbres going. Pop quiz: How many operators does the DX7 have? 6. Very good. Now, how many distinctive sounds do we hear in TRAIN? 3. OK. Do the math: 3 different sounds/6 operators=1 sound for every 2 operators. This is perfect for Thor because it's the best effective setup we have.

There's the regularity of the steam engine, which will either be controlled by the note, by the LFO, or LFO controlled by keyboard scaling. It's really up to the programmer how this is going to happen. Personally, I like the most rhythmic or cyclical sounds to line up with the song tempo--that's the route I'm going.

Let's take a look at the guts of the patch now that we've done our listening.

By turning off Ops D and F I can hear only the steam component of this sound. Without the distraction of the whistle and the bell, I can fully appreciate what's happening here. In the DX7 world, there's not much difference between a steam engine and a helicopter! As a helicopter, low notes get slow rotor, high notes make a fast rotor. If the rate is dependent on the note played, you might also get some interesting effects playing with pitch bend, or even use MG to increase the rotor speed over a specified period of time. See how easily a variation of this sound could be made to sound like another effect entirely? Let's start with this sound.

We can easily make a broadband white noise effect simply by switching to a noise generator. If we did that, we can also generate the tone created by the FM pair simply by using BPF with high resonance. My attitude is that after letting go with my perfection streak, I don't really care if it gets preserved or not. I also want to stay true to the FM generation of this sound, so I'm sticking with FM pairs in Thors.

I'm going to set Osc 1 exactly the way it is in FM8 with a 5:9 ratio. There are some interesting things here. First, DX7 is using one of those pesky feedback loops, but it gets better: The feedback loop is set all the way to 100. Why is this important? Because this is how the DX7 generates digital noise. Not that I really care, but for the sake of experimentation, I'd like to attempt to preserve the tone present in this sound. Thor was designed for wider, more general application than some of the more specific things that the DX7 does, so FM amount and routing Oscillators to themselves has more extreme effects on the sound than the original DX7. The tone is high pitched as you'd expect with a carrier ratio of 9. Turning the FM amount all the way jup does change the timbre, but it's a brassier sound instead of the subtle whine we're really going for. Even though it doesn't quite work at every level, I'm ok with a FM amount of about 50.

Now for the feedback loop. Again, this isn't an exact science and the results are not what we expect from the DX7. If you've been following this blog, you'll already know how much time I spend in the matrix router. Route Osc1 to Osc1 FM Frequency. I typically test out my sounds low on the keyboard, but what's interesting here is that the upper frequencies aren't as badly affected at low modulation amounts. While holding the note C5, I'm changing the FM amount and the Osc1FM amount in the router. At an FM amount of 18 and router amount of 31, I get a fairly stable tone. Not quite the FM whine I'm going for, but could be nice for some pitched steam effects in another patch. By increasing the router amount to 37, I have some colored wind effects. As I said earlier, I don't really care that much about this kind of sound, so I increase the router amount to 59. There's still a hint of color, but there's definitely a broader spectrum of sidebands than we started with. This is perfect for what we're trying to do.

We need to rhythmically modulate this sound. Load the LPF in filter 1. Move all settings except drive to 0. I want the tempo sync this sound, a slight modification of the original patch. Set LFO1 to Tempo Sync. I'm tempted to use a down-ramp (using a negative value in the router), but I'm afraid that's going to be too hard-sounding. Instead, I'm going to use waveform 8 because I think a triangle wave would be too soft. This also has the advantage that some DC will still get through. A steam engine is always noisy, so it's better not to operate this LFO as an on/off switch. In the router, select LFO1 as source, Filt1Freq as destination, amount 100. Perfect!

Next let's attack the bell/crossing signal. What's interesting about this timbre? Well, it's a seriously inharmonic kind of sound. What else? Every note I play is exactly the same pitch. Enable Osc 2 in Filter 2 and route the signal into the amp. Turn KBD all the way off in the oscillator. What do we notice in FM8? We have a 977.24:371.54 ratio. Harmonic relationships are very important to the Thor synthesizer, even if we don't want/need to use them. So how do we find the relationship between these two frequencies? Quite simply divide the highest number by the lowest because harmonic relationships are always multiples of each other. The result is roughly 2.6, only slightly higher than an octave+3rd. What are some ratios that give similar results? 3:8, 4:11 (interesting), 5:13, 6:15, 6:16, 7:18, 8:20. Any of these can work, of course, but I'm going with 5:13 or, more correctly mod: carrier 13:5. On a side note, I've never understood why FM synthesizers read carrier-modulator. On the DX7 et al, operators read top-bottom, with higher operators in the chain being the modulators and bottom operators the carrier. The signal chain of synthesizers is typically left-right, so why can't the modulator be on the left and the carrier on the right? It would make more sense. Anyway, I've got Oct2, semi 7, and tune 27 (the last two to get closer to the DX7 in pitch, although I'm not going for absolute mathematical precision here). Now, unlike the DX7 patch, I want to make this bell sound periodic, like the steam engine sound. I still want it tempo synced like the steam engine. it should be at a regular steady rate, but at the same time I want it to sound random. And yet I don't want it random like I'm TRYING to sound random... I don't know... Let's do this: Set LFO2 for key sync, tempo sync, waveform 3, rate 3/8. Route LFO2 to Osc2FM amount. Set the osc2 FM amount to 40 and -69 in the router. The illusion of movement would be nice here, so let's do a crescendo/decrescendo using the MG, all synced to tempo. Set Mod Env Tempo Sync, Delay 4/4, Attac k 4/4, Decay 2/1, Release 3/4.

We're about to run into a train-wreck. We still don't have a way to control the whistle blow (it doesn't exist yet, but it will). Using the second filter would be good for the passing-by effect we're going to create. You could also mod filter 2 drive, mixer 1-2 balance, or switch to osc 3 and mod osc 3 level. The only trouble is once those destinations are gone, they're gone, and we may need to use them later.

How about this: Route Osc2 to Amp Input, amount 100, scale with Mod Env, amount 100.

We need to make a whistle now. On the DX7, there's some keyboard scaling that keeps the whistle isolated to the lower part of the keyboard. At the moment, I'm not jsure how to do key scaling for 3 oscillators in Thor, but for now I'm not really all that interested: There's another way to do this. For now we'll concentrate on the basic whistle timbre.

In this case, operators E and F do have a rational relationship even if it is offset to sound inharmonic. The upside is at least the pitch can be altered by pressing different keys. We'll start with the obvious: The ratio is about 3:1.6. Low to high, that's in the neighborhood of a minor 6th above fundamental and octave+5th, so something like a major 7th will get us what we want. Set osc 3 carrier to 13, mod to 24, oct 2, FM amount 18. Enable Osc3 to filter 2.

We want to trigger the whistle any time we want, but not for every single key on the keyboard. By messing around with the filter, I find I can apply a pseudo-keyboard scaling that almost works except for some very unpleasant (and unwanted) high pitches in the sound if I try to trigger the steam engine/warning bell using only high notes. If I lower the cutoff frequency, I also lower the volume level of the whistle sound I want to keep. I've tried various kinds of scaling and nothing seems to work. I'm not sure how to do a proper keyboard scaling or split using Thor, so I'n at a loss as for what to do.

There is another option, however. In the router, select Button 1 (from Modifiers) and route to Osc3 Level. make sure Osc3 Level is all the way down. Go to the global settings and select a note you'd like to use for the train whistle. I chose C3. I also switched the keyboard mode to mono legato so no matter what the other key I press, it won't interrupt the steam engine sound. Since I'll only use a single key for the whistle, there's no real point in setting the oscillator 3 keyboard scale to full. I cut it all the way down and set Oct to 3. This gives the perfect Thomas-style train whistle!

For Filter 2 (where osc3 is going), I set the drive all the way up, all modifiers to 0, cutoff to 3.62 kHz, and res slightly up to 22.

Finally, effects. I try to avoid a lot of effects unless absolutely necessary, like when I run out of oscillators and all FM8 is doing is doubling up on detuned operators. But to get the right kind of CHICKa-chicka sound of a steam locomotive, you really need a touch of delay. I kept this really simple. Time is 78.7 ms, feedback 25, no modulation, and effect level 36.

In conclusion, you can never have enough effects. Even if you aren't good at programming them or all you're interested in are pitched synth sounds and classic kinds of synth effectgs, you'll do well to try some more advanced tricks like this one. TRAIN is a very complex sound for a single instance of a synthesizer, and these kind of sounds are great for coming up with ideas and inspiration for other, similar kinds of sounds.

It's a cool sound to try to make. And my son LOVES it!!!