RobinSchmidt / RS-MET

Codebase for RS-MET products (Robin Schmidt's Music Engineering Tools)
Other
56 stars 6 forks source link

spiral generator build fails with latest commit #72

Closed elanhickler closed 7 years ago

elanhickler commented 7 years ago

to get spiral generator to build I have to use an earlier version of RS-MET library, the error is:

Error   C2661   'SpiralGeneratorModule::SpiralGeneratorModule': no overloaded function takes 2 arguments (compiling source file ..\..\Source\SpiralGeneratorPlugin.cpp) SpiralGenerator 278 d:\_programming\rs-met\libraries\juce\modules\jura_framework\audio\jura_AudioPlugin.h   

d:\_programming\rs-met\libraries\juce\modules\jura_framework\audio/jura_AudioPlugin.h(278): 
error C2661: 
'SpiralGeneratorModule::SpiralGeneratorModule': no overloaded function takes 2 arguments (compiling source file ..\..\Source\SpiralGeneratorPlugin.cpp)

..\..\Source\SpiralGeneratorPlugin.cpp(357): note: see reference to function template instantiation 

'jura::AudioPluginWithMidiIn *jura::createPluginWithMidi<SpiralGeneratorModule>(AudioModuleType *,int)' being compiled
        with
        [
            AudioModuleType=SpiralGeneratorModule
        ]
elanhickler commented 7 years ago

robin, could you get the spiral generator modulation manager working and solve this build issue today? probably only take you 10 minutes.

RobinSchmidt commented 7 years ago

i fixed the build issue but debugging the mod-manager integration seems to be a bit tricky. i'll keep trying

RobinSchmidt commented 7 years ago

btw.: how could you run into the crash issue if you couldn't even build it?

i now have a hunch. in chainer, the modulation sources and targets are all created later than the chainer module itself - they are all submodules of the chainer and the modulators only modulate parameters of their sibling modules. in your case, the modulators should modulate parameters of their parent-module. maybe there's something about the order in which the constructors are called. i'll look into this. your code looks actually right - the way i intended it to be used

RobinSchmidt commented 7 years ago

ok, try now. it seems the mod-sources are now available for the parameters and it doesn't crash in destructor anymore. ..but i hear no sound - but i don't think that has to do with my recent changes, or has it?

RobinSchmidt commented 7 years ago

the crash was a quite subtle thing about destruction order of baseclasses and members, where the baseclass had a pointer to a member of the subclass. ...maybe i should rethink this design

elanhickler commented 7 years ago

im in the middle of trying to implement jerobeam algorithms, kinda difficult to translate some of this stuff, you have to pay attention to all the stupid max patch wires.

elanhickler commented 7 years ago

oh, i just changed the RS-MET code locally to make it build.

elanhickler commented 7 years ago

Are you going to make an LFO or should I?

RobinSchmidt commented 7 years ago

i want to make one based on a wavetable, i.e. loading single cycle waveforms like straightliner's oscs - that seems to quite different from what you proposed. but i'm not sure what to do first - figure out the smoothing filter scaling, make the lfo or the value mapper

RobinSchmidt commented 7 years ago

btw - you are aware that the BreakpointModulator can be used as LFO as well, right?

elanhickler commented 7 years ago

Ok, i should make my own LFO. How do you intend to do loading single cycle waveforms? Also can we stop calling it an LFO and call it a general purpose oscillator? LOL. I'm not going to use it like an LFO at all. I'm going to use it has LFO/HFO/chaos generator/etc.

Yes, I'm aware that breakpoint modulator can be used as an LFO, but it's annoying to use. You have to work on that junk!

I personally wouldn't waste my time with wavetables. I'm all about generating interesting shapes algorithmically and via emergent behaviors. Wavetables are inflexible.

Check out these waveform shapes that all can be made with one algorithm and a few sliders. This is made by xoxos and he's offered to give me the math for it.

source: https://www.kvraudio.com/forum/viewtopic.php?f=1&t=478136&start=75

(each box of shapes is multiple views of one cycle being morphed by parameter changes, it's not actually a single LFO cycle in each box) lfo5

elanhickler commented 7 years ago

oh wait, no, this algorithm more to my liking:

source: https://www.kvraudio.com/forum/viewtopic.php?p=6718763#p6718763

normalisationsynthesis

RobinSchmidt commented 7 years ago

hey - that's pretty cool! :-)

elanhickler commented 7 years ago

I say I wouldn't waste my time with wavetables, keep in mind I wouldn't waste my time with traditional subtractive synthesis... so take that with a grain of salt. If you like wavetables, do it! Don't let me discourage you. But if you can make wavetables flexible (i.e. realtime morphable) then that's something interesting.

RobinSchmidt commented 7 years ago

we could do time-variant phase-shaping

elanhickler commented 7 years ago

It would be nice for you to look at my Jerobeam code and make suggestions on what you'd do to the code before implementing in your library. I don't mind doing some of that for you. Edit: I'd like it to be in your library if you are going to put it in there, and remove it from my library.

elanhickler commented 7 years ago

JerobeamSpiral (finished) JerobeamTorus (almost finished) JerobeamBoing (almost finished) JerobeamRadar (cannot finish without help)

Would be nice for you to experiment with more efficient sine algorithms or if you see any way to make it more efficient! Last time I tried your more efficient sine algorithms it didn't work. shrug

elanhickler commented 7 years ago

solved