SoloRack v1.0 is here

Modular Synth design and releases (Reaktor, SynthEdit, Tassman, etc.)
Post Reply New Topic
RELATED
PRODUCTS
SoloRack

Post

martin_l wrote:Maybe you could add a simple delay module without feedback, which always gives just one delayed signal. Then it's up to the user to mix the feedback in through the mixer, otherwise one gets a clean single delay.
Yea, thats also possible.
martin_l wrote:A different thing: I think I discovered a BUG....

When you use the SA12 output to the DAW and you delete the module, sometimes the buffers for these outputs are not zeroed out and the DAW keeps on sounding the last content of the buffer. This goes away when reinserting the module and connecting a cable to the corresponding output.
Thanks for the bug report :tu: It's probably an uncleared buffer as you said. I will check this out.
www.solostuff.net
Advice is heavy. So don’t send it like a mountain.

Post

Tip:

For users who want to have more oomph/bass out of the S310 sawtooth. Try mixing in the sin wave of the same oscillator. You can further change the character by adjusting the RA knob.

Ofcourse you can always add as many sub oscillators as you want.
www.solostuff.net
Advice is heavy. So don’t send it like a mountain.

Post

Hi SOLo,

I've been messing with the SoloRack a bit more, and found a couple of more things, which I find a bit odd:

Firstly, a minor thing, which does not matter a lot. Somehow, I was expecting that the FM CV input of the oscillators, when turned all the way up, passes the CV to the oscillators in the same way, as if connected to the (tune) CV. But it seems that it attenuates the signal a bit. That means, that if I want to use a sequencer and the CV from the Midi2CV, I need to use the unitary mixer, and cant use the FM CV as input for the sequencer signal.

The other things concern the Trigger Sequencer:
  • The Start/Pause button only works if nothing is connected to the "Reset In" jack. Is that intended?
  • If nothing is connected to "Reset In" the sequencer is off by default. Is there a way to change that to ON by default?
  • The behavior when getting a signal on the "Reset In" jack depends on whether it is driven by internal or external clock. In both cases I set the sequencer to 8x2, patch the output of Out 2 to an ADSR controlling a voice, while output of Out 4 is routed to a HP filter (to convert the gate to a trigger) and back into the "Reset In" jack.
    I have all switches of rows 3 and 4 initially on 0 and get, as expected the 8-beat trigger sequence of rows 1 and 2. Not I set the last switch of row 4 to 1. Here is what happens:
    • Internal clock: As expected, after step 7 the trigger sequencer jumps back and continues with step 1, giving a nice 7 step sequence.
    • External clock: Instead jumping back to step 1 after step 7, the sequencer silently goes through step 8 (as the reset step), giving rise to a 8-beat sequence, with a silent 8th beat. Also, the length of the first beat is now slightly longer than the other steps.
    If I set the third switch of row 4 to 1, I get:
    • Internal clock: As expected, after step 6 the trigger sequencer jumps back and continues with step 1, giving a nice 6 step sequence.
    • External clock: Instead jumping back to step 1 after step 6, the sequencer silently goes to step 8 (as the reset step), giving rise to a 7-beat sequence,skipping step 7 with a silent 8th beat. Again, the length of the first beat is now slightly longer than the other steps.
I would have expected the behaviour I find when using an internal clock also when clocking the sequencer externally, as this is the normal way to keep sync with the host. I copied an example, showing this behaviour onto my dropbox:
https://www.dropbox.com/s/p2qltu2hcrit7 ... o.srp?dl=0

Can you confirm my observations?

Cheers,
Martin

Post

SOLo, don't you need audio demos? I would think it is difficult to sell a synthesizer without audio demos. I could not find any in the first post nor on the website. :( I want to hear the filters!!!! *chant* FIL---TERS! ... FIL---TERS! ... FIL---TERS! :lol:

Post

