[ANN] Infamous Power Cut

Discuss anything new and newsworthy! See http://planet.linuxaudio.org and https://libreav.org/news for more Linux Audio News!

Announcements of proprietary software may fit better in the Marketplace.


Moderators: raboof, MattKingUSA, khz

ssj71
Established Member
Posts: 1294
Joined: Tue Sep 25, 2012 6:36 pm
Has thanked: 1 time

[ANN] Infamous Power Cut

Post by ssj71 »

In an unprecedented turn around time, announcing:

The infamous power cut!

This effect plugin is more commonly known as tape stop. Do tape players really stop like that? Maybe an old adat or reel to reel or something, but a walkman sure doesn't. Not enough inertia. Anyway, its the power cut. Its like pulling the power plug on your turntable while its playing. You can adjust the decay time and curve (log, linear, exponential). Its pretty fun and the dsp was pretty easy (hence the quick turn).

I figure with this, openAV's masha and maybe some others, add some automation in ardour and you'll have a FLOSS version of the illformed glitch plugin.

I also fixed the rms calculation in the envelope follower, and made the meter more meaningful by splitting it into separate input and output meters. So this makes it infamous plugins version 0.0.20.

Enjoy, and get creative!
Get it at the usual place: http://sourceforge.net/p/infamousplugin ... ster/tree/

p.s. sorry, package manager friends, for the extra work so soon. It was itching me, I had to scratch it. It will probably be a bit longer before another comes out.
_ssj71

music: https://soundcloud.com/ssj71
My plugins are Infamous! http://ssj71.github.io/infamousPlugins
I just want to get back to making music!
User avatar
sysrqer
Established Member
Posts: 2523
Joined: Thu Nov 14, 2013 11:47 pm
Has thanked: 320 times
Been thanked: 151 times
Contact:

Re: [ANN] Infamous Power Cut

Post by sysrqer »

Fantastic, I can't wait to try it, I love this kind of effect!
Joermungand
Established Member
Posts: 276
Joined: Wed Oct 24, 2012 5:19 pm

Re: [ANN] Infamous Power Cut

Post by Joermungand »

Updated PKGBUILD files in AUR.
diizy
Established Member
Posts: 105
Joined: Tue Feb 04, 2014 2:48 am

Re: [ANN] Infamous Power Cut

Post by diizy »

ssj71 wrote: You can adjust the decay time and curve (log, linear, exponential).
What's the difference between log and exp? They're inverses of the same function...
ssj71
Established Member
Posts: 1294
Joined: Tue Sep 25, 2012 6:36 pm
Has thanked: 1 time

Re: [ANN] Infamous Power Cut

Post by ssj71 »

diizy wrote:
ssj71 wrote: You can adjust the decay time and curve (log, linear, exponential).
What's the difference between log and exp? They're inverses of the same function...
Exactly, so log slows down more and more as time goes on, exponential slows less and less and less with time. Hearing the two it makes sense. I suppose you could describe either behavior with either function and a little manipulation, but I based it mostly on what I thought of when I hear the term "exponential decay". Roughly:

Code: Select all

exp:
|
\_

log:
_
 \
 |
_ssj71

music: https://soundcloud.com/ssj71
My plugins are Infamous! http://ssj71.github.io/infamousPlugins
I just want to get back to making music!
diizy
Established Member
Posts: 105
Joined: Tue Feb 04, 2014 2:48 am

Re: [ANN] Infamous Power Cut

Post by diizy »

ssj71 wrote:Exactly, so log slows down more and more as time goes on, exponential slows less and less and less with time. Hearing the two it makes sense. I suppose you could describe either behavior with either function and a little manipulation, but I based it mostly on what I thought of when I hear the term "exponential decay". Roughly:
Well you can get both of those curves with exponential functions very easily. If you raise the input to a power >1, it gives the first curve, if you raise to <1, it gives the second curve.

I'm just saying, exp/log aren't very good terms for describing curve shapes in this way. I don't think there are any standard terms for such descriptions, but you could use "convex / concave" or something like that.

Or you could just make the curve shape into a freely adjustable value. In this one synth I wrote I have two envelopes which have knobs for adjusting the curve shape. The knob is on a -1 to 1 scale, where 0 is linear, -1 is a concave curve (first one in your example), and 1 is a convex curve. This is implemented by taking the envelope signal (which is on a 0-1 scale) and raising it to nth power, where n = pow( 10, x ), where x = the knob value * -1. Or in other words: envelope = pow( envelope, pow( 10, knob_value * -1 ) )
ssj71
Established Member
Posts: 1294
Joined: Tue Sep 25, 2012 6:36 pm
Has thanked: 1 time

