• bklindgren

    nice implementation and very resourceful approach using the vanilla objects. thx for sharing! will save this for future reference

    posted in extra~ read more
  • bklindgren

    I've updated ambiNilla (v.3.5) to include a signal rate implementation (ambiNilla3~). Works well for fast moving sources :zap:

    posted in abstract~ read more
  • 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 :)

    posted in technical issues read more
  • 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?

    posted in technical issues read more
  • 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 :dizzy_face: ...

    posted in abstract~ read more
  • 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

    posted in abstract~ read more
  • bklindgren

    @bklindgren I've updated AmbiNilla and it now supports 3rd order (plus 0, 1, & 2) + also fixed a few bugs

    posted in abstract~ read more
  • 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....

    posted in technical issues read more
  • 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:
    Screenshot 2024-07-12 at 3.31.20 PM.png

    any ideas?

    posted in technical issues read more
  • 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

    posted in I/O hardware diyread more
  • 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/

    posted in extra~ read more
  • 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

    posted in abstract~ read more
  • 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 :)

    Screenshot 2024-03-02 at 3.15.14 PM.png

    @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

    posted in technical issues read more
  • 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?

    Screenshot 2024-03-01 at 8.47.34 PM.png

    posted in technical issues read more
  • 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~ !! :)

    posted in extra~ read more
  • bklindgren

    @alexandros

    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!

    posted in extra~ read more
  • 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?

    posted in extra~ read more
  • bklindgren

    thank you all for the replies! some great info here - going to dive in with this information. thank you all again

    posted in technical issues read more
  • bklindgren

    ahh sorry for the very late reply :) yes, fellow violist! -Brian

    posted in pixel# read more
  • 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

    posted in technical issues read more
Internal error.

Oops! Looks like something went wrong!