Giter Site home page Giter Site logo

monique-monosynth's Introduction

Monique Mono-Synth

Monique is a monophonic synth from Thomas Arndt which, in December 2021 became open source as part of the surge-synth-team family of products. We are thrilled Thomas chose to combine efforts with the rest of the team.

One of our earliest to-do items as we open source the synth is to write this README properly.

How to build Monique

Right now we have a suite of open issues as we transition to open source, but we are building using the same build prescription we use for all our other synths and for Bespoke, namely, once you have forked and cloned and so on

cd monique-monosynth
git submodule update --init --recursive
cmake -Bignore/build -DCMAKE_BUILD_TYPE=Debug
cmake --build ignore/build

An important note about licensing

Just like with the rest of our team projects, we welcome any and all contributions from anyone who wants to work on open source music software.

At the initial open-sourcing, the copyright to the Monique source was held by Thomas. When open sourcing, we had several projects - including a potential iOS port - which meant we had to think hard about licensing.

As such, we have decided that Monique should be dual licened GPL3 and MIT. In some contexts, such as the binaries which you will one day be able to download here for linux, mac, and windows, we are using the GPL3 version of JUCE, but we may want to also release in situations where open source is still possible, but GPL3 is not, and then want to use the MIT license.

As a result, we are asking individual contributors who want to contribute to Monique Mono-Synth to sign a CLA. We have used the Canonical/Harmony 1.0 CLA http://selector.harmonyagreements.org with the following choices:

  1. You retain copyright to your code. We do not need you to assign copyright to us.
  2. You grant us a license to distribute your code under GPL3 or MIT; and your content under CC3 attribution

You can read the entire document here.

To agree to this document, please add your name to the AUTHORS list in a git transaction where you indicate in the git log message that you consent to the CLA. You only need to do this once, and you can do it in your first commit to the repo.

monique-monosynth's People

Contributors

baconpaul avatar haenkel avatar magnetophon avatar mkruselj avatar mthierman avatar tank-trax avatar tommmyarn 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

monique-monosynth's Issues

Strategy for the JUCE 5.3.0 patches file

The last production monique built against a patched JUCE 5.3.0. We need to figure out a strategy for those in JUCE 6 land, and if possible, a strategy without patches I hope!

The patches are

  1. Slider trigger clicked etc.. which is a separate issue #12
  2. Tooltip class changes
  3. A few assertion supressions

we can probably get most of these with some subclassing, but the assertion supressions need some time

I think we would close this issue when the patch file gets deleted from the home dir of the repo :)

Hunting memory errors

So this evening before bed I turned on the address sanitizers in clang.
To do this add to target_compile_options after the warning disablement -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer and add a

    target_link_options(${PROJECT_NAME} PUBLIC
            -fsanitize=address -fsanitize=undefined
            )

then i build and run the standalone and in a single instance if I just click back and forth on the shift and ctrl button at the top 10 times or so I get a crash and the following sanitizer output. Hard to trap this outside the sanitizer but putting it here in case it rings any bells.

