GithubHelp home page GithubHelp logo

sjaehn / boops Goto Github PK

View Code? Open in Web Editor NEW
69.0 6.0 2.0 41.48 MB

Sound glitch effect sequencer LV2 plugin

License: GNU General Public License v3.0

Makefile 0.31% C++ 79.05% C 17.54% Objective-C 3.09%
lv2 glitch

boops's People

Contributors

biopsin avatar sjaehn 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

cmaughan biopsin

boops's Issues

Crash in jalv.gtk3

Crash with jalv.gtk3 (1.6.4). Happens sometimes, not very often. gdb jalv.gtk3 core output:

#0  BOopsGUI::port_event(unsigned int, unsigned int, unsigned int, void const*)
    (this=
    0x5569cd7c3430, port=1065353216, buffer_size=0, format=0, buffer=0x5569ce69aaf0) at ../../src/BOopsGUI.cpp:694
#1  0x00007f43d8d375a0 in port_event(LV2UI_Handle, uint32_t, uint32_t, uint32_t, void const*)
    (ui=0x5569cd7c3430, port_index=1065353216, buffer_size=0, format=0, buffer=0x5569ce69aaf0) at ../../src/BOopsGUI.cpp:2766
#2  0x00005569cbab7790 in  ()
#3  0x00005569cbaaf4f8 in  ()
#4  0x00007f43e31fca08 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f43e31fbe6e in g_main_context_dispatch ()
    at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007f43e31fc220 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#7  0x00007f43e31fc513 in g_main_loop_run ()
    at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#8  0x00007f43e368637d in gtk_main () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#9  0x00005569cbab7bd7 in  ()
#10 0x00005569cbaad768 in  ()
#11 0x00007f43e2fdf0b3 in __libc_start_main (main=
    0x5569cbaad690, argc=2, argv=0x7ffe6021e6d8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffe6021e6c8)
    at ../csu/libc-start.c:308
--Type <RET> for more, q to quit, c to continue without paging--
#12 0x00005569cbaad7ce in  ()

Very interesting point: port_index = 1065353216 (= 0x3f800000 = 1.0f). Whereas buffer_size = 0.

Need a name - any ideas welcome

The project started as "B.Glitchr". Some other suggestions:

  • B.Mess
  • B.Wildr
  • B.Pandora
  • B.GlitchBoxx
  • B.GlitJar

What do you prefer? Any other ideas?

stutter effect sounds different every time it repeats

idk how to explain this, but in the linked ardour project, i have a drum loop with b.oops on it with a stutter effect set to note mode and i have a midi track sending midi data to the plugin. when you set the drum break on a loop, i noticed that every time the stutter effect starts, it sounds different each time, like it's taking a different portion of the audio each time. it also sounds different if you move the notes around and put them back in the same place

i guess i'll just let you see for yourself (the drum loop is in the archive folder)

boopstest.tar.gz

directly trigger effects via midi

note: if there's already a way to do this, please tell me!

anyways, it would be nice if you could directly trigger individual effects via midi without having to use patterns. i find that using the patterns is a bit finicky, and i'd love to be able to create complex effect sequences in my daw without having to program every bar or whatever individually (and there are only sixteen of them anyway, so)

Build error on Fedora 32

I build Boops on Fedora 32.
I met the following error message:

Build BOops.lv2 DSP...src/BOops.cpp: In member function 'LV2_State_Status BOops::state_save(LV2_State_Store_Function, LV2_State_Handle, uint32_t, const LV2_Feature* const*)':
src/BOops.cpp:1176:3: error: 'LV2_State_Free_Path' was not declared in this scope; did you mean 'LV2_State_Make_Path'?
 1176 |   LV2_State_Free_Path* freePath = NULL;
      |   ^~~~~~~~~~~~~~~~~~~
      |   LV2_State_Make_Path
src/BOops.cpp:1176:24: error: 'freePath' was not declared in this scope
 1176 |   LV2_State_Free_Path* freePath = NULL;
      |                        ^~~~~~~~