@martin_l Thanks. Will reply to you shortly
Architeuthis wrote:SOLo, don't you need audio demos? I would think it is difficult to sell a synthesizer without audio demos. I could not find any in the first post nor on the website. :( I want to hear the filters!!!! *chant* FIL---TERS! ... FIL---TERS! ... FIL---TERS! :lol:
There are two very old demos on Youtube. I will make newer ones soon. In the mean time, you could try the demo version.
www.solostuff.net
Advice is heavy. So don’t send it like a mountain.

Post

martin_l wrote:When you use the SA12 output to the DAW and you delete the module, sometimes the buffers for these outputs are not zeroed out and the DAW keeps on sounding the last content of the buffer. This goes away when reinserting the module and connecting a cable to the corresponding output.

Otherwise everything seems very stable! :)
For some reason I couldn't reproduce this problem no matter what I did!!. With different DAWs too. However, when I browsed the code, you are right, the outputs from 3 and above are not zeroed. I now remember leaving that out for latter to find a faster method for zeroing. Eventually forgot it :dog:.

martin_l wrote:Firstly, a minor thing, which does not matter a lot. Somehow, I was expecting that the FM CV input of the oscillators, when turned all the way up, passes the CV to the oscillators in the same way, as if connected to the (tune) CV. But it seems that it attenuates the signal a bit. That means, that if I want to use a sequencer and the CV from the Midi2CV, I need to use the unitary mixer, and cant use the FM CV as input for the sequencer signal.
Yea, I limited the FM CV range and changed the response of the attenuator knob to a steeper curve at the last moment before a few days of the release because I realized that it was too fiddly to dial in vibrato.
martin_l wrote: The other things concern the Trigger Sequencer:
  • The Start/Pause button only works if nothing is connected to the "Reset In" jack. Is that intended?
  • If nothing is connected to "Reset In" the sequencer is off by default. Is there a way to change that to ON by default?
  • The behavior when getting a signal on the "Reset In" jack depends on whether it is driven by internal or external clock. In both cases I set the sequencer to 8x2, patch the output of Out 2 to an ADSR controlling a voice, while output of Out 4 is routed to a HP filter (to convert the gate to a trigger) and back into the "Reset In" jack.
    I have all switches of rows 3 and 4 initially on 0 and get, as expected the 8-beat trigger sequence of rows 1 and 2. Not I set the last switch of row 4 to 1. Here is what happens:
    • Internal clock: As expected, after step 7 the trigger sequencer jumps back and continues with step 1, giving a nice 7 step sequence.
    • External clock: Instead jumping back to step 1 after step 7, the sequencer silently goes through step 8 (as the reset step), giving rise to a 8-beat sequence, with a silent 8th beat. Also, the length of the first beat is now slightly longer than the other steps.
    If I set the third switch of row 4 to 1, I get:
    • Internal clock: As expected, after step 6 the trigger sequencer jumps back and continues with step 1, giving a nice 6 step sequence.
    • External clock: Instead jumping back to step 1 after step 6, the sequencer silently goes to step 8 (as the reset step), giving rise to a 7-beat sequence,skipping step 7 with a silent 8th beat. Again, the length of the first beat is now slightly longer than the other steps.
I would have expected the behaviour I find when using an internal clock also when clocking the sequencer externally, as this is the normal way to keep sync with the host. I copied an example, showing this behaviour onto my dropbox:
https://www.dropbox.com/s/p2qltu2hcrit7 ... o.srp?dl=0

Can you confirm my observations?

Cheers,
Martin
The "Reset In" function is really just like "Stop" of the transpose of your DAW. It's a confusing name, I agree. It's not meant to be used as a "Restart". So when you use it as such, you'll have to fiddle.

Now if I got you correctly, the reason the external clock scenario didn't work as expected is because the LFO (i.e clock) does not know about your Reset, it needs to be restarted. Not only that, the clock has to be delayed a bit for the Reset to go from high to low. Only then the clock edge can be felt by the sequencer.

