LSP Plugins 1.1.11 is ready!

Тема в разделе "WASM.PROJECTS", создана пользователем SadKo, 21 дек 2019.

  1. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    This release is published exactly 4 years after the 1.0.0 release of LSP Plugins and is aimed to close many core and UI technical debts. All these changes make LSP Project much better in the UI experience and much faster from the DSP perspective.

    That's because support of additional features like drag&drop, bookmarks and some other neat features were added to the graphical toolkit.

    From the other side, low-level DSP code is additionally optimized with AVX and AVX2 instruction sets which allow to gain additional performance benefits on processors which have fast AVX implementation (All Intel Core 6 generation processors and above, AMD Zen generation processors and above). There was improved support of AArch64 architecture, and some part of DSP code already has been ported to this architecture. The DSP code for ARMv7 architecture also has been additionally refactored and optimized.

    Also, the project became more portable because introduced it's own support of XML document parsing mechanism and does not require the *expat* library more.

    The overall list of changes is the following:
    • Source code now compiles for the ARMv6A architecture.
    • Implemented incoming drag & drop events support for sample loading and file loading widgets.
    • Added possibility to double-click the parameter's value and enter it manually with keyboard.
    • Added bookmark support by file opening/saving dialogs. Bookmarks are also automatically imported from GNOME/KDE desktop environments' configuration files.
    • Refactored UI of the Parameteric Equalizer plugin series.
    • Added allpass filters to Parametric Equalizer plugin.
    • Added knobs that allow to simultaneously shift frequency for all active filters in the Parametric Equalizer plugin series.
    • Added support of RoomEQ Wizard configuration file format import by Parametric Equalizer plugin series.
    • Refactored UI of the Graphic Equalizer plugin series.
    • Updated UI of the Multiband Compressor plugin series.
    • Implemented allpass filters that add phase compensation for the classic mode of the Multiband compressor and allow to achieve flat frequency response.
    • Changed reverb simulation algorithm for the Room Builder plugin: the algorithm now handles capture objects as opaque objects, not part of the 3D scene. So the number and location of the captures does not impact the audio simulations. This allows to render the impulse response in more accurate way. However, even after some set of additional optimizations has been made, this yields to some performance degradation because there are much more ray groups required to be processed.
    • Added possibility to export state to clipboard and import state from clipboard from the UI of any plugin.
    • Added possibility to freeze all graphs in the Spectrum Analyzer simultaneously.
    • Added MIDI groups to Multisampler plugin series.
    • Added possibility to control how panning and gain controls affect the signal passed to the direct output tracks of the Multisampler plugin.
    • Implemented JSON and JSON5 parsing and serializing mechanisms.
    • Implemented XML parsing mechanism without built-in DOCTYPE definition support.
    • Removed EXPAT library from build dependencies since LSP Plugins have their own XML parser.
    • Implemented more advanced expression language for UIs.
    • Implemented styling system and basic styling mechanism for UIs.
    • Additionally optimized DSP biquad filters for 32-bit ARM NEON instruction set.
    • Additional DSP optimizations for AArch64 architecture.
    • Additional DSP optimizations of code with AVX, AVX2 and FMA3 instruction set for i586 and x86_64 architectures.
    • Refactored clipboard mechanism for X11 protocol, addes support of INCR selection transfer protocol.
    • Refactoring of the UI widgets, eliminated old UI code and some deprecated facilities from all widgets.
    • Implemented basic styling mechanism for UI widgets.
    • Implemented ipc::Process class that allows to run nested processes with I/O redirection. Code now prefers vfork() system call agains fork().
    • Fixed memory corruption bug in Analyzer core module that could crash the system on non-power-of-two buffer sizes. Affected plugins: Parametric Equalizer, Graphic Equalizer, Spectrum Analyzer, Multiband Compressor.
    • Fixed GLX context synchronization issues that could lead to crashes on several systems.
    • Fixed bug with improper mouse pointer coordinates for nested menus.
    • Fixed bug with improper latency value reported by Limiter plugin series.
    • Fixed corrupted LADSPA binaries due to lack of objects that contain non-required built-in resources. Replaced objects with empty stubs.
    • Fixed problem of improper loading of 3D Wavefont OBJ files that was caused by improper texture coordinate handling.
    • Build fixes for AArch64 architecture related to CPU feature detection.
    • Updated VST state serialization mechanism to version 3: now plugin properly handle state if there is no chunk header in the chunk data passed from the host.

    Project page: http://lsp-plug.in/
    Support the project: https://salt.bountysource.com/teams/lsp-plugins
     
    UbIvItS нравится это.
  2. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.077
    тут хочу напомнить нашу предыдущую беседу.
    если сделаешь динамическую реверберацию, то выч. моменты станут гораздо проще. Ты же пишешь плагин для муз. эффектов, а не для научных симуляций акустики в комнатах. к тому же, если её реально писать == там куча-чего и всё оно крайне печально:crazy::crazy::crazy: нужно учитывать температуру, потоки воздуха итд-итп. даже не самая мажорная симуляция легко уронит суперкомп :blush2:

    ЗЫ.. ещё хочу задать несколько еретический вопросик == Твой плагин в аких комерс прогах под выньку пашет?
     
  3. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    Динамическую реверберацию мне пока видится сделать возможной только в таком ключе: взять опорные точки в пространстве и нарендерить для них импульсные отклики.
    А дальше уже в зависимости от местоположения текущей точки захвата в пространстве смешивать эти импульсные отклики в заданных пропорциях и подавать на вход свёрточному процессору.
    Но даже сейчас это выглядит как очень такой ресурсожручий механизм.

    Сейчас ни в каких. Я ещё толком под венду свой код не портанул. Но задел есть.
     
  4. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.077
    проще можно сделать == юзверь на вход перечисляет наборы гармоник и для каждой задаёт коэф затухания/усиления/задержки. этот коэф может описываться чрез юзверьский скрипт. можно ещё внедрить угол поворота "уха", чтоб к нему тоже можно было привязать коэф. То бишь речь идёт о динамическом фильтре частот, где юзерь сию динамику описывает.
     
  5. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    К сожалению, вынужден констатировать факт, что одна инструкция CPU превратила релиз в выкладку :dntknw:.
    Если вы используете lsp-plugins на процессоре, у которого есть поддержка AVX и нет поддержки AVX2, пожалуйста не применяйте апдейт: код будет пытаться вызвать не реализованный на вашем процессоре вариант инструкции vbroadcastss и, как следствие, падать. В ближайшее время будет подготовлен фикс.
    Связанная задача: https://github.com/sadko4u/lsp-plugins/issues/61
     
  6. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург