Wavetables.....Again..... How do I playback only 1 cycle of a wavetable?


#4

you need to manipulate pos, which runs as a fraction of the table at 0..64
so as its 0 to 64 and you have 128 cycles in the whole table, 0.5 = 1 wave.
so the start is wave number * 0.5 and you need to run for 0.5 before go back to the beginning.
if you have a phasor running 0 to 1 (check its not bipolar!) then you need to multiple that by 0.5 to to run.

e.g.
wave 32, starts at 16, and runs to 16.5

of course if your waves don't EXACTLY fit then you will need to adjust the maths left to the reader :smile:
and also if its not 128 waves, they you have to do NWaves /64 rather than use 0.5

of course multiplying by 0.5 is the same as binary shift right (>>1) which is more efficient.


#5

The table I have made is a bit bigger than the one in the example, but if we think in percentage that shouldnt matter. The same method could be used for all wavetables with 128 waves, right? Anyway, this wavetable is 262144 samples long and 128 waves. Fits pefectly in a table, in sample precision, so that part I am pretty sure about.

This part I got. It is just how to make sure it only plays back the selected wave I am having a bit of trouble with.

Do I need to use a specific phasor fot it to run from 0 to 1?

Here is an example. In this example it stille just plays the whole table:
Patch: Wavetable Serum II.axp (5.0 KB)

Sample(updated link):
https://mega.nz/#!mVpg2SRB!1iAD8vk_bFYMEjXEJEkkMN-FQYoTPzuTX-171RTRbm4


#6

sorry, was kind of mixing up table/read and table/play... and gave you a solution in between i.e. half of one, and half the other :smile: (its a problem if I'm not actually doing the patch... i don't check the objects)

ok, table/play, you appear to need to start it every time you want to set the pos back to the beginning.
so feed dial into pos, and and lfo/square running at same pitch as play (and in sync with table/play!).
this has a limitation of a max of k-rate i.e. 3000hz e.g. F#9

if you want more then you can use table/read, using approach i said but it uses 0..1, so dial needs scalling down (W / 64) * (1/128) i.e. >> (6+7) = >> 14 and then phasor >> 7 or simply pos = (W >> 6 ) + phasor ) >> 7, same thing really :smile:

sorry can't test, as you sample says its encrypted on mega.nz and I don't have time to start digging out a sample with 128 cycles etc.


#7

Have to read your post a few times I think.

Sorry bout the encryption. Here is a non encrypted version:

https://mega.nz/#!mVpg2SRB!1iAD8vk_bFYMEjXEJEkkMN-FQYoTPzuTX-171RTRbm4


#8

hmm, I thought this would work... (but doesnt)

theses a couple of things I'm not sure about in this... what Im really not 'happy' (i.e. might be problem) about is these parameters on square/play pitch... Im concerned that the pitch being used internally is not actually the same pitch I'm feeding in. I adjusted so they read the same, but I'm not convinced.
(if the play back pitch is not identical to the lo pitch then of course it wont reset the wave at the correct time)

perhaps I'm misunderstand what play pitch is supposed to do...

Im quite tempted to use table/read instead, perhaps a bit less magic going on :smile:

@johannes whats your thoughts... have i missed something ?
its the relationship between the LFO pitch , and so it retrig the wave start and the play pitch, which should run thru the samples at the same rate i.e. so it gets one cycles work of samples bebefore being reset by the lfo


#9

ok this is the table read version, which I think works ...

its pretty straight forward... the dial is used to select the offset, and the phasor is scaled to only 1/128 of the table.

but its hard to say, as when I look at your wavetable file in audacity, it doesnt look right... are you sure its correct?
(e.g most of the file is a sawtooth, and the early part of the file doesnt really look like a single cycle at all)
where did you get it/how did you convert it? ....

personally, I think you need a much simple file to test with... so you can prove its actually correct when you play it back

again its important to point out, that the single cycles must be exactly sized, and obviously appropriate zero crossing points to avoid clicking.


#10

table/play pitch is for "one shot" pitched playback of a sample. Not appropriate. Can't use a yellow start input to sync it to pitch, as this is only k-rate.

If you want to play one cycle wave of a series of, say, 64 waves loaded into one table, use:

(untested)
dial_1 selects the index of the wave being played.
This does not work well with table/read interp
That object assumes cyclic continuity, which is not the case unless the wave series is more or less continuous too.


#11

Think it works, I can "scroll" thru (but only 10 waves then stays sawtooth?)


#12

going for something like the Wavestation?
seems i need to have some more "files" - looking for those wavetables
https://www.muffwiggler.com/forum/viewtopic.php?t=33918&sid=9bf81a0c42b7005bbf639005669235e8


#13

Hey guys.

SOryy I dont have time to answer all now since I am on my way to work..... BUT yes the wavetable I made is just a test and ONLY the first 8 or 9 waves are used. Dont remember exactly now. I made the whole table in Serum and exported it as wav . But you can count the waves or else i will check it in serum when I am home again and post if it is 8 or nine waves to start with.. the rest is just the same saw repeated for the last 119 steps, I think it is. Sorry should have mentioned it. I will make a new one for you guys later and put it here. But I did this one so I would know for sure if the indexing of the table was right. I just dont remember which wavenumber the saw starts right now...