Re: [ANN] Infamous Power Cut

Post by ssj71 »

You are correct, but I feel the real exponential function does give it a nice natural feel rather than a polynomial approximation (which is what you are really doing). And I think after trying both it will be immediately obvious to a user the difference between the exp and log functions. Although... I already have a case statement. I could morph easily between the exp, lin, and log functions. You have a good idea here of being able to control the curve.
_ssj71

music: https://soundcloud.com/ssj71
My plugins are Infamous! http://ssj71.github.io/infamousPlugins
I just want to get back to making music!
User avatar
bluebell
Established Member
Posts: 1923
Joined: Sat Sep 15, 2012 11:44 am
Location: Saarland, Germany
Has thanked: 112 times
Been thanked: 119 times

Re: [ANN] Infamous Power Cut

Post by bluebell »

Something seems to be wrong:

install -m 644 -p /var/daten/Holger/src/infamous_plugins/infamousplugins-code/src/CellularAutomatonSynth/casynth.lv2/casynth_presets.ttl /usr/lib/lv2/casynth.lv2/
WARNING: Failure to find: rms_calc.c
gcc -c -m64 -pipe -std=c99 -g -msse2 -mfpmath=sse -ffast-math -O2 -Wall -W -fPIC -DQT_WEBKIT -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -o .obj_lv2/envfollower.o envfollower.c
In file included from envfollower.c:3:0:
./envfollower.h:9:22: schwerwiegender Fehler: rms_calc.h: Datei oder Verzeichnis nicht gefunden

Linux – MOTU UltraLite AVB – Qtractor – http://suedwestlicht.saar.de/

User avatar
bluebell
Established Member
Posts: 1923
Joined: Sat Sep 15, 2012 11:44 am
Location: Saarland, Germany
Has thanked: 112 times
Been thanked: 119 times

Re: [ANN] Infamous Power Cut

Post by bluebell »

The Power Cut plugin works fine. Funny! I am sure that I will use it some day, eg. to create a stop before a refrain in the master bus. To automate this in Qtractor will be another challenge :)

But there's sometimes a crack when it's activated. Maybe you can smooth it a bit or sync it to a zero-crossing.

Linux – MOTU UltraLite AVB – Qtractor – http://suedwestlicht.saar.de/

Joermungand
Established Member
Posts: 276
Joined: Wed Oct 24, 2012 5:19 pm

Re: [ANN] Infamous Power Cut

Post by Joermungand »

Ran into the same issue myself when I wrote the PKGBUILD. Both rms_calc.h and rms_calc.c are in the Stuck folder. I copied them over to the EnvelopeFollower folder prior to running qmake, make.
User avatar
GMaq
Established Member
Posts: 2804
Joined: Fri Sep 25, 2009 1:42 pm
Has thanked: 525 times
Been thanked: 563 times

Re: [ANN] Infamous Power Cut

Post by GMaq »

Joermungand wrote:Ran into the same issue myself when I wrote the PKGBUILD. Both rms_calc.h and rms_calc.c are in the Stuck folder. I copied them over to the EnvelopeFollower folder prior to running qmake, make.
Thanks! Same problem here.. in fact so far for me Envelope Follower always requires manual building (sorry terminal error is not handy right now) it seems to not build properly with the included scripts. Will try and post a better error if I get time..
Joermungand
Established Member
Posts: 276
Joined: Wed Oct 24, 2012 5:19 pm

Re: [ANN] Infamous Power Cut

Post by Joermungand »

Here’s the series of (adapted) commands I use to build the package in the PKGUILD:

Code: Select all

build() {
    cd "$srcdir"
    cd src/CellularAutomatonSynth
    qmake-qt4
    make
    cd ..
    mkdir -p ../utils
    gcc rule.c -o ../utils/infamous-rule
    cd EnvelopeFollower
    cp ../Stuck/rms_calc.* ./
    qmake-qt4
    make
    cd ../Hip2B
    qmake-qt4
    make
    cd ../Stuck
    qmake-qt4
    make
    cd ../PowerCut
    qmake-qt4
    make
    cd ../cheap_distortion
    make
}
It works smoothly on Arch. the ‘cp ../Stuck/rms_calc.* ./’ line was only needed in the latest version. Please note that, in Arch, we no longer have qmake. One should use either qmake-qt4 or qmake-qt5 according to one’s needs. Also, I renamed rule to infamous-rule, because it gets installed in /usr/bin and there is significant chance it might conflict with other packages.

