meters.lv2 is a collection of audio-level meters with GUI in LV2 plugin format

Overview

meters.lv2 - Audio Level Meters

meters.lv2 is a collection of audio-level meters with GUI in LV2 plugin format.

It includes needle style meters (mono and stereo variants)

  • IEC 60268-10 Type I / DIN
  • IEC 60268-10 Type I / Nordic
  • IEC 60268-10 Type IIa / BBC
  • IEC 60268-10 Type IIb / EBU
  • IEC 60268-17 / VU

Stereo & Mono variants of bar-graph meters:

  • 30 Band 1/3 octave spectrum analyzer IEC 61260
  • Digital True-Peak Meter (4x Oversampling), Type II rise-time, 13.3dB/s falloff.
  • True-Peak (4x Oversampling) + RMS (600ms integration time) combined with numeric readout
  • K-12, K-14, K-20 / RMS type K-Meters according to the K-system introduced by Bob Katz
  • DR-14 (crest factor / loudness range measurement method)

and the following stereo plugins:

  • EBU R128 Meter with Histogram and History
  • Stereo Phase Correlation Meter (Needle Display)
  • BBC Mid/Side M-6 (Needle Display)
  • Goniometer (Stereo Phase Scope)
  • Phase/Frequency Wheel
  • Stereo/Frequency Monitor

as well as a mono:

  • Signal Distribution Histogram
  • Bitmeter

Usage

Should be pretty much self-explanatory. A few notes:

  • click + drag on the calibration-screw allows to modify the reference level of the needle meters
  • shift + click on the calibration-screw resets to default
  • ctrl + click on meters with scalable GUI resets the window-size to 100%
  • clicking anywhere on the bar-graph meters resets the peak-hold

Install

Compiling these plugin requires the LV2 SDK, gnu-make, a c-compiler, libpango, libcairo and openGL (sometimes called: glu, glx, mesa).

  git clone git://github.com/x42/meters.lv2.git
  cd meters.lv2
  make submodules
  make
  sudo make install PREFIX=/usr

Note to packagers: The Makefile honors PREFIX and DESTDIR variables as well as CFLAGS, LDFLAGS and OPTIMIZATIONS (additions to CFLAGS), also see the first 10 lines of the Makefile. You really want to package the superset of x42-plugins.

Note on build-dependencies

These plugins count on rather recent (Jan 2013) fixes^Wfeatures of some libraries (but may work with older versions too):

In particular multi-threading in cairo, pixman and pango. Versions of those libraries earlier than libcairo < 1.12.10, libpixman < 0.30.2 and libpango < 1.32.6 are not thread-safe. As with all concurrency issues, things may or may not work and if you only open one meter GUI at a time it's usually fine.

Also note that the plugins use the LV2 idle-interface (lv2 >= 1.4.2) The plugin-host (eg. ardour or qtractor) needs to be compiled with this or a later version of the LV2 SDK to support the features.

The plugin-host must also support http://lv2plug.in/ns/ext/resize-port/

Screenshots

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

