The KRYSTAL is coming…

For the KRYSTAL my vision is to build an oscillator, which is capable of capturing the different phases of an object, which is being shattered into pieces.

I imagine the initial chaotic sound, when all the pieces are very close to each other to be chaotic and that the collision of the objects will disrupt the natural decay of each other, to be very suitable for percussive sounds.

As we move along the timeline these interactions will be less, so the already shattered pieces will have more time to decay.

I am assuming an infinite room for this, so there will not be a sudden stop phase, where all shards end up on the floor with a thumping, non harmonic sound.

Due to the processor limitations of the NTS-1, which I own, I had to reduce the number of fractured pieces to 6.

But I am emulating more, by changing the size of the pieces….

Nevertheless, I hope, if you use this sound on a polyphonic synth (which I cannot afford at the moment and why I am asking for a donation), then you will have the illusion of much more.

When ever a crystal slot is free, it is re-triggered with a random initial volume and a random pitch. (Where the random pitch is taken out of a table with currently 8 slots with different musical intervals ranging from a few cents off to +2 octaves)

I am especially interested in comments concerning:

  • which kind of intervals should be available for the crystals
  • is an envelope needed to control the shape, which is the proximity of the crystals
  • what kind of envelope for the shape would be needed? Would decay and sustain be sufficient?
  • shift shape controls the timbre of the crystals … should I add discrete steps here and if so, which ones?
  • what other controls would you like to have?


  1. Cool stuff! I love seeing all the new ideas enabled by this expandable ‘logue platform! I’d like to try out your Krystal beta on my NTS-1 and MinilogueXD, but there aren’t any download links exposed at the moment.

    • I have added downloads for the alpha versions at the bottom of the KRYSTAL page. I am especially interested on how it sounds on a poly, like the minilogue.

  2. Sebastian Cordoves

    Hi Cain, I tried Kristal and I liked a lot.
    You are curious about how it sounds polyphonically, well I did a little demo/jam with it:
    At the beginning is just Kristal without FXs, I used some voice spreading so you can hear the different voices better. Then I added some delay just for fun. And finally I added the 2 analog VCOs, Krystal is routed post filter so I used the filter to shape the analog VCOs with a slow attack/decay.

    I want to make some suggestions, as you can hear in the demo, when I play chords the sound becomes muddy, so I think it will be great to have a High Pass Filter in the oscillator itself. I tried the Low Cut in the Prologue but it becomes useless when I try to combine with the VCOs (as in the las part of the demo).
    Also having an envelope to control the amplitude of the oscillator will be great. For example in the las part of the demo I’m using the filter envelope to add a slow attack and decay to the VCOs to make a kind of pad sound and Krystal sounds all the time only shaped by the amp envelope, it will be great make Krystal fade out (with it’s own decay) as the pad fade in.

    It0s a great sounding oscillator. Thank you for doing it!!!

    • Hi Sebastian,
      thank you very much for your feedback and a very special thank you for the sound-file. Your involvement is very motivating and exactly what I am looking for.

      I am running on the limit (at least for the NUTEKT processor) with the 6 crystals. Currently I am looking into optimizing the code, wherever possible.

      I have a simple AR envelope in place now, to control the state of the objects spreading. I am running that outside of the ‘hot’ calculation loop, so I can consider adding a second AR envelope to control the overall amplitude.

      A very good idea is the suggested high-pass filter. I have to look into how ‘expensive’ a simple non-resonant high pass filter, with variable amount is.

      I will update the download sometime this weekend with the new version.


  3. nice one! When i get my prologue 16 back from repairs i’ll try it out. Looking forward to it!
    best regards
    / Jimmy

  4. Hi.
    Really liked the Krystal oscillator, but tried the beta version now on the prologue and the shape knob odesnt affect the sound any more, which is a shame since I can’t find the older version to download, and that feature was really useable.
    Also the menu choices are somewhat counter intuitive with 100 being the starting point but it’s default to 1. The End parameter doesn’t seem to affect the sound much (or at all, but I only played around with this for a little bit) and the time parameter seems like it could be interesting but would be nice if it made more dramatic difference to the sound.
    Don’t mean to complain, just want to give feedback since this really is an awesome idea that I’d gladly pay for once it’s finished.

    • Hey Fayzo,
      no offence taken. I am very happy to have your response. This is why I am putting it into alpha; to provoke some valuable feedback.
      If you could elaborate on the desired behavior of the possible controls a bit more, that would be very helpful for me. I (in my little world) think that an envelope would be really nice (the currently implemented is not satisfactory at all, I realize that). How would you imagine the shape to interact with the envelope, if it was a better one? Influence the speed? Override the envelope state? I am looking for ideas here on how you (and that is addressed to anyone, who reads this, too) imagine to shape the sound.


      • I’ll think about it..
        At the top of my mind I think it would be cool if there could be one envelope to control the speed between pieces sounding. But there could also be an envelope controlling the amplitude of each of the pieces playing so that you could sculpt it from percussive to more string, or pad like. But this i just an idea in my head, don’t really know how well it would transfer.
        But I think that the effect that the shape control had on the sound in the alpha version was quite cool and made it more versitile and able to stand on it’s own as an oscillator. Either it could control the overall envelope speed somehow, or the density och the tonal cluster. With the shift-shape affecting overtones and harmonics it would give quite good direct access to sculpt the sound.

  5. Would be cool if shape could control the “density” of the Crystal’s, so that one can sweep from chaotic to clear, and go back and forth with the lfo.
    Could be interesting if the the shattered pieces could have an attack setting, so that it would be sort of a bowed metal effect.
    Really cool idea and sound. Great work

  6. Sebastian Cordoves

    Hi Cain:
    Krystal is sounding great, the last version sounds much better, more defined…

    The HP is great! Thank you.

    I think the envelope is hard to control, correctme if I’m wrong but you used a exponential envelope wich should be fine, but in this case behaves too exponentional, all the action happens in the beginning of the envelope and then nothing… I have to experiment a bit more with it, but I think a more lineal envelope will work better, or may be just a longer time…

    • Hi Sebastian,

      yes, it is exponential… and yes, I am not happy with it right now… It is … too simple and does not catch the event I am aiming for. There is a reason for an alpha version 😀

      Cheers, Pete

  7. Hey!
    Really like the new version, good things implemented.
    But a suggestion, to keep in line with original aesthetics, krystal attack should probably go the other way right?
    Now it starts more of as organ/drone than chrystals, and I assume you want the krystal part to be the most immediate?

  8. Thank you, good idea… working on it. Looks like the release will be this week. 🙂

  9. Hey Cain! WOW!! This is the type of oscillator I LOVE – exploring new sonic spaces! I’ve paired it with Albedo; a grain reverb matches well with the timing of the six voices. And Drift, a random panner. Very memorizing 🙂

    I hang an H9 eventide off my P16. This can twinkle like their Crystal algorithm. Very nice!

    I’m a knobs and numbers guy. I like to know exactly what I’m dialing with given a time variable. In my own work with oscillators, I try to provide timing dimensions. Then we can synchronize it with the analog hardware timing. I’ve played with the controls presented here, and I only get a sense of what I’m doing in an abstract way. The timing seems to be log? Do you have a picture of what’s going on? I would like to keep a cheatsheet for every oscillator I have (almost all of them by now), to quickly refer to so I don’t have to relearn the control set.

    My own stuff needs a ‘secret decoder ring’, but I’m convinced it’s worth it to exploit the power of this platform.

    • Hi John,
      thank you for your warm words and I am happy you enjoy it.

      I interpret the shape parameter as a quarter sine wave, if that is the answer you are searching for.

      s_state.dist = osc_sinf(valf * .25f)+0.000001f;

      I experimented with some log functions, but this sounded most natural to me.

      This distance is then used to window the random numbers for
      * the event of a collision (just restart one of the chrystals with a higher probability in the initial crash time or a lower probability in the later crash time)
      * the decay time of the shards

      Is this of help?

Leave a Comment

Your email address will not be published. Required fields are marked *