Code: Select all
phase = index/2048;
Code: Select all
phase = index/2048;
Check out Notepad2-mod. It's great and easy to use. Also free and open source. Basically it's like standard windows Notepad but with code highlighting and some other nice features, like word auto completion and highlighting of paired brackets.hakey wrote:Same here. Any chance of a standalone .uhm/wavetable editor?drzhnn wrote: I was exhausted by switching between Hive, text editor
Code: Select all
Envelope L0=0 T1=0.5 L1=1 T2=0.5 L2=0
// HYPER MODULATOR
Wave "frac(abs(1-2*phase) * 2 * (1 + 10.0 * (1-table)))"
Wave "abs(1-2*x)"
Wave "x * env(phase)^0.5"
// OPERATOR
Wave "sin(2*pi*phase + x * 2)"
Normalize base=each
Code: Select all
Envelope L0=1 T1=1 L1=0
Wave "sin(2*pi*phase*30*env(table)^4)"
Wave "sin(2*pi*phase - x*2)"
Interpolate start=0 end=255 type=morph2
I think so too. But of course, DX-style FM is PM, technically.
I think the Wave values are clipped at +/-10. This helps preventing some confusing situations where only 1 out of 256 frames has any audio after normalization.2) What are the operating ranges for values in x and y variables?
3) Are there better ways to fix the misaligned phases between frames?
4) In general, what are anti-patterns when writing .uhm scripts?
Lasers, hehehe, yes.drzhnn wrote: ↑Fri Sep 28, 2018 4:29 am Lasers!!!
Code: Select all
Envelope L0=1 T1=1 L1=0 Wave "sin(2*pi*phase*30*env(table)^4)" Wave "sin(2*pi*phase - x*2)" Interpolate start=0 end=255 type=morph2
Code: Select all
NumFrames = 101
Wave start=0 end=33 "sin(2*pi*20*phase^4 + y)"
Wave start=34 end=66 "sin(2*pi*15*phase^0.5 + y)"
Wave start=67 end=100 "sin(2*pi*5*phase + y)"
Wave "sin(2*pi*phase^(80/(frame+2)) + x*table*1.5)"
Normalize base=each
Code: Select all
Wave "phase * (phase<0.25) * table * 2.9"
Wave "x + (phase+0.5) * (phase>=0.25) * (phase<0.5) * (1-table) * 1.2"
Wave "x + (phase-0.7) * (phase>=0.5) * (phase<0.75) * table * 0.5"
Wave "x + (phase-1.5) * (phase>=0.75) * (1-table) * 0.9"
Wave "1-2*x"
Wave "lowpass(x, 0.3, 0.1)"
Wave "sin(2*pi*phase*8 + x*16)"
Wave "tanh(x*2)"
Code: Select all
Info "Percussive FM noise with resonance. Granular powerchord at slower speeds."
Envelope L0=1 T1=1 L1=0
Wave "1-2*rand"
Wave "lowpass(x, 0.8, 0.7)"
Wave "lowpass(x, 0.7*env(table)^8, 0.2)"
Wave "sin(x*env(table)^2 + y)"
Code: Select all
Info "FM mallet and KS guitar layers mixed together. `Auto` controls stiffness (-2.0 is a good starting point)."
Envelope L0=0.95 T1=0.1 L1=0.4 T2=0.9 L2=0.2
// FM mallet
Wave "1-2*rand"
Wave "bandpass(x, env(0.15), 0.5)"
Wave "sin(2*pi*phase*8 + x*5*env(table)^6)"
Wave "(x + x*5*env(table)^9)"
Wave "x*env(table)^4"
Wave target=aux1 "main"
// Additional tone shaping
Wave "sin(2*pi*phase*16 + x*0.5*env(table))"
// KS
Wave start=1 "y + 0.09 * (main_fi(frame-1, index) - y)"
// Mix FM and KS layers
Wave blend=add "aux1*0.5"
Phase "rands * 2 * pi - pi"
Normalize base=each
Could you post some audio examples please?drzhnn wrote: ↑Mon Oct 01, 2018 9:17 am I was trying to make something much simpler but was sidetracked by possibilities
Here I divided the frame into 4 "subframes" and filled them with saw waves at different phases. After that I applied lowpass filter to remove phase clicks between subframes. Then I used that waveform as a frequency modulator for a sine wave. And finally - saturation! By changing parameters of the lowpass filter you can get all kinds of growling FM basses.
Code: Select all
Wave "phase * (phase<0.25) * table * 2.9" Wave "x + (phase+0.5) * (phase>=0.25) * (phase<0.5) * (1-table) * 1.2" Wave "x + (phase-0.7) * (phase>=0.5) * (phase<0.75) * table * 0.5" Wave "x + (phase-1.5) * (phase>=0.75) * (1-table) * 0.9" Wave "1-2*x" Wave "lowpass(x, 0.3, 0.1)" Wave "sin(2*pi*phase*8 + x*16)" Wave "tanh(x*2)"
Good pointsurreal wrote: ↑Fri Oct 05, 2018 8:44 amCould you post some audio examples please?drzhnn wrote: ↑Mon Oct 01, 2018 9:17 am I was trying to make something much simpler but was sidetracked by possibilities
Here I divided the frame into 4 "subframes" and filled them with saw waves at different phases. After that I applied lowpass filter to remove phase clicks between subframes. Then I used that waveform as a frequency modulator for a sine wave. And finally - saturation! By changing parameters of the lowpass filter you can get all kinds of growling FM basses.
Code: Select all
Wave "phase * (phase<0.25) * table * 2.9" Wave "x + (phase+0.5) * (phase>=0.25) * (phase<0.5) * (1-table) * 1.2" Wave "x + (phase-0.7) * (phase>=0.5) * (phase<0.75) * table * 0.5" Wave "x + (phase-1.5) * (phase>=0.75) * (1-table) * 0.9" Wave "1-2*x" Wave "lowpass(x, 0.3, 0.1)" Wave "sin(2*pi*phase*8 + x*16)" Wave "tanh(x*2)"
© KVR Audio, Inc. 2000-2024
Submit: News, Plugins, Hosts & Apps | Advertise @ KVR | Developer Account | About KVR / Contact Us | Privacy Statement