Login / Register  0 items | $0.00 NewWhat is KVR? Submit News Advertise

VCV Rack

martin_l
KVRian
 
933 posts since 27 Jun, 2009, from UK

Postby martin_l; Wed Sep 20, 2017 1:56 pm Re: VCV Rack

vortico wrote:Image It's right there on the toolbar.

No VST parameters, for the first version of VCV Bridge at least.


Sorry, if I was not clear. I know that I can run the VCVrack at higher rate.
What I meant is that it would be useful in the future VST bridge if it was possible to run Rack at a higher rate than the output buffer expects.

On the other hand, one can always run the whole DAW at higher rate (if the CPU allows...)
rafzael
KVRer
 
7 posts since 18 Apr, 2013, from belgium

Postby rafzael; Wed Sep 20, 2017 2:39 pm Re: VCV Rack

Project and plugins build, I reinstall msys2, follow the vcv notes, copy lib and .h files of samplerate library into the lib and include folders into dep (because make rack gives me "cannot find samplerate.h"), and it finnally works. thanks a lot, I can began the funny parts...
vortico
KVRist
 
66 posts since 19 Jul, 2008

Postby vortico; Wed Sep 20, 2017 4:10 pm Re: VCV Rack

martin_l wrote:
Sorry, if I was not clear. I know that I can run the VCVrack at higher rate.
What I meant is that it would be useful in the future VST bridge if it was possible to run Rack at a higher rate than the output buffer expects.

On the other hand, one can always run the whole DAW at higher rate (if the CPU allows...)


Yes, that's what that toolbar button does. The device sample rate is set on the Audio Interface, and both that and Bridge will convert to/from the device/DAW sample rate if different.
Last edited by vortico on Wed Sep 20, 2017 4:14 pm, edited 1 time in total.
vortico
KVRist
 
66 posts since 19 Jul, 2008

Postby vortico; Wed Sep 20, 2017 4:12 pm Re: VCV Rack

rafzael wrote:Project and plugins build, I reinstall msys2, follow the vcv notes, copy lib and .h files of samplerate library into the lib and include folders into dep (because make rack gives me "cannot find samplerate.h"), and it finnally works. thanks a lot, I can began the funny parts...

That likely means libsamplerate wasn't built correctly. I'd suggest deleting the samplerate directory and rerunning `make`. If the headers don't get copied, it's probably not building the library, so you should solve that problem first.
martin_l
KVRian
 
933 posts since 27 Jun, 2009, from UK

Postby martin_l; Wed Sep 20, 2017 10:40 pm Re: VCV Rack

vortico wrote:
martin_l wrote:
Sorry, if I was not clear. I know that I can run the VCVrack at higher rate.
What I meant is that it would be useful in the future VST bridge if it was possible to run Rack at a higher rate than the output buffer expects.

On the other hand, one can always run the whole DAW at higher rate (if the CPU allows...)


Yes, that's what that toolbar button does. The device sample rate is set on the Audio Interface, and both that and Bridge will convert to/from the device/DAW sample rate if different.


Ah, very good! Sorry, that was not clear to me. I guess many great features of the software will only come up slowly and when at some point a manual emerges.

It's really a great synth! Also the API, even if not yet finialized, looks very good to me. Easy to understand and handle. It only took me a few hours from getting the code to having some working prototypes of new modules ready.

Thanks a lot for all your effort!

Cheers,
Martin
User avatar
autodafe
KVRAF
 
1642 posts since 16 Jul, 2001, from Milan, Italy

Postby autodafe; Thu Sep 21, 2017 6:15 am Re: VCV Rack

some quite extreme waveshaping using some custom modules I am working on

https://www.youtube.com/watch?v=x5FC0Sl ... e=youtu.be
srcodling
KVRist
 
112 posts since 25 Mar, 2004, from Strasbourg, Saskatchewan, Canada

Postby srcodling; Thu Sep 21, 2017 10:57 am Re: VCV Rack

That's very cool!
rafzael
KVRer
 
7 posts since 18 Apr, 2013, from belgium

Postby rafzael; Thu Sep 21, 2017 2:29 pm Re: VCV Rack

