RobinSchmidt / RS-MET

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

Are you doing something that overrides Jucer Is A Synth setting? #186

Open elanhickler opened 6 years ago

elanhickler commented 6 years ago

PrettyScope refuses to be considered an Audio Units FX, it seems.

Is there something you did in your framework that would mess with this?

RobinSchmidt commented 6 years ago

looking at the doc of juce::AudioProcessor:

https://juce.com/doc/classAudioProcessor

i can't find any function like isSynth() or something that which i could have overriden for this. do you know or can you figure out, what exactly the effect of this jucer macro is in code? i guess, it will determine the return value of one or more functions. the only thing that goes broadly into the direction is acceptsMidi - which i indeed override in AudioPlugin (where it returns false) and its subclass AudioPluginWithMidiIn (where it returns true)

elanhickler commented 6 years ago

ok, this is not the problem.

Logic is just f*in' messed up. It works in GarageBand which is pretty fussy. Logic must be insanely fussy... It just doesn't work in Logic as an FX, but it does work as an instrument. **

RobinSchmidt commented 6 years ago

hmm...strange. i have no idea. do you have the same problems with your other plugins or is this specific to prettyscope? if so, you could try to figure out, where the difference is.

i actually find it generally quite annoying that some hosts distinguish between synths and fx. i don't really see the point in this distinction. it creates more problems than it solves

elanhickler commented 6 years ago

this would affect all my plugins, yours as well. Although PrettyScope is the only fx I've tested.

RobinSchmidt commented 6 years ago

so, they will all be recognized only as instruments and not as effects? hmm...the question would be, what exactly determines, how logic categorizes a plugin. what in our code and/or in the jucer settings determines this? there is this "is a synth" field in the jucer. i can't find any corresponding function in juce::AudioProcessor - so i guess, it's not overridable from the code side. but if that doesn't work, it's weird. but then there are also, these various "category" fields, "AU Main Type", etc.

elanhickler commented 6 years ago

i should have been more detailed about the problem.

When it's marked as an FX, logic does not show the plugin in its available plugins list. That's the problem. It doesn't even allow you to see it/load it.

But this is a very limited test, one user and one project. It would be a good idea to make an FX version of toolchain and test in Logic, but I don't have Logic. I would have to make Alejandro test it.

RobinSchmidt commented 6 years ago

toolchain actually is an effect anyway. at least, i don't have the "is a synth" checked in my jucer file (and never had)

elanhickler commented 6 years ago

dam. ok, good to know.

RobinSchmidt commented 6 years ago

btw. - i started a new project. i finally want to write my dream synth for toolchain. a semimodular architecture with 4 sources (with vector-mixer), a dual filter (also with a sort of vector mixer for mixing various configurations) and an arbitrary number of freely routable modulators. into the source and filter slots, the user can insert oscs, samplers, noise-generators, physical-models, whatever - the same goes for the dual-filter slots. "filter" is not to be taken literally, it could also be some other process. also, i want to allow the sources to have inputs and the filters to allow for self-oscillation - and then perhaps provide the exact same collection of pluggable modules for the source- and filter-slots because the line between these two sorts of modules is blurred anyway

...that means i must make my runtime instantiation code for AudioModules more flexible and somehow have to make the mod-system polyphonic....new challenges ahead...

elanhickler commented 6 years ago

can my products benefit from this? :)

RobinSchmidt commented 6 years ago

perhaps from the new flexibilized runtime module instantiation facilities (which i'm currently working on). ...oh...and polyphony handling.

elanhickler commented 6 years ago

oh btw i have a similar idea. for example i want to have a number of lfo options in place of my fixed lfo

elanhickler commented 6 years ago

chaosfy-style lfo, 2d lfo, xoxos osc as an lfo, how about a mini rayblaster as an lfo? i dont have to use that in my products, thats all yous.

elanhickler commented 6 years ago

oh also simple lfos / utility to remove some uneeded clutter when you just need a basic lfo.

RobinSchmidt commented 6 years ago

2D LFO is interesting...but perhaps difficult to integrate into the mod-system. i need to think about, how this can be done. from the user's perspective, it perhaps makes most sense when the two outputs just appear as two separate modulation sources in the mod-setup

btw. i'm also currently experimenting with the xoxos osc, too. you can use that as 2D osc, too. just don't add x and y at the end but use them separately.

elanhickler commented 6 years ago

i think it's not a mod system problem but an interface problem. We would need a clever interface to make it easy to connect 2D prameters to 2D modulation sources. For example, an X/Y pad. OH! that's it!

For a 2D parameter (such as x/y pad) when you list modulation sources, you could list them differently somehow to make it easier to connect 2D modulation. Maybe you have to have a "group modulation" feature to say that these modulation sources should appear as a group. It's eally just a convenience thing.

mod source 1 goes to mod target 1 mod source 2 goes to mod target 2

Anyway, I think it's mainly an interface problem. No need to make the mod system more complicated.

RobinSchmidt commented 6 years ago

I think it's mainly an interface problem. No need to make teh mod system more complicated.

well, you haven't written the mod-system - so how do you know, how hard or easy this will be? the problem i see is that the mod-system assumes there to be a ModulationSource object for each (1D) modulation signal. ...maybe for the second channel of some 2D modulator, we can create a kind of dummy-object or something...dunno

elanhickler commented 6 years ago

I'm just saying, if I designed a mod system interface, I'm sure I could have 2D mod source/targets without touching the mod system code.

Edit: Or the only thing that migth be needed is a group id or something, to group sources/targets.