Giter Site home page Giter Site logo

ebu / ear-production-suite Goto Github PK

View Code? Open in Web Editor NEW
96.0 13.0 19.0 33.65 MB

The EAR Production Suite is a set of VST® plugins and tools for producing immersive and personalizable audio content suitable for any Next Generation Audio codec. It is based on the Audio Definition Model (ITU-R BS.2076) and the ITU ADM Renderer (ITU-R BS.2127) and enables monitoring on any ITU-R BS.2051 loudspeaker configuration.

Home Page: https://ear-production-suite.ebu.io/

License: GNU General Public License v3.0

CMake 0.62% C++ 98.99% Shell 0.01% C 0.13% Batchfile 0.03% JavaScript 0.03% Max 0.17% Python 0.02%
audio audio-definition-model adm nga next-generation-audio 3d-audio

ear-production-suite's Introduction

Build

EAR Production Suite

Introduction

A collection of VST3 audio plugins, and an extention to REAPER for production of next generation audio content using the EBU ADM Renderer.

Download/Install prebuilt plugins

You can download prebuilt versions of the plugins and extension using the link below. There is also an experimental Linux build available, but be aware this is only experimental and could prove buggy.

Releases: https://ear-production-suite.ebu.io/

There are two methods of installation; using the setup application, or manual.

Setup Application

For Windows and MacOS, the download package will contain a Setup application.

For MacOS, mount the downloaded disk image and run the "Setup EAR Production Suite" application within.

For Windows, extract the contents of the downloaded package to a temporary location and run the setup application.

Manual Install

Please refer to README.pdf, which is available in the root of the Release packages or within the packaging subdirectory of this repository.

Building from source

Using vcpkg and cmake presets

The recommended way to build the plugins is via CMake's preset mechanism. Before you can make use of that you'll need a few tools.

  • Compiler with C++14 support
  • CMake build system (version 3.21.0 or higher for --preset support, 3.8 or higher for manual build)
  • Ninja

MacOS

Build environment

The easiest way to set up a suitable environment is to follow the homebrew setup instructions. Once you have a working homebrew:

brew update
brew install cmake ninja

The following instructions are for an x64 (Intel processor) build. For ARM64 (Apple Silicon), use the macos-default-arm64 preset in place of macos-default.

Building

git clone --recursive https://github.com/ebu/ear-production-suite.git
cd ear-production-suite
./submodules/vcpkg/bootstrap-vcpkg.sh # ensures vcpkg is setup 
cmake --preset macos-default          # configures project, downloads & builds dependencies
cmake --build --preset macos-default  # builds project

Installing

cmake --build --preset macos-default --target install

The location of the installed VST3 plugins will be

~/Library/Audio/Plug-Ins/VST3/

The location of the installed REAPER extension will be

~/Library/Application Support/REAPER/UserPlugins/

Windows

Microsoft Visual Studio 2019, installed with C++ support provides a suitable compiler.

You'll need to install CMake and Ninja manually, add their installation locations to your PATH. Then, execute the following steps from a Visual Studio x64 developer command prompt.

Building

git clone --recursive https://github.com/ebu/ear-production-suite.git
cd ear-production-suite
.\submodules\vcpkg\bootstrap-vcpkg.bat # ensures vcpkg is setup
cmake --preset windows-default         # configures project, downloads & builds dependencies
cmake --build --preset windows-default # builds project

Installing

From an administrator command prompt, run

cmake --build --preset windows-default --target install

The VST3 plugins will be installed to your Windows Program Files directory. The location of the installed VST3 plugins will be

<Program Files>\Common Files\VST3\

The REAPER extension will be installed to the AppData directory for the current user (as specified by the AppData environment variable, which will normally resolve to the Roaming subdirectory.) The location of the installed REAPER extension will be

~\AppData\Roaming\REAPER\UserPlugins\

Linux

These instructions are for Ubuntu 20.04, but other distributions should be similar.

Presets are currently only defined for x86_64; other architectures are untested but can probably be built manually or with a modified CMakePresets.json file.

Build environment

To get an up-to-date version of cmake, follow the instructions on the Kitware APT repository.

For the rest of the dependencies, run:

