[.uhm] FM Synthesis in Hive

Official support for: u-he.com
Post Reply New Topic
RELATED
PRODUCTS

Post

Here's a typical DX7-plus-analogue-pad layer thing. Included Urs's wavetable just in case.
HS DX Plus Pad.zip
You do not have the required permissions to view the files attached to this post.

Post

EvilDragon wrote:DX Piano wavetable + 8 voice unison and some detuning = instant TX816!
True! :party:

Post

I have a question about editing envelopes. Is it supposed to be a little painful or I'm missing something?

For now I'm using this script to visualize the shape of the envelope:

Code: Select all

Envelope curve=exponential L0=0.2 T1=0.2 L1=0.5 T2=0.05 L2=1.00 T3=0.75 L3=0.00
Wave "env(phase)"

Post

drzhnn wrote:Is it supposed to be a little painful or I'm missing something?
It's painful. But the alternative - partitioning the formulas - is a lot more tedious.

Naturally, these envelopes are more intuitively laid out in a visual environment. But I still think we're better off this way than with the old synths with their cursor keys and their data entry sliders/buttons.

(but also, I don't know many visual wavetable editors which let one draw envelopes anyway...)

Post

Maybe I'm weird, but they are very intuitive to me, at least once I figured out the times are relative and not absolute.

Post

Howard wrote:Here's a typical DX7-plus-analogue-pad layer thing. Included Urs's wavetable just in case.
HS DX Plus Pad.zip
Lovely :love:

Post

I wasn't complaining, by the way :). I love everything about the envelopes, it's just that they are not very easy to read. But I still love them, they are geeky enough and the syntax has that 80s vibe, which is always a good thing :)

I'm sure everybody knows, but I just discovered that I can shape curvature of an envelope by raising it to the power. Like this: env(table)^4. The poor schmuck's mind blown :D

Image

Not sure if it's right to do it like this though, especially the env(t)^4 graph looks a little out of hand.

Here's this thing in action:

Code: Select all

NumFrames = 100

Envelope L0=1.0 T1=1.0 L1=0.1

Wave "sin(phase*2*pi * 4)"
Wave "floor(x * 1)"
Wave "lowpass(x, env(table)^4, 0.0)"

Wave "sin(2*pi * (phase*2 + env(table) * x) / 2)"

Post

drzhnn wrote:I wasn't complaining, by the way :). I love everything about the envelopes, it's just that they are not very easy to read.
:) + I agree. That is one advantage of visual stuff.

Btw. IIRC the curve=exponential and curve=logarithmic envelope shapes also change by envelope amplitude IIRC. So if you scale your Levels by 10 and then use 0.1 * exp( x ) in the formula, you get different shapes too. All IIRC.

Post

Note that scaling the envelope with anything like env(x)^2 is very different from the built-in curves. Latter scale falling edges "upside down" of rising edges, like in analogue stuff. That's why I put them in, so there's the option for either kind of curvature.

Post

Thanks again Urs! Really appreciate the detail you put into explaining FM (I haven't heard it called Delta X before now!). I've been experimenting, and added a few layers of phase modulation. I haven't tried the envelopes yet (thanks for the utility script drzhnn!). The result I got is an interesting FM bass type thing.

I commented my findings and also commented out some of my experiments in case anyone fancies playing around with my wavetable:

Code: Select all

Info "Ranokas First FM Wavetable, mostly experimented by doing multiple phase modulation passes. Can play as one shot, or Set Auto Mode to Loop <-> and play with Pos and Auto"

	// fundamental tone
Wave "sin(2 * pi * phase * 4)"

	// multiplying gives more movement, bigger number for a deeper sweep!
Wave "sin(2 * pi * phase + x * (16 - (table * 16) ))"

	// another modulator that sweeps
	// try doing table+2 of 2-table instead for something really nice!
Wave "sin(2 * pi * phase + x * 2 - table)"
	
	// add/remove sections to change the timbre
//Wave "sin(2 * pi * phase + x * 1.5 - table)"

	// ----- Try comment toggling the lines below, one at a time ----
	
	// basic version
//Wave "sin(2 * pi * phase + x)"

	// e represents Eulers number 2.718055556 - I used it here to experiment
Wave "sin(2 * pi * phase + x - (e * (4 * table)))"

	// try changing table to frame - really crazy!
//Wave "sin(2 * pi * phase + x - (e * (4 * frame)))"

	// If you put index need to multiply by smaller
//Wave "sin(2 * pi * phase + x - (0.002 * (2 * index)))"

	// or add some noise with rands
//Wave "sin(2 * pi * phase + x - (2 * rands * 0.5))"

// removing the DC offset can make the waveform wobble up/down
//Spectrum lowest=0 highest=0 "0" // remove DC offset
This is an alternative version that I quite liked:

Code: Select all

Wave "sin(2 * pi * phase * 4)"
Wave "sin(2 * pi * phase + x * (16 - (table * 16) ))"
Wave "sin(2 * pi * phase + x * table + 2)"
Wave "sin(2 * pi * phase + x - (e * (4 * table)))"
Don't ask me to explain it, I was effectively twiddling knobs in the operator matrix :lol:

Post

The "alternative version" sounds very ominous in low notes :D Love it!

Post

Ranoka wrote:(I haven't heard it called Delta X before now!)
Now that I come to think about it, I might have just guessed that. It makes so much sense, because in geometry, "dx" is pretty much the standard way to define horizontal offsets (which is what this synthesis is about).

Post

Ranoka wrote:(I haven't heard it called Delta X before now!)
Yes, me neither! That's totally news to me. I did wonder why they called it DX, though. :)

Post

Urs wrote:Note that scaling the envelope with anything like env(x)^2 is very different from the built-in curves. Latter scale falling edges "upside down" of rising edges, like in analogue stuff. That's why I put them in, so there's the option for either kind of curvature.
Urs thank you very much for all the time you but into these tutorials. .

My question is how do I make a lately bass, fairlight vox type sound and a hard synch or Lazerharp type sound... sorry if I sound like a stuck record.. honestly this new addition to Hive is awesome!! :tu:

Post

i thought it was Digital X (cross) mod :shrug:

Post Reply

Return to “u-he”