-
bklindgren
nice implementation and very resourceful approach using the vanilla objects. thx for sharing! will save this for future reference
-
bklindgren
I've updated ambiNilla (v.3.5) to include a signal rate implementation (ambiNilla3~). Works well for fast moving sources
-
bklindgren
thx for the response @seb-harmonik.ar . I've just fixed it. In short I had a few layers of switches nested within various subpatches. I realized that turning on/off the lowest layered switch was redundant, and it seems to be fine now.
It sounds (sonically) like it may be related to the issue you posted. I'm PD 0.55-0. thanks again!
Theoretically, I'm still not sure why it was causing that issue, But regardless, I'm happy it's fixed
-
bklindgren
I'm having problems with a strange distortion sound a patch of mine is making, perhaps related to FFT processing.
The patch uses a preset system to change between settings. The system will mute the input to FFT objects during preset changes to avoid audio issues. However, when the preset changes I'm often getting a sort of distortion, which strangely clears up if I add & delete an object.
I've demonstrated it here:
My DAW is looping audio which is sent to PD for processing. The loop is on top of a preset change to demonstrate the issue.Any clues as to what this could be?
-
bklindgren
actually macos. APFS filesystem, which i'm just reading is case-insensitive by default.
now i'm a bit worried that other patches I've shared might have similar issues ...
-
bklindgren
@alexandros thx for catching that! (for some reason my pd runs it ok even with the case mixup?) i've updated the source files for consistency. thx again
-
bklindgren
@bklindgren I've updated AmbiNilla and it now supports 3rd order (plus 0, 1, & 2) + also fixed a few bugs
-
bklindgren
thanks for the response!
edit: you're right about the need for multiple specified arrays for tabread~
i think i've got it fixed actually. was confused bc when i first ran the snake~ thru the abstraction i hadn't realized hip~ wasn't compatible. But when i cmd clicked on the error in the console, pd highlighted the *~ or the abstraction rather than hip~... even after i fixed hip~, I think the saved abstraction had populated the incompatibility to other instances in the patch, making the error log a bit confusing...
still not sure why *~ was giving errors....
-
bklindgren
i'm 'upgrading' some signal wires in an existing patch to multichannel (8 chan).
i keep getting these errors:
canvas: incompatible signal inputs (8x64 vs. 1x64)
*~: incompatible signal inputs (8x64 vs. 1x64)they seem to happen in conjunction with abstractions within my patch.
all the objects i think are snake~ compatible, except hip~, which i un-snake for
this is the primary abstraction of concern:
any ideas?
-
bklindgren
I made a patch with corresponding Bela code to transmit data from Bela's analog inputs into a PD patch. https://github.com/brianlindgren/Bela-to-PD-over-OSC
-
bklindgren
I was having trouble making a vanilla zero-crossing pitch detector for my project, so I ported one I had done in c++ to a pd external. maybe useful to others? https://github.com/brianlindgren/zDet/
-
bklindgren
I implemented a 1st order ambisonic panner for PD vanilla. It was derived from another panner & I optimized the process of generating coefficients and importing them into PD. Works for elevation too. Located here: https://github.com/brianlindgren/ambiNilla
-
bklindgren
Thanks all for the responses!
I think my misunderstanding was around the stair-stepping produced by the downsampling. I understand that the hardware dac needs a low pass filter to smooth out stair-stepping, but I forgot that I'd need to do the same for the artificially low sample rate situation I created.
The below image solves the problem (for 1/8 downsampling). An original (not downsampled) osc~ and the downsampled one sound nearly identical now
@seb-harmonik-ar thanks for responding so quickly. did not know about the interpolation option - very cool
@lacaca thank you for the helpful graphic
@ddw_music super clear thank you. Example 3.audio.examples/J07.oversampling demonstrates the oversampling approach really well I think
@jameslo thanks for sharing - personally I think the foldover sound can be really cool, but this was more of a theoretical PD question -
bklindgren
I'm experimenting with running sub-patches at lower sample rates. In the screenshot, when I go below 1/4 sample rate (at 44.1kHz) I'm hearing some distortion. Doesn't sound like aliasing to me...
Seems odd bc an 880 Hz sample rate should theoretically be able to handle 440Hz without aliasing, right? Am I missing something?
-
bklindgren
thanks for your help! I got the objects compiled and loaded. it's been about two weeks so I'm a little fuzzy on what might have gone wrong before, but I modified a few file names & this is the makefile I ended up with:
# Makefile for mylib lib.name = grambi~ class.sources = grambidec~.c grambiman~.c grambipan~.c datafiles = grambilib-help.pd readme.md include Makefile.pdlibbuilder
thanks again~ !!
-
bklindgren
thanks for the suggestion! I"ve never compiled anything before, but I gave it a shot...
I'm getting this error in PD after loading the 3 compiled objects (6 files: grambidec.pd_darwin, grambidec.pd_darwin.o, grambiman.pd_darwin, grambiman.pd_darwin.o, grambipan.pd_darwin, grambipan.pd_darwin.o):
load_object: Symbol "grambiman_setup" not found in "/Users/brianlindgren/Documents/Pd/externals/grambiman.pd_darwin"
Also make is generating a bunch of warnings:
++++ info: using Makefile.pdlibbuilder version 0.7.0 ++++ info: using Pd API /Applications/Pd-0.54-1.app/Contents/Resources/src/m_pd.h ++++ info: making target all in lib grambidec~ ++++ info: making grambidec.pd_darwin.o in lib grambidec~ cc -DPD -I "/Applications/Pd-0.54-1.app/Contents/Resources/src" -DUNIX -DMACOSX -I /sw/include -Wall -Wextra -Wshadow -Winline -Wstrict-aliasing -O3 -ffast-math -funroll-loops -fomit-frame-pointer -arch arm64 -mmacosx-version-min=10.6 -o grambidec.pd_darwin.o -c grambidec.c grambidec.c:41:24: warning: unused variable 'x' [-Wunused-variable] t_grambidec_tilde *x = (t_grambidec_tilde *)(w[1]); ^ grambidec.c:43:16: warning: unused variable 'APin2' [-Wunused-variable] t_sample *APin2 = (t_sample *)(w[3]); ^ grambidec.c:44:16: warning: unused variable 'APin3' [-Wunused-variable] t_sample *APin3 = (t_sample *)(w[4]); ^ grambidec.c:45:16: warning: unused variable 'APin4' [-Wunused-variable] t_sample *APin4 = (t_sample *)(w[5]); ^ grambidec.c:69:24: warning: unused variable 'x' [-Wunused-variable] t_grambidec_tilde *x = (t_grambidec_tilde *)(w[1]); ^ grambidec.c:78:23: warning: variable 'sample2' set but not used [-Wunused-but-set-variable] t_sample sample1, sample2, sample3, sample4; ^ grambidec.c:78:41: warning: variable 'sample4' set but not used [-Wunused-but-set-variable] t_sample sample1, sample2, sample3, sample4; ^ grambidec.c:102:24: warning: unused variable 'x' [-Wunused-variable] t_grambidec_tilde *x = (t_grambidec_tilde *)(w[1]); ^ grambidec.c:113:41: warning: variable 'sample4' set but not used [-Wunused-but-set-variable] t_sample sample1, sample2, sample3, sample4; ^ grambidec.c:143:24: warning: unused variable 'x' [-Wunused-variable] t_grambidec_tilde *x = (t_grambidec_tilde *)(w[1]); ^ grambidec.c:185:24: warning: unused variable 'x' [-Wunused-variable] t_grambidec_tilde *x = (t_grambidec_tilde *)(w[1]); ^ grambidec.c:228:24: warning: unused variable 'x' [-Wunused-variable] t_grambidec_tilde *x = (t_grambidec_tilde *)(w[1]); ^ grambidec.c:282:24: warning: unused variable 'x' [-Wunused-variable] t_grambidec_tilde *x = (t_grambidec_tilde *)(w[1]); ^ grambidec.c:351:37: warning: unused parameter 's' [-Wunused-parameter] void *grambidec_tilde_new(t_symbol *s, int argc, t_atom *argv) //, t_floatarg test ^ grambidec.c:473:5: warning: performing pointer subtraction with a null pointer has undefined behavior [-Wnull-pointer-subtraction] CLASS_MAINSIGNALIN(grambidec_tilde_class, t_grambidec_tilde, APf); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Applications/Pd-0.54-1.app/Contents/Resources/src/m_pd.h:529:59: note: expanded from macro 'CLASS_MAINSIGNALIN' class_domainsignalin(c, (char *)(&((type *)0)->field) - (char *)0) ^ ~~~~~~~~~ 15 warnings generated. ++++ info: linking objects in grambidec.pd_darwin for lib grambidec~ cc -undefined suppress -flat_namespace -bundle -arch arm64 -mmacosx-version-min=10.6 -o grambidec.pd_darwin grambidec.pd_darwin.o -lc ld: warning: -undefined suppress is deprecated ld: warning: -undefined suppress is deprecated ++++ info: making grambiman.pd_darwin.o in lib grambidec~ cc -DPD -I "/Applications/Pd-0.54-1.app/Contents/Resources/src" -DUNIX -DMACOSX -I /sw/include -Wall -Wextra -Wshadow -Winline -Wstrict-aliasing -O3 -ffast-math -funroll-loops -fomit-frame-pointer -arch arm64 -mmacosx-version-min=10.6 -o grambiman.pd_darwin.o -c grambiman.c grambiman.c:64:24: warning: unused variable 'x' [-Wunused-variable] t_grambiman_tilde *x = (t_grambiman_tilde *)(w[1]); ^ grambiman.c:139:24: warning: unused variable 'x' [-Wunused-variable] t_grambiman_tilde *x = (t_grambiman_tilde *)(w[1]); ^ grambiman.c:226:24: warning: unused variable 'x' [-Wunused-variable] t_grambiman_tilde *x = (t_grambiman_tilde *)(w[1]); ^ grambiman.c:252:32: warning: variable 'sample3' set but not used [-Wunused-but-set-variable] t_sample sample1, sample2, sample3, sample4, sample10; ^ grambiman.c:306:24: warning: unused variable 'x' [-Wunused-variable] t_grambiman_tilde *x = (t_grambiman_tilde *)(w[1]); ^ grambiman.c:370:37: warning: unused parameter 's' [-Wunused-parameter] void *grambiman_tilde_new(t_symbol *s, int argc, t_atom *argv) ^ grambiman.c:436:5: warning: performing pointer subtraction with a null pointer has undefined behavior [-Wnull-pointer-subtraction] CLASS_MAINSIGNALIN(grambiman_tilde_class, t_grambiman_tilde, APf); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Applications/Pd-0.54-1.app/Contents/Resources/src/m_pd.h:529:59: note: expanded from macro 'CLASS_MAINSIGNALIN' class_domainsignalin(c, (char *)(&((type *)0)->field) - (char *)0) ^ ~~~~~~~~~ 7 warnings generated. ++++ info: linking objects in grambiman.pd_darwin for lib grambidec~ cc -undefined suppress -flat_namespace -bundle -arch arm64 -mmacosx-version-min=10.6 -o grambiman.pd_darwin grambiman.pd_darwin.o -lc ld: warning: -undefined suppress is deprecated ld: warning: -undefined suppress is deprecated ++++ info: making grambipan.pd_darwin.o in lib grambidec~ cc -DPD -I "/Applications/Pd-0.54-1.app/Contents/Resources/src" -DUNIX -DMACOSX -I /sw/include -Wall -Wextra -Wshadow -Winline -Wstrict-aliasing -O3 -ffast-math -funroll-loops -fomit-frame-pointer -arch arm64 -mmacosx-version-min=10.6 -o grambipan.pd_darwin.o -c grambipan.c grambipan.c:423:5: warning: performing pointer subtraction with a null pointer has undefined behavior [-Wnull-pointer-subtraction] CLASS_MAINSIGNALIN(grambipan_tilde_class, t_grambipan_tilde, APf); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Applications/Pd-0.54-1.app/Contents/Resources/src/m_pd.h:529:59: note: expanded from macro 'CLASS_MAINSIGNALIN' class_domainsignalin(c, (char *)(&((type *)0)->field) - (char *)0) ^ ~~~~~~~~~ 1 warning generated. ++++ info: linking objects in grambipan.pd_darwin for lib grambidec~ cc -undefined suppress -flat_namespace -bundle -arch arm64 -mmacosx-version-min=10.6 -o grambipan.pd_darwin grambipan.pd_darwin.o -lc ld: warning: -undefined suppress is deprecated ld: warning: -undefined suppress is deprecated ++++info: target all in lib grambidec~ completed
This is my Makefile:
# Makefile for mylib lib.name = grambidec~ class.sources = grambidec.c grambiman.c grambipan.c datafiles = grambilib-help.pd readme.md include Makefile.pdlibbuilder
Any suggestion? Thanks again!
-
bklindgren
@ricky this looks awesome!
I'm getting this error when loading: fat file, but missing compatible architecture (have 'i386,x86_64', need 'arm64)
Is there a version that runs on Apple Silicon?
-
bklindgren
thank you all for the replies! some great info here - going to dive in with this information. thank you all again
-
bklindgren
ahh sorry for the very late reply yes, fellow violist! -Brian
-
bklindgren
I'm trying to program a patch patch that does sample by sample calculations on a 20 minute audio file, which ends up using some pretty big numbers toward the middle/end of the file (as the file has 50 million or so samples).
I'm using an until object, int object and (+) object to advance sample by sample, but the function is maxing out at "1.67772e+07" samples for some reason. It doesn't seem like any of these objects alone have a number size that would create this limit, but when they're used together like this my 'counter' stops at "1.67772e+07".
I've attached a test/demo patch. Any ideas? test.pd