## How to fill up an array?

Scope and XITE Development

Original topic on PlanetZ: https://forums.scopeusers.com/viewtopic.php?t=20055

####

Posted: Mon Sep 18, 2006 10:32 am
by olase
Has anybody a tip for me how to fill up a large array to create my own wavetables?
To modify already existing wavetables does not work for me.
I tried to figure out any method with the Array Viewer but wasn't successfull until yet.
Cheers

####

Posted: Mon Sep 18, 2006 11:45 am
by olase
Ohhh...
Do that 2048 times for example, thats take time...
I thought there is any automatism...

####

Posted: Mon Sep 18, 2006 4:47 pm
by j9k
the only wavetable player is the waldorf one. you can open them in wavelab and edit them. they are labled wt**.dsp in the dsp folder of your install.
i don't know what format they are but still fun to play with.
j9k

####

Posted: Mon Sep 18, 2006 7:01 pm
by dawman
j9k,
I really am quite a fan of your modular matrix, along with other dev's you use to bring us before I became a member. Your Mod matrix is a great tool in Morpheus Vers. II. So many options. This is a perfect tool for tweaking synth parameters, and routings. Afterall most of us can never return to generic hardware after experiencing SFP. Hope you have returned to bless us with your well designed workarounds, and modifiers.
Jimmy V.

####

Posted: Tue Sep 19, 2006 5:16 am
by olase

> On 2006-09-18 17:47, j9k wrote:
> the only wavetable player is the waldorf one. you can open them in wavelab and edit them. they are labled wt**.dsp in the dsp folder of your install.
> i don't know what format they are but still fun to play with.
> j9k

The wt**.dsp files are just modules with an integer array of 2048 entrys. You can create them quite easy. Also you can copy all data from an wt** module to your own module by connecting both arrays.
But what exactly do you mean by edit them in wavelab?

####

Posted: Tue Sep 19, 2006 10:51 pm
by astroman
if these were raw wavetables in one form or the other, then someone would have come up with an editor long time ago
To me they look as random as any other encrypted module
cheers, Tom

####

Posted: Thu Jan 03, 2008 11:05 am
by hifiboom
I am also interested in creating my own wavetables....
I would even write a small wave to wavetable.dsp software if I would know the format of the array storage.
I also don`t know how to fill up an array automatically step by step ....
doing 2048 entries by hand really sucks....

####

Posted: Mon Mar 24, 2008 10:53 am
by Shroomz~>
Where there's a will, there's a way.

####

Posted: Mon Mar 24, 2008 11:02 am
by hifiboom
mmmh, so you got a solution?

####

Posted: Mon Mar 24, 2008 11:18 am
by Shroomz~>
Only for creating wavetable arrays with WAV samples. Not for filling arrays with specific HEX values for midi or anything like that yet.

####

Posted: Mon Mar 24, 2008 12:17 pm
by hifiboom
really ? would mind giving some tips away...

####

Posted: Mon Mar 24, 2008 1:06 pm
by Shroomz~>
I will share, but I need to discuss it with some of you guys (maybe off list) because I won't share techniques if others aren't sharing theirs.

####

Posted: Mon Mar 24, 2008 1:37 pm
by Warp69
I would also be interested

####

Posted: Mon Mar 24, 2008 2:16 pm
by Shroomz~>
Maybe an sdk user only tool/module would be the way to go with this? To go down that line would require the module to be as close to perfect as possible, but it could maybe even be open to a certain extent. Any thoughts?

####

Posted: Mon Mar 24, 2008 3:18 pm
by HUROLURA
I would also be interested in this kind of trick.
But being still an SDK rookie, I surelly do not have any usefull information to share
Anyway, if anybody can help me in my quest to build up a phase distortion synth for Scope ...
CheerZ

####

Posted: Mon Mar 24, 2008 3:45 pm
by Shroomz~>
Ok, well here's a preliminary tip .:- take a look at any WAV > array related device (or devices which contain them) & go from there.

####

Posted: Mon Mar 24, 2008 4:22 pm
by hifiboom
now do you talk about the wav oscillator or a wav-2array converter.... that really converts a wav file into a .dsp file?
it looks like easter time. we search the eggs....

####

Posted: Mon Mar 24, 2008 4:27 pm
by Shroomz~>

> hifiboom wrote:now do you talk about the wav oscillator or a wav-2array converter.... that really converts a wav file into a .dsp file?

Well, if we had an sdk module/s that fills an array/s based on a 'dropped in WAV sample', then that would be a good starting point, wouldn't it?

####

Posted: Mon Mar 24, 2008 8:16 pm
by hifiboom
absolutly that would be pretty cool!

####

Posted: Tue Mar 25, 2008 3:39 am
by tgstgs
would say the probl. is not to fill an array with data whatever;
probl. is to fill it with data that makes sense in realtime!
for ex.
if blowing the audioIn into an array;
where to start where to stop recording?
without an editor for manual selection its sort of random
chaos vibes from vienna

####

Posted: Tue Mar 25, 2008 4:19 am
by hifiboom
the problem is to fill an array offline with wav file data in SDK.
and i guess shroomz talks about that possibilities
that would at least allow us to build something like a virus wavetable oscillator for mod3. and similar stuff
the adavantage are that the wavetables are inside the mdl file, so you don`t have to distribute 128 wavefiles with your mdl file
and you get the waldorf like walkthrough different wavetables....
I would be completly happy if I can adress the array(WT) offline.
BTW tgstgs a delay is more or less a "realtime array".

