Tech Preview: Hive Wavetables

Official support for: u-he.com
Post Reply New Topic
RELATED
PRODUCTS
Hive 2$169.00Buy

Post

pdxindy wrote:
Howard wrote:Also a cool amp envelope attack trick in there, Delta Sign! :tu:
:tu:
Thanks :)
I tried to get that "shhhwwwchDing" just right :hihi:
Howard wrote:I can't quite work out how the "1-table" stuff works, Delta Sign. Could you explain?
"table" goes from 0 to 1 over the duration of the table. That's useful for implementing changes over time in the table.
However, in this case I wanted to decrease the volume of the harmonics over the duration of the table, so I'd ideally need something that goes from 1 to 0 instead of from 0 to 1.
The solution is simple! Simply subtract "table" from 1! 1 - table!
It's a very simple way to invert positive variables, simple subtract the variable from its maximum value.
Simply make a ramp gesture with your hand in the air and try to go through what's happening, it's way more simple than it sounds :)

Post

Funkybot's Evil Twin wrote:Has Urs just trolled everyone?

The masses: "Hey Urs, can we get wavetables in Hive to compete with Serum?"

Urs: "Fine. Here is some wavetable functionality so import your wave files and do your thing...oh, and one more thing: if you're interested, there's this scripting functionality that will create algorithmic wavetables if you can figure it out."

The people who can figure the scripting out: "Forget about the traditional .wav wavetables, these algorithmic ones are where it's at!"

Urs: "That's what I wanted all along!"
I have been messing with plain WAV wavetables, and they sound great too, once you figure out that "extension" stuff, and the relation vetween cycles and frames (still waiting for some clarification).

Of course, we lack tools to create and edit these in Hive. Hopefully, we will get that in Zebra 3. But, although algorihmic wavetables are great, they cannot replace entirely manually created wavetables, IMO.

I can post some examples...
Fernando (FMR)

Post

Thanks! BTW waving my hands in the air is what I'm doing right now ;-)

Post

chk071 wrote:Not sure if it's possible to convert the wavetables with Waveterm, or another tool, but, you can download the microQ/Q wavetables for Terratec Komplexer here, which are really great (they're also in Largo): http://synth.stromeko.net/sounds/KOMPLE ... tables.zip
With Audio Term it is very easy to convert these files for Hive.

Post

It may sound stupid, but I always visualize stuff like this with my arms :hihi:
It somehow makes my brain connect better with what's going on :hihi:

Post

PietW. wrote:
chk071 wrote:Not sure if it's possible to convert the wavetables with Waveterm, or another tool, but, you can download the microQ/Q wavetables for Terratec Komplexer here, which are really great (they're also in Largo): http://synth.stromeko.net/sounds/KOMPLE ... tables.zip
With Audio Term it is very easy to convert these files for Hive.
Nice. :) I really love those wavetables, use them all the time in Largo.

Post

To maybe make the "1 - table" thing a bit more clear, I used my best paint skills, which are basically non existent :hihi:

Image

Post

fmr wrote:
Funkybot's Evil Twin wrote:Has Urs just trolled everyone?

The masses: "Hey Urs, can we get wavetables in Hive to compete with Serum?"

Urs: "Fine. Here is some wavetable functionality so import your wave files and do your thing...oh, and one more thing: if you're interested, there's this scripting functionality that will create algorithmic wavetables if you can figure it out."

The people who can figure the scripting out: "Forget about the traditional .wav wavetables, these algorithmic ones are where it's at!"

Urs: "That's what I wanted all along!"
I have been messing with plain WAV wavetables, and they sound great too, once you figure out that "extension" stuff, and the relation vetween cycles and frames (still waiting for some clarification).

Of course, we lack tools to create and edit these in Hive. Hopefully, we will get that in Zebra 3. But, although algorihmic wavetables are great, they cannot replace entirely manually created wavetables, IMO.

I can post some examples...
You can use Serum or Icarus to make wavetables... including using resynthesis on samples. Plus there are lots of downloadable Serum wavetables.

You can also now export wavetables from Zebra... good way to create wavetables for Hive too!

The algorithmic scripts are great cause you can do stuff that would be hard or impossible in the practical sense otherwise.

Also, the scripts take up no space at all!

Post