2021-12-15 21:57:31.173887-0500 MoniqueMonosynth[91633:10470605] =================================================================
2021-12-15 21:57:31.173915-0500 MoniqueMonosynth[91633:10470605] ==91633==ERROR: AddressSanitizer: heap-use-after-free on address 0x00011666ab20 at pc 0x00010255f2d0 bp 0x00016d909470 sp 0x00016d909468
2021-12-15 21:57:31.173920-0500 MoniqueMonosynth[91633:10470605] READ of size 1 at 0x00011666ab20 thread T0
2021-12-15 21:57:31.173926-0500 MoniqueMonosynth[91633:10470605] pc_0x10255f2cc###func_juce::CharPointer_UTF8::isEmpty() const###file_juce_CharPointer_UTF8.h###line_73###obj_(MoniqueMonosynth:arm64+0x10006f2cc)
2021-12-15 21:57:31.173931-0500 MoniqueMonosynth[91633:10470605] pc_0x1032a92f0###func_juce::CharPointer_UTF8 juce::StringHolder::createFromCharPointer<juce::CharPointer_UTF8>(juce::CharPointer_UTF8)###file_juce_String.cpp###line_80###obj_(MoniqueMonosynth:arm64+0x100db92f0)
2021-12-15 21:57:31.173935-0500 MoniqueMonosynth[91633:10470605] pc_0x1032a904c###func_juce::String::String(juce::CharPointer_UTF8)###file_juce_String.cpp###line_349###obj_(MoniqueMonosynth:arm64+0x100db904c)
2021-12-15 21:57:31.174017-0500 MoniqueMonosynth[91633:10470605] pc_0x10320b740###func_juce::String::String(juce::CharPointer_UTF8)###file_juce_String.cpp###line_349###obj_(MoniqueMonosynth:arm64+0x100d1b740)
2021-12-15 21:57:31.174030-0500 MoniqueMonosynth[91633:10470605] pc_0x102c883a8###func_Monique_Ui_DualSlider::refresh()###file_monique_ui_ModulationSlider.cpp###line_651###obj_(MoniqueMonosynth:arm64+0x1007983a8)
2021-12-15 21:57:31.174035-0500 MoniqueMonosynth[91633:10470605] pc_0x102d6b844###func_Monique_Ui_Refresher::timerCallback()###file_monique_ui_Refresher.cpp###line_13###obj_(MoniqueMonosynth:arm64+0x10087b844)
2021-12-15 21:57:31.174039-0500 MoniqueMonosynth[91633:10470605] pc_0x104f7e4dc###func_juce::Timer::TimerThread::callTimers()###file_juce_Timer.cpp###line_114###obj_(MoniqueMonosynth:arm64+0x102a8e4dc)
2021-12-15 21:57:31.174044-0500 MoniqueMonosynth[91633:10470605] pc_0x104f7dcac###func_juce::Timer::TimerThread::CallTimersMessage::messageCallback()###file_juce_Timer.cpp###line_180###obj_(MoniqueMonosynth:arm64+0x102a8dcac)
2021-12-15 21:57:31.174095-0500 MoniqueMonosynth[91633:10470605] pc_0x104f9a89c###func_juce::MessageQueue::deliverNextMessage()###file_juce_osx_MessageQueue.h###line_81###obj_(MoniqueMonosynth:arm64+0x102aaa89c)
2021-12-15 21:57:31.174099-0500 MoniqueMonosynth[91633:10470605] pc_0x104f9a58c###func_juce::MessageQueue::runLoopCallback()###file_juce_osx_MessageQueue.h###line_92###obj_(MoniqueMonosynth:arm64+0x102aaa58c)
2021-12-15 21:57:31.174114-0500 MoniqueMonosynth[91633:10470605] pc_0x104f998e4###func_juce::MessageQueue::runLoopSourceCallback(void*)###file_juce_osx_MessageQueue.h###line_100###obj_(MoniqueMonosynth:arm64+0x102aa98e4)
2021-12-15 21:57:31.174118-0500 MoniqueMonosynth[91633:10470605] pc_0x1a5590bb8###func___CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__###file_<null>###line_155611696###obj_(CoreFoundation:arm64e+0x84bb8)
2021-12-15 21:57:31.174122-0500 MoniqueMonosynth[91633:10470605] pc_0x1a5590b04###func___CFRunLoopDoSource0###file_<null>###line_155611696###obj_(CoreFoundation:arm64e+0x84b04)
2021-12-15 21:57:31.174126-0500 MoniqueMonosynth[91633:10470605] pc_0x1a55907f0###func___CFRunLoopDoSources0###file_<null>###line_155611696###obj_(CoreFoundation:arm64e+0x847f0)
2021-12-15 21:57:31.174129-0500 MoniqueMonosynth[91633:10470605] pc_0x1a558f164###func___CFRunLoopRun###file_<null>###line_155611696###obj_(CoreFoundation:arm64e+0x83164)
2021-12-15 21:57:31.174133-0500 MoniqueMonosynth[91633:10470605] pc_0x1a558e690###func_CFRunLoopRunSpecific###file_<null>###line_155611696###obj_(CoreFoundation:arm64e+0x82690)
2021-12-15 21:57:31.174136-0500 MoniqueMonosynth[91633:10470605] pc_0x1ae10498c###func_RunCurrentEventLoopInMode###file_<null>###line_155611696###obj_(HIToolbox:arm64e+0x3098c)
2021-12-15 21:57:31.174140-0500 MoniqueMonosynth[91633:10470605] pc_0x1ae104700###func_ReceiveNextEventCommon###file_<null>###line_155611696###obj_(HIToolbox:arm64e+0x30700)
2021-12-15 21:57:31.174143-0500 MoniqueMonosynth[91633:10470605] pc_0x1ae1044c0###func__BlockUntilNextEventMatchingListInModeWithFilter###file_<null>###line_155611696###obj_(HIToolbox:arm64e+0x304c0)
2021-12-15 21:57:31.174147-0500 MoniqueMonosynth[91633:10470605] pc_0x1a80e3ae8###func__DPSNextEvent###file_<null>###line_155611696###obj_(AppKit:arm64e+0x41ae8)
2021-12-15 21:57:31.174151-0500 MoniqueMonosynth[91633:10470605] pc_0x1a80e238c###func_-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]###file_<null>###line_155611696###obj_(AppKit:arm64e+0x4038c)
2021-12-15 21:57:31.174154-0500 MoniqueMonosynth[91633:10470605] pc_0x1a80d43ac###func_-[NSApplication run]###file_<null>###line_155611696###obj_(AppKit:arm64e+0x323ac)
2021-12-15 21:57:31.174158-0500 MoniqueMonosynth[91633:10470605] pc_0x104f404dc###func_juce::MessageManager::runDispatchLoop()###file_juce_mac_MessageManager.mm###line_359###obj_(MoniqueMonosynth:arm64+0x102a504dc)
2021-12-15 21:57:31.174162-0500 MoniqueMonosynth[91633:10470605] pc_0x104f40124###func_juce::JUCEApplicationBase::main()###file_juce_ApplicationBase.cpp###line_262###obj_(MoniqueMonosynth:arm64+0x102a50124)
2021-12-15 21:57:31.174166-0500 MoniqueMonosynth[91633:10470605] pc_0x104f3fc64###func_juce::JUCEApplicationBase::main(int, char const**)###file_juce_ApplicationBase.cpp###line_240###obj_(MoniqueMonosynth:arm64+0x102a4fc64)
2021-12-15 21:57:31.174169-0500 MoniqueMonosynth[91633:10470605] pc_0x1024f7a04###func_main###file_juce_audio_plugin_client_Standalone.cpp###line_47###obj_(MoniqueMonosynth:arm64+0x100007a04)
2021-12-15 21:57:31.174173-0500 MoniqueMonosynth[91633:10470605] pc_0x10906d0f0###func_start###file_<null>###line_155611696###obj_(dyld:arm64e+0x50f0)
2021-12-15 21:57:31.174177-0500 MoniqueMonosynth[91633:10470605] 
2021-12-15 21:57:31.174180-0500 MoniqueMonosynth[91633:10470605] 0x00011666ab20 is located 16 bytes inside of 27-byte region [0x00011666ab10,0x00011666ab2b)
2021-12-15 21:57:31.174183-0500 MoniqueMonosynth[91633:10470605] freed by thread T0 here:
2021-12-15 21:57:31.174187-0500 MoniqueMonosynth[91633:10470605] pc_0x10945ebc8###func_wrap__ZdaPv###file_<null>###line_155611696###obj_(libclang_rt.asan_osx_dynamic.dylib:arm64e+0x4abc8)
2021-12-15 21:57:31.174190-0500 MoniqueMonosynth[91633:10470605] pc_0x103426e18###func_juce::StringHolder::release(juce::StringHolder*)###file_juce_String.cpp###line_164###obj_(MoniqueMonosynth:arm64+0x100f36e18)
2021-12-15 21:57:31.174194-0500 MoniqueMonosynth[91633:10470605] pc_0x1032a5718###func_juce::StringHolder::release(juce::CharPointer_UTF8)###file_juce_String.cpp###line_169###obj_(MoniqueMonosynth:arm64+0x100db5718)
2021-12-15 21:57:31.174197-0500 MoniqueMonosynth[91633:10470605] pc_0x1032a550c###func_juce::String::~String()###file_juce_String.cpp###line_247###obj_(MoniqueMonosynth:arm64+0x100db550c)
2021-12-15 21:57:31.174201-0500 MoniqueMonosynth[91633:10470605] pc_0x1031ebd98###func_juce::String::~String()###file_juce_String.cpp###line_246###obj_(MoniqueMonosynth:arm64+0x100cfbd98)
2021-12-15 21:57:31.174207-0500 MoniqueMonosynth[91633:10470605] pc_0x102c1721c###func_MorphSLConfig::get_center_suffix() const###file_monique_ui_SliderConfig.h###line_6231###obj_(MoniqueMonosynth:arm64+0x10072721c)
2021-12-15 21:57:31.174211-0500 MoniqueMonosynth[91633:10470605] pc_0x102c88344###func_Monique_Ui_DualSlider::refresh()###file_monique_ui_ModulationSlider.cpp###line_651###obj_(MoniqueMonosynth:arm64+0x100798344)
2021-12-15 21:57:31.174215-0500 MoniqueMonosynth[91633:10470605] pc_0x102d6b844###func_Monique_Ui_Refresher::timerCallback()###file_monique_ui_Refresher.cpp###line_13###obj_(MoniqueMonosynth:arm64+0x10087b844)
2021-12-15 21:57:31.174218-0500 MoniqueMonosynth[91633:10470605] pc_0x104f7e4dc###func_juce::Timer::TimerThread::callTimers()###file_juce_Timer.cpp###line_114###obj_(MoniqueMonosynth:arm64+0x102a8e4dc)
2021-12-15 21:57:31.174222-0500 MoniqueMonosynth[91633:10470605] pc_0x104f7dcac###func_juce::Timer::TimerThread::CallTimersMessage::messageCallback()###file_juce_Timer.cpp###line_180###obj_(MoniqueMonosynth:arm64+0x102a8dcac)
2021-12-15 21:57:31.174225-0500 MoniqueMonosynth[91633:10470605] pc_0x104f9a89c###func_juce::MessageQueue::deliverNextMessage()###file_juce_osx_MessageQueue.h###line_81###obj_(MoniqueMonosynth:arm64+0x102aaa89c)
2021-12-15 21:57:31.174229-0500 MoniqueMonosynth[91633:10470605] pc_0x104f9a58c###func_juce::MessageQueue::runLoopCallback()###file_juce_osx_MessageQueue.h###line_92###obj_(MoniqueMonosynth:arm64+0x102aaa58c)
2021-12-15 21:57:31.174232-0500 MoniqueMonosynth[91633:10470605] pc_0x104f998e4###func_juce::MessageQueue::runLoopSourceCallback(void*)###file_juce_osx_MessageQueue.h###line_100###obj_(MoniqueMonosynth:arm64+0x102aa98e4)
2021-12-15 21:57:31.174236-0500 MoniqueMonosynth[91633:10470605] pc_0x1a5590bb8###func___CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__###file_<null>###line_155611696###obj_(CoreFoundation:arm64e+0x84bb8)
2021-12-15 21:57:31.174240-0500 MoniqueMonosynth[91633:10470605] pc_0x1a5590b04###func___CFRunLoopDoSource0###file_<null>###line_155611696###obj_(CoreFoundation:arm64e+0x84b04)
2021-12-15 21:57:31.174253-0500 MoniqueMonosynth[91633:10470605] pc_0x1a55907f0###func___CFRunLoopDoSources0###file_<null>###line_155611696###obj_(CoreFoundation:arm64e+0x847f0)
2021-12-15 21:57:31.174257-0500 MoniqueMonosynth[91633:10470605] pc_0x1a558f164###func___CFRunLoopRun###file_<null>###line_155611696###obj_(CoreFoundation:arm64e+0x83164)
2021-12-15 21:57:31.174260-0500 MoniqueMonosynth[91633:10470605] pc_0x1a558e690###func_CFRunLoopRunSpecific###file_<null>###line_155611696###obj_(CoreFoundation:arm64e+0x82690)
2021-12-15 21:57:31.174263-0500 MoniqueMonosynth[91633:10470605] pc_0x1ae10498c###func_RunCurrentEventLoopInMode###file_<null>###line_155611696###obj_(HIToolbox:arm64e+0x3098c)
2021-12-15 21:57:31.174267-0500 MoniqueMonosynth[91633:10470605] pc_0x1ae104700###func_ReceiveNextEventCommon###file_<null>###line_155611696###obj_(HIToolbox:arm64e+0x30700)
2021-12-15 21:57:31.174271-0500 MoniqueMonosynth[91633:10470605] pc_0x1ae1044c0###func__BlockUntilNextEventMatchingListInModeWithFilter###file_<null>###line_155611696###obj_(HIToolbox:arm64e+0x304c0)
2021-12-15 21:57:31.174274-0500 MoniqueMonosynth[91633:10470605] pc_0x1a80e3ae8###func__DPSNextEvent###file_<null>###line_155611696###obj_(AppKit:arm64e+0x41ae8)
2021-12-15 21:57:31.174278-0500 MoniqueMonosynth[91633:10470605] pc_0x1a80e238c###func_-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]###file_<null>###line_155611696###obj_(AppKit:arm64e+0x4038c)
2021-12-15 21:57:31.174282-0500 MoniqueMonosynth[91633:10470605] pc_0x1a80d43ac###func_-[NSApplication run]###file_<null>###line_155611696###obj_(AppKit:arm64e+0x323ac)
2021-12-15 21:57:31.174285-0500 MoniqueMonosynth[91633:10470605] pc_0x104f404dc###func_juce::MessageManager::runDispatchLoop()###file_juce_mac_MessageManager.mm###line_359###obj_(MoniqueMonosynth:arm64+0x102a504dc)
2021-12-15 21:57:31.174289-0500 MoniqueMonosynth[91633:10470605] pc_0x104f40124###func_juce::JUCEApplicationBase::main()###file_juce_ApplicationBase.cpp###line_262###obj_(MoniqueMonosynth:arm64+0x102a50124)
2021-12-15 21:57:31.174292-0500 MoniqueMonosynth[91633:10470605] pc_0x104f3fc64###func_juce::JUCEApplicationBase::main(int, char const**)###file_juce_ApplicationBase.cpp###line_240###obj_(MoniqueMonosynth:arm64+0x102a4fc64)
2021-12-15 21:57:31.174296-0500 MoniqueMonosynth[91633:10470605] pc_0x1024f7a04###func_main###file_juce_audio_plugin_client_Standalone.cpp###line_47###obj_(MoniqueMonosynth:arm64+0x100007a04)
2021-12-15 21:57:31.174306-0500 MoniqueMonosynth[91633:10470605] pc_0x10906d0f0###func_start###file_<null>###line_155611696###obj_(dyld:arm64e+0x50f0)
2021-12-15 21:57:31.174309-0500 MoniqueMonosynth[91633:10470605] 
2021-12-15 21:57:31.174312-0500 MoniqueMonosynth[91633:10470605] previously allocated by thread T0 here:
2021-12-15 21:57:31.174316-0500 MoniqueMonosynth[91633:10470605] pc_0x10945e7c8###func_wrap__Znam###file_<null>###line_155611696###obj_(libclang_rt.asan_osx_dynamic.dylib:arm64e+0x4a7c8)
2021-12-15 21:57:31.174319-0500 MoniqueMonosynth[91633:10470605] pc_0x1032a69d4###func_juce::StringHolder::createUninitialisedBytes(unsigned long)###file_juce_String.cpp###line_71###obj_(MoniqueMonosynth:arm64+0x100db69d4)
2021-12-15 21:57:31.174323-0500 MoniqueMonosynth[91633:10470605] pc_0x1032a7b54###func_juce::CharPointer_UTF8 juce::StringHolder::createFromCharPointer<juce::CharPointer_ASCII>(juce::CharPointer_ASCII)###file_juce_String.cpp###line_84###obj_(MoniqueMonosynth:arm64+0x100db7b54)
2021-12-15 21:57:31.174810-0500 MoniqueMonosynth[91633:10470605] pc_0x1032a7824###func_juce::String::String(char const*)###file_juce_String.cpp###line_303###obj_(MoniqueMonosynth:arm64+0x100db7824)
2021-12-15 21:57:31.174815-0500 MoniqueMonosynth[91633:10470605] pc_0x1031fd1a0###func_juce::String::String(char const*)###file_juce_String.cpp###line_304###obj_(MoniqueMonosynth:arm64+0x100d0d1a0)
2021-12-15 21:57:31.174818-0500 MoniqueMonosynth[91633:10470605] pc_0x102c17208###func_MorphSLConfig::get_center_suffix() const###file_monique_ui_SliderConfig.h###line_6231###obj_(MoniqueMonosynth:arm64+0x100727208)
2021-12-15 21:57:31.174822-0500 MoniqueMonosynth[91633:10470605] pc_0x102c88344###func_Monique_Ui_DualSlider::refresh()###file_monique_ui_ModulationSlider.cpp###line_651###obj_(MoniqueMonosynth:arm64+0x100798344)
2021-12-15 21:57:31.174825-0500 MoniqueMonosynth[91633:10470605] pc_0x102d6b844###func_Monique_Ui_Refresher::timerCallback()###file_monique_ui_Refresher.cpp###line_13###obj_(MoniqueMonosynth:arm64+0x10087b844)
2021-12-15 21:57:31.174843-0500 MoniqueMonosynth[91633:10470605] pc_0x104f7e4dc###func_juce::Timer::TimerThread::callTimers()###file_juce_Timer.cpp###line_114###obj_(MoniqueMonosynth:arm64+0x102a8e4dc)
2021-12-15 21:57:31.174846-0500 MoniqueMonosynth[91633:10470605] pc_0x104f7dcac###func_juce::Timer::TimerThread::CallTimersMessage::messageCallback()###file_juce_Timer.cpp###line_180###obj_(MoniqueMonosynth:arm64+0x102a8dcac)
2021-12-15 21:57:31.174850-0500 MoniqueMonosynth[91633:10470605] pc_0x104f9a89c###func_juce::MessageQueue::deliverNextMessage()###file_juce_osx_MessageQueue.h###line_81###obj_(MoniqueMonosynth:arm64+0x102aaa89c)
2021-12-15 21:57:31.174854-0500 MoniqueMonosynth[91633:10470605] pc_0x104f9a58c###func_juce::MessageQueue::runLoopCallback()###file_juce_osx_MessageQueue.h###line_92###obj_(MoniqueMonosynth:arm64+0x102aaa58c)
2021-12-15 21:57:31.174869-0500 MoniqueMonosynth[91633:10470605] pc_0x104f998e4###func_juce::MessageQueue::runLoopSourceCallback(void*)###file_juce_osx_MessageQueue.h###line_100###obj_(MoniqueMonosynth:arm64+0x102aa98e4)
2021-12-15 21:57:31.174877-0500 MoniqueMonosynth[91633:10470605] pc_0x1a5590bb8###func___CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__###file_<null>###line_155611696###obj_(CoreFoundation:arm64e+0x84bb8)
2021-12-15 21:57:31.174881-0500 MoniqueMonosynth[91633:10470605] pc_0x1a5590b04###func___CFRunLoopDoSource0###file_<null>###line_155611696###obj_(CoreFoundation:arm64e+0x84b04)
2021-12-15 21:57:31.174885-0500 MoniqueMonosynth[91633:10470605] pc_0x1a55907f0###func___CFRunLoopDoSources0###file_<null>###line_155611696###obj_(CoreFoundation:arm64e+0x847f0)
2021-12-15 21:57:31.174889-0500 MoniqueMonosynth[91633:10470605] pc_0x1a558f164###func___CFRunLoopRun###file_<null>###line_155611696###obj_(CoreFoundation:arm64e+0x83164)
2021-12-15 21:57:31.174894-0500 MoniqueMonosynth[91633:10470605] pc_0x1a558e690###func_CFRunLoopRunSpecific###file_<null>###line_155611696###obj_(CoreFoundation:arm64e+0x82690)
2021-12-15 21:57:31.174898-0500 MoniqueMonosynth[91633:10470605] pc_0x1ae10498c###func_RunCurrentEventLoopInMode###file_<null>###line_155611696###obj_(HIToolbox:arm64e+0x3098c)
2021-12-15 21:57:31.174902-0500 MoniqueMonosynth[91633:10470605] pc_0x1ae104700###func_ReceiveNextEventCommon###file_<null>###line_155611696###obj_(HIToolbox:arm64e+0x30700)
2021-12-15 21:57:31.174906-0500 MoniqueMonosynth[91633:10470605] pc_0x1ae1044c0###func__BlockUntilNextEventMatchingListInModeWithFilter###file_<null>###line_155611696###obj_(HIToolbox:arm64e+0x304c0)
2021-12-15 21:57:31.174923-0500 MoniqueMonosynth[91633:10470605] pc_0x1a80e3ae8###func__DPSNextEvent###file_<null>###line_155611696###obj_(AppKit:arm64e+0x41ae8)
2021-12-15 21:57:31.174930-0500 MoniqueMonosynth[91633:10470605] pc_0x1a80e238c###func_-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]###file_<null>###line_155611696###obj_(AppKit:arm64e+0x4038c)
2021-12-15 21:57:31.174934-0500 MoniqueMonosynth[91633:10470605] pc_0x1a80d43ac###func_-[NSApplication run]###file_<null>###line_155611696###obj_(AppKit:arm64e+0x323ac)
2021-12-15 21:57:31.174937-0500 MoniqueMonosynth[91633:10470605] pc_0x104f404dc###func_juce::MessageManager::runDispatchLoop()###file_juce_mac_MessageManager.mm###line_359###obj_(MoniqueMonosynth:arm64+0x102a504dc)
2021-12-15 21:57:31.174941-0500 MoniqueMonosynth[91633:10470605] pc_0x104f40124###func_juce::JUCEApplicationBase::main()###file_juce_ApplicationBase.cpp###line_262###obj_(MoniqueMonosynth:arm64+0x102a50124)
2021-12-15 21:57:31.174945-0500 MoniqueMonosynth[91633:10470605] pc_0x104f3fc64###func_juce::JUCEApplicationBase::main(int, char const**)###file_juce_ApplicationBase.cpp###line_240###obj_(MoniqueMonosynth:arm64+0x102a4fc64)
2021-12-15 21:57:31.174950-0500 MoniqueMonosynth[91633:10470605] pc_0x1024f7a04###func_main###file_juce_audio_plugin_client_Standalone.cpp###line_47###obj_(MoniqueMonosynth:arm64+0x100007a04)
2021-12-15 21:57:31.174953-0500 MoniqueMonosynth[91633:10470605] pc_0x10906d0f0###func_start###file_<null>###line_155611696###obj_(dyld:arm64e+0x50f0)
2021-12-15 21:57:31.174957-0500 MoniqueMonosynth[91633:10470605] 
2021-12-15 21:57:31.174960-0500 MoniqueMonosynth[91633:10470605] SUMMARY: AddressSanitizer: heap-use-after-free juce_CharPointer_UTF8.h:73 in juce::CharPointer_UTF8::isEmpty() const

