-
bklindgren
Thank you both for the clarification
I'm writing a paper where I measure the latency of an instrument I built that synthesizes sound with PD, and was wondering what to call this 'delay' parameter. I'm used to seeing it described as something like an 'I/O Vector Size' as in Max...
Thanks again for the help
-
bklindgren
Very helpful. Thanks for the reply.
So the purpose of this buffer is to accommodate the IO hardware?
And does this type of buffer have a name?
-
bklindgren
It seems to have something to do with the in/out buffer? But is not the same as the block size? Looking for a technical, under-the-hood explanation. Or a referral to any existing documentation... Thx
-
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?