####

Posted: Thu Mar 27, 2008 11:14 am
by Shroomz~>
We're building some new array tools & have made some good progress, but I know for sure that the Waldorf Osc is very unusual in the way that it reads data from the arrays. Our understanding of it isn't yet complete, but from what we understand so far, it will be a lot of work just to put together a single wavetable.

####

Posted: Thu Mar 27, 2008 12:09 pm
by Shroomz~>
Hifiboom, I just read an PM that you sent a couple of days ago that's saying pretty much what I said here. So I haven't told you anything you didn't already know.. oops.
anyway, the WT arrays of 2048 values seem to be split into 16 blocks of 128, but there's a lot more to it than that...

####

Posted: Thu Mar 27, 2008 1:53 pm
by hifiboom
jeah it really seems to be more difficult.
And I have so little time at the moment.
Else I would dig deeper into it.

####

Posted: Thu Mar 27, 2008 2:31 pm
by Shroomz~>
Hi Hifiboom,
The Waldorf Osc reading strategy appears to be 16 blocks of 128. The major problem is that each block of 128 contains (what looks like) 7 octaves of waveform data. Each of these Octaves is represented by a half-cycle symmetrical waveform. In terms of the array structure that works out at sizes of 64, 32, 16. etc up to 16*128. The real issue with generating compatible wavetables is that it seems like each block of 128 not only includes octave sections, but is also morphing to the next block, hence making wavetable creation for these Osc's a relatively difficult task without a piece of software which auto creates the desired morphing based tables. If there's a way to do it in sdk, we've still to find it.
So where does this leave us? Well, so far we've managed to generate a sine wave.
Based on what we've learned it should be possible to put other symmetrical waveforms in there which means that sample data can to some extent be embedded in devices, but I wouldn't expect full blown wavetables from us any time soon.

####

Posted: Thu Mar 27, 2008 2:48 pm
by at0m

> olase wrote:Ohhh...
> Do that 2048 times for example, thats take time...
> I thought there is any automatism...

Try making a sequencer set eh. Lots of human batch processing in Scope DP, there is no such thing as automation...

####

