Talking Bass, Part 2

In Part 1 of this article, I explained how I made the vocoded talking bass that you can listen to in the first half of the clip below:

I wasn't terribly satisfied with this. Although the talking part can be heard quite clearly, it wasn't so much of an impressive bass sound.


Therefore, I set out using Zebra 2 to try and make a talking bass using a different approach.  The objective was to make a bass that said "Okay". Not the most dramatic idea, but you can judge by the results which can be heard in the second half of the clip.    I'm not yet satisfied with this, either.  I like the bass sound, but the talking is not all that clear.

So, this part of the article is about what I did to make the Zebra talking bass, and some thoughts on what I might try next.


The slideshow is the quick version.  The long version follows.

Below I have written a longer form description of what I did for each step in the slideshow above.

Step 1 - Start with an oscillator

There's no formant oscillator in Zebra, so I started with a standard one, OSC1. I thought that I'd try and start from the kind of bass sound that I was hoping to make talk.  Hence, I started aggressively with a fat 11-voice detuned saw with the stereo width turned all the way up, and using the "legato" monophonic voice mode in the global settings at the bottom.  I considered adding some glide, but decided to save it for later.

Step 2 - Add a filter.

Due to my rather aggressive approach with OSC1, I thought that it might be helpful to tame it a bit with a low pass filter.  I added VCF1, keeping the default "LP Xcite" filter type.  I put the KeyFol and Drive all the way up, while I was tinkering, and forgot about them. I'm not sure that they're playing any vital part in the sound.  Also, LP Xcite is fairly sparky at the top end, and it might have been better to use LP Allround.

Step 3 - The Formant Filter

Now for the important bit.  The formant filter is a low pass filter that imbues vowel "formants" into the filtered sound.  The resonance knob is replaced by a Formant knob, and a Vowel knob varies the formant between A, E, I, O and U.  I figured that "Okay" is made of O and A from this list, so after turning Formant to full, I held a long note and twiddled about with the vowel knob until I had located both of these.

Now I just had to automate the vowel knob, to make the notes that I played move from O to A.  I tried a number of things, including a ModMapper.  However, the eventual answer was a Multi Stage Envelope Generator (MSEG), which is an incredibly powerful Zebra feature allowing arbitrary modulations to be programmed. In the Formant filter panel, I set the Vowel control to be modulated by MSEG1.

I decided to hold the 'O' for a quarter note, and so changed the time unit for MSEG1 to quarter notes.  Then I simply drew in a pattern to hold the envelope at the level for 'O' for one quarter note, and then move to the 'A' and stay on that for as long as the note was held.  Everything about this pattern can be seen in the screenshot for step 3 in the slideshow above.

This was the first time that I had something to listen to that might have been a talking bass.  However, it sounded like "ohhhh-aaaay"  The 'K' was conspicuous by its absence. 

Step 4 - Creating A Gap

I thought that a short period of quiet in between the 'O' part and the 'A' part might help to make it sound more like "Okay".

To that end, I employed MSEG3 to control the volume of OSC1, with the idea of dipping it at the end of the 'O', and then restoring it for the 'A'.   I set MSEG3 as the modulation for OSC1's volume, and switched the volume of OSC1 to zero.  This meant that MSEG3 would be the only factor driving the volume of OSC1.

Since the 'O' was a quarter note, I just had to set MSEG3 to a time unit of quarter notes, and then it was very clear where the dip had to be.  You can clearly see the MSEG3 volume curve in the screenshot for step 4.  Usefully, while editing MSEG3, I could see MSEG1's envelope faintly in the background, which made it very clear where the note switched from 'O' to 'A'.

This was much better, but still not enough.  I wanted to find a way to introduce a 'K' sound before the 'A'. 

Step 5 - White Noise

I thought that the 'K' sound might be produced adequately by a small click of white noise, immediately before the start of the 'A' sound. 

I added Noise1, a noise generator, in a separate channel and modulated its volume using MSEG2 in the same way as I had modulated OSC1's volume using MSEG3.  I had a number of timing issues until I remembered to change the time unit from sixteenth notes to quarter notes.  I then edited MSEG2 to provide a spike in volume just before the start of the 'A' sound. While doing this, I could see both MSEG1 and MSEG2 faintly in the background, so it was easy to fix the timing of this relative to the volume dip in OSC1 and the switch from the 'O' to the 'A' sound. 

I fiddled with the nature of this white noise spike for some time.  I changed it to and from pink noise, and varied the width of the spike (how long it was audible for) and it's height (the volume of the white noise).  However, I could not get it to sound like anything except different types of drum hits.  It certainly didn't sound like part of a word. 

Step 6 - Filtering the White Noise

I finally added a filter, VCF3, to the white noise.  As I seem to be on a Formant filter kick, that's what I used.  I had expected to bring the cutoff down, but increasing the "Formant" knob seemed to do the trick.  The white noise spike became much more subtle, and the whole thing started to sound like the world "okay".

Mission accomplished?

In Summary

As stated above, I'm not yet happy with it.  It's still pretty indistinct.  I need to try more things, in an attempt to make the word sound clearer.  Suggestions from anyone who has tried this type of thing would be very much welcome in the comments below.  In the mean time, I'm going to try some of the things on the list below which I have collected while writing this:

Things To Try

  1. Try reducing the stereo width on OSC1, and seeing if that makes any difference to the sound.
  2. Try adding that glide. 
  3. Try turning the KeyFol and Drive back down on VCF1. 
  4. Try changing VCF1 to a different LP filter type, to increase the "taming" effect. 
  5. Try reducing the cutoff of VCF2 as a wholesale replacement for VCF1.
  6. Try different filter types in VCF3.
  7. Try Zebra's compressor module in its global effects section. 
  8. Consider using a wavetable approach to get to the talking bass. 
  9. Try using external plugin filters in Logic, such as Channel EQ or other filters.