mtytel / helm

Helm - a free polyphonic synth with lots of modulation
http://tytel.org/helm
GNU General Public License v3.0
2.34k stars 201 forks source link

Updated LV2 patched JUCE to 5.4.7 using codebase from: #274

Open xard-dev opened 3 years ago

xard-dev commented 3 years ago

https://github.com/lv2-porting-project/JUCE.git

Changed needed for the code base:

LV2 compilation has been verified but the compilation process generates lots of deprcation warnings so more changes are needed in the future.

Changes to HELM sources: modified: src/common/load_save.cpp modified: src/editor_components/filter_response.cpp modified: src/editor_components/formant_response.cpp modified: src/editor_components/graphical_step_sequencer.cpp modified: src/editor_components/open_gl_envelope.cpp modified: src/editor_components/open_gl_wave_viewer.cpp modified: src/editor_components/oscilloscope.cpp modified: src/editor_components/wave_viewer.cpp modified: src/editor_components/xy_pad.cpp modified: src/editor_sections/about_section.cpp modified: src/editor_sections/contribute_section.cpp modified: src/editor_sections/full_interface.cpp

xard-dev commented 3 years ago

Helm 0.9.0 crashes when used along side with plugins using newer JUCE like 2.0 version of OB-Xd: This update fixed the issue.

Also for now no custom GCC patches are required for the codebase.

xard-dev commented 3 years ago

Also checked that this JUCE update fixed the arpeggio problem with different sample rates than 44,1 kHz: Now arpeggio works in perfect sync using 48 kHz when comparing against the official build. (I compared the official VST to LV2 compiled from this pull request)

bluebear94 commented 3 years ago

I wasn't able to build with GCC 10.2 (might be related to #232 and #233):

In file included from ../../../JUCE/modules/juce_graphics/juce_graphics.h:112,
                 from ../../../JUCE/modules/juce_gui_basics/juce_gui_basics.h:57,
                 from ../../../JUCE/modules/juce_audio_plugin_client/VST/../utility/../juce_audio_plugin_client.h:53,
                 from ../../../JUCE/modules/juce_audio_plugin_client/VST/../utility/juce_IncludeModuleHeaders.h:27,
                 from ../../../JUCE/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp:78,
                 from ../../../JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST2.cpp:27,
                 from ../../../JuceLibraryCode/include_juce_audio_plugin_client_VST2.cpp:9:
../../../JUCE/modules/juce_graphics/colour/juce_PixelFormats.h: In member function ‘juce::uint8& juce::PixelARGB::getAlpha()’:
../../../JUCE/modules/juce_graphics/colour/juce_PixelFormats.h:116:77: error: cannot bind packed field ‘((juce::PixelARGB*)this)->juce::PixelARGB::<anonymous>.juce::PixelARGB::<unnamed union>::comps[3]’ to ‘juce::uint8&’ {aka ‘unsigned char&’}
  116 |     forcedinline uint8& getAlpha() noexcept           { return comps [indexA]; }
      |                                                                ~~~~~~~~~~~~~^
../../../JUCE/modules/juce_graphics/colour/juce_PixelFormats.h: In member function ‘juce::uint8& juce::PixelARGB::getRed()’:
../../../JUCE/modules/juce_graphics/colour/juce_PixelFormats.h:117:77: error: cannot bind packed field ‘((juce::PixelARGB*)this)->juce::PixelARGB::<anonymous>.juce::PixelARGB::<unnamed union>::comps[2]’ to ‘juce::uint8&’ {aka ‘unsigned char&’}
  117 |     forcedinline uint8& getRed() noexcept             { return comps [indexR]; }
      |                                                                ~~~~~~~~~~~~~^
../../../JUCE/modules/juce_graphics/colour/juce_PixelFormats.h: In member function ‘juce::uint8& juce::PixelARGB::getGreen()’:
../../../JUCE/modules/juce_graphics/colour/juce_PixelFormats.h:118:77: error: cannot bind packed field ‘((juce::PixelARGB*)this)->juce::PixelARGB::<anonymous>.juce::PixelARGB::<unnamed union>::comps[1]’ to ‘juce::uint8&’ {aka ‘unsigned char&’}
  118 |     forcedinline uint8& getGreen() noexcept           { return comps [indexG]; }
      |                                                                ~~~~~~~~~~~~~^
../../../JUCE/modules/juce_graphics/colour/juce_PixelFormats.h: In member function ‘juce::uint8& juce::PixelARGB::getBlue()’:
../../../JUCE/modules/juce_graphics/colour/juce_PixelFormats.h:119:77: error: cannot bind packed field ‘((juce::PixelARGB*)this)->juce::PixelARGB::<anonymous>.juce::PixelARGB::<unnamed union>::comps[0]’ to ‘juce::uint8&’ {aka ‘unsigned char&’}
  119 |     forcedinline uint8& getBlue() noexcept            { return comps [indexB]; }
      |                                                                ~~~~~~~~~~~~~^

Fortunately Clang 10.0.1 compiles it fine.

I might test running the synth later.

xard-dev commented 3 years ago

I wasn't able to build with GCC 10.2 (might be related to #232 and #233):

Fortunately Clang 10.0.1 compiles it fine.

I might test running the synth later.

Oh no!

Those rows should not be there at all: https://github.com/xard-dev/helm/blob/JUCE-5.4.7/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h

Have I messed up this pull request in some way?