• bocanegra

    @Cmaj7 said:

    By the way, one related question regarding the implementation: are there performance differences between implementations with lots of [f ], [+ ], [t b f], etc ... and a simple [expr] or [expr~] ? Is one way preferable?

    Whithout any proof I will say this: when you load [expr] you load a shitload of functions in one object. I don't need pow, exp, sqrt, whatnot in order to do a linear transformation with 2-3 objects. You are also loading an "extra" which is not always supported in ports like libpd/mobmuplat depending on platform and version

    posted in technical issues read more
  • bocanegra

    @jameslo - I am aware of the extended objects but I stick to vanilla for various reasons ([init~] is not loading here).

    [cos~] provides a nice soft and smooth distortion for synth sounds- I use it a lot to beef up bass and snare etc, but usually only one pass and with a dry/wet crossfader to adjust amount. The way it's subtle also makes it good for exciter effects. Example:
    exciter~.pd
    Screenshot_2021-07-14_23-29-29.png
    You could of course change the filter, add more passes, try other sigmoids for the sound you want.

    To stay on topic, here's a sigmoid based on the [pow~] object, using some convoluted math to allow asymmetric distortion curves (bias): pow-sigmoid~.pd

    Screenshot_2021-07-28_19-10-23.png

    posted in abstract~ read more
  • bocanegra

    @Cmaj7 there is an old discussion of the mtof (and ftom) math here: https://forum.pdpatchrepo.info/topic/4090/midi-to-hz-and-hz-to-midi-formulas/ - pay attention to @seb-harmonik-ar and @gsagostinho 's answers

    The mtof formula written in simple math is F = 440 x 2^((M-69)/12) or [expr 440*(pow (2, (($f1-69)/12)))] in pd lingo. It's not a superexponential (sorry @ddw_music I do agree on getting the mapping right tho). The 440 and 69 are sort of arbitrary in that they set a reference of Hz/Midnumber. You could just as well use 220 and 57 or any other pair you know to be correct, although keeping them sort of close to middle C is probably a good idea...

    posted in technical issues read more
  • bocanegra

    It's hard to tell without knowing your setup. OS? Hardware?

    I run PD vanilla on xubuntu 20.?? (latest LTS) and an external sound card/mixer (cheap behringer). I can get audio both with and without jack

    If I set up PD to run just with ALSA (no jack) and I have some other programs running that are using the sound card (like a browser or whatever) PD will tell me:

    ALSA input error (snd_pcm_open): No such file or directory
    ALSA output error (snd_pcm_open): No such file or directory
    

    However, closing my browser and/or other programs that route sound through ALSA solves this

    Using jack instead gives me the advantage of running other DAW software along side PD and route both midi and audio back and forth between them (non jack programs will be silenced), but jack has to be set up properly for the server to run without dropouts (select the correct soundcard, buffer size etc in settings), or even start at all. For this purpose I use qjackctl, which is a GUI control panel for the jack server- should be in your distro's repositories.

    The errors you get with jack simply states that the jack server is not running- it has to be started manually. You can do that with a command from your terminal or get the qjackctl software for the GUI (which I reckon you will prefer as a windows convert). Run: sudo apt install qjackctl from your terminal to install it if you are using a debian based distro (*ubuntu, mint et al)

    posted in technical issues read more
  • bocanegra

    The expr family has been part of vanilla PD for a long time, so I would assume they are included in libpd?

    If not have a look at this: https://github.com/libpd/libpd/wiki/Adding-Pure-Data-external-libraries-to-your-project

    posted in libpd / webpd read more
  • bocanegra

    Sorry to be a hair-splitter here, but the assignment in the OP clearly says:

    "Create a glissando that we hear as linear and one that we hear as logarithmic from C3 to C6."

    What we hear as a linear sweep is a log sweep: we perceive the same distance from A3 (220hz) to A4 (440hz) as we do from A4 (440hz) to A5 (880hz), while in reality the latter is twice as long as the former.

    Hence, what we will hear as a linear sweep is @seb-harmonik.ar 's solution, while a linear upwards sweep like the one in OP's patch will sound as if it's slowing down exponentially - whether that qualifies as "hearing it as a logarithmic sweep" I will leave to the math geeks to ascertain

    posted in technical issues read more
  • bocanegra

    My friend is using PD on an rpi as an effects processor for his guitar and has been trying out various simple distortion methods so I sat down and made a sigmoid abstraction for him with adjustable knee, kinda basic but nice sounding...

    sigmoid~.pd
    sigmoid~-help.pd

    I am posting it here as I am curious as to what kinds of sigmoid solutions you guys have up your sleeve. So let's dedicate this thread to sharing homebrew sigmoids :)

    posted in abstract~ read more
  • bocanegra

    @jameslo you still win this round ;)

    posted in patch~ read more
  • bocanegra

    You are only passing bangs to the two [f] objects. Try this:

    Screenshot_2021-07-06_00-15-20.png

    EDIT: Scrap that. It wont work as intended. Pd will print 0 0 when you bang the inlet

    posted in technical issues read more
  • bocanegra

    @jameslo Eureka!

    But if the [+ } increment caused the counter to never land on 3, then it would never reset.

    The select output that triggers the reset is the last one i.e anything but 0 1 2 3, so not an issue

    posted in patch~ read more
  • bocanegra

    @ingox, if you run the patch posted by OP you will see that it doesn't reset unless you bang the [0 ( message box out of sync with the metro. This makes sense as the last message sent to the [float]'s right inlet will be passed to it's outlet on the next bang from [metro].

    The issue here is that of feedback in the message domain, and if you want your select module to control when to reset the counter- that is to say if you want to feed back the result of an evaluation of the counters output to the [float] that does the counting - the delay is needed. As far as I can tell at least.

    Trying out other solutions produce weird results like select showing the output to be both 0 and > 3 at the same time, while the number box is showing zero, but continues from whatever high value it reached at the same time once you unhook the [0( message - try this at home:

    Screenshot_2021-07-05_23-09-34.png

    posted in patch~ read more
  • bocanegra

    @ingox yes indeed. But in this particular case (feeding bangs from the select object back into the counter) how would you solve the problem with a trigger?

    The simple solution is to avoid that feedback loop altogether by introducing a % object in side the counter loop like I first suggested.

    But if you for some reason want your select object to control the counter reset, you run into some weird behavior that is only ameliorated by a crude delay. I would like to be wrong about this, so by all means give it a go with triggers :)

    posted in patch~ read more
  • bocanegra

    Another way around it more true to your original design is to delay the bang that triggers the reset message like this:

    Screenshot_2021-07-05_21-37-52.png

    The trade off (?) is that it takes two metro ticks (i.e the counter will output 4 before resetting)

    posted in patch~ read more
  • bocanegra

    The problem seems to be that you are sending two values to the same inlet at the same time, and the one coming from the [+] object takes precedence (?).

    I take it you want the counter to repeat a fixed cycle?

    The easiest way to have a count restart from zero while running is to hook up a [%] object after the [+] like this:

    Screenshot_2021-07-05_21-25-42.png

    posted in patch~ read more
  • bocanegra

    @LucienR

    Could you achieve this with t3 objects from iemlib ( [t3_line~], [t3_del~] ) ? Just wondering.

    You would run into the same problem the OP describes as the t3 objects are triggered by control messages (see my first reply).

    Also note that the [t3_del] object is now called [t3_delay] (which hasn't been updated in the help files)

    posted in technical issues read more
  • bocanegra

    Bangs exist in the control signal domain, which are limited by block size (64 samples by default). The fastest you can output two bangs is blocksize times 2, i.e. 128 samples. 44100/128 = 344.53Hz. You could make a subpatch and use the [block] object to reduce the blocksize...

    If the effect you are after is a pulse (controllable freq) with adjustable slopes (and pulsewidth), there are ways to do that just using phasor, clipping and some smart math. I can't remember the design off the top of my head but I have it lying around somewhere in my mess...

    posted in technical issues read more
  • bocanegra

    For the frequency/amplitude data mapping, [sigmund~] is probably your best bet, as you can set how many bands (-npeaks) to measure up to what frequency (-maxfreq) at what time intervals (-hop). It's quite well documented in the help files.

    posted in technical issues read more
  • bocanegra

    I'm running PD vanilla 0.50.2 on xubuntu, installed from the ubuntu repositories via apt, and it has sigmund~. I do however get a similar error message trying to create bonk~: "/usr/lib/puredata/tcl/../extra/bonk~/bonk~.pd_linux: /usr/lib/puredata/tcl/../extra/bonk~/bonk~.pd_linux: undefined symbol: __exp_finite"

    In the meantime both work in my purr data installation so you could try that ?

    The problem as far as I understand it is the update of the gnu c library from 2.30 to 2.31 changing how certain things are handled and these changes not being reflected in older binary distributions (.deb files). As one guy in your link says: manually compiling against glibc 2.31 fixes the bug.

    So I decided to see if can could fix the issue myself. I am not much for compiling from source myself either, so I went straight to debian to look for the latest pd: https://packages.debian.org/sid/puredata
    Purged my old installation including dependencies (all packages named puredata-something). Reinstalled all using the v. 0.51.4-1 .deb files from debian's page. And it worked ;)

    Screenshot_2021-06-16_23-58-10.png

    posted in technical issues read more
  • bocanegra

    Not directly. But you can specify an onset in samples in your [open path/to/filename.wav (here)< message which will enable you to [start< playback from the desired time (in samples).

    Screenshot_2021-06-14_23-54-25.png

    For pause/resume functionality you could have a line~ keeping track of file position. Perhaps using soundfiler to get the scale correct...

    posted in technical issues read more
Internal error.

Oops! Looks like something went wrong!