The Slider API, Juce patches, and sldierClicked/triggerClick

Monique had modified JUCE to add a couple of methods to slider, including 'sliderClicked' and 'triggerClick'. In the port to juce 6 unpatched, I commented these out for now while we figure out the right juce 6 strategy.

Where I did I used

 { static bool fix_oss_port_issue = false; jassert(fix_oss_port_issue); fix_oss_port_issue = true; }

before the commented out code so we can find a lot of them and will see them in the debugger at runtime.

IS_STANDALONE / IS_DEV etc... strategy

Juce 6 provides a standalone essentially as a 'plugin type' and you don't really need spilt code. The Monique codebase has, I think from juce 4 days, a set of flags for is standalone or is plugin or is dev

When I finished #1 I ended up choosing the 'is plugin' version and building a standalone with that along with the VST3 and AU.

So I would love to understand what differences these flags cause and perhaps we could remove them and have a non-ifdef-segregated codebase in the core over time. This is the placeholder issue for that discussion.

Fix deprecated Bus apis

Right now Monique uses the deprecated isChannelName apis and stuff.
My Clap wrapper assumes you are using the newer APIs and we should upgrade to proper bus apis anyway
so I'll do that one day to get sound as opposed to just param automation from monique :)

standalone: fix audio device selection

Old behaviour:

  • a default audio device will be selected on initial startup
  • the last audio device will be restored / reopened on any later startup
  • if the last audio device is not available then a fallback device will be opened