Thank you vortico, I just put header and lib files into the directories (lib and include in dep) and it seems to be working. I just finished a little dual frequency divider (one can divide by 2, 4, 8 and the other by 2, 3 and 4) with reset button and reset input. Could be useful to get sequencers running at diffrent relative speed, create sub oscillator (but the output is actually oscillating from 0 to 10 and not from -10 to 10), count gate or trig events,... By combining the dividers it s possible to divide by 2, 3, 4, 6, 8, 12, 16, 24, 32

Image
User avatar
autodafe
KVRAF
 
1642 posts since 16 Jul, 2001, from Milan, Italy

Postby autodafe; Fri Sep 22, 2017 12:10 am Re: VCV Rack

I was looking to create a frequency divider (to divide clock signals) but couldn't manage to.
A sneak peek into the code? ;-)
User avatar
autodafe
KVRAF
 
1642 posts since 16 Jul, 2001, from Milan, Italy

Postby autodafe; Fri Sep 22, 2017 6:43 am Re: VCV Rack

I managed to build my Module Pack for both MAC and PC.
I am releasing a preliminary BETA with only 3 modules.

It SHOULD work on Rack 0.31.
Please test it and let me know ;-)

You can find the download and installation instructions here on my website:

http://www.autodafe.net/blog/10-vcv-rac ... a-0-8.html

Any feedback appreciated, here or in the comments on my website

Image
scook
KVRist
 
261 posts since 13 Feb, 2007

Postby scook; Fri Sep 22, 2017 7:37 am Re: VCV Rack

work OK for me on 64bit Win10
very nice
User avatar
autodafe
KVRAF
 
1642 posts since 16 Jul, 2001, from Milan, Italy

Postby autodafe; Fri Sep 22, 2017 8:23 am Re: VCV Rack

thx a lot. will try to release more in a few days :-)
rafzael
KVRer
 
7 posts since 18 Apr, 2013, from belgium

Postby rafzael; Fri Sep 22, 2017 12:48 pm Re: VCV Rack

Hello, of course here is the code I wrote, I add this in the befaco plugins (I will create my own plugins series latter). All work prefectly except the reset function : the count index of the divider stay to zero when you push the button or send an active gate to a reset input, I will modify it soon for a reset only on the rising edge of the gate (or push moment of the button).
In any case, develop modules for this software is realy plaisant, VCV have done a great great job. Maybe it coud be nice to gather our plugins series on a same website or FB page or...Some insterested?

I also change the panel :)

Image

#include "Befaco.hpp"
struct FrequencyDivider : Module {
enum ParamIds {
DIVIDER1_PARAM,
DIVIDER2_PARAM,
RESET1_PARAM,
RESET2_PARAM,
NUM_PARAMS
};
enum InputIds {
CLOCK1_INPUT,
CLOCK2_INPUT,
RESET1_INPUT,
RESET2_INPUT,
NUM_INPUTS
};
enum OutputIds {
DIVIDED_CLOCK1_OUTPUT,
DIVIDED_CLOCK2_OUTPUT,
NUM_OUTPUTS
};
int clock1Count = 0;
int clock2Count = 0;
//float lights[4] = {};
SchmittTrigger trigger1;
SchmittTrigger trigger2;
SchmittTrigger reset1;
SchmittTrigger reset2;
FrequencyDivider();
void step();
};


FrequencyDivider::FrequencyDivider() {
params.resize(NUM_PARAMS);
inputs.resize(NUM_INPUTS);
outputs.resize(NUM_OUTPUTS);
trigger1.setThresholds(0.0, 1.0);
trigger2.setThresholds(0.0, 1.0);
reset1.setThresholds(0.0, 1.0);
reset2.setThresholds(0.0, 1.0);
}

