ffaudio / pluginguimagic Goto Github PK
View Code? Open in Web Editor NEWExamples for foleys_gui_magic - the styleable plugin gui
Examples for foleys_gui_magic - the styleable plugin gui
To be added with options to add/remove from editor
After editing a node and selecting a class to edit, the property editor of the first property is erased.
When I drag an XYComponent into the View tree it always triggers an assert in juce_GraphicsContext.cpp here :
Rectangle<Type> coordsToRectangle (Type x, Type y, Type w, Type h) noexcept
{
#if JUCE_DEBUG
const int maxVal = 0x3fffffff;
jassert ((int) x >= -maxVal && (int) x <= maxVal
&& (int) y >= -maxVal && (int) y <= maxVal
&& (int) w >= 0 && (int) w <= maxVal
&& (int) h >= 0 && (int) h <= maxVal);
#endif
To verify
AudioProcessorValueTreeState treeState{ *this, nullptr };
foleys::MagicProcessorState magicState{ *this, treeState };
To PluginProcessor.h,
5: Create the MagicPluginEditor in PluginProcessor.cpp : createEditor()
return new foleys::MagicPluginEditor(magicState);
Run the standalone in Debug
drag the XYComponent from the component pallette onto the View(root) node.
This happens for me both in the master and develop branches.
Hi!
I'm really enjoying working with the library. However, I'm struggling with the current update, as it took away support for passing the AudioProcessor to GUI factories. I wanted to ask if there is a possible workaround for this at the current point, since I feel like this is a rather big breaking change to the data flow of the system.
Best,
Max
Hi Daniel, thank you for the example Synth, as always a lecture in programming modern c++:)
To get rid of the random "portamento", a little improvement could be to change
void FoleysSynth::FoleysVoice::updateFrequency (BaseOscillator& oscillator)
{
const auto freq = getFrequencyForNote (getCurrentlyPlayingNote(),
pitchWheelValue * maxPitchWheelSemitones
+ oscillator.detune->get());
oscillator.osc.get<0>().setFrequency (freq * oscillator.multiplier);
}
into
void FoleysSynth::FoleysVoice::updateFrequency (BaseOscillator& oscillator, bool force)
{
const auto freq = getFrequencyForNote (getCurrentlyPlayingNote(),
pitchWheelValue * maxPitchWheelSemitones
+ oscillator.detune->get());
oscillator.osc.get<0>().setFrequency (freq * oscillator.multiplier, force);
}
plus defining a bool named e.g. firstRun, it should be set to true on startNote,
then in renderNextBlock passed to updateFrequency (*osc, firstRun);
And at the end of renderNextBlock set to false.
This way the osc's currentFrequency (=startFrequency) equals it's targetFrequency when it is startet after NoteOn.
I dont understand the license text.
You say its a BSD 3 clause license, which permits commercial use.
Then you say "free for non commercial use", which implies its not free for commercial use.
It can't be both Which one is it?
(Also guys, hire a lawyer if you want to be creative with licenses. Your commercializing scheme has likely been torpedoed by this)
Hi!
I found a small bug regarding interaction behaviour with Labels. To illustrate, when defining a Label as
<Label text="" id="pitchYinLabel" font-size="16" value="pitchYINValue"/>
in the markup xml file, the value for the field "value" is reset to a default state when selecting the label either through the treeview or using the "Edit" mode. That's a bit tricky because sometimes saving an updated xml file leads to faulty values because a click can go unnoticed easily.
I debugged the scenario and found out that the node
parameter in the Stylesheet::getStyleProperty (const juce::Identifier& name, const juce::ValueTree& node, bool inherit, juce::ValueTree* definedHere)
method is NULL when this happens.
I wanted to ask if there is a way around this, since the same click action works flawlessly with the other fields.
Best,
Max
E.g. for Slider, allow to edit Type and TextBox position.
This should be generic similar to the factories, so a user can supply their own properties.
Regression, got lost with refactoring...
I have run into this issue when trying to compile the SignalGenerator Example using MS VS 2019 and the latest Juce framework.
I'm sure I'm doing something wrong, could you point me in the right direction?
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\include\memory(2698,56): warning C4244: 'argument': conversion from '_Ty' to 'float', possible loss of data 1> with 1> [ 1> _Ty=int 1> ] (compiling source file ..\..\Source\PluginProcessor.cpp) 1>C:\Users\r00tk1ll\Music\Plugin Development\SignalGenerator\Source\PluginProcessor.cpp(55): message : see reference to function template instantiation 'std::unique_ptr<juce::AudioParameterFloat,std::default_delete<juce::AudioParameterFloat>> std::make_unique<juce::AudioParameterFloat,juce::String&,const char(&)[10],juce::NormalisableRange<float>&,int,0>(juce::String &,const char (&)[10],juce::NormalisableRange<float> &,int &&)' being compiled 1>C:\Users\r00tk1ll\Music\Plugin Development\Juce Modules\foleys_gui_magic\Editor\foleys_PropertiesEditor.cpp(181,65): error C2039: 'MessageBoxIconType': is not a member of 'juce' (compiling source file ..\..\JuceLibraryCode\include_foleys_gui_magic.cpp) 1>C:\JUCE\modules\juce_opengl\utils\juce_OpenGLAppComponent.h(26): message : see declaration of 'juce' (compiling source file ..\..\JuceLibraryCode\include_foleys_gui_magic.cpp) 1>C:\Users\r00tk1ll\Music\Plugin Development\Juce Modules\foleys_gui_magic\Editor\foleys_PropertiesEditor.cpp(181,65): error C3083: 'MessageBoxIconType': the symbol to the left of a '::' must be a type (compiling source file ..\..\JuceLibraryCode\include_foleys_gui_magic.cpp) 1>C:\Users\r00tk1ll\Music\Plugin Development\Juce Modules\foleys_gui_magic\Editor\foleys_PropertiesEditor.cpp(181,85): error C2039: 'QuestionIcon': is not a member of 'juce' (compiling source file ..\..\JuceLibraryCode\include_foleys_gui_magic.cpp) 1>C:\JUCE\modules\juce_opengl\utils\juce_OpenGLAppComponent.h(26): message : see declaration of 'juce' (compiling source file ..\..\JuceLibraryCode\include_foleys_gui_magic.cpp) 1>C:\Users\r00tk1ll\Music\Plugin Development\Juce Modules\foleys_gui_magic\Editor\foleys_PropertiesEditor.cpp(181,97): error C2065: 'QuestionIcon': undeclared identifier (compiling source file ..\..\JuceLibraryCode\include_foleys_gui_magic.cpp) 1>include_juce_audio_plugin_client_utils.cpp
Trigger a decay from repaint() or repaintNeeded() (tba) depending on elapsed time
I am on MacOS Monterey (12.4, intel architecture), and am trying to build the EqualizerExample plugin using XCode (version 13.4.1). The build succeeds but I am only seeing .a and .vst3 executables, when I explicitly selected the Target builds to be AU and VST3 (I am expecting to see files ending with .component in the Builds folder, but I don't see it. It also appears in red under the XCode Products folder).
I changed to the Legacy system build hoping that it would fix the issue, but it does not. Can anyone replicate the problem and guide me?
i'm pretty sure this type of licensing is dubious. you can't really claim you give out code under bsd-3 clause only for non-commercial. the bsd-3 clause allows commercial use. so either you do allow commercial use, or you don't supply code under the 3-clause bsd. you can't have it both ways. as soon as you apply additional restrictions it's a different license.
as much pita as gpl-3 dual licensing is, i think that's what you really want.
of course, people can still buy licenses, but as far as i can tell that's completely optional and you can't sue anyone who doesn't.
not a lawyer, so i'm curious if you thought this through.
Seems a flag for new data is missing in the background thread
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.