So I connected the reset to the Restart of the LFO. Then I did a trick using the sin wave of the LFO instead of the square to delay the rising a bit. It's not accurate, but it's sounds reasonable. Here are the two presets, internal and external:
sequencer-demo.zip
I have to say that those simple analog style sequencers are not really meant to work for those arbitrary steps. But the advantage is that they lend them selves to a certain type of music. They stear the musician in a certain direction. There are more advanced sequencers out there. Check for example the Audio Damage Sequencer 1. These things can do much more, but have a steep learning curve off course. May be in the future a will do a bigger sequencer :)

By the way, why not try adding a third trigger sequencer just to control that "Reset In". make the length very tiny so you don't have to use an HPF.
You do not have the required permissions to view the files attached to this post.
www.solostuff.net
Advice is heavy. So don’t send it like a mountain.

Post

Hi SOLo,
S0lo wrote:
For some reason I couldn't reproduce this problem no matter what I did!!. With different DAWs too. However, when I browsed the code, you are right, the outputs from 3 and above are not zeroed. I now remember leaving that out for latter to find a faster method for zeroing. Eventually forgot it :dog:.
I am using Reaper 5.40 and I have the option "Pre-zero plugin output buffers" switched OFF (mainly for my own debugging purposes). Maybe your DAWs do that as well by default. In this case, you would not notice the behaviour.

I noticed another issue with the inputs and outputs: It seems that the signals from the inputs are always copied through to the corresponding outputs and mixed to the signal for that output. Are you adding the signal to the input, or replacing the input?
SOLo wrote: Yea, I limited the FM CV range and changed the response of the attenuator knob to a steeper curve at the last moment before a few days of the release because I realized that it was too fiddly to dial in vibrato.
You could use an exponential scale for the knob, still leading up to a ratio of 1 when the knob is fully turned.
SOLo wrote: The "Reset In" function is really just like "Stop" of the transpose of your DAW. It's a confusing name, I agree. It's not meant to be used as a "Restart". So when you use it as such, you'll have to fiddle.

Now if I got you correctly, the reason the external clock scenario didn't work as expected is because the LFO (i.e clock) does not know about your Reset, it needs to be restarted. Not only that, the clock has to be delayed a bit for the Reset to go from high to low. Only then the clock edge can be felt by the sequencer.

So I connected the reset to the Restart of the LFO. Then I did a trick using the sin wave of the LFO instead of the square to delay the rising a bit. It's not accurate, but it's sounds reasonable. Here are the two presets, internal and external:
sequencer-demo.zip
I have to say that those simple analog style sequencers are not really meant to work for those arbitrary steps. But the advantage is that they lend them selves to a certain type of music. They stear the musician in a certain direction. There are more advanced sequencers out there. Check for example the Audio Damage Sequencer 1. These things can do much more, but have a steep learning curve off course. May be in the future a will do a bigger sequencer :)

By the way, why not try adding a third trigger sequencer just to control that "Reset In". make the length very tiny so you don't have to use an HPF.
That is bad news. The "SIN" trick obviously does not work when clocking from the DAW tempo sync. I see now that your implementation of the RESET makes it impossible to behave in that way, as you would only restart the sequencer on the falling slope.

A reset, as I would have expected it would reset (and restart) the sequencer on a rising slow. I don't see a need for a reset as implemented now, as you always could use one LOGIC TOOL to "inverse gate" the clock signal.


Cheers,
Martin

Post

martin_l wrote:I noticed another issue with the inputs and outputs: It seems that the signals from the inputs are always copied through to the corresponding outputs and mixed to the signal for that output. Are you adding the signal to the input, or replacing the input?
Nothing as such here. Every thing seams to be working fine.
martin_l wrote: You could use an exponential scale for the knob, still leading up to a ratio of 1 when the knob is fully turned.
Thats what I've done. Not enough. still fiddly. need to lower the range. and a curvier curve than the usual exponential.
martin_l wrote:That is bad news. The "SIN" trick obviously does not work when clocking from the DAW tempo sync. I see now that your implementation of the RESET makes it impossible to behave in that way, as you would only restart the sequencer on the falling slope.