If the old behaviour differs from the JUCE behaviour, we may just use the JUCE way as it is.#

Take care for audio crackles. This indicates issues on changing or selecting a device correctly.

Microtonal support

  1. Couple to tuning-library for native SCL/KBM
  2. Couple to MTS-ESP for MTS-ESP integration

Placeholder issue just so no-one else opens it. I'm sure folks are eager for this :)

JuceHeader.h to specific juce headers; just library linkage

After #1 was done, we ended up with

  1. a JuceHeader.h mono-header strategy and
  2. A lot of juce libraries linked we probably don't need

From Surge and Bespoke, we know that not using the mono-header and including-what-you-need gives substantial faster and more robust builds and works better with IDEs, so play that trick here. And as we go figure out if we need all those libs in the CMakeList

Is my Filterenvelope-Section wired?

Screenshot_20220529_164359

Hello,
Just installed Monique, played around a bit, but noticed something strange:
The Envelope of the Filters has Attack-Slider two times, I think the last one should be a Release-Slider, right?

Is it the same for anyone else??
Kind regards,
Jojo

Rudimentary installer

Maybe this is the time to use cpack? But lets think about creating cross platform installers on the back of the pipeline. (unsigned for now macOS)

Patch browser not working in VST

Patch browser switches to Z bank when selecting a factory patch in VST version. Standalone does not have this issue.

