• lysergik

    Hi,

    I've been forking around a C++ audio software that uses signed int audio buffer, I wanted to add a multi fx processing unit. Since coding it in c++ seem to me pretty hard I just want to make a multifx pd patch and then use pdlib to have my patch processing the audio buffer of my C++ program.

    However I don't any libpd function that process sint32 audio buffer, only short, float or double. So I wonder if just converting my audiobuffer from sint32 to float and back again to sint32 is fine or should I avoid such approach ?

    Thanks in advance.

    posted in libpd / webpd read more
  • lysergik

    Hi everone ! I finally got it ! I've just reinstall iemlib with deken, I just have to tick the boxes that says add the path during installation and everything works now. I could run a fine test of a crossover patch with my sound system. It was fun !

    posted in technical issues read more
  • lysergik

    @jameslo I did install ieamlib as you said, got to my preferences to have iemlib at launch, git the message in pd console saying iemlib was launched. But when i try to create a bessel or butterworth filter pure data act like it doesn't know the object i'm calling. I don't know what is wrong with iemlib.

    @tungee Thanks a lot it works well, anyway I got some kind of crackling on the high frequency canal, do you know how to fix that ?

    posted in technical issues read more
  • lysergik

    Hi everyone !

    I am currently equiping some loudspeaker case, and I dont have any kind of active crossover at the moment. In order to test my speakers I would like to send them an audio signal from my computer that I would filter up with a pd patch using jack. I know about lop~ and hip~ object in pd vanilla but more complexe filter like Beseel, linkwitz and riley or butterworth filter seem only to exists in pd extended. I tried to get extened on my laptop but due to some depedencies clash I couldn't do anything. Is there a way to simply add the filter object of extended in vanilla ?

    Thanks in advance for your answer.

    posted in technical issues read more
  • lysergik

    Thanks guys for the tips and links I will look into that in order to figure out the best trick to get a cleaner sound with the less CPU usage possible. I've actualy understood why my soustractive/additive bandlimited oscilators had some noise/clicking and it has nothing to do with aliasing but bad signal use in my design that I could fix easily.

    Then while running my osc's with antialising/oversampling I did'nt notice an audible difference with or without antialising/oversampling, at least for the soustractive and additive synthesis. For FM synthesis I ran different test and got a good CPU use/antialising solution when oversampling two times. In order to get the best performance possible I could only apply the antialising method when using my FM osc and not applying it to my banlimited oscilators.

    I've also tested inscreasing my block values and the result are interesting though I've heard that doing so leads to increase latency and since I want to make a patch meant for live performance it could became an issue if I rely on that to lower my CPU use. Though I might find a solution to the aliasing within use of a low pass filter which could offer a good alternative to the antialising method I used.

    @gmoon I've used once pd~ and I don't know if I poorly implemented it or if the object isn't ready yet to deliver an interesting use of multiple cores but when I used it pd~ managed to multiply by four the CPU use of the patch I was working on. From my experience I won't recomend to anyone using pd~ for CPU optimization but maybe there's someone out there that knows how to use it properly and had succesfully devided his sound processing within pd.

    posted in technical issues read more
  • lysergik

    Hi,

    About a year ago I started to learn a bit pure data in order to create a patch that would act as a groovebox and that should perform on limited cpu resources since I want it to run on a raspberry pi. First I tried to make somekind of fork of the Martin Brinkmann groovebox patch, even if it allowed me to learn a lot about data flow I didn't went to the core of the patch tweaking with sound generation. This led me to end this attempt at forking MNB groovebox patch because even if I could seperate GUI stuff from sound generation and run it on different thread ect... I couldn't go further in optimization in order to reduce the cpu use.

    Then a few weeks ago I decided to start again from scratch my project and this time I wanted to be more patient and learn anything needed in order to be capable of optimizing my patch as much as possible. After making a functional drum machine which runs at 2/3% of cpu with 8 different tracks, 126 steps sequencer, a bit of fx ect... I tried to find synths that would opperate well aside the drum machine. And I basicly didn't find any patch that wouldn't use massive amount of cpu time. So I created my own synths, nothing incredible but I'm happy with what I got, though I noticed some aliasing. I read a bit the floss manual about anti aliasing and apply the method used in the manual(http://write.flossmanuals.net/pure-data/antialiasing/), it work well but my synths almost trippled their cpu use, even if I put all my oscilators in the same subpatch in order to use only one instance of oversampling.

    I didn't tried to oversample it less than 16 time but since oversampling is so cpu intensive I'm wondering if there's no other option in order to get a good sound definition at a lower cpu cost. I'm already using banlimited waveform so I don't know what I could do in order to limit the aliasing, especialy for my fm patch where bandlimited waveform isn't very useful in order to reduce aliasing.

    Since I want to have at least 4 synth track with some at least one synth having 5 voice polyphony I want to know what the best thing to do. Letting FM aside for this project and use switch~ for oversampling 2 or 4 time my synths that use bandlimited waveform ? Or should I try to run different instances of pd for each synth and controling it from a gui/control patch with netsend(though it wouldn't bring down the cpu use at least it would provide somekind of multithreading for my patch) ? Or is there another way to get some antiliasing ? Or should I review lower my expectation because there is no solution that could provide a decent antialiasing for 4 or more synth running at the same time with a low cpu use in pure data in 2021.

    Thanks to everyone that would read my topic and try to give some advice in order to get the best antialising/low cpu use solution.

    posted in technical issues read more
  • lysergik

    Thanks for your answer, I've succesfully added a swing to my clock and to give more interesting rythm I decided to space the steps differently if it's quarts, eight or sixteenth.(as this patch https://forum.pdpatchrepo.info/topic/4818/shuffle-groove-swing-in-pd).

    posted in technical issues read more
  • lysergik

    Hi, I wasn't so sure where I should post so I post here even though it's not really a technical issue.

    I want to had swing to my sequencer, so far it a 8 bar sequencer functioning with a separate clock, with it's own pattern storage thing ect... I know what swing is but I'm not sure how I should implement it.

    I've read a bit from old forum post where little is said and without example and here's how I think adding it to my sequencer: defining a random value in miliseconds at each step that would be added to the time of the clock, this value should be redifine at each step and this value should be define into an interval that could be changed by the user. Is this a good way to code a "swing" ?

    I never used randominsation inside a pure data patch so it something I would have to learn(I guess it's not that hard to understand). Where I'm more confused is the interval of milisecond I should use to implement the "swing", so if anyone could give some advise in that regard it would be great.

    posted in technical issues read more
  • lysergik

    @whale-av Thanks ! Since I found drum synth I found online I didn't knew about those send and receive inside the propereties menu of the number box. I just had to delete the send and receive and it work. Also I didn't had to rename"osc_pair_1" and the other used for pitch because they are subpatches, and they were relied to the sliders via the same send and receive function that we find elsewere. Thanks again.

    posted in technical issues read more
  • lysergik

    I didn't used array or specific value in those subpatches. Here's the code : drummachine.pd

    posted in technical issues read more

Internal error.

Oops! Looks like something went wrong!