src/BOops.cpp:1181:4: error: 'LV2_STATE__freePath' was not declared in this scope; did you mean 'LV2_STATE__makePath'?
 1181 |    LV2_STATE__freePath, &freePath, false,
      |    ^~~~~~~~~~~~~~~~~~~
      |    LV2_STATE__makePath
src/BOops.cpp: In member function 'LV2_State_Status BOops::state_restore(LV2_State_Retrieve_Function, LV2_State_Handle, uint32_t, const LV2_Feature* const*)':
src/BOops.cpp:1306:2: error: 'LV2_State_Free_Path' was not declared in this scope; did you mean 'LV2_State_Make_Path'?
 1306 |  LV2_State_Free_Path* freePath = nullptr;
      |  ^~~~~~~~~~~~~~~~~~~
      |  LV2_State_Make_Path
src/BOops.cpp:1306:23: error: 'freePath' was not declared in this scope
 1306 |  LV2_State_Free_Path* freePath = nullptr;
      |                       ^~~~~~~~
src/BOops.cpp:1311:3: error: 'LV2_STATE__freePath' was not declared in this scope; did you mean 'LV2_STATE__makePath'?
 1311 |   LV2_STATE__freePath, &freePath, false,
      |   ^~~~~~~~~~~~~~~~~~~
      |   LV2_STATE__makePath
In file included from src/Slot.hpp:26,
                 from src/Slot.cpp:22:
src/Stereo.hpp: In member function 'virtual Stereo FxRingModulator::play(double, double, double)':
src/Stereo.hpp:79:8: warning: 'f' may be used uninitialized in this function [-Wmaybe-uninitialized]
   79 |   left *= rhs;
      |   ~~~~~^~~~~~
In file included from src/Slot.cpp:48:
src/FxRingModulator.hpp:61:9: note: 'f' was declared here
   61 |   float f;
      |         ^

Having difficulty building

Hi
Trying to build 1.2.6 on Ubuntu 20.04.
Dependencies are installed but when attempting to MAKE I get
Build BOops.lv2 DSP...src/BOops.cpp: In member function ‘LV2_State_Status BOops::state_save(LV2_State_Store_Function, LV2_State_Handle, uint32_t, const LV2_Feature* const*)’:
src/BOops.cpp:1176:3: error: ‘LV2_State_Free_Path’ was not declared in this scope; did you mean ‘LV2_State_Make_Path’?
1176 | LV2_State_Free_Path* freePath = NULL;
| ^~~~~~~~~~~~~~~~~~~
| LV2_State_Make_Path
src/BOops.cpp:1176:24: error: ‘freePath’ was not declared in this scope
1176 | LV2_State_Free_Path* freePath = NULL;
| ^~~~~~~~
src/BOops.cpp:1181:4: error: ‘LV2_STATE__freePath’ was not declared in this scope; did you mean ‘LV2_STATE__makePath’?
1181 | LV2_STATE__freePath, &freePath, false,
| ^~~~~~~~~~~~~~~~~~~
| LV2_STATE__makePath
src/BOops.cpp: In member function ‘LV2_State_Status BOops::state_restore(LV2_State_Retrieve_Function, LV2_State_Handle, uint32_t, const LV2_Feature* const*)’:
src/BOops.cpp:1306:2: error: ‘LV2_State_Free_Path’ was not declared in this scope; did you mean ‘LV2_State_Make_Path’?
1306 | LV2_State_Free_Path* freePath = nullptr;
| ^~~~~~~~~~~~~~~~~~~
| LV2_State_Make_Path
src/BOops.cpp:1306:23: error: ‘freePath’ was not declared in this scope
1306 | LV2_State_Free_Path* freePath = nullptr;
| ^~~~~~~~
src/BOops.cpp:1311:3: error: ‘LV2_STATE__freePath’ was not declared in this scope; did you mean ‘LV2_STATE__makePath’?
1311 | LV2_STATE__freePath, &freePath, false,
| ^~~~~~~~~~~~~~~~~~~
| LV2_STATE__makePath
make: *** [makefile:128: BOops.so] Error 1

cheers

The host-controlled option does not work in Audio track, in Ardour 6.5

