Giter Site home page Giter Site logo

pluginguimagic's People

Contributors

ffaudio avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pluginguimagic's Issues

Licensing seems contradictory.

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)

Label "value" field reset on selection in editor

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

Building EqualizerExample AU plugin with Xcode (13.4.1)

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).

Screen Shot 2023-04-19 at 9 52 13 PM

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?

Screen Shot 2023-04-19 at 9 51 43 PM

Add Component specific properties

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.

MessageBoxIconType: is not a member of 'juce'

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

FoleySynth

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.

Adding XYComponent triggers assert

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

  1. Create a new Plugin Project in the Projucer,
  2. Add the module
  3. Launch VS 2019
  4. add :
    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);

  1. Run the standalone in Debug

  2. drag the XYComponent from the component pallette onto the View(root) node.

This happens for me both in the master and develop branches.

Workaround for passing AudioProcessor in new factory pattern

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

licensing

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.