Giter VIP home page Giter VIP logo

monique-monosynth's Introduction

Built with Astro & Tailwind CSS

  1. Install node.js
    • (Optional) Install pnpm
  2. npm install/pnpm install to install dependencies
  3. npm run dev/pnpm dev to run the development server

Adding and editing pages

To make changes, all you need to is fork the project. Once you have done that you can create a branch on your fork make changes and then open a PR. This git document for the OSS Surge-Synthesizer project outlines a suggested way of doing work and then creating PRs.

Once you have created a branch in your fork you can then just click the edit button (upper right corner) to edit a post in the src/content/pages folder. Because the posts are markdown documents you can just edit stuff in place in the GitHub editor.

To add a page, open the src/content/pages folder in your fork and click the create new file button.

A post has a frontmatter section and a body section. The frontmatter section is metadata about the post, such as which image to use and what categories it belongs to. A new post would have frontmatter that looks something like:

---
slug: surge-xt
title: Surge XT
summary: Surge XT is an open source hybrid synthesizer, and the synth which started the Surge Synth Team project!
order: 1
thumbnail: /screenshots/surge-xt.png
categories: [Synth]
url: https://surge-synthesizer.github.io
issue_tracker: https://github.com/surge-synthesizer/surge/issues
---

The title is the display name for the post, the summary is the text in the card on the main page, the thumbnail is an image for the project, and the categories are a comma-separated list of any appropriate categories (look at the other projects for categories that already exist). The order determines which position a post appears in on the main page.

The body section of a post is where you can write a description of the project in markdown. It is everything after the frontmatter section.

Editor setup

Official guides

VS Code Setup

Set Prettier as your default formatter

{
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "[astro]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "[yaml]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "prettier.documentSelectors": ["**/*.astro"]
}

Format on paste, save & type

{
    "editor.formatOnPaste": true,
    "editor.formatOnSave": true,
    "editor.formatOnType": true
}

Associate CSS files with tailwind

{
    "files.associations": {
        "*.css": "tailwindcss"
    }
}

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  avatar

monique-monosynth's Issues

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

the Display api deprecation

void Monique_Ui_Mainwindow::update_size()

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

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

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.

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.

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.

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 :/

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

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

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.

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

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

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

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

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.

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.

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

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

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!

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)

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

Remove standalone code

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

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!

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

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

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.