Just a thought:
How can you control both position AND pitch from the same input? I dont get that? That is kind of why I use the table play pitch, cause it gives me control over both pitch AND position AND start point. I thought it was not possible to control position from a "red" input. Then I think I need to change all my patches again, cause I used play pitch for them all.

Anyway, will test it when I get back home in the afternoon.... Looking forward for this :smile: Being compatible with Serum wavetables would really expand Axolotis sound capabilities a lot :smile: I all ready got some pretty decent one cycle wavetables that works well. Having multi waveform wavetables would be really great.


#14

I'd love some good wavetables, or some info on a tool that allows you to create them (easily) ... I've tried with audacity but it's a very slow and error proned process

What I'd like is:

  • Mac OS X
  • quick and simple
  • import wavs , and join into one table . re sampling as required ( eg take a 256 sample wav, and convert it to 128 ... In case wav are of different formats)
  • export with options, eg SR, wave cycle size

There must be something, but last time I looked ( when playing with ppg wavegenerator) there were virtually no choices. Waveterm was the best bet which is an antique windows app :))


#15

Here you go - found this a few weeks ago - https://sites.google.com/site/glowshrimpsoftware/

it uses an oscillator stack and you can create single cycle or evolving waves (i think). I doesn't really have all of your needs and wants @thetechnobear , but might be a nice thing to play with.

I haven't used it for a project but did play around with it and it seems very good.

At the moment im using sq80 rom dumps, but that is due to personal preference and direction. I've also reverse engineered the E-Phonic Drumatic 4 plugin and ripped the wavs from there..mostly because i wanted to know how it works.


#16

I Also tried audio term but for blofeld synth. And there is another free app for creating wavetsbles for blofeld. But both are pc and i am also looking for Mac version.

I know serum is not free vst, but it is soo easy to create files from scratch. You Can also drag n drop wavefiles, create one cycle files etc. Out of all The wavetable editors i have tried serum is the best


#17

For windows users (sorry @thetechnobear) there is a free tool created for the xsrdo modular VST (a great free modular plugin, for windows 32bit) called XSRDO Wavetable Maker that seems to do much more than I can understand, but I managed to get out a few wavetables out of it. I'm sure it can be useful for some
http://xsrdo.blogspot.co.uk/
http://xsrdo.net16.net/


#18

@thetechnobear

Check This video of serum wavetables.

http://youtu.be/MzJ8qocQreM

Maybe try The demo? 👍😄


#19

Yeah, whilst free is good... I don't mind paying for something that makes the process easy :smile:

currently I totally avoid the process and so don't use the PPG vsts I have as its all just too much hassle, and i don't have the time/inclination.

Thanks @jaffasplaffa I'll have a look at Serum, perhaps thats the way to go.

(I guess I should also dig out PPG Wavegenerator and Wavemapper again, and see if they perhaps can do something for Axoloti)


#20

hmm serum looks good... when you export, how many samples is it per cycle? (cant save in the demo to check)
is this changeable?

also anyone know of a good waveform editor? (apart from audacity :smile: )
just tried DSP-quattro which is quite nice, BUT I cannot see to find a way for it to resample using sample sizes.
(e.g. I have a waveform for 600 samples, and I want to resample it to 512)
I think I can get it to do it by calculating a new samples rate, but would be nice to just type in new sample size :smile:


#21

The exported .wav is 32 bit float 44.1 khz..... and it is 2048 samples long per cycle.

When I convert it to 16 bit 48khz it becomes 2230 samples long per cycle....

a 128 wavetable is 262144 samples long(32b, 44.1)....

Soooo... They actually fit in Axoloti table sample size without any resizing... But problem is they are 44.1 khz.... I am not sure what is most important sampe size or sample rate? Maybe you know this @thetechnobear ?

I ONLY use Audacity for stretching the samples AND for converting to raw files. All processing/editing I do in Sound Forge Mac version.

Stretching in Audacity:
Use the effect called"change speed". You can change the speed of the file with sample precision. You just put the sample length that you want the sample to be and process it. EASY :wink:

You can do that easily in Audacity with the "change speed" plug in :wink:

Ps... When I am 100% sure everything works in the right way, I will post a full tutorial on how to do the whole process chain, so everyone can make their own sounds for that specifik patch..... I havent tried the version that was posted here yet , cause have been working all day and and today my kids come too... Will check tonight when they are put to bed...


#22

Convert only the sample type to 16 bit, leave the samplerate untouched! Maintaining the same number of samples is important.


#23

Yeah you mentioned that before.. Was wondering what the reason for that is? Axoloti is 16b 48khz, right? The wavetables I made in Serum I sample rate converted to 16 48000 and stretched it to fit table/alloc...... Isnt it better that BOTH sample rate and sample length are the right ones?