When I use the B.Oops in a Ardour MIDI track everything works fine, the host-controlled option get the BPM and the Transport commands from the host. But when I put it in a Audio track B.Oops gets a unknown BPM and keeps running all the time, with no sync. When using the Autoplay mode I can adjust the correct BPM, but this stays out of sync.

simplescreenrecorder-2020-12-18_16.20.29.mp4

In the video, the left instance is in a MIDI track, and it is in correct bpm and sync. The right window are in a vocal track and not in sync.

Strange error in lv2vst

Hi,

When BOops loaded via https://github.com/x42/lv2vst then selecting Oops effect throws an error:

Creating VST instance: lv2vst
Initialising VST: lv2vst (1.0.0.0)
Opening VST UI: B.Oops
terminate called after throwing an instance of 'std::invalid_argument'
  what():  Can't open /usr/lib64/lv2/BOops.lv2inc/oops44100.wav.

it can be fixed by simple changing https://github.com/sjaehn/BOops/blob/master/src/FxOops.hpp#L50
to

strcat (samplepath, "/inc/oops44100.wav");

but there is no such error in other native LV2 hosts, such jalv.gtk or Carla.

strange behavior when triggering patterns

hi, i'm trying to trigger effects using midi, and i'm doing this by making patterns with only one effect and triggering those, but i seem to have run into a bug. whenever i trigger one effect, it works as expected, but when i trigger the next, the first effect seems to play along with the second one? whenever i play on my keyboard, the first effect seems to go away after it gets triggered once, but it always happens along with the second effect whenever i sequence it

feel free to ask for elaboration, i'm not good at explaining things

[FR] Multiple patterns

Request by @unfa for multiple patterns which can be selected via tabs. And controlled by MIDI. As in B.Jumblr.

bpm and bpBar text not legible

I manually compiled 1.8.2 on Ubuntu 22.04 and I'm using the plugin in Ardour and Carla. When the playback mode is set to Autoplay the bpm and bpBar options become visible. However, when dragging the slider beyond a certain point the text on the slider becomes almost illegible.

Peek 2022-10-07 10-29a

The grey text on black background makes it really hard to read.

Global "bypass" parameter

First of all thanks for the lovely plugin and the integration of AW effects.

It would be very helpful to be able to automate a global bypass parameter in the DAWs, e.g. Ardour. Thanks.

Question regarding Reaper compatibility ?

Hi the Reaper developers have recently added LV2 support into their core and I'm delighted to say that they are working on getting your plugins working 100%.

There seems to be a problem ( I'm not speaking on their behalf ) with running B.Oops on a normal track, I.e there is no audio effected ( the GUI updates the changes tho ) , but somehow it works as expected when inserted on the master track as an effect.

B.Choppr also has the same behaviour, where all your other plugins work correctly on any track.

I was hoping you could maybe give me some info on what could cause such an issue.

thanks :)

Clang warnings

Build BOops.lv2 DSP...Build BOops.lv2 GUI...In file included from ../../src/BOopsGUI.cpp:22:
In file included from ../../src/BOopsGUI.hpp:45:
In file included from ../../src/PadSurface.hpp:26:
../../src/BWidgets/Text.hpp:119:15: warning: 'setWidth' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
        virtual void setWidth (const double width);
                     ^
../../src/BWidgets/Widget.hpp:212:15: note: overridden virtual function is here
        virtual void setWidth (const double width);
                     ^
In file included from src/Slot.cpp:41:
src/FxDistortion.hpp:104:7: warning: absolute value function 'fabsf' given an argument of type 'double' but has parameter of type 'float' which may cause truncation of value
      [-Wabsolute-value]
                                                fabsf (r) < (2.0/3.0) ?
                                                ^
src/FxDistortion.hpp:104:7: note: use function 'std::abs' instead
                                                fabsf (r) < (2.0/3.0) ?
                                                ^~~~~
                                                std::abs
src/Slot.cpp:77:11: warning: address of array 'that.params' will always evaluate to 'true' [-Wpointer-bool-conversion]
        if (that.params) std::copy (that.params, that.params + NR_PARAMS, params);
        ~~  ~~~~~^~~~~~
