Debugging with Reaper
-
The big issue I'm trying to track down is a Runtime error.. but I can't make it happen on my rig.
-
In Cubase, I get some additional breakpoints:
jassert (isPositiveAndBelow (sampleIndex, size));
/** Returns a writeable pointer to one of the buffer's channels. For speed, this doesn't check whether the channel number or index are out of range, so be careful when using it! Note that if you're not planning on writing to the data, you should use getReadPointer instead. */ Type* getWritePointer (int channelNumber, int sampleIndex) noexcept { jassert (isPositiveAndBelow (channelNumber, numChannels)); jassert (isPositiveAndBelow (sampleIndex, size)); isClear = false; return channels[channelNumber] + sampleIndex; }
details
- this 0x000000002e92f110 {numChannels=2 size=0 allocatedBytes=0 ...} juce::AudioBuffer<float> * allocatedBytes 0 unsigned __int64 + channels 0x000000002e92f130 {0x000000005844f0f0 {-4.85710463e-17}} float * * + allocatedData {data=0x0000000000000000 <NULL> } juce::HeapBlock<char,1> + preallocatedChannelSpace 0x000000002e92f130 {0x000000005844f0f0 {-4.85710463e-17}, 0x000000005844f8f0 {-4.85710463e-17}, 0x0000000000000000 {...}, ...} float *[32] isClear false bool leakDetector1130 {...} juce::LeakedObjectDetector<juce::AudioBuffer<float> >
and
jassert(sizeMatches && channelMatches);
struct PointerWatcher { #if JUCE_DEBUG PointerWatcher(ProcessData& data) : dataToWatch(data), c(data.numChannels), size(data.size) { memcpy(reinterpret_cast<void*>(d), data.data, data.numChannels * sizeof(float*)); } ~PointerWatcher() { bool sizeMatches = dataToWatch.size = size; bool channelMatches = dataToWatch.numChannels = c; // You've managed to change the channel amount or block size during processing jassert(sizeMatches && channelMatches); for (int i = 0; i < c; i++) { if (dataToWatch.data[i] != d[i]) { // You've managed to change the pointers during processing. jassertfalse; } } }
Is it an issue with setting the channel amount at initialization?
-
Test it with standalone before anything else. Using a DAW may complicate the issue if the problem has nothing to do with the DAW, and using two DAWs could be even less helpful. If there is no problem with the standalone then we look at the plugin.
-
Here's what I'm seeing on a standalone:
Initialising Standalone Wrapper Creating Device Manager Create Main Processor Loading embedded image data Loading embedded impulse responses Loading embedded other data Creating Frontend Processor Create Shared Cache Pool for AudioFilePool Create Shared Cache Pool for ImagePool Create Shared Cache Pool for SampleMapPool Create Shared Cache Pool for MidiFilePool Initialising MainController Checking license Load images Load embedded audio files Load samplemaps Load Midi Files Restoring main container Compiling all scripts JUCE Assertion failure in juce_smoothedvalue.h:248 Test_Debug x64.exe has triggered a breakpoint. JUCE Assertion failure in juce_audiosamplebuffer.h:347 Test_Debug x64.exe has triggered a breakpoint. Adding plugin parameters Restoring global settings Setting disk mode Samples are validated. Skipping reference check Loading samples Initialise Audio Driver... Audio Driver Default Initialisation 'Test_Debug x64.exe' (Win32): Loaded 'C:\Windows\System32\dsound.dll'. Symbols loaded. 'Test_Debug x64.exe' (Win32): Loaded 'C:\Windows\System32\MMDevAPI.dll'. Symbols loaded. 'Test_Debug x64.exe' (Win32): Loaded 'C:\Windows\System32\devobj.dll'. Symbols loaded. 'Test_Debug x64.exe' (Win32): Loaded 'C:\Windows\System32\wdmaud.drv'. Symbols loaded. 'Test_Debug x64.exe' (Win32): Loaded 'C:\Windows\System32\ksuser.dll'. Symbols loaded. 'Test_Debug x64.exe' (Win32): Loaded 'C:\Windows\System32\avrt.dll'. Symbols loaded. 'Test_Debug x64.exe' (Win32): Loaded 'C:\Windows\System32\AudioSes.dll'. Symbols loaded. 'Test_Debug x64.exe' (Win32): Loaded 'C:\Windows\System32\msacm32.drv'. Symbols loaded. 'Test_Debug x64.exe' (Win32): Loaded 'C:\Windows\System32\msacm32.dll'. Symbols loaded. 'Test_Debug x64.exe' (Win32): Loaded 'C:\Windows\System32\midimap.dll'. Symbols loaded. 'Test_Debug x64.exe' (Win32): Loaded 'C:\Windows\System32\ResourcePolicyClient.dll'. Symbols loaded. Error initialising with default settings: The input and output devices don't share a common sample rate! OK Creating Interface Creating Root Panel 'Test_Debug x64.exe' (Win32): Loaded 'C:\Windows\System32\d2d1.dll'. Symbols loaded. 'Test_Debug x64.exe' (Win32): Loaded 'C:\Windows\System32\DWrite.dll'. Symbols loaded. 'Test_Debug x64.exe' (Win32): Loaded 'C:\Windows\System32\d3d10warp.dll'. Symbols loaded. 'Test_Debug x64.exe' (Win32): Loaded 'C:\Windows\System32\mscms.dll'. Symbols loaded. 'Test_Debug x64.exe' (Win32): Loaded 'C:\Windows\System32\userenv.dll'. Symbols loaded. 'Test_Debug x64.exe' (Win32): Loaded 'C:\Windows\System32\coloradapterclient.dll'. Symbols loaded. JUCE Assertion failure in juce_smoothedvalue.h:248 Test_Debug x64.exe has triggered a breakpoint. Resizing interface Change scale factor The thread 0x4174 has exited with code 0 (0x0). The thread 0x4fe0 has exited with code 0 (0x0). The thread 0x4f5c has exited with code 0 (0x0). The thread 0x271c has exited with code 0 (0x0).
It couldn't initialize the audio driver, but I'm not sure if that's an issue or not. It did, however, have the same 2 SampleRate breakpoints as exibited in the plugin version.
JUCE Assertion failure in juce_smoothedvalue.h:248 JUCE Assertion failure in juce_audiosamplebuffer.h:347
-
I don't know if this is part of the issue
Error initialising with default settings: The input and output devices don't share a common sample rate!
Is it a control on your interface that is triggering the failure in juce_smoothedvalue?
-
@d-healey said in Debugging with Reaper:
Is it a control on your interface that is triggering the failure in juce_smoothedvalue?
I'm dissecting the code now.
-
Making some progress. I've found the cause of the following breakpoint
bool LockHelpers::noMessageThreadBeyondInitialisation(const MainController* mc) { bool ok = !isMessageThreadBeyondInitialisation(mc); // If you hit this assertion, it means you have called a function // from the message thread that you are not supposed to do jassert(ok); return ok; }
Here's a minimized snippet of the problem code:
HiseSnippet 1034.3oc6WE0aaaCDlxIbsVaFaAn+.D7SJnYoxINoEqnctw1oyXMIF0YEaOUPKQawEJRAI515EDf8qZ+t1+fsiRxVzJNEAdnuM8fct66tiej7tOqLLQ5SSSkIHq5WNOlhr9F7n4BUX2PBSfFzCY8UXEMUgNYdLIMkFfrr150ZLq5aixd96e7DBmH7oktPn2IY9z2vhXpRuC67yLN+TR.8RVjQzs6LvWJ5J4xY.O1B6ghI9WQlROmnCqFFHQ+.lRlLRQ.xfr19DYv7QgxOJxi+crT1XNUazBMBJTt6Sk7.Mi0dQcCY7fgK1uoHnJCK28aku6eD9LV.ao+xSguKCvoLCyyCqZeN50xjdd2e5YYPusyo2N3Q9IrXUIhlaeMdfPQSlPfq.SZkGKplpFtqDhPn1OhbE8zDvXYFtG34smSKOucedC6F1S4xwDtyOISUiHQwb5agsDf.WPoJmOPRbJc+FxXJ24ENKJ9TppqLJVJ.C2lUhqYd8aX+jmziNgZVGGc6Ph4ZjEQlW3HMQAqQewTlftueBERHC4hw+N0W4pKakv2OU+YlsawFSWz.cc7xXwsRflGdWBmOF58bmLS3qXRg6tMrutgc8rbCTOtEjdc1DGWsiW3bD.6.OWm+k9ox1VWZ2lJ5mTM2q3HwQC9CNMcdbkiYMQWTlaukjw46nEQcSC6a184KHpiTbtTQu.Xr8010suw1oJzjIqESe6kH4bcoWCbwhd2I5JlEMllrGbwwmQWFHzyt5PA9tGJLmY8yalLBTJFHXpKhoh6ZTAUzAB+0uLnGQQzSOE9f3hoIJllBV8ne.jkxmkpi6QSuBNVyhsnsEY8.UFZihIsrKQDKHa1a0qVzmJkvFzY9Ri+7Uc9HKPEVh9acBorogFRguritkPq2rROQ6m444ABk2ZvGjejAy3D0pZRZg3B.3NYkge8.tHkolaJT+EQn59R2cvCYJ+v0y2Zqguvs3WZ9VH62.2exDPMojraiO8W2TM90+SPd2SMd6hNOX80D4awulZnQrNAdq+BWNWFmPiIIzKkC4j4toKSbOmwbo+UiX+gdFMWBYU4mRU1olqHH3TYzONmymnqmqeHQHn7zMQg.u5Q5CteGoqpG.urf4NtTlvjkkAujTktVSGxakyTLwzyHpDFLkuy4yhFAubhOsawtE3t0C0BO41dZacC6HpHHy3efmBvVZaqBvVU.OXgsF7fJfGZBdXEv1lfsq.djI3QU.O1D73JfO0Dbow+QE1++.8VGnQD+D468yaF0RAOLyCzRJxdq253yz1NsPYSMPdXu88PQvag9dees.02ChaqOmC1fbNbCxo8FjyQaPNGuA47zMHmm8YyQ+O.7pYJYT9OdANF1OaTvxpuf.BUYZxn+Ef8sq2H
The code uses a scriptFX module to collect the Host sample rate and passes that to a global variable. I'm using a deferred callback to set the text of a label to the global variable.
Here's a thread where we originally discussed this method:
https://forum.hise.audio/topic/2054/convolution-gain-louder-at-higher-sample-rates/18 -
Does the problem occur if you don't defer the callback?
Oh never mind, I just looked at the thread you linked to. Christoph suggested deferring the on init callback. Have you tried that?
-
@d-healey said in Debugging with Reaper:
Christoph suggested deferring the on init callback. Have you tried that?
I believe that's what I'm doing. onInit looks like this:
Content.makeFrontInterface(200, 100); global HostSampleRate; const var SampleRateLabel = Content.getComponent("SampleRateLabel"); //Defer SampleRate Timer const var DeferTimerStart = Engine.createTimerObject(); DeferTimerStart.startTimer(100); var dt = 0; DeferTimerStart.setTimerCallback(function() { dt = dt+1; if (dt == 5) { SampleRateLabel.set("text","Sample Rate: " + HostSampleRate); DeferTimerStart.stopTimer(); } });
-
Synth.deferCallbacks(true);
is what you need. It will defer all callbacks in that script (which is what you generally want in an interface script). -
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)?