void FrequencyDivider::step() {
//bool clock1HIGH = getf(inputs[CLOCK1_INPUT]) >= 1.0;
//bool clock2HIGH = getf(inputs[CLOCK2_INPUT]) >= 1.0;
int divider1;
switch ((int)roundf(params[DIVIDER1_PARAM])) {
case 0: divider1 = 2; break;
case 1: divider1 = 4; break;
default: divider1 = 8; break;
}
int divider2;
switch ((int)roundf(params[DIVIDER2_PARAM])) {
case 0: divider2 = 2; break;
case 1: divider2 = 3; break;
default: divider2 = 4; break;
}
//ll
bool reset = false;

if (reset1.process(params[RESET1_PARAM]))
{
clock1Count = 0;
reset = true;
}
if (reset2.process(params[RESET2_PARAM]))
{
clock2Count = 0;
reset = true;
}
if ((clock1Count >= divider1) || (reset1.process(getf(inputs[RESET1_INPUT]))))
{
clock1Count = 0;
reset = true;
}
if ((clock2Count >= divider2) || (reset1.process(getf(inputs[RESET2_INPUT]))))
{
clock2Count = 0;
reset = true;
}

if (clock1Count < divider1/2)
{
setf(outputs[DIVIDED_CLOCK1_OUTPUT], 10.0);
}
else
{
setf(outputs[DIVIDED_CLOCK1_OUTPUT], 0.0);
}

if (clock2Count < divider2/2)

{
setf(outputs[DIVIDED_CLOCK2_OUTPUT], 10.0);
}
else
{
setf(outputs[DIVIDED_CLOCK2_OUTPUT], 0.0);
}
if ( reset == false)
{
if (trigger1.process(getf(inputs[CLOCK1_INPUT])) && clock1Count <= divider1 )
{
clock1Count++;
}
if (trigger2.process(getf(inputs[CLOCK2_INPUT])) && clock2Count <= divider2 )
{
clock2Count++;
}
}


//lights[0] = out / 5.0;
}


FrequencyDividerWidget::FrequencyDividerWidget() {
FrequencyDivider *module = new FrequencyDivider();
setModule(module);
box.size = Vec(15*5, 380);

{
SVGPanel *panel = new SVGPanel();
panel->box.size = box.size;
panel->setBackground(SVG::load("plugins/Befaco/res/FrequencyDivider.svg"));
addChild(panel);
}

addChild(createScrew<ScrewBlack>(Vec(15, 0)));
addChild(createScrew<ScrewBlack>(Vec(15, 365)));

addParam(createParam<NKK>(Vec(19, 100), module, FrequencyDivider::DIVIDER1_PARAM, 0.0, 2.0, 2.0));
addParam(createParam<NKK>(Vec(19, 100+180), module, FrequencyDivider::DIVIDER2_PARAM, 0.0, 2.0, 2.0));

addParam(createParam<LEDButton>(Vec(4, 150), module, FrequencyDivider::RESET1_PARAM, 0.0, 1.0, 0.0));
addParam(createParam<LEDButton>(Vec(4, 150+180), module, FrequencyDivider::RESET2_PARAM, 0.0, 1.0, 0.0));

addInput(createInput<PJ3410Port>(Vec(35, 150), module,FrequencyDivider::RESET1_INPUT));
addInput(createInput<PJ3410Port>(Vec(35, 150+180), module, FrequencyDivider::RESET2_INPUT));

addInput(createInput<PJ3410Port>(Vec(19, 27), module,FrequencyDivider::CLOCK1_INPUT));
addInput(createInput<PJ3410Port>(Vec(19, 27+180), module, FrequencyDivider::CLOCK2_INPUT));

addOutput(createOutput<PJ3410Port>(Vec(19, 68), module, FrequencyDivider::DIVIDED_CLOCK1_OUTPUT));
addOutput(createOutput<PJ3410Port>(Vec(19, 68+180), module, FrequencyDivider::DIVIDED_CLOCK2_OUTPUT));

}
vortico
KVRist
 
66 posts since 19 Jul, 2008

Postby vortico; Fri Sep 22, 2017 2:27 pm Re: VCV Rack

[never mind]
User avatar
autodafe
KVRAF
 
1642 posts since 16 Jul, 2001, from Milan, Italy

Postby autodafe; Sat Sep 23, 2017 6:23 am Re: VCV Rack

thanks a lot.
i hacked your code to create a Clock Divider, more or less cloned from Doepfer A-160:

https://www.youtube.com/watch?v=nmiL9Tr8ar4
PreviousNext

Moderator: Moderators (Main)

Return to Modular Synthesis