A reset, as I would have expected it would reset (and restart) the sequencer on a rising slow. I don't see a need for a reset as implemented now, as you always could use one LOGIC TOOL to "inverse gate" the clock signal.
The idea is to control SoloRack sequencing easily using DAW transport by only one CV patch point. if you do it your way, you can't do that with one patch point. You have to stop the clock, which may be an internal clock (not from DAW), which you have to stop/block when the DAW stops playing, which is not simple patching to every one and may involve more modules.

PLUS, you may have compatibility problems when connecting to Doepfer(TM) modules.

Cheers,
Martin[/quote]
www.solostuff.net
Advice is heavy. So don’t send it like a mountain.

Post

S0lo wrote:
martin_l wrote:I noticed another issue with the inputs and outputs: It seems that the signals from the inputs are always copied through to the corresponding outputs and mixed to the signal for that output. Are you adding the signal to the input, or replacing the input?
Nothing as such here. Every thing seams to be working fine.
OK. You are right. Sorry about that. This is a reaper thing. I just did some more testing, and reaper does the pass through. It works fine if, in reaper, I create extra channels and use these for input to SoloRack.

In fact, it works fine with full compatibility with Softube Modular. I can use Softube's 10 outs and connect them straight to the 10 ins of SoloRack, and the tuning, etc. works straight out of the box.
SOLo wrote:
martin_l wrote: You could use an exponential scale for the knob, still leading up to a ratio of 1 when the knob is fully turned.
Thats what I've done. Not enough. still fiddly. need to lower the range. and a curvier curve than the usual exponential.
You could use something like:

(Exp[a x]-1) / (Exp[a] -1)

and play with values for a. You would be guaranteed that you cover the range from 0 to 1 and you can make it as sensitive as you like for small values of x.


SOLo wrote: The idea is to control SoloRack sequencing easily using DAW transport by only one CV patch point. if you do it your way, you can't do that with one patch point. You have to stop the clock, which may be an internal clock (not from DAW), which you have to stop/block when the DAW stops playing, which is not simple patching to every one and may involve more modules.

PLUS, you may have compatibility problems when connecting to Doepfer(TM) modules.
Well, it would involve exactly one additional LOGIC tools module. I don't see any compatibility problems. Have a look, for instance, at the Doepfer A-155, which has a reset input which resets the sequencer to step one, once triggered, where a trigger usually is a raising flank.

Again, I am not suggesting to change the behaviour of your existing modules, but rather make alternative versions available.

Once the API is ready, I would be more than happy to contribute some modules.



Cheers,
Martin

Post

martin_l wrote:In fact, it works fine with full compatibility with Softube Modular. I can use Softube's 10 outs and connect them straight to the 10 ins of SoloRack, and the tuning, etc. works straight out of the box.
Good to know that :). Thanks.
martin_l wrote: You could use something like:

(Exp[a x]-1) / (Exp[a] -1)
Thanks, yea you can do that but it will eat the cpu quickly as you add more VCOs. There are better ways.
martin_l wrote:and play with values for a. You would be guaranteed that you cover the range from 0 to 1 and you can make it as sensitive as you like for small values of x.
I used to think this way when I was first coding it. "Lets give the musician the highest ranges possible on everything", bla bla. But then I saw the sound designers presets, they never ever used the full range in like 220+ presets. most of the time the knob was less than half way through, and only a few preset had it more than half, and there were extreme presets.

This is clear evidence to me that this 10 oct high range (for FM) is not practical, even for a modular. The knob resolution was wasted most of the time. It's better to use that resolution in the common range of use. Mind you that it's actually a 20 oct if you patch an LFO in (+ and -). Besides Eurorack ranges it self doesn't typically go beyond 5 oct (10 oct for + and -). Thats because the voltages there are between -5V and +5V. Even lower for LFOs. Check here http://www.doepfer.de/a100_man/a100t_e.htm

You can only go so much with steep curves. These curves only rearrange the resolution, making it more fine on one half of the knob but less fine on the other half. But I'm sure you know that.

martin_l wrote:Well, it would involve exactly one additional LOGIC tools module.
Which is not a very good requirement for such a common task as syncing with DAW transport to say to every musician.