# tools for vcpkg
sudo apt-get install build-essential curl zip unzip tar git cmake ninja-build pkg-config
# graphics libraries
sudo apt-get install libx11-dev libxcursor-dev libxext-dev libxinerama-dev libxrandr-dev libglu1-mesa-dev libfreetype6-dev

Building

git clone --recursive https://github.com/ebu/ear-production-suite.git
cd ear-production-suite
./submodules/vcpkg/bootstrap-vcpkg.sh     # ensures vcpkg is set up
cmake --preset linux-default-x64          # configures project, downloads & builds dependencies
cmake --build --preset linux-default-x64  # builds project

Installing

cmake --build --preset linux-default-x64 --target install

The location of the installed VST3 plugins will be

~/.vst3

The location of the installed REAPER extension will be

~/.config/REAPER/UserPlugins/

Customising installation location

If the defaults do not suit you, they can be customised with two CMake variables

EPS_PLUGIN_INSTALL_PREFIX  # This specifies the directory to which the plugins should be installed
EPS_EXTENSION_INSTALL_PREFIX  # This specifies the directory containing the REAPER plugins subdirectory
                              # to which the extension should be installed

If manually set, both of these variables must end with a trailing /.

They should be provided at configure stage using CMake's -D flag (set cache variable). For example:

cmake --preset macos-default -DEPS_PLUGIN_INSTALL_PREFIX="/a/hidden/place/" -DEPS_EXTENSION_INSTALL_PREFIX="/top/secret/location/"

ear-production-suite's People

Contributors

carmethene avatar chrispike-bbc avatar firthm01 avatar ial-sebastian avatar marthellio avatar merktj avatar rsjbailey avatar tomjnixon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ear-production-suite's Issues

EAR Scene: moved new programme does not contain added items

When creating a new progamme with the EAR Scene and moving it from the very last / right position of the tabs to e.g. the second from left position, newly added items are not added there but instead in the last programme tab. Strangely, if I enable the last programme and then again the new moved programme, new items are added now correctly. This is likely sounding a bit confusing, so I've attached a video. :-)
Bildschirmvideo aufnehmen 2020-09-30 um 10.38.02.zip