Posted: Thu Mar 27, 2008 7:09 pm
by hifiboom
I know that it would lead to difficulties.
maybe we should simply put this somewhere into the SC device/sdk wishlist.
It`s def. on top of my personal wishlist. a felxible oscillator, with very high quality pitching algo based on wavs like the wav-oscillator but with some sort of antialiasing pre processing. and very high quality pitchshifting.
For example it sounds different if you take an analog recorded osc waveform and picth it in your wave editor with highest quality or if you do the same with the wav-osc in realtime.
and it should have a sync feature which the wav osc is missing at the moment.

####

Posted: Fri Mar 28, 2008 7:24 am
by HUROLURA
Thanks for these informations ShroomZ.
I already tried to dive in the WavOsc module organization to see what further extension I could try to do on this basis. But when I tried to edit:make some calculations
With these informations, I will try anotehr time.
Many Thanks
CheerZ

####

Posted: Fri Mar 28, 2008 8:28 am
by Shroomz~>
Hi,
here's a visual representation of the first block of 128 from the Waldorf Osc's 1st wavetable (Wave #01). Each wavetable has 16 of these strung together to make up an array of 2048 with subtle differences between them creating the morph. This first block creates the first 4 of 64 morphing stages in Wave #01. Hope this helps.

Attachments
    Wavetable_Example.jpg (43.11 KiB) Viewed 2688 times

####

Posted: Fri Mar 28, 2008 9:14 am
by HUROLURA
Quite Helpfull ... because really visual.
Thanks.

####

Posted: Fri Mar 28, 2008 10:19 am
by hifiboom
thanks for the info, shroomz,
don`t know exactly but it looks like the stages seem to represent some kind of pitching also...
not sure about this....
theoretically if i read through a wav file specification I could build some sort of wav to waldorf wavetable converting tool by programming a little tool.
but the question is : do we really want this? the waldorf oscillator is some sort of digital sounding oscillator and due to the small amount of samples per waveset it has inferior quality also intentionally like the original stuff sound digital also.
btw how did you visualize the array in that nice way?
I`m also working on a phase distortion waveshaper that can change the sound of an basic oscillator (sin, saw, tri) in drastical ways, still keeping the quality high.
My major plan with all this wav shaping and wav based oscillator stuff is, that it should give new sound options with out affecting the sound quality.
The Flexor draw waveshaper is a good approach, but its still not yet fixed regarding the jump point and so it delivers non-perfect results.

####

Posted: Fri Mar 28, 2008 10:30 am
by Shroomz~>

> hifiboom wrote:but the question is : do we really want this?

Well, that's the point really. It was more of an exercise into understanding a bit more about arrays than anything because I can't see anyone here including myself making a better job of creating 64 wavetables for that osc than the ones Waldorf produced for it themselves. What's already there is everything you need for that osc & has that classic PPG sound.

> btw how did you visualize the array in that nice way?

oooh... that's a secret.

####

Posted: Fri Mar 28, 2008 10:59 am
by hifiboom
btw, regarding the wavetables we succeed to fill it based on integer values.
But what about converting the values into and float array.
As you can connect a float 128 array to the wshaper module and trasfer basic waveform through the waveshaper wuite nicely.
I did this by manually inputting different values into the 128 array slots. quite timeconsuming, but it can give some nice new waveshapes.
so we could build a basic wavetransformer around the wshaper.

####

Posted: Fri Mar 28, 2008 11:22 am
by Shroomz~>
Sounds cool.
I still think we can do some really cool things with this Waldorf osc as well.

####

Posted: Fri Mar 28, 2008 12:19 pm
by Shroomz~>

> hifiboom wrote:don`t know exactly but it looks like the stages seem to represent some kind of pitching also...

If you look at the image I posted above... well the Waldorf osc uses the first 64 samples of the 128 block for the bottom 4 of it's pitch octaves, which is interesting to say the least.

####

Posted: Sat Mar 29, 2008 4:53 am
by HUROLURA
Such a tool would be usefull (at least to me) Hifi !!!
Then you can add diferent type of oscillator waveform to broeden the spectrum basis for modular and synth.
I already have a few of them in mind...
CheerZ

####

Posted: Sat Mar 29, 2008 8:35 am
by hifiboom
hurolura,
problem is that you can convert integer values to float values. but its difficult when it comes to converting integer arrays to float (1....0...-1) arrays.
@shroomz, I guess I understand how the waldorf oscillator works generally.
the first 64 samples are used for the lower octaves through the fact that downshifting doesn`t introduce aliasing
lets say the first 64 samples represent c3, then c2,c1 and c0 is done by downpitching the first 64 samples.
c4 is represented by the next 32 samples as pitching one octave higher should half the the wavecycle....
and so on
c5 16 samples
c6 8 samples
c7 4 samples
c8 2 samples
thats just how i image the generell workflow, I did not verify this.
the higher octaves representations may be antialiased to deliver better pitching quality.
thats why the look of the waves may change in the higher region.
so basically the first 64 samples represent the wave in its pure form, the higher regions the pitched versions.
just a wuick try to explain whats going on, but its not unlikely that I am wrong on this.
that would also explain the inferior quality of the waldorf osc in the down region, where it has no "pressure" and "depth" through a weaker downpitching.
it would be awesome if SC would build an oscillator with 2048 samples in lowest pitch (c0) and the other pitches are represented with fractions of this base picth : 1024 (c1) and so on, So you could use the high quality pitching of a wave editor to generate the octave pitch steps.....
and between the octaves another perfromance algo blend s through the picthings in a satisfieying way.
some sort of flexible and quality wave based oscillator.
just some sort of brainstorming from my side.

####

Posted: Sat Mar 29, 2008 12:34 pm
by sharc
Coming Soon ...
...to an SDK near you

Attachments
    Also works nice for realtime wavetable creation.
    ArrayInt64_screen.jpg (157.55 KiB) Viewed 2517 times

####

Posted: Sat Mar 29, 2008 1:11 pm
by Shroomz~>
Been trying out this array draw tool today. We've got it connected directly to the wavetable input of the Waldorf Osc, so it's now a wave draw Waldorf Osc. Seems a little unstable at times but it sounds completely insane.

####

Posted: Sat Mar 29, 2008 2:10 pm
by hifiboom
lol, great sharc and shroomz, looks very nice.
A different sound is always an additional value+++