Comments (8)
I love tidying. I'll give it a try.
from iplug2.
@madronalabs - have you taken a look at this at all?
I've just glanced at it but what I see is:
- IMIDIQueue doesn't appear to have any thread safety
- IPlugQueue is a fixed size queue, whereas IMIDIQueue can grow and shrink freely.
- IMIDIQueue uses a system of moving memory around that seems inefficient and unnecessary - it looks like it never loops and instead moves all the data around.
I pretty sure it can be done fairly easily with mostly gains, if we can live with the fixed size queue.
from iplug2.
Quick attempt on VST3 shows it isn't too hard, but we need a way to resize the queue (there isn't one currently and the default move constructor doesn't seem happy so doing std::swap doesn't work either)...
The resize shouldn't need to be threadsafe
from iplug2.
All seems reasonable. I added the Resize method, see my PR
from iplug2.
Thanks - if @olilarkin can tell me what size he things the queue should be in AAX I can make a branch that gets replaces IMIDIQueue with IPlugQueueready for testing.
from iplug2.
@madronalabs - probably Resize() should also clear, as it might resize downwards and that could invalidate the counters. Pulled it in, but it seems like that could be unsafe right now.
from iplug2.
I have what I think is a rough version working here:
https://github.com/iPlug2/iPlug2/tree/IMIDIQueue-removal
this is ready for testing, but I have a couple of things to go through with Oli, plus a need to fix the counter issue on Resize() mentioned above.
from iplug2.
I am going to close this and keep IMidiQueue for now. I have too many things that depend on it. Will keep your branch elsewhere and may revisit it at some point
from iplug2.
Related Issues (20)
- WAM: Fails with latest emscripten
- WAM: Stop base64 encoding AudioWorklet WASM
- Windows VST3 High-DPI Ableton 10/11: When "Auto-Scale Plug-In Window" is turned off, the plugin is drawn out of bounds HOT 1
- iOS: UITableViewPopup menu bounds should be based on content
- MacOS OpenGLContext leaks ~4MB on window close HOT 1
- WebUI example crashes when double-clicked HOT 4
- IMidiMsg.mOffset HOT 1
- ShowMessageBox mixes up message and caption on mac HOT 2
- Missing color search info the background of IVControls HOT 1
- IOS App plugin never gets deconstructed HOT 5
- Strange behavior IGraphics::Resize in Kushview Element (Windows, VST3)
- Skia METAL bitmap colours appear incorrect HOT 4
- Macos OpenGL: multiple instances clash
- Dropping const qualifier in IGraphics/Platforms/IGraphicsWin
- [CMake branch] Clang support on windows
- CMakeLists for Examples/IPlugWebUI
- MIDI velocity values get rounded incorrectly HOT 1
- IGraphicsSkia::GetLayerBitmapData() crashes in iOS AUv3 HOT 1
- iPlug2 doesn't compile on windows in 32-bit due to missing macros
- AUv2 hosts reporting negative ppq becomes -1 in iPlug
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from iplug2.