And even with the logic tool you would still need to sustain a gate of that RESET (or store it) to know if the DAW is playing or has stopped.
martin_l wrote:I don't see any compatibility problems. Have a look, for instance, at the Doepfer A-155, which has a reset input which resets the sequencer to step one, once triggered, where a trigger usually is a raising flank.
Infact there is a compatibility issue with that very module (A-155). Check the manual page 7. It says:

so, for instance, Reset will always be active (keeping the sequence at step one) as long as the reset signal is "high".

martin_l wrote:Again, I am not suggesting to change the behaviour of your existing modules, but rather make alternative versions available.

Once the API is ready, I would be more than happy to contribute some modules.
Very possible :). But obviously my priority now is to create more different and useful modules. There is still no reverb there. Comb filter, may be FM/PM VCO.
www.solostuff.net
Advice is heavy. So don’t send it like a mountain.

Post

S0lo wrote:
martin_l wrote: You could use something like:

(Exp[a x]-1) / (Exp[a] -1)
Thanks, yea you can do that but it will eat the cpu quickly as you add more VCOs. There are better ways.
Yes, of course. I did not mean to implement it with real exponentials, but with accelerated versions.
On the other hand, it should not add too much, as the recalculations should only occur whenever the knob is turned.
SOLo wrote: I used to think this way when I was first coding it. "Lets give the musician the highest ranges possible on everything", bla bla. But then I saw the sound designers presets, they never ever used the full range in like 220+ presets. most of the time the knob was less than half way through, and only a few preset had it more than half, and there were extreme presets.

This is clear evidence to me that this 10 oct high range (for FM) is not practical, even for a modular. The knob resolution was wasted most of the time. It's better to use that resolution in the common range of use. Mind you that it's actually a 20 oct if you patch an LFO in (+ and -). Besides Eurorack ranges it self doesn't typically go beyond 5 oct (10 oct for + and -). Thats because the voltages there are between -5V and +5V. Even lower for LFOs. Check here http://www.doepfer.de/a100_man/a100t_e.htm

You can only go so much with steep curves. These curves only rearrange the resolution, making it more fine on one half of the knob but less fine on the other half. But I'm sure you know that.
Sure. As I was saying, it's not crucial, as one can always use the normal mixer patched before the usual tune CV to easily add a note value, an possibly several sequencer outputs.
SOLo wrote:
martin_l wrote:Well, it would involve exactly one additional LOGIC tools module.
Which is not a very good requirement for such a common task as syncing with DAW transport to say to every musician.

And even with the logic tool you would still need to sustain a gate of that RESET (or store it) to know if the DAW is playing or has stopped.
Does not the clock of the DAW sync module automatically stop when the transport of the DAW is stopped?
I don't quite get your point yet. For instance, the Softube modular seems to behave just fine when the DAW is stopped or paused, without such reset jack.

By the way, I do like the feature that you do provide an alternitve DAW synced clock source which keeps running when the DAW is stopped. That is a feature I miss in Softube.
SOLo wrote:
martin_l wrote:I don't see any compatibility problems. Have a look, for instance, at the Doepfer A-155, which has a reset input which resets the sequencer to step one, once triggered, where a trigger usually is a raising flank.
Infact there is a compatibility issue with that very module (A-155). Check the manual page 7. It says:

so, for instance, Reset will always be active (keeping the sequence at step one) as long as the reset signal is "high".
Not really. There is an important difference between the behaviour described in the A-155 manual (I don't have the hardware, so I can't test), and the behaviour of your sequencer.

Imagine You send a trigger impulse simultaneously with an clock impulse.

The A-155 jumps back to step one which it plays (!), holds that as long as the reset line is high, but if the line goes low BEFORE the next clock impulse, it continues to play without missing a step. If you do keep the line high, you can keep it on step 1 as long as you want, but you can reset the sequencer to step 1 without a pause.

In your case, if I send a trigger impulse together with a clock impulse (I assume external clocking here), the sequencer goes to the last step, which it does not play (at least the trigger sequencer), and even if the reset line goes low before the next clock pulse, it has generated a pause while being on the (silent) last step.