src/Slot.cpp:78:11: warning: address of array 'that.pads' will always evaluate to 'true' [-Wpointer-bool-conversion]
        if (that.pads) std::copy (that.pads, that.pads + NR_STEPS, pads);
        ~~  ~~~~~^~~~
src/Slot.cpp:79:11: warning: address of array 'that.startPos' will always evaluate to 'true' [-Wpointer-bool-conversion]
        if (that.startPos) std::copy (that.startPos, that.startPos + NR_STEPS, startPos);
        ~~  ~~~~~^~~~~~~~
src/Slot.cpp:97:11: warning: address of array 'that.params' will always evaluate to 'true' [-Wpointer-bool-conversion]
        if (that.params) std::copy (that.params, that.params + NR_PARAMS, params);
        ~~  ~~~~~^~~~~~
src/Slot.cpp:98:11: warning: address of array 'that.pads' will always evaluate to 'true' [-Wpointer-bool-conversion]
        if (that.pads) std::copy (that.pads, that.pads + NR_STEPS, pads);
        ~~  ~~~~~^~~~
src/Slot.cpp:99:11: warning: address of array 'that.startPos' will always evaluate to 'true' [-Wpointer-bool-conversion]
        if (that.startPos) std::copy (that.startPos, that.startPos + NR_STEPS, startPos);
        ~~  ~~~~~^~~~~~~~
src/Slot.cpp:221:30: warning: address of array 'this->params' will always evaluate to 'true' [-Wpointer-bool-conversion]
        if ((!fx) || (!buffer) || (!params)) return Stereo();
                                   ~^~~~~~
8 warnings generated.
 done.
1 warning generated.
In file included from ../../src/ShapeWidget.cpp:21:
In file included from ../../src/ShapeWidget.hpp:28:
../../src/BWidgets/Text.hpp:119:15: warning: 'setWidth' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
        virtual void setWidth (const double width);
                     ^
../../src/BWidgets/Widget.hpp:212:15: note: overridden virtual function is here
        virtual void setWidth (const double width);
                     ^
1 warning generated.
In file included from ../../src/BWidgets/MessageBox.cpp:18:
In file included from ../../src/BWidgets/MessageBox.hpp:22:
../../src/BWidgets/Text.hpp:119:15: warning: 'setWidth' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
        virtual void setWidth (const double width);
                     ^
../../src/BWidgets/Widget.hpp:212:15: note: overridden virtual function is here
        virtual void setWidth (const double width);
                     ^
1 warning generated.
In file included from ../../src/BWidgets/Text.cpp:18:
../../src/BWidgets/Text.hpp:119:15: warning: 'setWidth' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
        virtual void setWidth (const double width);
                     ^
../../src/BWidgets/Widget.hpp:212:15: note: overridden virtual function is here
        virtual void setWidth (const double width);
                     ^
1 warning generated.

Keyboard notes selected for effects do not persist

Steps to reproduce:
Select notes for each effect (I used C1-F1)
Put your computer to sleep, close the session, or do something that causes the RAM to flush
B.Oops had an oopsie and now is defaulted to curve selection rather than note selection for the effects.

Add bypass option

Can a bypass option be added to this plugin?

The rationale behind this is request:

I use B.Oops in live performances. I have a glitch effects stack/preset already set up and I want to enable it whenever I press a button on a midi controller. Currently this isn't possible as there's no bypass option

Randomise patterns via midi

I have a several effects and patterns setup for a live performance and I'd like to be able to randomise it using a midi controller.

I looked through the plugin's parameters in Carla and it looks like this option isn't exposed to be controlled via midi and it seems this can only be done via the gui using the dice button.

Can this option be added?

[FR] Request for Linux vst version of all your plugins.

As always, I think I have been pressing you to think about porting your plugins to VST format [ most likely VST3 with License issues etc now ] .

I think you could be rewarded financially by doing so.

As you already know most native Linux DAWS don't/won't support LV2 and bridging adds some CPU overhead.

I believe you could really make the difference to people converting to Linux Audio as a serious and better OS for creating Audio media.

An example of your work so far... I waited for years until Illformed released a native Linux version of their Glitch plugin, then you basically release BOops overnight 👍

Anyway , please keep this issue open for other Linux musicians to comment and thanks for all your hard work!

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.