Postin' me Zebra wavetable vid again
- KVRAF
- 4130 posts since 11 Aug, 2006 from Texas
Hey Sendy, I don't know if you have any use for this but I made a very hacky Python script to automate the generation of Spectroblend partials. You're welcome to it, I've posted it to pastebin for you: http://pastebin.com/Zh5u3hiX
If you don't have access to python you can run it in your browser at a site like this one: http://repl.it/languages/Python
It's built off comments Urs made to billstei when he was creating his Ocatve scripts to do similar things. That old thread is here:
http://www.kvraudio.com/forum/viewtopic.php?t=253488
I'd much rather you didn't waste your time fiddling with tiny pixels trying to get a waveform just right. Thanks again for the hard work you put into these tables.
If you don't have access to python you can run it in your browser at a site like this one: http://repl.it/languages/Python
It's built off comments Urs made to billstei when he was creating his Ocatve scripts to do similar things. That old thread is here:
http://www.kvraudio.com/forum/viewtopic.php?t=253488
I'd much rather you didn't waste your time fiddling with tiny pixels trying to get a waveform just right. Thanks again for the hard work you put into these tables.
- KVRAF
- Topic Starter
- 5223 posts since 20 Jul, 2010
Thanks! I will check that out, though I'd never come across Python before. Often I'm looking for sequences of numbers or 2D mathematical functions (for example, those Walsh function grids on the Wolfram page), and converting them into wavetables. For sequential stuff like that, the "blend" modes work best, and then you can experience the sequence as a spectral sequence, or switch to geoblend to read it as a sequence of waveforms (in the case of Walsh functions - complex evolving polypulses).bmrzycki wrote:Hey Sendy, I don't know if you have any use for this but I made a very hacky Python script to automate the generation of Spectroblend partials. You're welcome to it, I've posted it to pastebin for you: http://pastebin.com/Zh5u3hiX
If you don't have access to python you can run it in your browser at a site like this one: http://repl.it/languages/Python
It's built off comments Urs made to billstei when he was creating his Ocatve scripts to do similar things. That old thread is here:
http://www.kvraudio.com/forum/viewtopic.php?t=253488
I'd much rather you didn't waste your time fiddling with tiny pixels trying to get a waveform just right. Thanks again for the hard work you put into these tables.
One really tedious part of this operation is that the Walsh function in the diagram didn't have enough squares to account for all harmonics - and making a bigger grid would mean needing more than 16 wave slots, as the geometric sequence is a square. SO... what I was doing was just copying the spectrum upwards, repeating the same pattern for each wave slot until I filled all partials.
This lead me to imagine a spectral FX which could take a partial number as a cutoff point, and then repeat that sequence from that point on for the partials above it. Do the same but reading the partials below the cutoff forwards and backwards, and, if I'm not mistaken, you have a perfect way of making harmonic aliasing (partials above the cutoff are mirrored, then mirrored again, etc)
Of course, this is where it starts getting into cellular automata and running the results through sine banks and custom filters, and oh look, I should learn Reaktor, but I suck at Reaktor, and I can barely make inroads because learning something like Reaktor is like creating the universe from scratch to make a 440hz sine.
I'd LOVE to have my wavetables featured in Zebra 3! If I were to somehow land up with a beta version whenever it gets done, I could make even more wavetables with the new editing tools. I've been told I'm a good betatester, too, and a couple of other companies are threatening to add me to the testing team, but this is all very hypothetical and a bit presumptuous
If anyone wants to thank me for my waveforms so far, they could check out my album in my signature. Sales started off with an initial blast but quickly petered out, and I'm not having much luck contacting music blogs to get the darn thing reviewed, though I still get fan mail about it from time to time. So I like to think of it as 5 years not entirely wasted If anyone also wants to buy it but can't afford it, I'm also considering lowering the price and throwing in a bonus track that was an outtake.
I'm going to stop pimping myself out now and answer V0RT3X's question. The oscilloscope/spectrograph plugin is Wave Candy by Image Line. And thanks everyone for the kind words about the wavetable pack. I feel much more motivated to get the thing scrubbed up and ready for primetime. There's so much waveform in there that I'm never going to use all of them.
http://sendy.bandcamp.com/releases < My new album at Bandcamp! Now pay what you like!
-
- KVRAF
- 8414 posts since 4 Jul, 2012 from Alesia
Ah thanks so much, too bad it isn't on OSX.Sendy wrote: I'm going to stop pimping myself out now and answer V0RT3X's question. The oscilloscope/spectrograph plugin is Wave Candy by Image Line. And thanks everyone for the kind words about the wavetable pack. I feel much more motivated to get the thing scrubbed up and ready for primetime. There's so much waveform in there that I'm never going to use all of them.
Yes please do keep working away on this stuff, i think it's great stuff. I made some really good sounds by sweeping through the oscillators you made just by themselves. I didn't need filtering, or anything, and it sounded incredible!
- KVRAF
- Topic Starter
- 5223 posts since 20 Jul, 2010
Thanks. Glad you're enjoying them. There is a lot of power in just being able to define arbitary waveforms or spectra and morph or fade between them. No filter required, you can do all transformations on the oscillator level That was my dream synth and why I knew I had to get Zebra the moment I layed eyes on it!
Here's an example of one of the wavetables used in one of my tracks. It's the pulsing sound you first hear. You can hear Osc FX being introduced gradually as well, to produce a sort of phasey ringing. But in all honesty I often forget I even made all these waveforms when I'm composing, and end up using different synths instead
http://soundcloud.com/sendy/taxicab-geo ... 5-finished
BTW, if you record the intro and look on an oscilloscope, the waveform is doing an awesome "dance" visually
Here's an example of one of the wavetables used in one of my tracks. It's the pulsing sound you first hear. You can hear Osc FX being introduced gradually as well, to produce a sort of phasey ringing. But in all honesty I often forget I even made all these waveforms when I'm composing, and end up using different synths instead
http://soundcloud.com/sendy/taxicab-geo ... 5-finished
BTW, if you record the intro and look on an oscilloscope, the waveform is doing an awesome "dance" visually
http://sendy.bandcamp.com/releases < My new album at Bandcamp! Now pay what you like!
- KVRAF
- 4130 posts since 11 Aug, 2006 from Texas
The *Morph modes have a completely different scripting interface, I have no idea how it works. I'll re-read the old thread to see if there's clues in there. (EDIT: Re-read both threads, there's nothing about scripting *Morph modes or if it's even possible to access the points.)Sendy wrote:Thanks! I will check that out, though I'd never come across Python before. Often I'm looking for sequences of numbers or 2D mathematical functions (for example, those Walsh function grids on the Wolfram page), and converting them into wavetables. For sequential stuff like that, the "blend" modes work best, and then you can experience the sequence as a spectral sequence, or switch to geoblend to read it as a sequence of waveforms (in the case of Walsh functions - complex evolving polypulses). One really tedious part of this operation is that the Walsh function in the diagram didn't have enough squares to account for all harmonics - and making a bigger grid would mean needing more than 16 wave slots, as the geometric sequence is a square. SO... what I was doing was just copying the spectrum upwards, repeating the same pattern for each wave slot until I filled all partials.
As far as *Blend modes go it's a pretty simple file layout, here's a waveform preset script. Before loading it you need to manually switch the osc to SpectroBlend mode. When it loads it'll only change the first wavetable. If you want to use GeoBlend mode it's magic number 2 if I recall.
http://pastebin.com/tzC9yHnD
The layout is really simple. Stuff inside the <? ... ?> is the script, kind of like PHP tags. The syntax is C/C++-like and all it's doing is creating an array of 128 floats. The big blob is manually setting each of the 128 partials to a floating point value from -1 to +1.
Finally, it stores the created array to wavetable 1 if SpectroBlend type is set on the OSC before loading.
The really cool thing about the scripts is you can create presets that only touch a single waveform and alter nothing else about the OSC. You can load Waveform A into slot 1, copy from 1 to somewhere, then load Waveform B into 1 and copy to somewhere else then do a morph. Or load and move 16 discrete waveforms. Very powerful and quickly becomes a rabbit-hole of sonic exploration.
The math behind the Walsh functions is a bit over my head. I understand it's a discrete function generator that generates pulsetrains but I don't quite understand how many pulses correspond to the Cal(k) and Sal(k) functions.
However, if you have a final expected layout of a *Blend wave it should be trivial to map to 128 discrete points.
- KVRAF
- 4130 posts since 11 Aug, 2006 from Texas
I did a little more tinkering on the template. I really like it now. Here it is:
http://pastebin.com/U2Lg6sUA
Here's how it works. First we set WaveNum to a number from 1 to 16 to denote the Wave # slot you want to modify. Next we create a datapoint array named p to hold the 128 values of -1.000 to 1.000 with 0.000 being the center position.
Finally, the last line sets the WaveTable selected in WaveNum (default is 1).
The end result is a scripted preset that will reset Wave 1 to an initialized waveform. Change any/all of the 128 points to create any shape you'd like.
The coolest part is you can open this preset with any of the 4 oscillators and they can be in any of the modes for this change to take place.
With some basic programming in any language of your choice anyone can output the table of their dreams.
http://pastebin.com/U2Lg6sUA
Here's how it works. First we set WaveNum to a number from 1 to 16 to denote the Wave # slot you want to modify. Next we create a datapoint array named p to hold the 128 values of -1.000 to 1.000 with 0.000 being the center position.
Finally, the last line sets the WaveTable selected in WaveNum (default is 1).
The end result is a scripted preset that will reset Wave 1 to an initialized waveform. Change any/all of the 128 points to create any shape you'd like.
The coolest part is you can open this preset with any of the 4 oscillators and they can be in any of the modes for this change to take place.
With some basic programming in any language of your choice anyone can output the table of their dreams.
- KVRAF
- 23102 posts since 7 Jan, 2009 from Croatia
Sendy, you probably missed my question. Your BLEN waves, why are they going only up to 15k?
- KVRist
- 129 posts since 16 Feb, 2013 from Sydney
Sendy,
I can give you any walsh function tables you require - here's the 128 point table
Just let me know if you want any others...
Brian,
Btw, You can force an oscillator into a particular mode (if required) by starting the file thus
Ed
I can give you any walsh function tables you require - here's the 128 point table
Just let me know if you want any others...
Brian,
Btw, You can force an oscillator into a particular mode (if required) by starting the file thus
Code: Select all
#defaults=no
#patchname=no
#cm=OSC
Wave=2 // 2-Geoblend, 3-Spectroblend
<?
- KVRAF
- 4130 posts since 11 Aug, 2006 from Texas
Yep, thanks Ed! I didn't put that in the template because it could be used for either Geo or Spectro waveforms: the person loading can decide. As you show it's just as easy to force a specific mode too.EdHarvey wrote:Sendy,
I can give you any walsh function tables you require - here's the 128 point table
Just let me know if you want any others...
Brian,
Btw, You can force an oscillator into a particular mode (if required) by starting the file thusEdCode: Select all
#defaults=no #patchname=no #cm=OSC Wave=2 // 2-Geoblend, 3-Spectroblend <?
- KVRAF
- Topic Starter
- 5223 posts since 20 Jul, 2010
SpectroBlend gives you 128 partials - playing low notes will give you a limited bandwidth. Try it yourself - make a SpectroBlend wave and activate all the partials. Play a bass part. You can extend it slightly by switching to "crisp" mode. You can also mutate it further with Osc FX and create extra harmonics easily. This is why my plea for an Osc FX which reads up to partial X and then repeats those partials under X endlessly (until nyquist) originated from creating SpectroBlend tables. It would be nice to just loop the partials and you could create interesting pseudo-aliasing sweeps by moving the 'X point' at which spectral looping happens.EvilDragon wrote:Sendy, you probably missed my question. Your BLEN waves, why are they going only up to 15k?
GeoBlend, on the other hand, uses the same 128 graph points, but you can use them to create any kind of harmonic span, by, for example, definining a square or saw wave, which will have discontinuities with harmonics reaching nyquist. That's because they're read literally as a waveshape rather than a set of partials, which, by definition, must come to an abrupt end once the last partial is read.
Thanks for all the information everyone else has provided in regards to completing the Walsh function tables. To be honest, I don't understand the maths here. I'm not a mathematician. I just see mathematical patterns, numerical sequences and 2D structures and wonder what they would sound like as wavetables. But I'll read everything when I get a minute and reply with any further thanks and questions I have upon investigating!
http://sendy.bandcamp.com/releases < My new album at Bandcamp! Now pay what you like!
- KVRAF
- 4123 posts since 23 May, 2004 from Bad Vilbel, Germany