pdxindy wrote: You can use Serum or Icarus to make wavetables... including using resynthesis on samples. Plus there are lots of downloadable Serum wavetables.
I know. I wasn't complaining. But none of them is free. However, you forgot Audio-Term and WaveEdit, two great tools for wavetable, creation, and both free. And resynthesis it's what this is about, of course.
pdxindy wrote: You can also now export wavetables from Zebra... good way to create wavetables for Hive too!
Yes, that too... :)
pdxindy wrote: The algorithmic scripts are great cause you can do stuff that would be hard or impossible in the practical sense otherwise.

Also, the scripts take up no space at all!
Don't get me wrong. I am loving that tool, although I will have great difficulties in taking advantage of it :(

But, as I said, one thing doesn't replace the other. Fortunately, we can get both :D
Fernando (FMR)

Post

Delta Sign wrote:I just came up with another simple script. It's basically a sine wave with gradually lowering bit resolution during the first half of the table. The bit resolution ramps up again in the second half but noise is also gradually introduced.
There are some cool bad radio transmission sounds around the middle of the table :hihi:

Code: Select all

NumFrames=128
Wave "sin(2*pi*phase)"
Wave "round(((table+0.04)*32)*x)/((table+0.04)*32)"
NumFrames=256
Move start=0 end=127 to=128
Wave start=0 end=127 "main_fi(127-(frame-128), index)"
Wave end=0 "sin(2*pi*phase)"
Move start=0 end=0 to=255
Wave start=128 blend=add "rands*((frame-128)/127)"
Spectrum lowest=0 highest=0 "0"
Normalize base=each
Again, I'm still learning the scripting, so the script is probably totally nonsensical, but it works :hihi:

Anyway, here is the script in a somewhat granular sounding patch:
https://soundcloud.com/deltasign/hive-wavetable-test-07
Thanks so much for this example, I actually reversed engineered it line by line and commented what it does.

I've tried the wavetable with the -- INIT -- patch and it sounds nowhere as beautiful as your example in soundcloud. I was wondering if you could share the patch with us, so we can figure out how made it sound like that? (or a screenshot of the HIVE interface for me to dial in myself :lol: )

Post

For anyone interested, here are the notes I made for Delta Sign's sine-bit-nose type wavetable:

Code: Select all

	// Create the bitrate reducing sine
	// for 128 frames
NumFrames=128
Wave "sin(2*pi*phase)"
Wave "round(((table+0.04)*32)*x)/((table+0.04)*32)"

	// Increase frames to 256, and copy the bitrate reduction to the second half
NumFrames=256
Move start=0 end=127 to=128

	// reverse the first half to play backwards from sine to bitrate reduced sine
Wave start=0 end=127 "main_fi(127-(frame-128), index)"

	// create clean sine for first frame
Wave end=0 "sin(2*pi*phase)"

	// copy sine from first frame to last
Move start=0 end=0 to=255

	// add noise to the sine, fading in from the middle frame to the last frame
Wave start=128 blend=add "rands*((frame-128)/127)"

	// fix DC offset
Spectrum lowest=0 highest=0 "0"
	// make it louder
Normalize base=each

Post

I thought I'd share the uhm script that I've been playing around with tonight.
I was experimenting creating sine waves in the main and aux buffer and blending them together in different ways.
I've commented the script in the first block if anyone is interested - also, if anyone has any suggestions for improvements let me know :D (I expect there's room for improvement, since we're all learning!)
I noticed there a slight jump in the loop, but wanted to share what I came up with so far.

First, the vanilla version with comments:

Code: Select all

Info "Oscillating sine waves with different harmonics. Set Pos to 0 and Auto Mode to loop. Increase the Auto speed to taste, try 1 or above. Or set Auto to low and hold notes for drones. Experiment with adjusting the Pos with Auto at high speeds"

NumFrames=19 // 20 frames

	//---- Sine wave at fundamental in main buffer ----

Wave start=0 end=0 "sin(2*pi*phase)"

	// create a reversed sine on frame 9 (maybe there's an easier way?
Wave start=9 end=9 "main_fi(0, 2048 -index)"

	// crossfade between frame 0 and 9
Interpolate start=0 end=9 type=crossfade

	// copy and reverse the first half to create a loop
Wave start=10 end=19 "main_fi(9-(frame-10), index)"


	//---- Sine wave with higher frequency in aux buffer ----

	// Same thing but with higher pitch and to the aux
	// change the number for different results, double for next octave.
	// odd numbers like 3 results in higher harmonics.
	// try 7.5 for a nice result.