ear-render/ EPS cannot handle ADM with included "binaural" (AP_00050001")

Appreciating ADM as universal for not just creating genuine object-based and interactive experiences, but also a unique format for storing and archiving various audio formats/mixes in one asset (like to call this "stacked legacy").
However, ear-render up to know cannot handle correctly described 2 channel "binaural" audio - AP/AT_00050001 and states
"Don't know how to produce rendering items for type Binaural".
See attached screenshot.
The file was created with Ear-Production Suite's
ss-EarProductionSuite-ADMTest-SEQUENCE-v02-ADM-nga-binaural-ADM-renderTests Kopie

For us (BR), this interferes the implementation of ADM in a proposed piloting workflow.
This issue is related to the respective one for ebu_adm_renderer

EAR Monitoring 2+7+0

It's currently not possible to monitor in 7.1.2, which is the most widespread supported configuration by 3rd party plugins.

REAPER hanging on project close due to NNG stuck in wait

Open a simple project simple.rpp.zip in REAPER. Keep closing it and opening it in REAPER without closing REAPER itself... i.e;

File->New Project
File->Recent Projects->simple.rpp
Goto 1.

At some point (usually not many attempts) closing the project will hang REAPER with the text "Removing Track n" - it seems NNG is stuck in some conditional wait.

From gitlab 139

releases download???

Where can I download ear-production-suite? Links on website are dead...
Do you plan to release for linux ?
Regards,
dewiweb

Feature request: enable bext chunk metadata for markers/regions in ADM export

Reaper offers out-of-the box the capability to display existing markers and regions in the bext chnunk of a BWF.
In a next step these can be imported and converted into markers and regions in the timeline of the project.
Also own markers and regions may be created during a production.
Eventually any makers and regions may be exported into the file when using the option "write BWF ('bext') chunk" plus defining what is to be included: Markers and/or Regions (in various options).

Reaper-BWF-segments-

This use of markers is applied in professional broadcast during production and mastering e.g. to define the segments of a classical symphony or the chapters of a radio drama and documentary.

It's also very valuable to have this option when creating an ADM BW64.
Therefore we kindly as to implement it for the ADM export process, hoping not too much effort is necessary.
Thanks.
w

Moving from EPS 0.5.0 to 0.6.0 - ist there an easy way to preserve/mode automation data for objects?

Just moved a session made in EPS 0.5.0 to 0.6.0. Unfortunately, the new plugins are not recognised. Not a bis job to rework for DiectSpeakers, Monitoring and Scene pi. But there's quite a lot of positioning and other parameters in the Object plugin. Unformtunately the tracks are not showing what is what (azimuth, elevation....distance.....etc.) Bit of a guessing when want to move the lines to the respective ones of the new version.
Is there a little bit easier way to get that done?

ss-Reaper-EPS-Object-Automation

Improvement: Import ADM display and order of tracks

When importing an ADM, the tracks for EAR Scene Bus and EAR Monitor Bus are not shown in tracks dispay in the track view window. Makingthem visible has to be selected via 'Track Manager'.
Viewing them in the tracks window also, would reduce irritations (as on single monitor machines the mixer view might often be disabled).

Also a change in the order of both - 1: EAR Monitor Bus, 2: EAR Scene Bus - apperas more logical when used to consider the top track as master track.

Create installer packages

Create installer packages for Windows and macOS

(comment 1)
I briefly looked at this on the macOS side yesterday.
To create a package with a postinstall script (in order to install to the correct location then disable gatekeeper for the installed plugins) you'd need to use pkgbuild/productbuild - the productbuild CPack generator does this in theory, but in practice created a package which did nothing. It's probably easier to just write a script to build the package ourselves than to try and debug CPack.
I think the easiest way might be to build component packages with pkgbuild for each project (extension, plugins) then combine them using productbuild.

(comment 2)
Have you also considered using http://s.sudre.free.fr/Software/Packages/about.html ?

From gitlab issue 116

Deleting an Input plugin leaves "no name" item

If the Scene GUI is closed when an input plugin is deleted, the item is still in the programme when the Scene GUI is opened, but the name is "no name"

Steps;

  • Load a saved session with EPS plugins (not sure if necessary, but it's how I could reliably reproduce it)
  • With the Scene GUI closed, delete an input plugin which was in the current programme.
  • Open the Scene GUI - the item is still in the programme and named "no name"

Could be due to bad store refresh like issue #72

YOUR ADM BWF EXPORT FUNCTION FOR REAPER IS NO LONGER WORKING CORRECTLY

I downloaded your suite 15 days ago.... for reaper, windows 10. I completed making an object-based audio mix using EAR production suite just yesterday. Now I exported it in Adm bwf 38 channels wav. I decided to encode it to Dolby Atmos. But the Dolby Atmos conversion tool is not recognizing your exported Adm bwf format of EAR production suite from reaper. Dolby Atmos conversion tool is not able to recognize it and says track sample rate and ADMs sample rate mismatch error. On the other hand, when I export the same ADM mix to other object-based audio production tools like Orphus ircam admix renderer it doesn't even play it. So, what's the use of creating an object based 25 minutes film audio mix using EAR production suite when at encoding stage it doesn't properly encode ADM where other software's just simply rejecting it.... Your software is able to open other adm mixes from other production tools like Dolby Atmos production suite for example where we can clearly read and write automations to objects but when it comes to encoding or exporting stage your adm export might have some bug. Please check that reaper adm extension once again. Alas when there is no way that I can encode my immersive audio mix to Dolby atoms simple because of this adm recognizing issue, the chain is stopped. now I can't send my mix to any of our project reviewers. Alas I have to convert my object based to channel based 5.1. No use of preparing an object-based mix using EAR production suite when it ultimately lands to a channel-based mix that too less than 10 channels because neither windows or mac os support or recognize more than 10 channel wav files. That means if I create and record a channel based 3d mix like 7.1.4, a 10-channel wav file using spat revolution, it's no use because for channel-based content can only support up to 7.1 wav in windows and mac not yet 3d for now. I tried; we can't play at least 12-channel wav file on any consumer media playback systems to experience 3d. a 24 channel NHK 22.2 channel based immersive audio mix will definitely won't play unless until you encode such wav files to Dolby Atmos etc. For only you can deliver 5.1 successfully if you think of channel based. Hence ADM is very important and the only way if you want to convey your object-based audio mix not even ambisonics 7th order..... I am very disappointed to find that not working. Please fix this. Okay if this a problem with Dolby Atmos production suite or Admix renderer from ircam as they are unable to recognize your adm then tell me a way such that i should take an Adm mix out of EAR production suite and encode it such that my clients should listen my hardly worked and created 38 channel object-based audio mix on their 7.1.4 speaker system or any pair of headphones! as everybody says.... . There was a serious hard work involved and i did with musical perspective that is aimed at user's natural and realistic immersion into soundscapes rather than just playing with objects. Alas I have to end up with 5.1 . So please look into this issue and its compatibility with DAPS ....

Take into account tail length when adding final automation point for parameters on export

Matt Firth:

Create final point for all parameters

We should ensure a final point for each parameter is present just prior to export. This is particularly important where we have no automation data because the set parameters may not be default, but we set just one blockFormat of duration 0 which effectively means the set values immediately get replaced by defaults anyway. Use double GetProjectLength(ReaProject* proj ) to determine where the final point should lie.

code template:

if(points.size() > 0){
    auto lastPoint = points.back();
    auto projLength = api.GetProjectLength(nullptr);
    if(lastpoint.effectiveTime < projLength) {
        // Need a point
        newParameterPoint(parameter, projLength, lastPoint.value);
    }
} else {
    // No point needed - we aren't setting this parameter anyway
}

Something like that in CumulatedPointsData should do it (I think there's some "finalise" methods to put it in)

...

After [merged PR on previous repo] we will still need to do some work afterwards as we should really take in to account the "tail" length in the render dialog when calculating the final point position, but this should work for now.

From gitlab 60

Investigate / fix block time rounding errors

Just noticed that when using ADM paramater in automation curves, the EAR python renderer is complaining about different blockformat rtimes:
"UserWarning: (rtime + duration) of block format AB_00031002_00000007 does not equal rtime of block format AB_00031002_00000008."
Is this a (new) issue with the EPS or rather due to a different interpretation / implementation in the python reference?

Visible version

Just found out, that there's an update on EPS now.
Great!
(would have loved to receive a note about that while watching the early-access git ;) )

What about stating the current version of the plugins correctly in the VSTs?
They're all still at 0.1.0 (see screenshot)
Bildschirmfoto 2020-09-30 um 12 01 41

Export - use JumpPosition

Use jump position where we have 2 points on the same timestamp, rather than 2 blocks.
Future - there's actually a threshold for minimum distance between blocks - this jump position logic should apply to create a ramp over a set duration without placing points too close to each other (bear in mind, what if you have >2 points tightly clustered?)

From gitlab 38

FR: Reapack distribution

Hi !

I don't use ADM in my workflow but I want to thank you for bringing this tools to the reaper community. Awesome ! I promoted it on the cockos forum.

--
It would be interesting if you could share this pack via Reapack, reaper extension,
so it could be downloaded and install, and even updated right from REAPER, without having to manually files at different places.

It is meant for sharing reaper resources (scripts, extension, themes), and it can also share VST plugins in Resource /FX folder, so that REAPER will detect automatically.

It is pretty simple to set up so it definitely worth it. You can ask for cfillion for help if needed :P

Thanks for your attention !

ADM BWF export to provide timecode reference

Chris Pike:

In a broadcast workflow, insertion of timecode reference into the exported ADM BWF file would be very helpful.
The BWF BEXT chunk has a TimeReference parameter (https://tech.ebu.ch/docs/tech/tech3285.pdf).
The start time in audioObjects should probably also reflect this.

Tom Nixon:

An alternative would be to represent this in the ADM (with the audioProgramme start time). This approach is recommended by BS.2088 (bw64), which says that the BEXT chunk shouldn't be used. There's some more information about how this should work in BS.2388 (ADM usage guidelines) too.

I'm not sure if this is implemented anywhere? Perhaps it should be a user choice.

Chris Pike:

I was hoping you'd know more :)
Whilst 2088 says the BEXT chunk shouldn't be used, it might be that implementations expect it. So user choice is worth considering. I guess we should investigate how this info will be used, and by what, before implementing.

Richard Bailey:

Is this use case where a multitrack has been recorded during an OB using Reaper, and we're directly exporting from that session to an ADM?

How would timecode be used in this context as I'm a bit hazy.

Do you just record LTC to a spare audio track so you can line things up at a later date, or do you actually sync reaper to incoming timecode via the play button right click menu?

If it's the latter, how does that work in terms of timeline offsets (i.e. if you start recording at +2 hours is there a lot of empty space at the start of the session?)

LTC looks pretty straightforward so if it's already being recorded we could probably just directly decode it from some user-specified track on export (don't hold me to that :))

Simon Highfield:

Currently the use case is this:
LTC is received on a MADI input
The reaper timeline ‘chases’ (follows) the timecode input.
When audio is recorded, it is ‘time stamped’. I believe this means that the time code that recording started at, is embedded in the BWF metadata.
The LTC does not need to be recorded as an audio file.

...

In terms of empty space, that’s completely normal.
The LTC in the truck (and a lot of other places) is ‘time of day’ time code. So in the DAW session there’s hours between the rehearsals and the performance (both of which are recorded ad edited together).

...

From https://github.com/bbc/rd-iic-audio-reaper_adm/issues/19

Scene store is not updated when programme tab is switched

Expected behaviour is that when the user clicks a programme tab in the Scene plugin, the mix from the Monitoring plugins changes to reflect the items in the newly selected programme.
Actual behaviour is that the mix from the Monitoring plugins remains the same.

Suspected cause is that the Store isn't getting updated to reflect currently selected programme in the Scene plugin.

This used to work until 420aeed - but that commit is not at fault - it is the right thing to do. The problem seems to be that the rebuildSceneStore_ is not set on switching tabs. The only reason it worked before was because the store was always being updated because the flag was never reset.

Onboarding diagrams render poorly on Windows

Looks like the images aren't anti-aliased. I believe we had the same issue with the logo on windows and had to "bake-in" anti-aliasing. This causes a further issue on Retina displays as the images then look overly blurry.

EPS 0.6.0 and Reaper frequently crashes when importing ADM files

MacOS 10.14.6 Reaper 6.12. - 6.14 / EPS 0.6.0.

Starting a new project in freshly started Reaper.
Open "Create from ADM using EAR" and selecting file.
Import starts and writes files into folder "Reaper Media".
100% - EAR panner plugins briefly appear - and Reaper crashes.

Simple test files (EBU IO) seem to work .
Some crash reports attached
Reaper-EPS-Crahes.zip

Add new empty ADM object track via Reaper extension

It would speed up the workflow to provide a menu option for adding a new ADM object track to an existing project. This should create a track, add an EAR Object plug-in, and perform appropriate routing. It could optionally automate adding your object to a Programme in the scene as well (perhaps the first programme in the list)?

If no existing EAR Scene is present, could it also create that?

Currently the shortcuts are all about importing existing ADM files or creating a project from one. This would instead speed-up the creation of an ADM scene from scratch.

EAR Object Plugin displays wrong Extent Size

The Object Extent Size Fader displays every time 0.00 when the EAR Object Window will be reopened (regardless of the value that was adjusted before). This bug occured on Windows 10 and MacOs Mojave.

Screenshot 2020-09-29 um 13 15 43

Extension causes REAPER crash with Language Pack installed

This is likely because of the way we find a position to insert our own menu items.

Some fix notes;

Firstly, when this happens, it should fail gracefully and perhaps display a message box to notify the user. (Note that for MacOS we can use MessageBox but for Windows we must use winhelpers::NonBlockingMessageBox otherwise the user gets stuck on the splash screen)

The REAPER API has a function to translate a string: const char* LocalizeString(const char* src_string, const char* section, int flagsOptional ) - this should mean we can use the existing logic after translation.


Other notes I made, before realising the above function existed;

  • If a language pack is set to always be used, then the langpack key in reaper.ini will be set and point to the language pack in use. However, we can't rely on that. REAPER can be configured to ask on each start-up, in which case langpack is never set.
  • There doesn't seem to be anything in the API to determine the pack currently in use.
  • A language pack attaches a string to an ID (see https://www.reaper.fm/langpack/index.php#langpack_dev ) - this ID is a FNV164 hash of the original, null-terminated English text.

EPS working on BS.2076-1 or BS.2076-2?

Had the issue that a multi-program (though channel-based only) ADM created with the present EPS does not forward the names given for audioProgrammes to MPEG-H tools (ADMInfo and EncMux - although the audio itself can get encoded).
FH IIS states, that's due to the fact EPS only works on "ADM Revision 1" (BS.2076-1).
True?

Add additional speaker setups to DirectSpeakers plugin

For the monitoring plugins it makes sense to limit ourselves to the setups in BS.2051, but I realised, that this does not really make sense for the DirectSpeakers plugin. It is reasonable to assume, that one e.g. might also want to add a 5.0 source to a mix.
Does it make sense to allow all the setups which are defined in the common definitions?

(comment)
I think so. You're never going to get complaints that you support too many speaker layouts :) but you might if someone tries to import an ADM file with a common def directspeakers pack that isn't supported.

I allow all in the ADM Export VST, simply because they may be useful and it's no extra effort to include them. In fact, with the way that code works, it would have been more effort to exclude some - I just iterate common def pack formats with the directspeakers type definition and use a simple string manipulation method to make a "friendly" name out of the pack format names.

Copied From Issue 144 on gitlab

ADM metadata not embedded in WAVs

I want to write a script in Premiere to extract pan, roll, tilt (yaw/pitch/roll) metadata from any VR clips. I was thinking of converting this metadata to axml so could load it in REAPER using EAR.

Is importing metdata that is not embedded in a WAV supported?

canMediaExplode_QuickCheck still too slow for large files

Matt Firth

Tested with 3.7Gb turning forrest - took a very long time for right-click menu to appear!

Needs testing in Release, but suspect it will still be slower than would be desired.

Richard Bailey

Yeah, it was a fraction of a second when I tried it on release, but given that was for a file stored on a fairly insane SSD and it's a context menu likely to be used all the time, any perceptible delay is probably bad news. Could just disable the menu on the things that are quick to check (multiple selection) and have the action fail politely on things that are slow (ADM or not).

from https://github.com/bbc/rd-iic-audio-reaper_adm/issues/51

Stack Buffer Overrun in Ear Object.vst3

Seen in v0.6.0 when opening Object UI (user was trying to set up automation recording at the time)

Faulting application name: reaper.exe, version: 6.1.8.0, time stamp: 0x5fc6b478
Faulting module name: EAR Object.vst3, version: 0.0.0.0, time stamp: 0x5f5fee65
Exception code: 0xc0000409
Fault offset: 0x000000000026a48d

Length of ADM Export from Reaper

ADM Export from Reaper always takes the 'entire project' i.e. full length
Any audio file on the timeline is regarded as being part of a desired ADM.
This is certainly useful in order to 'not forget' any part of the production.
However, restrict the export (as otherwise in Reaper possible) to a 'custom time range' or a 'time selection' would occasionally be advantageous. (the other options 'project regions' and 'selected regions' appear less appropriate).

Background: At times it seems that EPS plays tricks, when I try to trim a production to a certain length by ignoring set limits in the session. (and no: this is not due to not knowing about the effects of the "tail length" ;) )

ElementOverview causes GUI lag with lots of metadata

There are a lot of calls to setProgramme when you have a lot of incoming metadata. There seems to be two sources of slowdown in this method;

  • the copying of the programme and item store
  • the call to repaint

The lag is very evident from about 1:12 in Protest after being exploded.

If you comment out all those lines, it continues flawlessly. If you leave either the repaint() call or the itemStore copy uncommented, you start to see REAPERs GUI lagging, so they are both suspect.

Interestingly, if you uncomment the repaint() call but comment out everything in the paint() method, you still get a lot of lag - so it's not actually the paint itself that seems to be responsible - possibly something in the hierarchy of painting in JUCE.

Increasing the VU meter update frequency in REAPER helps reducing this effect, but it does not prevent it. It seems to occure when REAPER is displayed on a HighDPI-Display.

Crash in Monitoring plugins when re-scanning plugin cache

The monitor plugin crashes when you try to clear and rescan the plugin cache given there is a loaded project. After some debugging with Xcode the plugin crashes while trying to update the gains somewhere in the SceneGainCalculator.

From gitlab issue 120

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.