Debugging with Reaper
-
just posting some notes here for when I forget what I did 2 weeks ago
Separate MIDI processing logic from Interface scripts Although both things can be achieved with the same module (the Script Processor), it can be considered as good practice to keep these two things separated. The reason is (apart from the usual encapsulation benefits) a huge performance increase if you defer the interface script. Deferring a script means running all callbacks that are triggered by MIDI messages or the timer on the message thread instead of the audio thread. It comes with some trade-offs (you can't change the midi message with a deferred callback or rely on the accuracy of the timer), but since it is not running on the audio thread, you can do (almost) whatever you want in any of the callbacks without having to risk a drop out (in the worst case, the interface will get laggy). Deferring a script is simple: just call Synth.deferCallbacks(true); and from then, the callbacks will stay away from the audio thread. These are some things that heavily rely on the deferred callback feature: setting text values of labels according to MIDI input using the timer for animation purposes heavy calculations from MIDI input
-
It's also covered here in the docs:
-
@d-healey Synth.deferCallbacks(true); worked like a charm!
Next up: While playing audio in a loop, I'm getting a breakpoint at:
JUCE Assertion failure in customdatacontainers.h:933
/** Adds an element to the queue. If it fails because the queue is full, it throws an assertion and return false. */ bool push(const ElementType& newElement) { const bool ok = queue.try_enqueue(std::move(newElement)); jassert_skip_unit_test(ok); return ok; }
-
Looks like something to do with arrays perhaps...?
-
I forgot to mention... Standalone loads properly after deferring the callback. I have now moved on to vst3/Reaper testing
@Christoph-Hart It throws this error continuously while audio is playing.
-
@d-healey The main header reads:
/** A wrapper around moodycamels ReaderWriterQueue with more JUCE like interface and some assertions. */
I'm thinking it's not array data.
-
@dustbro First time I've heard of moodycamels! Something to do with this I think - https://moodycamel.com/blog/2014/a-fast-general-purpose-lock-free-queue-for-c++
-
it must have something to do with the message thread and the audio thread.
-
@Christoph-Hart This has something to do with multiple instances of a plugin running. I can run a single debug instance in Reaper with no issues. As soon as I load a second instance it throws this exception:
JUCE Assertion failure in customdatacontainers.h:933
/** Adds an element to the queue. If it fails because the queue is full, it throws an assertion and return false. */ bool push(const ElementType& newElement) { const bool ok = queue.try_enqueue(std::move(newElement)); jassert_skip_unit_test(ok); return ok; }
Autos
- newElement {type=MidiStart (8 '\b') channel=1 '\x1' number=0 '\0' ...} const hise::HiseEvent & type MidiStart (8 '\b') hise::HiseEvent::Type channel 1 '\x1' unsigned char number 0 '\0' unsigned char value 0 '\0' unsigned char transposeValue 0 '\0' char gain 0 '\0' char semitones 0 '\0' char cents 0 '\0' char eventId 0 unsigned short startOffset 0 unsigned short timestamp 0 unsigned int ok false const bool - queue {frontBlock={value=0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} } ...} moodycamel::ReaderWriterQueue<hise::HiseEvent,512> - frontBlock {value=0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} } moodycamel::weak_atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - value 0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} std::atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - [value] 0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block * - front {value=102 } moodycamel::weak_atomic<unsigned __int64> - value 102 std::atomic<unsigned __int64> [value] 102 unsigned __int64 - [Raw View] {...} std::atomic<unsigned __int64> - std::_Atomic_ullong {_My_val=102 } std::_Atomic_ullong _My_val 102 unsigned __int64 localTail 102 unsigned __int64 - cachelineFiller0 0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... char[48] [0] -51 'Í' char [1] -51 'Í' char [2] -51 'Í' char [3] -51 'Í' char [4] -51 'Í' char [5] -51 'Í' char [6] -51 'Í' char [7] -51 'Í' char [8] -51 'Í' char [9] -51 'Í' char [10] -51 'Í' char [11] -51 'Í' char [12] -51 'Í' char [13] -51 'Í' char [14] -51 'Í' char [15] -51 'Í' char [16] -51 'Í' char [17] -51 'Í' char [18] -51 'Í' char [19] -51 'Í' char [20] -51 'Í' char [21] -51 'Í' char [22] -51 'Í' char [23] -51 'Í' char [24] -51 'Í' char [25] -51 'Í' char [26] -51 'Í' char [27] -51 'Í' char [28] -51 'Í' char [29] -51 'Í' char [30] -51 'Í' char [31] -51 'Í' char [32] -51 'Í' char [33] -51 'Í' char [34] -51 'Í' char [35] -51 'Í' char [36] -51 'Í' char [37] -51 'Í' char [38] -51 'Í' char [39] -51 'Í' char [40] -51 'Í' char [41] -51 'Í' char [42] -51 'Í' char [43] -51 'Í' char [44] -51 'Í' char [45] -51 'Í' char [46] -51 'Í' char [47] -51 'Í' char - tail {value=101 } moodycamel::weak_atomic<unsigned __int64> - value 101 std::atomic<unsigned __int64> [value] 101 unsigned __int64 - [Raw View] {...} std::atomic<unsigned __int64> - std::_Atomic_ullong {_My_val=101 } std::_Atomic_ullong _My_val 101 unsigned __int64 localFront 102 unsigned __int64 - cachelineFiller1 0x00000000115060a0 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... char[48] [0] -51 'Í' char [1] -51 'Í' char [2] -51 'Í' char [3] -51 'Í' char [4] -51 'Í' char [5] -51 'Í' char [6] -51 'Í' char [7] -51 'Í' char [8] -51 'Í' char [9] -51 'Í' char [10] -51 'Í' char [11] -51 'Í' char [12] -51 'Í' char [13] -51 'Í' char [14] -51 'Í' char [15] -51 'Í' char [16] -51 'Í' char [17] -51 'Í' char [18] -51 'Í' char [19] -51 'Í' char [20] -51 'Í' char [21] -51 'Í' char [22] -51 'Í' char [23] -51 'Í' char [24] -51 'Í' char [25] -51 'Í' char [26] -51 'Í' char [27] -51 'Í' char [28] -51 'Í' char [29] -51 'Í' char [30] -51 'Í' char [31] -51 'Í' char [32] -51 'Í' char [33] -51 'Í' char [34] -51 'Í' char [35] -51 'Í' char [36] -51 'Í' char [37] -51 'Í' char [38] -51 'Í' char [39] -51 'Í' char [40] -51 'Í' char [41] -51 'Í' char [42] -51 'Í' char [43] -51 'Í' char [44] -51 'Í' char [45] -51 'Í' char [46] -51 'Í' char [47] -51 'Í' char - next {value=0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} } moodycamel::weak_atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - value 0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} std::atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - [value] 0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block * - front {value=102 } moodycamel::weak_atomic<unsigned __int64> - value 102 std::atomic<unsigned __int64> [value] 102 unsigned __int64 - [Raw View] {...} std::atomic<unsigned __int64> - std::_Atomic_ullong {_My_val=102 } std::_Atomic_ullong _My_val 102 unsigned __int64 localTail 102 unsigned __int64 - cachelineFiller0 0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... char[48] [0] -51 'Í' char [1] -51 'Í' char [2] -51 'Í' char [3] -51 'Í' char [4] -51 'Í' char [5] -51 'Í' char [6] -51 'Í' char [7] -51 'Í' char [8] -51 'Í' char [9] -51 'Í' char [10] -51 'Í' char [11] -51 'Í' char [12] -51 'Í' char [13] -51 'Í' char [14] -51 'Í' char [15] -51 'Í' char [16] -51 'Í' char [17] -51 'Í' char [18] -51 'Í' char [19] -51 'Í' char [20] -51 'Í' char [21] -51 'Í' char [22] -51 'Í' char [23] -51 'Í' char [24] -51 'Í' char [25] -51 'Í' char [26] -51 'Í' char [27] -51 'Í' char [28] -51 'Í' char [29] -51 'Í' char [30] -51 'Í' char [31] -51 'Í' char [32] -51 'Í' char [33] -51 'Í' char [34] -51 'Í' char [35] -51 'Í' char [36] -51 'Í' char [37] -51 'Í' char [38] -51 'Í' char [39] -51 'Í' char [40] -51 'Í' char [41] -51 'Í' char [42] -51 'Í' char [43] -51 'Í' char [44] -51 'Í' char [45] -51 'Í' char [46] -51 'Í' char [47] -51 'Í' char - tail {value=101 } moodycamel::weak_atomic<unsigned __int64> - value 101 std::atomic<unsigned __int64> [value] 101 unsigned __int64 - [Raw View] {...} std::atomic<unsigned __int64> - std::_Atomic_ullong {_My_val=101 } std::_Atomic_ullong _My_val 101 unsigned __int64 localFront 102 unsigned __int64 - cachelineFiller1 0x00000000115060a0 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... char[48] [0] -51 'Í' char [1] -51 'Í' char [2] -51 'Í' char [3] -51 'Í' char [4] -51 'Í' char [5] -51 'Í' char [6] -51 'Í' char [7] -51 'Í' char [8] -51 'Í' char [9] -51 'Í' char [10] -51 'Í' char [11] -51 'Í' char [12] -51 'Í' char [13] -51 'Í' char [14] -51 'Í' char [15] -51 'Í' char [16] -51 'Í' char [17] -51 'Í' char [18] -51 'Í' char [19] -51 'Í' char [20] -51 'Í' char [21] -51 'Í' char [22] -51 'Í' char [23] -51 'Í' char [24] -51 'Í' char [25] -51 'Í' char [26] -51 'Í' char [27] -51 'Í' char [28] -51 'Í' char [29] -51 'Í' char [30] -51 'Í' char [31] -51 'Í' char [32] -51 'Í' char [33] -51 'Í' char [34] -51 'Í' char [35] -51 'Í' char [36] -51 'Í' char [37] -51 'Í' char [38] -51 'Í' char [39] -51 'Í' char [40] -51 'Í' char [41] -51 'Í' char [42] -51 'Í' char [43] -51 'Í' char [44] -51 'Í' char [45] -51 'Í' char [46] -51 'Í' char [47] -51 'Í' char - next {value=0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} } moodycamel::weak_atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - value 0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} std::atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - [value] 0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block * - front {value=102 } moodycamel::weak_atomic<unsigned __int64> - value 102 std::atomic<unsigned __int64> [value] 102 unsigned __int64 - [Raw View] {...} std::atomic<unsigned __int64> - std::_Atomic_ullong {_My_val=102 } std::_Atomic_ullong _My_val 102 unsigned __int64 localTail 102 unsigned __int64 - cachelineFiller0 0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... char[48] [0] -51 'Í' char [1] -51 'Í' char [2] -51 'Í' char [3] -51 'Í' char [4] -51 'Í' char [5] -51 'Í' char [6] -51 'Í' char [7] -51 'Í' char [8] -51 'Í' char [9] -51 'Í' char [10] -51 'Í' char [11] -51 'Í' char [12] -51 'Í' char [13] -51 'Í' char [14] -51 'Í' char [15] -51 'Í' char [16] -51 'Í' char [17] -51 'Í' char [18] -51 'Í' char [19] -51 'Í' char [20] -51 'Í' char [21] -51 'Í' char [22] -51 'Í' char [23] -51 'Í' char [24] -51 'Í' char [25] -51 'Í' char [26] -51 'Í' char [27] -51 'Í' char [28] -51 'Í' char [29] -51 'Í' char [30] -51 'Í' char [31] -51 'Í' char [32] -51 'Í' char [33] -51 'Í' char [34] -51 'Í' char [35] -51 'Í' char [36] -51 'Í' char [37] -51 'Í' char [38] -51 'Í' char [39] -51 'Í' char [40] -51 'Í' char [41] -51 'Í' char [42] -51 'Í' char [43] -51 'Í' char [44] -51 'Í' char [45] -51 'Í' char [46] -51 'Í' char [47] -51 'Í' char - tail {value=101 } moodycamel::weak_atomic<unsigned __int64> - value 101 std::atomic<unsigned __int64> [value] 101 unsigned __int64 - [Raw View] {...} std::atomic<unsigned __int64> - std::_Atomic_ullong {_My_val=101 } std::_Atomic_ullong _My_val 101 unsigned __int64 localFront 102 unsigned __int64 - cachelineFiller1 0x00000000115060a0 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... char[48] [0] -51 'Í' char [1] -51 'Í' char [2] -51 'Í' char [3] -51 'Í' char [4] -51 'Í' char [5] -51 'Í' char [6] -51 'Í' char [7] -51 'Í' char [8] -51 'Í' char [9] -51 'Í' char [10] -51 'Í' char [11] -51 'Í' char [12] -51 'Í' char [13] -51 'Í' char [14] -51 'Í' char [15] -51 'Í' char [16] -51 'Í' char [17] -51 'Í' char [18] -51 'Í' char [19] -51 'Í' char [20] -51 'Í' char [21] -51 'Í' char [22] -51 'Í' char [23] -51 'Í' char [24] -51 'Í' char [25] -51 'Í' char [26] -51 'Í' char [27] -51 'Í' char [28] -51 'Í' char [29] -51 'Í' char [30] -51 'Í' char [31] -51 'Í' char [32] -51 'Í' char [33] -51 'Í' char [34] -51 'Í' char [35] -51 'Í' char [36] -51 'Í' char [37] -51 'Í' char [38] -51 'Í' char [39] -51 'Í' char [40] -51 'Í' char [41] -51 'Í' char [42] -51 'Í' char [43] -51 'Í' char [44] -51 'Í' char [45] -51 'Í' char [46] -51 'Í' char [47] -51 'Í' char - next {value=0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} } moodycamel::weak_atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - value 0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} std::atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - [value] 0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block * - front {value=102 } moodycamel::weak_atomic<unsigned __int64> - value 102 std::atomic<unsigned __int64> [value] 102 unsigned __int64 - [Raw View] {...} std::atomic<unsigned __int64> + std::_Atomic_ullong {_My_val=102 } std::_Atomic_ullong localTail 102 unsigned __int64 - cachelineFiller0 0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... char[48] [0] -51 'Í' char [1] -51 'Í' char [2] -51 'Í' char [3] -51 'Í' char [4] -51 'Í' char [5] -51 'Í' char [6] -51 'Í' char [7] -51 'Í' char [8] -51 'Í' char [9] -51 'Í' char [10] -51 'Í' char [11] -51 'Í' char [12] -51 'Í' char [13] -51 'Í' char [14] -51 'Í' char [15] -51 'Í' char [16] -51 'Í' char [17] -51 'Í' char [18] -51 'Í' char [19] -51 'Í' char [20] -51 'Í' char [21] -51 'Í' char [22] -51 'Í' char [23] -51 'Í' char [24] -51 'Í' char [25] -51 'Í' char [26] -51 'Í' char [27] -51 'Í' char [28] -51 'Í' char [29] -51 'Í' char [30] -51 'Í' char [31] -51 'Í' char [32] -51 'Í' char [33] -51 'Í' char [34] -51 'Í' char [35] -51 'Í' char [36] -51 'Í' char [37] -51 'Í' char [38] -51 'Í' char [39] -51 'Í' char [40] -51 'Í' char [41] -51 'Í' char [42] -51 'Í' char [43] -51 'Í' char [44] -51 'Í' char [45] -51 'Í' char [46] -51 'Í' char [47] -51 'Í' char - tail {value=101 } moodycamel::weak_atomic<unsigned __int64> - value 101 std::atomic<unsigned __int64> [value] 101 unsigned __int64 + [Raw View] {...} std::atomic<unsigned __int64> localFront 102 unsigned __int64 - cachelineFiller1 0x00000000115060a0 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... char[48] [0] -51 'Í' char [1] -51 'Í' char [2] -51 'Í' char [3] -51 'Í' char [4] -51 'Í' char [5] -51 'Í' char [6] -51 'Í' char [7] -51 'Í' char [8] -51 'Í' char [9] -51 'Í' char [10] -51 'Í' char [11] -51 'Í' char [12] -51 'Í' char [13] -51 'Í' char [14] -51 'Í' char [15] -51 'Í' char [16] -51 'Í' char [17] -51 'Í' char [18] -51 'Í' char [19] -51 'Í' char [20] -51 'Í' char [21] -51 'Í' char [22] -51 'Í' char [23] -51 'Í' char [24] -51 'Í' char [25] -51 'Í' char [26] -51 'Í' char [27] -51 'Í' char [28] -51 'Í' char [29] -51 'Í' char [30] -51 'Í' char [31] -51 'Í' char [32] -51 'Í' char [33] -51 'Í' char [34] -51 'Í' char [35] -51 'Í' char [36] -51 'Í' char [37] -51 'Í' char [38] -51 'Í' char [39] -51 'Í' char [40] -51 'Í' char [41] -51 'Í' char [42] -51 'Í' char [43] -51 'Í' char [44] -51 'Í' char [45] -51 'Í' char [46] -51 'Í' char [47] -51 'Í' char - next {value=0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} } moodycamel::weak_atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - value 0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} std::atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - [value] 0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block * + front {value=102 } moodycamel::weak_atomic<unsigned __int64> localTail 102 unsigned __int64 + cachelineFiller0 0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... char[48] + tail {value=101 } moodycamel::weak_atomic<unsigned __int64> localFront 102 unsigned __int64 + cachelineFiller1 0x00000000115060a0 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... char[48] + next {value=0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} } moodycamel::weak_atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> + data 0x00000000115060f0 "\b\x1" char * sizeMask 1023 const unsigned __int64 + rawThis 0x0000000011506050 "f" char * - [Raw View] {...} std::atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> + std::_Atomic_address {_My_val=290480208 } std::_Atomic_address - data 0x00000000115060f0 "\b\x1" char * 8 '\b' char sizeMask 1023 const unsigned __int64 - rawThis 0x0000000011506050 "f" char * 102 'f' char - [Raw View] {...} std::atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - std::_Atomic_address {_My_val=290480208 } std::_Atomic_address _My_val 290480208 unsigned __int64 - data 0x00000000115060f0 "\b\x1" char * 8 '\b' char sizeMask 1023 const unsigned __int64 - rawThis 0x0000000011506050 "f" char * 102 'f' char - [Raw View] {...} std::atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - std::_Atomic_address {_My_val=290480208 } std::_Atomic_address _My_val 290480208 unsigned __int64 - data 0x00000000115060f0 "\b\x1" char * 8 '\b' char sizeMask 1023 const unsigned __int64 - rawThis 0x0000000011506050 "f" char * 102 'f' char - [Raw View] {...} std::atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - std::_Atomic_address {_My_val=290480208 } std::_Atomic_address _My_val 290480208 unsigned __int64 - data 0x00000000115060f0 "\b\x1" char * 8 '\b' char sizeMask 1023 const unsigned __int64 - rawThis 0x0000000011506050 "f" char * 102 'f' char - [Raw View] {...} std::atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - std::_Atomic_address {_My_val=290480208 } std::_Atomic_address _My_val 290480208 unsigned __int64 - cachelineFiller 0x00000000115bca78 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... char[56] [0] -51 'Í' char [1] -51 'Í' char [2] -51 'Í' char [3] -51 'Í' char [4] -51 'Í' char [5] -51 'Í' char [6] -51 'Í' char [7] -51 'Í' char [8] -51 'Í' char [9] -51 'Í' char [10] -51 'Í' char [11] -51 'Í' char [12] -51 'Í' char [13] -51 'Í' char [14] -51 'Í' char [15] -51 'Í' char [16] -51 'Í' char [17] -51 'Í' char [18] -51 'Í' char [19] -51 'Í' char [20] -51 'Í' char [21] -51 'Í' char [22] -51 'Í' char [23] -51 'Í' char [24] -51 'Í' char [25] -51 'Í' char [26] -51 'Í' char [27] -51 'Í' char [28] -51 'Í' char [29] -51 'Í' char [30] -51 'Í' char [31] -51 'Í' char [32] -51 'Í' char [33] -51 'Í' char [34] -51 'Í' char [35] -51 'Í' char [36] -51 'Í' char [37] -51 'Í' char [38] -51 'Í' char [39] -51 'Í' char [40] -51 'Í' char [41] -51 'Í' char [42] -51 'Í' char [43] -51 'Í' char [44] -51 'Í' char [45] -51 'Í' char [46] -51 'Í' char [47] -51 'Í' char [48] -51 'Í' char [49] -51 'Í' char [50] -51 'Í' char [51] -51 'Í' char [52] -51 'Í' char [53] -51 'Í' char [54] -51 'Í' char [55] -51 'Í' char - tailBlock {value=0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} } moodycamel::weak_atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - value 0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} std::atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - [value] 0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block * - front {value=102 } moodycamel::weak_atomic<unsigned __int64> - value 102 std::atomic<unsigned __int64> [value] 102 unsigned __int64 - [Raw View] {...} std::atomic<unsigned __int64> - std::_Atomic_ullong {_My_val=102 } std::_Atomic_ullong _My_val 102 unsigned __int64 localTail 102 unsigned __int64 - cachelineFiller0 0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... char[48] [0] -51 'Í' char [1] -51 'Í' char [2] -51 'Í' char [3] -51 'Í' char [4] -51 'Í' char [5] -51 'Í' char [6] -51 'Í' char [7] -51 'Í' char [8] -51 'Í' char [9] -51 'Í' char [10] -51 'Í' char [11] -51 'Í' char [12] -51 'Í' char [13] -51 'Í' char [14] -51 'Í' char [15] -51 'Í' char [16] -51 'Í' char [17] -51 'Í' char [18] -51 'Í' char [19] -51 'Í' char [20] -51 'Í' char [21] -51 'Í' char [22] -51 'Í' char [23] -51 'Í' char [24] -51 'Í' char [25] -51 'Í' char [26] -51 'Í' char [27] -51 'Í' char [28] -51 'Í' char [29] -51 'Í' char [30] -51 'Í' char [31] -51 'Í' char [32] -51 'Í' char [33] -51 'Í' char [34] -51 'Í' char [35] -51 'Í' char [36] -51 'Í' char [37] -51 'Í' char [38] -51 'Í' char [39] -51 'Í' char [40] -51 'Í' char [41] -51 'Í' char [42] -51 'Í' char [43] -51 'Í' char [44] -51 'Í' char [45] -51 'Í' char [46] -51 'Í' char [47] -51 'Í' char - tail {value=101 } moodycamel::weak_atomic<unsigned __int64> - value 101 std::atomic<unsigned __int64> [value] 101 unsigned __int64 - [Raw View] {...} std::atomic<unsigned __int64> - std::_Atomic_ullong {_My_val=101 } std::_Atomic_ullong _My_val 101 unsigned __int64 localFront 102 unsigned __int64 - cachelineFiller1 0x00000000115060a0 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... char[48] [0] -51 'Í' char [1] -51 'Í' char [2] -51 'Í' char [3] -51 'Í' char [4] -51 'Í' char [5] -51 'Í' char [6] -51 'Í' char [7] -51 'Í' char [8] -51 'Í' char [9] -51 'Í' char [10] -51 'Í' char [11] -51 'Í' char [12] -51 'Í' char [13] -51 'Í' char [14] -51 'Í' char [15] -51 'Í' char [16] -51 'Í' char [17] -51 'Í' char [18] -51 'Í' char [19] -51 'Í' char [20] -51 'Í' char [21] -51 'Í' char [22] -51 'Í' char [23] -51 'Í' char [24] -51 'Í' char [25] -51 'Í' char [26] -51 'Í' char [27] -51 'Í' char [28] -51 'Í' char [29] -51 'Í' char [30] -51 'Í' char [31] -51 'Í' char [32] -51 'Í' char [33] -51 'Í' char [34] -51 'Í' char [35] -51 'Í' char [36] -51 'Í' char [37] -51 'Í' char [38] -51 'Í' char [39] -51 'Í' char [40] -51 'Í' char [41] -51 'Í' char [42] -51 'Í' char [43] -51 'Í' char [44] -51 'Í' char [45] -51 'Í' char [46] -51 'Í' char [47] -51 'Í' char - next {value=0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} } moodycamel::weak_atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - value 0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} std::atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - [value] 0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block * - front {value=102 } moodycamel::weak_atomic<unsigned __int64> - value 102 std::atomic<unsigned __int64> [value] 102 unsigned __int64 - [Raw View] {...} std::atomic<unsigned __int64> - std::_Atomic_ullong {_My_val=102 } std::_Atomic_ullong _My_val 102 unsigned __int64 localTail 102 unsigned __int64 - cachelineFiller0 0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... char[48] [0] -51 'Í' char [1] -51 'Í' char [2] -51 'Í' char [3] -51 'Í' char [4] -51 'Í' char [5] -51 'Í' char [6] -51 'Í' char [7] -51 'Í' char [8] -51 'Í' char [9] -51 'Í' char [10] -51 'Í' char [11] -51 'Í' char [12] -51 'Í' char [13] -51 'Í' char [14] -51 'Í' char [15] -51 'Í' char [16] -51 'Í' char [17] -51 'Í' char [18] -51 'Í' char [19] -51 'Í' char [20] -51 'Í' char [21] -51 'Í' char [22] -51 'Í' char [23] -51 'Í' char [24] -51 'Í' char [25] -51 'Í' char [26] -51 'Í' char [27] -51 'Í' char [28] -51 'Í' char [29] -51 'Í' char [30] -51 'Í' char [31] -51 'Í' char [32] -51 'Í' char [33] -51 'Í' char [34] -51 'Í' char [35] -51 'Í' char [36] -51 'Í' char [37] -51 'Í' char [38] -51 'Í' char [39] -51 'Í' char [40] -51 'Í' char [41] -51 'Í' char [42] -51 'Í' char [43] -51 'Í' char [44] -51 'Í' char [45] -51 'Í' char [46] -51 'Í' char [47] -51 'Í' char - tail {value=101 } moodycamel::weak_atomic<unsigned __int64> - value 101 std::atomic<unsigned __int64> [value] 101 unsigned __int64 - [Raw View] {...} std::atomic<unsigned __int64> - std::_Atomic_ullong {_My_val=101 } std::_Atomic_ullong _My_val 101 unsigned __int64 localFront 102 unsigned __int64 - cachelineFiller1 0x00000000115060a0 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... char[48] [0] -51 'Í' char [1] -51 'Í' char [2] -51 'Í' char [3] -51 'Í' char [4] -51 'Í' char [5] -51 'Í' char [6] -51 'Í' char [7] -51 'Í' char [8] -51 'Í' char [9] -51 'Í' char [10] -51 'Í' char [11] -51 'Í' char [12] -51 'Í' char [13] -51 'Í' char [14] -51 'Í' char [15] -51 'Í' char [16] -51 'Í' char [17] -51 'Í' char [18] -51 'Í' char [19] -51 'Í' char [20] -51 'Í' char [21] -51 'Í' char [22] -51 'Í' char [23] -51 'Í' char [24] -51 'Í' char [25] -51 'Í' char [26] -51 'Í' char [27] -51 'Í' char [28] -51 'Í' char [29] -51 'Í' char [30] -51 'Í' char [31] -51 'Í' char [32] -51 'Í' char [33] -51 'Í' char [34] -51 'Í' char [35] -51 'Í' char [36] -51 'Í' char [37] -51 'Í' char [38] -51 'Í' char [39] -51 'Í' char [40] -51 'Í' char [41] -51 'Í' char [42] -51 'Í' char [43] -51 'Í' char [44] -51 'Í' char [45] -51 'Í' char [46] -51 'Í' char [47] -51 'Í' char - next {value=0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} } moodycamel::weak_atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> + value 0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} std::atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - data 0x00000000115060f0 "\b\x1" char * 8 '\b' char sizeMask 1023 const unsigned __int64 - rawThis 0x0000000011506050 "f" char * 102 'f' char - [Raw View] {...} std::atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - std::_Atomic_address {_My_val=290480208 } std::_Atomic_address _My_val 290480208 unsigned __int64 - data 0x00000000115060f0 "\b\x1" char * 8 '\b' char sizeMask 1023 const unsigned __int64 - rawThis 0x0000000011506050 "f" char * 102 'f' char - [Raw View] {...} std::atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - std::_Atomic_address {_My_val=290480208 } std::_Atomic_address _My_val 290480208 unsigned __int64 largestBlockSize 1024 unsigned __int64 enqueuing false bool dequeuing false bool - this 0x00000000115bca68 {queue={frontBlock={value=0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} } ...} } hise::LockfreeQueue<hise::HiseEvent> * - __vfptr 0x00007fffacb5da60 {Pawn Shop Comp 2_Debug_x64.vst3!void(* hise::LockfreeQueue<hise::HiseEvent>::`vftable'[2])()} {...} void * * [0] 0x00007fffaaa166ed {Pawn Shop Comp 2_Debug_x64.vst3!hise::LockfreeQueue<class hise::HiseEvent>::`vector deleting destructor'(unsigned int)} void * - queue {frontBlock={value=0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} } ...} moodycamel::ReaderWriterQueue<hise::HiseEvent,512> - frontBlock {value=0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} } moodycamel::weak_atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> + value 0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} std::atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - cachelineFiller 0x00000000115bca78 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... char[56] [0] -51 'Í' char [1] -51 'Í' char [2] -51 'Í' char [3] -51 'Í' char [4] -51 'Í' char [5] -51 'Í' char [6] -51 'Í' char [7] -51 'Í' char [8] -51 'Í' char [9] -51 'Í' char [10] -51 'Í' char [11] -51 'Í' char [12] -51 'Í' char [13] -51 'Í' char [14] -51 'Í' char [15] -51 'Í' char [16] -51 'Í' char [17] -51 'Í' char [18] -51 'Í' char [19] -51 'Í' char [20] -51 'Í' char [21] -51 'Í' char [22] -51 'Í' char [23] -51 'Í' char [24] -51 'Í' char [25] -51 'Í' char [26] -51 'Í' char [27] -51 'Í' char [28] -51 'Í' char [29] -51 'Í' char [30] -51 'Í' char [31] -51 'Í' char [32] -51 'Í' char [33] -51 'Í' char [34] -51 'Í' char [35] -51 'Í' char [36] -51 'Í' char [37] -51 'Í' char [38] -51 'Í' char [39] -51 'Í' char [40] -51 'Í' char [41] -51 'Í' char [42] -51 'Í' char [43] -51 'Í' char [44] -51 'Í' char [45] -51 'Í' char [46] -51 'Í' char [47] -51 'Í' char [48] -51 'Í' char [49] -51 'Í' char [50] -51 'Í' char [51] -51 'Í' char [52] -51 'Í' char [53] -51 'Í' char [54] -51 'Í' char [55] -51 'Í' char - tailBlock {value=0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} } moodycamel::weak_atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - value 0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} std::atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - [value] 0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block * - front {value=102 } moodycamel::weak_atomic<unsigned __int64> - value 102 std::atomic<unsigned __int64> [value] 102 unsigned __int64 - [Raw View] {...} std::atomic<unsigned __int64> - std::_Atomic_ullong {_My_val=102 } std::_Atomic_ullong _My_val 102 unsigned __int64 localTail 102 unsigned __int64 - cachelineFiller0 0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... char[48] [0] -51 'Í' char [1] -51 'Í' char [2] -51 'Í' char [3] -51 'Í' char [4] -51 'Í' char [5] -51 'Í' char [6] -51 'Í' char [7] -51 'Í' char [8] -51 'Í' char [9] -51 'Í' char [10] -51 'Í' char [11] -51 'Í' char [12] -51 'Í' char [13] -51 'Í' char [14] -51 'Í' char [15] -51 'Í' char [16] -51 'Í' char [17] -51 'Í' char [18] -51 'Í' char [19] -51 'Í' char [20] -51 'Í' char [21] -51 'Í' char [22] -51 'Í' char [23] -51 'Í' char [24] -51 'Í' char [25] -51 'Í' char [26] -51 'Í' char [27] -51 'Í' char [28] -51 'Í' char [29] -51 'Í' char [30] -51 'Í' char [31] -51 'Í' char [32] -51 'Í' char [33] -51 'Í' char [34] -51 'Í' char [35] -51 'Í' char [36] -51 'Í' char [37] -51 'Í' char [38] -51 'Í' char [39] -51 'Í' char [40] -51 'Í' char [41] -51 'Í' char [42] -51 'Í' char [43] -51 'Í' char [44] -51 'Í' char [45] -51 'Í' char [46] -51 'Í' char [47] -51 'Í' char - tail {value=101 } moodycamel::weak_atomic<unsigned __int64> - value 101 std::atomic<unsigned __int64> [value] 101 unsigned __int64 - [Raw View] {...} std::atomic<unsigned __int64> - std::_Atomic_ullong {_My_val=101 } std::_Atomic_ullong _My_val 101 unsigned __int64 localFront 102 unsigned __int64 - cachelineFiller1 0x00000000115060a0 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... char[48] [0] -51 'Í' char [1] -51 'Í' char [2] -51 'Í' char [3] -51 'Í' char [4] -51 'Í' char [5] -51 'Í' char [6] -51 'Í' char [7] -51 'Í' char [8] -51 'Í' char [9] -51 'Í' char [10] -51 'Í' char [11] -51 'Í' char [12] -51 'Í' char [13] -51 'Í' char [14] -51 'Í' char [15] -51 'Í' char [16] -51 'Í' char [17] -51 'Í' char [18] -51 'Í' char [19] -51 'Í' char [20] -51 'Í' char [21] -51 'Í' char [22] -51 'Í' char [23] -51 'Í' char [24] -51 'Í' char [25] -51 'Í' char [26] -51 'Í' char [27] -51 'Í' char [28] -51 'Í' char [29] -51 'Í' char [30] -51 'Í' char [31] -51 'Í' char [32] -51 'Í' char [33] -51 'Í' char [34] -51 'Í' char [35] -51 'Í' char [36] -51 'Í' char [37] -51 'Í' char [38] -51 'Í' char [39] -51 'Í' char [40] -51 'Í' char [41] -51 'Í' char [42] -51 'Í' char [43] -51 'Í' char [44] -51 'Í' char [45] -51 'Í' char [46] -51 'Í' char [47] -51 'Í' char - next {value=0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} } moodycamel::weak_atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - value 0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} std::atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> + [value] 0x0000000011506050 {front={value=102 } localTail=102 cachelineFiller0=0x0000000011506060 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block * + [Raw View] {...} std::atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - data 0x00000000115060f0 "\b\x1" char * 8 '\b' char sizeMask 1023 const unsigned __int64 - rawThis 0x0000000011506050 "f" char * 102 'f' char - [Raw View] {...} std::atomic<moodycamel::ReaderWriterQueue<hise::HiseEvent,512>::Block *> - std::_Atomic_address {_My_val=290480208 } std::_Atomic_address _My_val 290480208 unsigned __int64 largestBlockSize 1024 unsigned __int64 enqueuing false bool dequeuing false bool
-
The moodycamel queue is being used for communicating between audio and UI. If the queue is full, it means that you are sending too many messages from the audio thread.
Do you have some
setAttribute()
or something like that that is being called once per buffer (or even more)? -
@Christoph-Hart good to know. I'm using setAttribute about 25 times in this script. Lemme see if I can narrow it down to a particular call.
-
@Christoph-Hart said in Debugging with Reaper:
The moodycamel queue is being used for communicating between audio and UI
Do all plugins created in HISE share the same queue?
-
No but they share the same UI thread and if something clogs it with hammering the queue it will more likely be full with multiple instances.
-
@dustbro said in Debugging with Reaper:
@Christoph-Hart good to know. I'm using setAttribute about 25 times in this script. Lemme see if I can narrow it down to a particular call.
Have you found any solution for this? Any suggestions.... etc?
I am using setAttribute approx. 80 times in the plugin. And 20 times in an inline function. -
@orange said in Debugging with Reaper:
Have you found any solution for this?
Nothing on this end. I definitely have issues with multiple instances. I've been so jammed up I haven't had time for more debugging
-
@dustbro yeah me too. That's a very sad thing....
-
The moodycamel strikes again, we got a solution for this yet?
-
-
This issue is a real pain in the ass........
-
It might sound crazy but, is it possible to add 1 or 2 seconds loading time delay into middle of the script (for fx plugins)? So while the initialization each instance will load a little bit until the break code in the middle of the script (1 or 2 seconds breathing) then load the rest.
I have a theory that quick loading instances crash more :) Maybe it is a bullshit, I don't know but it's worth to try it :D