I don't really mind whether you jump to the first or the last step on a reset pulse, and it is perfectly fine to hold that step while the reset line is high. But I think that it should play that step instead of skipping it. It seems to do that when using the internal clock.

Of course, there is the problem that the trigger pulse will be one sample late. I am not sure how Softube are getting around that. But feeding back a trigger pulse (even through another module) into the reset jack does work exactly, as I would expect. I will have a look whether I can spot any delay of the pulse when recording the signals in the DAW. I am quite curious how they get around that.

SOLo wrote: Very possible :). But obviously my priority now is to create more different and useful modules. There is still no reverb there. Comb filter, may be FM/PM VCO.
Comb filter and PM VCO sound very interesting. Also a reverb, which could be patched anywhere in the structure sounds good. :)

Cheers,
Martin

Post

martin_l wrote:On the other hand, it should not add too much, as the recalculations should only occur whenever the knob is turned.
I agree, until some one does continuous automation.
martin_l wrote:Does not the clock of the DAW sync module automatically stop when the transport of the DAW is stopped?
I was obviously talking about an internal clock (not from DAW), as I have said before.
martin_l wrote: Not really. There is an important difference between the behaviour described in the A-155 manual (I don't have the hardware, so I can't test), and the behaviour of your sequencer.

Imagine You send a trigger impulse simultaneously with an clock impulse.

The A-155 jumps back to step one which it plays (!), holds that as long as the reset line is high, but if the line goes low BEFORE the next clock impulse, it continues to play without missing a step. If you do keep the line high, you can keep it on step 1 as long as you want, but you can reset the sequencer to step 1 without a pause.

In your case, if I send a trigger impulse together with a clock impulse (I assume external clocking here), the sequencer goes to the last step, which it does not play (at least the trigger sequencer), and even if the reset line goes low before the next clock pulse, it has generated a pause while being on the (silent) last step.

I don't really mind whether you jump to the first or the last step on a reset pulse, and it is perfectly fine to hold that step while the reset line is high. But I think that it should play that step instead of skipping it. It seems to do that when using the internal clock.

Of course, there is the problem that the trigger pulse will be one sample late. I am not sure how Softube are getting around that. But feeding back a trigger pulse (even through another module) into the reset jack does work exactly, as I would expect. I will have a look whether I can spot any delay of the pulse when recording the signals in the DAW. I am quite curious how they get around that.
Here is a patch that does what you want it to do:
sequencer-demo.v4.zip
Arbitrary number of steps. LFO clocked. no sin wave. (The ADSR on the far right is just for manual reset)

What you expect it to do is not necessarily what all musicians expect it to do.

What you expect it to do is not necessarily what I intended it to do.

Yet, I'm actually glad that your venturing into all these details, who knows, I might find problems. I actually just discovered that the mix out of the SB12 doesn't work at all!!, the code was mistakenly commented. Your making me revise things :). BTW, I do have the A-155, I could test it some time latter.
You do not have the required permissions to view the files attached to this post.
Last edited by S0lo on Thu May 04, 2017 10:06 pm, edited 2 times in total.
www.solostuff.net
Advice is heavy. So don’t send it like a mountain.

Post

Infact, you can do it with just an inverter:
sequencer-demo.v5.zip
You do not have the required permissions to view the files attached to this post.
www.solostuff.net
Advice is heavy. So don’t send it like a mountain.

Post

New demo. only SoloRack, no further processing.

https://soundcloud.com/s0lo/solorack-demo-1
www.solostuff.net
Advice is heavy. So don’t send it like a mountain.

Post

Just to avoid confusion that might arise here:

NONE of the currently available SoloStuff modules are emulations of other hardware manufacturers modules. Please DO NOT assume that these are emulations.

If I do emulation in future, it will be mentioned in the module details.
www.solostuff.net
Advice is heavy. So don’t send it like a mountain.

Post Reply

Return to “Modular Synthesis”