OS: Windows 11
DAW: Reaper 6.42

monique-patch

xcode project or projucer file?

Hello,

I followed the instructions command and I'm now left wondering how to open this in xcode?
Is there a .projucer or.xcproj file somewhere generated? I cannot find it. Thank you!

the Display api deprecation

void Monique_Ui_Mainwindow::update_size()

I basically ignored all this code when i ported. Fix that as a priority.

M1 support

Does monique support macs with M1? And if not, will the support be added and when? Thank you!

I tried to build it and the build was successful on the mac m1 pro but vst3 still doesn't work in ableton :/

Make version copyable

I painted the version onto the credit screen last night
Realized I could make it a hyperlink easily, so clicking on it puts full version info on your clipboard. Not that hard and useful as we get into nightly build land
So just wanted to add an issue as a reminder since I won't do it this morning.

Further repository organization

All folders lowercase (to match Surge XT repo).

Source -> src
Manual -> doc
Files, Fonts, Icon, Images, iPad, Spec -> all move into resources (better name for Spec folder?)
Inside Files we have factory presets, move that to resources/patches
Inside Files we have factory themes, move that to resources/themes

Any .xcf (Sketch) files should be in resources/assets

Bug: memory leak on shut down

The class SHARED is a singleton which will be no more deleted on shutdown, because of the removals of IS_PLUGIN and IS_STANDALONE (a66d3cf). To keep the feature (sharing data and global settings between serval plugin instances) the class or the members could be reference counted and safely freed.