Comments
  • spectrum analiser has 20k 'noise'

    spectrum analiser has 20k 'noise'

    There is a slow build up of the 20k band. After a day or 2 it was at -30 dB.

    This is in Ardour 4.7, in stop mode, on a track with no inputs and with the other plugins bypassed.

    plugin built from x42-plugins-20150702.tar.xz

    opened by magnetophon 10
  • build fails on Big Sur

    build fails on Big Sur

    had to export RW=robtk/ after make submodules ( documentation issue ?) to find robtk finally failed with

    c++ -I/usr/local/opt/zlib/include -I/usr/local/opt/sqlite/include -I/usr/local/opt/readline/include -I/usr/local/opt/[email protected]/include -Wall -Wno-unused-function -g -msse -msse2 -mfpmath=sse -fomit-frame-pointer -O3 -fno-finite-math-only -DNDEBUG -DXTERNAL_UI -DHAVE_LV2_1_8 -fPIC -fvisibility=hidden pkg-config --cflags lv2 -DVERSION=""0.9.18-2"" -I. -DHAVE_IDLE_IFACE pkg-config --cflags cairo pango -DUSE_GUI_THREAD -pthread
    -o build/meters_glui.dylib gui/meters.c
    obj/pugl.o obj/needleUI_gl.o obj/eburUI_gl.o obj/goniometerUI_gl.o obj/dpmUI_gl.o obj/kmeterUI_gl.o obj/phasewheelUI_gl.o obj/stereoscopeUI_gl.o obj/dr14meterUI_gl.o obj/sdhmeterUI_gl.o obj/bitmeterUI_gl.o obj/surmeterUI_gl.o
    pkg-config --cflags --libs fftw3f -lm zita-resampler/resampler.cc zita-resampler/resampler-table.cc
    -shared -dynamiclib -L/usr/local/opt/bzip2/lib -L/usr/local/opt/zlib/lib -L/usr/local/opt/sqlite/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/[email protected]/lib -framework Cocoa -framework OpenGL pkg-config --libs cairo pangocairo pango clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated] clang: error: no such file or directory: 'obj/pugl.o' clang: error: no such file or directory: 'obj/needleUI_gl.o' clang: error: no such file or directory: 'obj/eburUI_gl.o' clang: error: no such file or directory: 'obj/goniometerUI_gl.o' clang: error: no such file or directory: 'obj/dpmUI_gl.o' clang: error: no such file or directory: 'obj/kmeterUI_gl.o' clang: error: no such file or directory: 'obj/phasewheelUI_gl.o' clang: error: no such file or directory: 'obj/stereoscopeUI_gl.o' clang: error: no such file or directory: 'obj/dr14meterUI_gl.o' clang: error: no such file or directory: 'obj/sdhmeterUI_gl.o' clang: error: no such file or directory: 'obj/bitmeterUI_gl.o' clang: error: no such file or directory: 'obj/surmeterUI_gl.o' make: *** [build/meters_glui.dylib] Error 1

    Did I miss something?

    opened by andistern 9
  • Disable always-on-top

    Disable always-on-top

    All meter windows are always-on-top (Arch/XFCE/Carla) and i can't let them run in background without closing all windows manually. Other plugins behave properly (Calf, wolf spectrum..). Can you make that optional?

    opened by BlueMax 6
  • GUIs not drawing

    GUIs not drawing

    After a recent update all my x42 meter plugins stopped to draw their interface. There are either black windows shown or some messed up pixmaps from X11 cache (I guess). bitmeter

    This renders the entire plugin suite unusable. Does anybody have the same problem?

    opened by unfa 5
  • Crash with multiple meters (in Carla host)

    Crash with multiple meters (in Carla host)

    When i have two 'UV meters' open in custom gui they run for some seconds and then crash/freeze Carla (no screen/window updates, sound continues properly). This also happens when i add/remove/add another x42 plugin. It doesn't happen if i 'replace' the plugin. It works properly if i just add one plugin and keep it. Other plugins (non-x42) work fine with multiple instances/plugins.

    The bug itself seems xorg or nouveau related. Sometimes just the Carla window freezes, sometimes the whole graphic backend/keyboard (x11?) is frozen. I can always SSH into the machine and kill Carla though and get the system back.

    Here is a log fragment.

    Any idea what could be wrong?

    Linux 5.2.0-arch2-1-ARCH SMP PREEMPT Mon Jul 8 18:18:54 UTC 2019 x86_64 GNU/Linux jack2-dbus 1.9.12 x42-plugins 20190714 carla 2.0.0 cadence 0.9.0 nouveau kms + glamor (GTX770/NVE0) xorg-server 1.20.5 mesa 19.1.2

    Carla

    opened by BlueMax 3
  • Realtime Spectrogram

    Realtime Spectrogram

    Hi Robin, there are no realtime spectrogram that I know of as an lv2 plugin. Would a plugin like that fit in this collection? It would be really useful for people working in post production. Thanks again for your wonderful work!

    opened by lucianodato 3
  • Dynamic Range Meter According to Pleasurize Music Foundation

    Dynamic Range Meter According to Pleasurize Music Foundation

    I don't know if this is the best place to suggest this but it would be great to have a DR meter that mimic TT Dynamic Range Meter (different to LU dynamic range in EBU r128 meter) available in this awesome collection. I found this two projects that may help: https://github.com/adiblol/dr_meter https://github.com/simon-r/dr14_t.meter Please don't doubt to delete this if is the wrong place or wrong request. Thank you Robin for all your work.

    enhancement 
    opened by lucianodato 3
  • missing gobject-2.0 LDFLAGS

    missing gobject-2.0 LDFLAGS

    I get the following error when building just using make

    g++  -I. -Wall -Wno-unused-function -g -msse -msse2 -mfpmath=sse -fomit-frame-pointer -O3 -fno-finite-math-only -DNDEBUG -DXTERNAL_UI -DHAVE_LV2_1_8 -fPIC -fvisibility=hidden `pkg-config --cflags lv2` -DVERSION="\"0.4.027-12\"" -DVERSION="\"0.4.027-12\"" `pkg-config --cflags cairo pangocairo pango` -Irobtk/ -DDISPLAY_INTERFACE -I.  `pkg-config --cflags jack lv2 pango pangocairo ` -pthread -DDEFAULT_NOT_ONTOP \
      -DXTERNAL_UI -DHAVE_IDLE_IFACE \
      -DJACK_DESCRIPT="\"lv2ttl/plugins.h\"" \
      -DAPPNAME="\"meter\"" \
      -o x42/x42-meter-collection \
      robtk/jackwrap.c robtk/pugl/pugl_x11.c   \
      -DX42_MULTIPLUGIN src/meters.cc jmeters/vumeterdsp.cc jmeters/iec1ppmdsp.cc jmeters/iec2ppmdsp.cc jmeters/stcorrdsp.cc jmeters/msppmdsp.cc ebumeter/ebu_r128_proc.cc jmeters/truepeakdsp.cc jmeters/kmeterdsp.cc zita-resampler/resampler.cc zita-resampler/resampler-table.cc x42/x42-ebur128.o x42/x42-phase-correlation.o x42/x42-dr14.o x42/x42-k20rms.o x42/x42-goniometer.o x42/x42-phasewheel.o x42/x42-histogram.o x42/x42-bitmeter.o x42/x42-surmeter.o x42/x42-spectrum30.o x42/x42-stereoscope.o x42/x42-truepeakrms.o `pkg-config --cflags --libs fftw3f` -lm \
       -lm -lX11 `pkg-config --libs  cairo pangocairo pango glu gl`  `pkg-config  --libs jack`
    robtk/jackwrap.c:271:84: warning: ‘LV2_URI_Map_Callback_Data’ is deprecated [-Wdeprecated-declarations]
     static uint32_t uri_to_id (LV2_URI_Map_Callback_Data callback_data, const char* uri);
                                                                                        ^
    robtk/jackwrap.c:821:68: warning: ‘LV2_URI_Map_Callback_Data’ is deprecated [-Wdeprecated-declarations]
     uri_to_id (LV2_URI_Map_Callback_Data callback_data, const char* uri)
                                                                        ^
    robtk/jackwrap.c: In function ‘int main(int, char**)’:
    robtk/jackwrap.c:1440:17: warning: variable ‘osc_port’ set but not used [-Wunused-but-set-variable]
      int            osc_port         = 0;
                     ^~~~~~~~
    /usr/sbin/ld: /tmp/ccbGEONX.o: undefined reference to symbol 'g_object_unref'
    /usr/sbin/ld: /usr/lib/libgobject-2.0.so.0: error adding symbols: DSO missing from command line
    collect2: error: ld returned 1 exit status
    make: *** [robtk/robtk.mk:124: x42/x42-meter-collection] Error 1
    

    fixed by using

    LDFLAGS+=`pkg-config --libs gobject-2.0` make
    
    opened by alex-tee 2
  • add lv2:optionalFeature idisp:queue_draw and lv2:extensionData idisp:interface to *.ttl where appropriate

    add lv2:optionalFeature idisp:queue_draw and lv2:extensionData idisp:interface to *.ttl where appropriate

    Title says it. Hosts supporting the inlinedisplay extension but relying on proper advertising of its support plugin-wise won't be able to show any fancy graphs

    opened by ventosus 2
  • Stereo Phase Scope vectorscope refreshing problems

    Stereo Phase Scope vectorscope refreshing problems

    The Stereo Phase Scope seems to not draw the vectorscope. It displays the "Visual buffer overflow" warning message in the bottow right corner, and doesn't draw the yellow dots, or draws them once and keeps that "snapshot" for a few minutes. Sometimes the stuck vectorscope shows randomly on it's own, but it shows every time I enable CRT persistency. The display doesn't react immediately to point size change or other settings though, they seems to take effect with next refresh of the vectorscope (for example after 2 minutes).

    stereo phase scope

    Here's a stuck snapchot that shows only when CRT persistency is enabled, it dissapears when I turn it off:

    stereo phase scope1 stereo phase scope2 stereo phase scope3

    Here we can see two point sizes overlaping becasue if the CRT persistency. It took a few minutes to draw the big dots on top of the small ones:

    stereo phase scope4

    opened by unfa 2
  • lv2lint fails on surround8 meters plugin

    lv2lint fails on surround8 meters plugin

    When packaging x42-plugins 20200714 for Arch Linux I ran lv2lint 0.6.0 against them.

    It seems that the surround8 variant of the meters plugin does not validate:

    $ lv2lint -Mpack "http://gareus.org/oss/lv2/meters#surround8"                                                                                                                                                                                                  [1]
    lv2lint 0.6.0
    Copyright (c) 2016-2020 Hanspeter Portner ([email protected])
    Released under Artistic License 2.0 by Open Music Kontrollers
    <http://gareus.org/oss/lv2/meters#surround8>
      {24 : peak4}
        [FAIL]  Symbol
                  lv2:symbol not unique
                  seeAlso: <http://lv2plug.in/ns/lv2core#symbol>
      {28 : peak4}
        [FAIL]  Symbol
                  lv2:symbol not unique
                  seeAlso: <http://lv2plug.in/ns/lv2core#symbol>
      <http://gareus.org/oss/lv2/meters#surmeterui_gl>
        [WARN]  Toolkit
                  usage of unofficial external UI is discouraged
                  seeAlso: <http://kxstudio.sf.net/ns/lv2ext/external-ui#Widget>
    

    The above output is from the system installed version contained in x42-plugins 20200411.

    The below is from the build environment (fox x42-plugins 20200714):

    lv2lint 0.6.0
    Copyright (c) 2016-2020 Hanspeter Portner ([email protected])
    Released under Artistic License 2.0 by Open Music Kontrollers
    <http://gareus.org/oss/lv2/meters#surround8>
      {24 : peak4}
        [FAIL]  Symbol
                  lv2:symbol not unique
                  seeAlso: <http://lv2plug.in/ns/lv2core#symbol>
      {28 : peak4}
        [FAIL]  Symbol
                  lv2:symbol not unique
                  seeAlso: <http://lv2plug.in/ns/lv2core#symbol>
      <http://gareus.org/oss/lv2/meters#surmeterui_gl>
        [WARN]  Toolkit
                  usage of unofficial external UI is discouraged
                  seeAlso: <http://kxstudio.sf.net/ns/lv2ext/external-ui#Widget>
    
    opened by dvzrv 1
  • Prerequisite Installation Documentation

    Prerequisite Installation Documentation

    Problem:

    Prerequisites are vague in the documentation, some prerequisites are not even listed such as fftw3.

    Solution:

    Prerequisites should be defined and installation instructions provided within the documentation.

    opened by WMRamadan 0
  • Integrated should start reporting after 400ms not 5 seconds

    Integrated should start reporting after 400ms not 5 seconds

    I've been reading though the specifications again and I don't see any reason why integrated cannot start being reported after the first 400ms analysis window (followed by subsequent 100ms updates).

    opened by ghost 0
  • Floating GUI behaviour with Reaper's new LV2 support

    Floating GUI behaviour with Reaper's new LV2 support

    Hi! As you may or may not know, the Reaper devs are finally adding LV2 support. This is included in their current Release Candidate build, so it likely should be in the next stable release. I've been using the dev builds, and while I haven't been testing the LV2 support very thoroughly, a decent number of plugins I've tried have appeared to work without issues, including some of the x42 plugins. Now, with the Meter plugins specifically, I've encountered a mildly annoying issue with floating GUIs. I've brought this behaviour up in Reaper's forums, and it seems they're unable to easily fix this on Reaper's end. One of the devs told me: "Those plug-ins have UIs that only exist as floating widgets (that are not embeddable in the chain window)".

    While I don't understand much about what's happening here under the hood, I'll try to describe what's going on from a user's point of view. Reaper can basically open plugin windows in two ways, either as an independent floating window, or embedded inside what they call the FX chain window, where you can easily switch between the plugins of a track. And each plugin can naturally also be displayed either with a generic UI or with the plugin's own GUI. Now this is where it gets weird with the Meter plugins. When I open one of them in the FX chain window, it displays the generic UI in the chain window, and simultaneously opens a separate floating GUI window, making me close two windows every time I'm done using the plugin GUI. This floating window is also a little different from usual, lacking typical controls on the DAW's side (I believe this was a fix made by the devs to mitigate some of the issues with these floating widgets—at an earlier stage it would always open two windows, even when attempting to only open the floating window).

    I've only ever seen this behaviour with the x42 Meter plugins. All others I use open without issues, with their own GUI, inside the FX chain window. It's more an annoyance than a real issue (it's possible to just open the floating GUI directly, without the chain window), but still... I don't know if there's any way to easily fix this, if it's related to the fundamentals of how GUIs are displayed by these plugins. But any ideas would be appreciated. There aren't a whole lot of good native Linux audio monitoring plugins around that I know of, so I would like to keep using these, without any extra annoyances. :)

    image

    opened by elcalenx 3
  • x42-meter freeze my machines with nvidia driver

    x42-meter freeze my machines with nvidia driver

    Hello, x42meter plugins crash fairly quickly on my two machines having in common the nvidia drivers. Everything goes well when I test these plugins on "non-nvidia" machines.

    Distribution: debian stretch, kernel 4.9.0.3 rt, nvidia-legacy-304-xx driver, modules tested : the whole series of x42-meters, in standalone or in plugin with ardour. version 0.9.3 ( debian stretch ) or the latest 0.9.14 demo , same results.

    The plugin tested is alone. Playing with the plugin window quickly leads to a blocking of the whole machine, mandatory reboot.

    Thanks for all your work on linux and ardour, and for your help

    opened by PhilippePloquin 5
  • Multi channel Support

    Multi channel Support

    Hi x42,

    This looks fantastic!

    I'm wondering if you have thought of supporting 4 channel audio goniometer? There a a number of quad/multi-channel enthusiasts that are moving to PC based listening that would love to see their music in a goniometer as in the 'old days' they could buy vector scopes for quad (see example below):

    https://www.youtube.com/watch?v=fZxvrwlFjaU

    If you are not interested I'd be willing to have a hack but to be quite honest I've got no background in technical audio or mathematics so I'd need advice or your thoughts on how to even implement the theory. But you code would be a good start.

    THX Garry

    opened by HomerJau 1
Multi-dimensional dynamically distorted staggered multi-bandpass LV2 plugin

B.Angr A multi-dimensional dynamicly distorted staggered multi-bandpass LV2 plugin, for extreme soundmangling. Based on Airwindows XRegion. Key featur

null 21 Nov 7, 2022
Pure Data patch export to lv2 plugin using heavy compiler + dpf example

Pure Data patch export to lv2 plugin using heavy compiler + dpf example Work in progress - Takes an audio input and writes to a 0.5 seconds buffers. 4

Qwrtst 3 Dec 27, 2022
A lightweight additive chiptune synthesizer (LV2 and Unity Plugin)

OvenMit Synthesizer kenakofer's first ever synthesizer! Coming initially out of BMusic's excellent tutoral series for lv2 synthesizers, the developer

Kenan Schaefkofer 8 Dec 8, 2022
The OpenEXR project provides the specification and reference implementation of the EXR file format, the professional-grade image storage format of the motion picture industry.

OpenEXR OpenEXR provides the specification and reference implementation of the EXR file format, the professional-grade image storage format of the mot

Academy Software Foundation 1.3k Jan 6, 2023
(Simple String Format) is an syntax of format and a library for parse this.

SSFMT (Simple String Format) is an syntax of format and a library for parse this. SSFMT != {fmt} SSFMT is NOT an API/library for parse {fmt} syntax !

null 2 Jan 30, 2022
High-level interface for low-level programming

Singeli Singeli is now able to compile useful programs to C, but it's very rough around the edges, with poor error reporting. We are beginning to use

Marshall Lochbaum 40 Dec 30, 2022
A water tank level sensor **Built With WisBlock** to detect overflow and low level conditions.

RAK12014 Laser TOF sensor coming soon WisBlock Watertank Level Sensor Watertank Overflow detection using the RAKwireless WisBlock modules. It implemen

Bernd Giesecke 3 Feb 3, 2022
Programming tutorial series for creating LV2 plugins using C/C++ and turtle.

Programming LV2 Plugins From Scratch Programming tutorial series for creating LV2 plugins using C/C++ and turtle. Content Programming LV2 Plugins From

null 34 Dec 24, 2022
A personal collection of Windows CVE I have turned in to exploit source, as well as a collection of payloads I've written to be used in conjunction with these exploits.

This repository contains a personal collection of Windows CVE I have turned in to exploit source, as well as a collection of payloads I've written to

null 85 Dec 28, 2022
Audio plugin host

Carla Plugin Host What is Carla? Carla is a fully-featured audio plugin host, with support for many audio drivers and plugin formats. It's open source

Filipe Coelho 1.2k Dec 24, 2022
mini-plugin host as plugin

DISTRHO Ildaeil DISTRHO Ildaeil is mini-plugin host working as a plugin, allowing one-to-one plugin format reusage. Load a VST2 plugin inside a LV2 ho

DISTRHO 58 Dec 12, 2022
Converts file formats supported by AdPlug to VGM format.

adlib2vgm Converts file formats supported by AdPlug to VGM format. Notice This tool is originally designed to work with the RetroWave OPL3 Sound Card.

SudoMaker 16 Nov 25, 2022
(R) Efficient methods and operators for the sparse matrix classes in 'Matrix' (esp. CSR format or "RsparseMatrix")

MatrixExtra MatrixExtra is an R package which extends the sparse matrix and sparse vector types in the Matrix package, particularly the CSR or Rsparse

null 15 Aug 29, 2022
A free, open-source compressor for the ZX0 format

salvador -- a fast, near-optimal compressor for the ZX0 format salvador is a command-line tool and a library that compresses bitstreams in the ZX0 for

Emmanuel Marty 35 Dec 26, 2022
Immersive IMM Format and Player

Introduction Immersive media (IMM) is an API-neutral runtime immersive media delivery format. IMM provides an efficient, extensible, interoperable for

null 42 Dec 19, 2022
format lua code

EmmyLuaCodeStyle 项目介绍 该项目是基于C++的lua代码格式化算法库 经过长期实践,发现人们对格式化算法的预期是尽可能少的改动代码的行布局,而列布局符合基本审美就可以了。 基于这样的想法我设计并实现了lua格式化算法 格式化行为介绍 基本语句 该算法的主要特点是分析并对当前代码做出

null 58 Jan 8, 2023
A format converter for surface mesh intergrated with muli tools.

MeshConverter A format converter for surface mesh intergrated with small tools for fast surface mesh modification in CFD application scenarios. Build

yhf 4 Jul 22, 2022
Quite OK Image (QOI) format encoder/decoder

This project implements encoding and decoding the "Quite OK Image" (QOI) format in the Ć programming language. Ć can be automatically translated to pu

Piotr Fusik 50 Dec 25, 2022
Standardise code formating for cmake projects with git and clang-format

git-cmake-format This project aims to provide a quick and easy way to integrate clang-format into your CMake project hosted in a git repository, it co

Kenneth Benzie 50 Dec 28, 2022