Code Monkey home page Code Monkey logo

Comments (8)

madronalabs avatar madronalabs commented on May 13, 2024

I love tidying. I'll give it a try.

from iplug2.

AlexHarker avatar AlexHarker commented on May 13, 2024

@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.

AlexHarker avatar AlexHarker commented on May 13, 2024

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.

madronalabs avatar madronalabs commented on May 13, 2024

All seems reasonable. I added the Resize method, see my PR

from iplug2.

AlexHarker avatar AlexHarker commented on May 13, 2024

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.

AlexHarker avatar AlexHarker commented on May 13, 2024

@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.

AlexHarker avatar AlexHarker commented on May 13, 2024

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.

olilarkin avatar olilarkin commented on May 13, 2024

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)

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.