Jump to content

Wavetable sequencing and the waveform parameter


jaytee

Recommended Posts

I was hoping that someone a little more well-versed in wavetable sequencing could help me out. I'm pretty comfortable with 90% of the features in my sammichSID, and it's my go-to synth when it comes to complex sound design (the mod matrix, the crazy envelopes, six oscillators and two filters to play with; the only thing I own that's more powerful is my K2000, and it's not nearly as fun) but I've stayed away from the wavetable sequencer until now.

 

However, I find myself wanting to roll my own drum sounds (and perhaps experiment with the other sound design possibilities that the WTs open up) and that is gonna require me to learn. For the most part, it actually all feels pretty straightforward. I understand the concept, I've played with parameter sequencing on other synths before, and I'm used to the limited interface of the sammichSID by now. 

 

The one thing I can't wrap my head around, however, is the waveform parameter. In the parameter chart here, the "description" column shows the parameter as a 7-bit number (0-127), with each bit controlling a different flag. However, the "range" column claims that this parameter only goes from 0-15 (4-bit number). Then there's the "reset" column, which in other parameters seems to be the "off" or "neutral" position (typically the highest, lowest or median value within the possible range), but here is mysteriously listed as "4." Can anyone elaborate on how this parameter works?

 

FWIW, I tried to figure it out based on both trial and error as well as following the v1 WT tutorial. Trial and error got some interesting and reproducible results, but I still couldn't figure out what values corresponded to which waveforms. Following the tutorial (just the first section on creating a kick drum), I got some truly strange and inconsistent results, with each consecutive keypress slowly morphing from a tonal sound to noise before going silent; sometimes I could get this behavior to reset, while other times the sammichSID would just stay silent until switching patches. Really weird stuff.

 

the only other thing I'm having a little trouble with is the relative values vs the absolute values. Do they function basically the same, and are just both present to accommodate different parameters that make more sense with one than the other? Or is there something more complex happening that I don't get? I only realized that both were present about halfway through my experimentation, so it's fully possible that some of my difficulties were due to setting the wrong type of value (ie setting +04 instead 04). Does that sound right?

 

thanks for the help.

Link to comment
Share on other sites

Thanks for the detailed explanation, it gave me a clear picture about the missing/inconsistent information!

The waveform parameter range was wrongly documented, it goes from 0-127 (now fixed in SVN repository).
Because it's a 7-bit value; each bit represents a function:

     |     |   Bit 0: Triangle                            |             |
     |     |   Bit 1: Saw                                 |             |
     |     |   Bit 2: Pulse                               |             |
     |     |   Bit 3: Noise (disables all other waveforms)|             |
     |     |   Bit 4: Disable Voice                       |             |
     |     |   Bit 5: Sync                                |             |
     |     |   Bit 6: Ringmodulator                       |             |

The resulting decimal value can be calculated with a binary->decimal conversion, which is obvious for programmers (we know the numbers by heart, especially the hexadecimal representation), but they are not obvious for newbies.
If you want to enter these kind of "switches" efficiently, I recommend to learn how to handle hexadecimal numbers.
-> google for "binary hexadecimal", and try to find the best explanation.

The bitwise handling is required, since the SID allows to activate multiple waveforms at once + some special audio paths (sync and ringmodulation). They are all controlled from a single parameter to allow concurrent changes, which results into the magic 8bit sounds (try to do the same with a common synthesizer, and you will notice that multiple CCs or SysEx command might be required, resulting into a delay between each change command -> you won't be able to switch between very different waveform shapes)

 

The reason why you probably think that the waveform parameter behaves randomly: each parameter with such a bitwise structure shouldn't be handled with relative values (+/- x). Use absolute values instead (without +/-) to set the bits (= switches) directly independent from the previous value.

Best Regards, Thorsten.

Link to comment
Share on other sites

  • 2 weeks later...

Ok, that the documentation was wrong clears a lot of stuff up. Logically, I knew it had to be a 7-bit parameter, but the parameter list was throwing me for a loop.

 

I don't know the digital conversions by heart, but I'm familiar enough with the process. I wrote a patching interface in Lemur for my MKS-7, which handles several sysex parameters in the same way.

 

I still can't figure out what I was doing wrong with the tutorial though. Even if the values I was using were incorrect (ie relative instead of absolute), I don't know why the sound would have been inconsistent upon each keypress. I'll have to go back and try it again to see if I can replicate my results. If so, I'll post a recording and take note of my settings.

Edited by jaytee
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...