Hope this comes in handy when compiling.
ssj71
Established Member
Posts: 1294
Joined: Tue Sep 25, 2012 6:36 pm
Has thanked: 1 time

Re: [ANN] Infamous Power Cut

Post by ssj71 »

Yay, people are using them!
Joermungand wrote:. Both rms_calc.h and rms_calc.c are in the Stuck folder. I copied them over to the EnvelopeFollower folder prior to running qmake, make.
Rats. A git error. I have them in my local file so they always build fine when I test, but they aren't added to the git repo. I need to move all shared source to a general folder. I'll put that on top of the todo list.

In the master branch of git, this is corrected as well as an additional feature to have the decay curve in powercut variable. Once I get a few more testers on it and feel like the bugs are reasonably worked out I'll release a new version.
Joermungand wrote:Please note that, in Arch, we no longer have qmake. One should use either qmake-qt4 or qmake-qt5 according to one’s needs. Also, I renamed rule to infamous-rule, because it gets installed in /usr/bin and there is significant chance it might conflict with other packages.
The installARCHLINUX.sh script in the source calls qmake-qt4 directly so it should work, but if its packaged, I'm not sure anyone will need it. Also the rule utility isn't installed to /usr/bin by the scripts, the binary must be run from the utils folder that gets created in the local directory.
bluebell wrote:But there's sometimes a crack when it's activated. Maybe you can smooth it a bit or sync it to a zero-crossing.
Is that when being activated by the "Pull the plug!" port? This plugin is meant to be active all the time and the effect be triggered through the port. If you just leave that port set to 1 and bypass the plugin it won't work (or at least the behavior is untested), as it uses a couple samples backward for interpolation. If its not running those values will just be 0*. I played with it quite a bit yesterday and didn't experience this. Please just verify how you are triggering. I'll double check the code either way.
bluebell wrote:To automate this in Qtractor will be another challenge :)
Automation should be pretty easy, just automate that "Pull the Plug!" port to 1 when you want to activate and back to 0 for the audio to resume. It was designed specifically for this use case.

I found its pretty fun to set to a short decay and end every phrase of a guitar solo with a power cut. But I'm not going to tell you how to use it. Get creative! :)

*anyone know if the run function of an LV2 is called while its set to bypass? I don't think it is but IDK
Last edited by ssj71 on Mon Jul 14, 2014 7:58 pm, edited 1 time in total.
_ssj71

music: https://soundcloud.com/ssj71
My plugins are Infamous! http://ssj71.github.io/infamousPlugins
I just want to get back to making music!
Joermungand
Established Member
Posts: 276
Joined: Wed Oct 24, 2012 5:19 pm

Re: [ANN] Infamous Power Cut

Post by Joermungand »

Hi,

I updated the infamousplugins-git PKGBUILD to reflect the variable decay curve. As I write, a test compile is under way (probably already completed) for the new file structure in EnvelopeFollower, so an updated PKGBUILD will be available shortly. I know rule is not installed to /usr/bin by the scripts, but I need to do this because chances are that people who use the package in AUR will not have straightforward access to the local compile directories after installing the package – if the directories are still there at all afterwards (e.g. yaourt users). Furthermore, the AUR guidelines require all executables to be installed in /usr/bin. I was merely trying to explain the changes in the build script I had posted with respect to the original scripts. Sorry for the confusion I might have created.
ssj71
Established Member
Posts: 1294
Joined: Tue Sep 25, 2012 6:36 pm
Has thanked: 1 time

Re: [ANN] Infamous Power Cut

Post by ssj71 »

Joermungand wrote: I was merely trying to explain the changes in the build script I had posted with respect to the original scripts. Sorry for the confusion I might have created.
No worries, I thought there might be confusion on what the scripts do. I think now both points are clear. Thanks.
_ssj71

music: https://soundcloud.com/ssj71
My plugins are Infamous! http://ssj71.github.io/infamousPlugins
I just want to get back to making music!
Post Reply