Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LMMS Memory Manager #1088

Merged
merged 28 commits into from Nov 18, 2014
Merged

LMMS Memory Manager #1088

merged 28 commits into from Nov 18, 2014

Commits on Nov 18, 2014

  1. LMMS Memory Manager

    diizy committed Nov 18, 2014
    Copy the full SHA
    9c25be1 View commit details
    Browse the repository at this point in the history
  2. Fix 64 bit, increase mm usage

    diizy committed Nov 18, 2014
    Copy the full SHA
    75770b4 View commit details
    Browse the repository at this point in the history
  3. Fixes

    diizy committed Nov 18, 2014
    Copy the full SHA
    9972cb3 View commit details
    Browse the repository at this point in the history
  4. More fixes

    diizy committed Nov 18, 2014
    Copy the full SHA
    5e43085 View commit details
    Browse the repository at this point in the history
  5. Add dedicated manager for noteplayhandles

    This caches and reuses nph's independently of the generic memory manager.
    diizy committed Nov 18, 2014
    Copy the full SHA
    42e67d2 View commit details
    Browse the repository at this point in the history
  6. Changing and fixing some stuff

    - QHash is better to use than QMap in MemoryManager: faster lookups, able to reserve memory in advance
    - Also: reserve memory in advance for the QVector and QHash, so we don't get needles allocs for them
    - No need to do cleanup for the nph manager, as it uses the generic manager for allocs, and that already gets cleaned up
    diizy committed Nov 18, 2014
    Copy the full SHA
    8fb8c68 View commit details
    Browse the repository at this point in the history
  7. Copy the full SHA
    3a9e9cc View commit details
    Browse the repository at this point in the history
  8. Fix arpeggio to work better with the new way to handle note offsets

    Ok, not really related to memory management, but was something that needed doing and it's easier to test things when things work properly
    diizy committed Nov 18, 2014
    Copy the full SHA
    a821187 View commit details
    Browse the repository at this point in the history
  9. remove tr.whitespace

    diizy committed Nov 18, 2014
    Copy the full SHA
    3d9a7fb View commit details
    Browse the repository at this point in the history
  10. Copy the full SHA
    f3ed39a View commit details
    Browse the repository at this point in the history
  11. Use memory management in LADSPA effects

    Also optimize non-inplacebroken plugins by using the same buffer for input/output
    diizy committed Nov 18, 2014
    Copy the full SHA
    daa5f6c View commit details
    Browse the repository at this point in the history
  12. Make it possible to use sample-exact controls in LADSPA plugins

    I don't think we currently have any that would support this functionality, but in case someone has a LADSPA plugin that has audiorate control ports, this allows them to be used with the new sample-exact models
    Again... not strictly related to memory management, but since I was in that part of the codebase already...
    diizy committed Nov 18, 2014
    Copy the full SHA
    af60402 View commit details
    Browse the repository at this point in the history
  13. Implement BufferManager

    Also, apply things learned while writing BufferManager to the similar NotePlayHandleManager
    diizy committed Nov 18, 2014
    Copy the full SHA
    311d33d View commit details
    Browse the repository at this point in the history
  14. Huge structural changes

    Well, this commit got a bit out of hand, what with 26 files changed. Oh well.
    
    Basically, we're using the buffermanager to dispense temporary buffers for playhandles and audioports to use.
    This allows us to change the way playhandles work. Earlier, playhandles of the same track were waiting in line
    to push their output to the audioport. This was of course inefficient, so now they just register themselves to the port,
    then the port handles mixing the buffers.
    
    Caveat: this is still a work in progress, the vol/pan knobs on instruments are temporarily non-functional - will be fixed in
    the next commit, but I have to get some sleep now.
    diizy committed Nov 18, 2014
    Copy the full SHA
    857de8d View commit details
    Browse the repository at this point in the history
  15. Finish audioport rehaul, get vol/pan knobs working again, also some b…

    …ugfixes
    
    We're now doing the vol/pan stuff in audioport, since this way we avoid the pointless repetition of doing it in the playhandles
    diizy committed Nov 18, 2014
    Copy the full SHA
    1deb80a View commit details
    Browse the repository at this point in the history
  16. Fix bugs

    diizy committed Nov 18, 2014
    Copy the full SHA
    1864dcf View commit details
    Browse the repository at this point in the history
  17. Fix windows compiling

    diizy committed Nov 18, 2014
    Copy the full SHA
    9a3d3cb View commit details
    Browse the repository at this point in the history
  18. Fixes

    diizy committed Nov 18, 2014
    Copy the full SHA
    7bc97f5 View commit details
    Browse the repository at this point in the history
  19. Initialize BufferManager from within Mixer

    Avoid crashes caused by worker threads accessing the buffer manager
    before it is initialized. Therefore initialize it from within the
    Mixer constructor which has the side effect that it gets initialized
    in console-only rendering mode as well.
    tobydox authored and diizy committed Nov 18, 2014
    Copy the full SHA
    68b5a21 View commit details
    Browse the repository at this point in the history
  20. Copy the full SHA
    9fe5516 View commit details
    Browse the repository at this point in the history
  21. Various fixes and precautions

    Samplebuffer: reload all samples when samplerate changes. This is because of the way LMMS uses samples: we always resample all samples t$
    LadspaEffect: some safeguards for the non-inplacebroken plugins which use the same buffer for input and output. Theoretically, if some p$
    FxMixer: fix effect processing in multichannel-chains
    diizy committed Nov 18, 2014
    Copy the full SHA
    dc4bfdc View commit details
    Browse the repository at this point in the history
  22. Copy the full SHA
    f25da35 View commit details
    Browse the repository at this point in the history
  23. Fix Carla in memmgr branch

    diizy committed Nov 18, 2014
    Copy the full SHA
    50bfed7 View commit details
    Browse the repository at this point in the history
  24. Copy the full SHA
    8a596b0 View commit details
    Browse the repository at this point in the history
  25. Copy the full SHA
    f207613 View commit details
    Browse the repository at this point in the history
  26. Copy the full SHA
    b441bda View commit details
    Browse the repository at this point in the history
  27. More peak controller changes:

    Add treshold knob to peak controller
    This causes the peak controller to react only when the measured peaks are above the set treshold
    Might be useful for finetuning your sidechains
    diizy committed Nov 18, 2014
    Copy the full SHA
    ba05b75 View commit details
    Browse the repository at this point in the history
  28. Sync

    diizy committed Nov 18, 2014
    Copy the full SHA
    815a70a View commit details
    Browse the repository at this point in the history