Wave start=0 end=0 target=aux1 "sin(4*pi*phase)"

	// create a reversed sine on frame 9 (maybe there's an easier way?
Wave start=9 end=9 target=aux1 "aux1_fi(0, 2048 -index)"

	// crossfade between frame 0 and 9
Interpolate start=0 end=9 type=crossfade target=aux1

	// copy and reverse the first half to create a loop
Wave start=10 end=19 target=aux1 "aux1_fi(9-(frame-10), index)"


	// ---- Blend the aux with the main ----

	// blend=multiplyAbs, blend=divideAbs and blend=min give different results!
	// blend=replace is useful for checking what's in the buffer
	// (9 + frame) % 19, this offsets the copy by half. If you change the 9 to 14 you get a more offset wobbly effect
Wave start=0 end=19 target=main blend=add "aux1_fi((9 + frame) % 19, index)"

Spectrum lowest=0 highest=0 "0" // remove DC offset
In this version I changed some of the numbers and phase offset when blending the aux to the main.
I think this version is more interesting.

Code: Select all

NumFrames=19 // 20 frames
Wave start=0 end=0 "sin(2*pi*phase)"

Wave start=9 end=9 "main_fi(0, 2048 -index)"
Interpolate start=0 end=9 type=crossfade
Wave start=10 end=19 "main_fi(9-(frame-10), index)"

Wave start=0 end=0 target=aux1 "sin(7.5*pi*phase)"
Wave start=9 end=9 target=aux1 "aux1_fi(0, 2048 -index)"
Interpolate start=0 end=9 type=crossfade target=aux1
Wave start=10 end=19 target=aux1 "aux1_fi(9-(frame-10), index)"

Wave start=0 end=19 target=main blend=add "aux1_fi((14 + frame) % 19, index)"
Spectrum lowest=0 highest=0 "0" // remove DC offset
In this 3rd version I only changed the blend mode at the end to divideAbs and got a completely different timbre!

Code: Select all

NumFrames=19 // 20 frames
Wave start=0 end=0 "sin(2*pi*phase)"

Wave start=9 end=9 "main_fi(0, 2048 -index)"
Interpolate start=0 end=9 type=crossfade
Wave start=10 end=19 "main_fi(9-(frame-10), index)"

Wave start=0 end=0 target=aux1 "sin(7.5*pi*phase)"
Wave start=9 end=9 target=aux1 "aux1_fi(0, 2048 -index)"
Interpolate start=0 end=9 type=crossfade target=aux1
Wave start=10 end=19 target=aux1 "aux1_fi(9-(frame-10), index)"

Wave start=0 end=19 target=main blend=divideAbs "aux1_fi((14 + frame) % 19, index)"
Spectrum lowest=0 highest=0 "0" // remove DC offset

Post

Ohh, nice! I'll check out your scripts asap! I'll also try to dig up the preset from that demo. I remember using lots of envelopes triggered by LFOs to get that granular effect.

For the meantime, here is my first little script using the spectrum parser:

Code: Select all

NumFrames = 256
Wave "rand"
Spectrum lowest=16 "x*(table^4)"
Wave "lowpass(x,(1-table),0)"
Spectrum lowest=0 highest=0 "0"
Normalize base=each
It's basically filtered noise, but t sounds quite cool, in my opinion. Modulate the wavetable position with a slow random glide LFO, stick tons of delay and reverb on it, and you got yourself one of those dystopian movie soundstrack pads :hihi:

Post

I am probably missing some obvious option here, but is there a way to stop a table scan from being retriggered by MIDI?

I am frantically saving all new scripts and trying them out as they are posted, Hive was my 'daily driver' so to speak for the last month or so and now it has consumed all of my production time... the new modulation options, XY and wavetable feature will keep me busy for a longggg while, not to mention wrapping my head around this scripting so I can whip up something nice someday!

Post

Ranoka wrote:I noticed there a slight jump in the loop
Because the line "NumFrames=19 // 20 frames" only gives you 19 frames (0 to 18), not 20.
// create a reversed sine on frame 9 (maybe there's an easier way?
Wave start=9 end=9 "main_fi(0, 2048 -index)"
Wave "-sin(2*pi*phase)" // is more straightforward, at least

Post Reply

Return to “u-he”