need -fPIC for Linux

this error

/usr/bin/ld: libMoniqueVST_BinaryData.a(BinaryData1.cpp.o): relocation R_X86_64_PC32 against symbol `_ZN10BinaryData5A_zipE' can not be used when making a shared object; recompile with -fPIC

after adding the VST2 global paths in Projucer

OpenSource Onboarding Checklist

This is just a checklist for myself about onboarding

  • get my branch ready to go and swap it to main
    • cherry pick tommys patch diff onto that branch
    • Clearly mark all my hacks as "// PORT_HACK FIXME"
    • introduce a CLA and put it in the readme
    • Update the README with CLA and Build instructions
    • call main 'original'
    • call j6b or whatever main
  • make repo public then we can make our own forks.
  • Repo perms: Add surge team at appropriate write and triage levels
  • Deal with vst2 and Asio opt im
  • Build on linux and win
  • setup azure pipelines for pr At least
  • Discord git channel
  • start opening some issues

Various other port shortcuts resolved

A few places when doing the monique juce 6 onboarding I couldn't fix so I commented them out

When I did this I added this block

 { static bool fix_oss_port_issue = false; jassert(fix_oss_port_issue); fix_oss_port_issue = true; }

before the code. All of that should be removed obviously!

Better Installer than just a zip

Right now we have two cmake targets, monique-staged which builds all the assets and copies them into a well known directory and monique-installer which zips that up with a version name.

So cool this is a placeholder issue, then, to do 'better than a zip' by adding the appropriate scripts and cmake rules to build

  • an inno or msi type installer on windows
  • a signed dmg of a package on macos
  • an rpm and deb on linux

Remove standalone code

  • remove the folder Standalone and its content
  • remove code in IS_STANDALONE macro paths which is no more needed

using namespace juce

would be nice to not globally set this in the future. but that's a lot of shuffling. just dropping in a note so i remember.

Replace juce::ScopedPointer with std::unique_ptr

Juce6 moved to std::unique_ptr for many of its APIs and Monique is using the now deprecated juce::ScopedPointer. This causes two problems

  1. Lots of deprecation warnings obviously but also
  2. To make them compatible I ended up doing things like this
ScopedPointer<XmlElement> xml = XmlDocument( file ).getDocumentElement().release();

which should really just be instead an

const auto &xml = XD(f).get()

Remove demo version code

  • remove 'FULL' & 'DEMO' macro defs (used in App.h)
  • remove code which is only executed if Status::isUnlocked() returns false
  • remove UiEditorDemo.h & cpp

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.