Re: [Csnd-dev] [EXTERNAL] [Csnd-dev] More Daisy help
Dave Seidel <[email protected]> Wed, 17 Sep 2025 18:10:14 -0400
| Newsgroups | gmane.comp.audio.csound.devel |
|---|---|
| Message-ID | <CAMnrweCc4XdSZuvj09X8m+5p6rybKcjEyq9o4qwY1Qxt-TdF1Q@mail.gmail.com> |
Very good point. On Wed, Sep 17, 2025, 2:13 PM Victor Lazzarini < [email protected]> wrote: > If the generative example sounds clean, then I'd say there is some issue > with the audio in. > > You can also try a straight in - out, no effect, to hear if it is clean. > > > Prof. Victor Lazzarini > Maynooth University > Ireland > > On 17 Sep 2025, at 16:29, Dave Seidel <[email protected]> wrote: > > > I just reinstalled the DaisyCsoundProcess example on my Versio, and it > seems I was too hasty in saying that it works properly. In fact, though I > can clearly hear the input, and the echo effect applied to it, there is > also an overlay of noise, if not quite as much as I heard with my own > PV-based code or with the PitchShifter UDO. > > So I must provisionally conclude that while these examples may work fine > on a plain vanilla Daisy Seed, they do not work properly on a Daisy Seed > that's part of the Versio module. I won't be able to get back to this for a > couple of days, but when I do, I will first install the actual Versio > example in DaisyExamples. If that works without noise, then I plan to > examine the C++ code for that sample carefully and compare it to what we're > doing in the C++ wrappers for the DaisyCsound examples. > > On Mon, Sep 15, 2025 at 3:32 PM Victor Lazzarini < > [email protected]> wrote: > >> yes, I would be surprised if that UDO pushes the Daisy. >> >> Prof. Victor Lazzarini >> Maynooth University >> Ireland >> >> On 15 Sep 2025, at 20:08, Dave Seidel <[email protected]> wrote: >> >> >> I commented out the pitchamdf statement and set the variable to the >> actual cps of the source signal, but unfortunately it still sounded >> terrible. It's hard to believe that the remaining code is over-taxing the >> Daisy. (My original code using the pv opcodes run just fine on the Nebulae >> -- but it may be an unfair comparison since the Nebulae runs Csound on a >> Raspberry Pi 3.) I'm going to play around a bit with your working examples >> and see how far I can push it. >> >> On Sun, Sep 14, 2025 at 4:22 PM Dave Seidel <[email protected]> >> wrote: >> >>> Thanks, I will try these things. >>> >>> On Sun, Sep 14, 2025, 4:12 PM Victor Lazzarini < >>> [email protected]> wrote: >>> >>>> Ok, so I suspect that you'll get the pitch shifter working alright. I >>>> wonder if the pitchamdf is draining cpu cycles, it's a bit expensive. >>>> >>>> Try running the pitchshifter without pitch tracking, just setting the >>>> delay time fixed to some small value like 50ms and see if it works. >>>> In other words, keep the UDO but simplify the instrument, get the audio >>>> in, put it into the UDO and send it out, without any extra processing. >>>> >>>> best >>>> Prof. Victor Lazzarini >>>> Maynooth University >>>> Ireland >>>> >>>> On 14 Sep 2025, at 19:48, Dave Seidel <[email protected]> wrote: >>>> >>>> >>>> Ah yes, sorry. I tried both the processing example and generative >>>> example and they worked on the Versio. >>>> >>>> On Sun, Sep 14, 2025 at 2:43 PM Victor Lazzarini < >>>> [email protected]> wrote: >>>> >>>>> What I was asking is whether the Daisy Csound processing example works >>>>> in your system. If it doesn't then there is something else needed there. >>>>> The example was tested and ran ok in the Daisy Pod. >>>>> >>>>> Prof. Victor Lazzarini >>>>> Maynooth University >>>>> Ireland >>>>> >>>>> On 14 Sep 2025, at 19:29, Dave Seidel <[email protected]> wrote: >>>>> >>>>> >>>>> Yes, the book example works fine on my RPi. On the Versio/Daisy it is >>>>> noisy, similar to the result I got from my original code. This is why I am >>>>> now thinking that possibly something needs to change in the C code to work >>>>> properly on this particular Daisy platform. So I will study the published >>>>> Versio example (which is entirely C) and see if I can spot the >>>>> difference(s). We may need different boilerplate code for Csound on Versio. >>>>> >>>>> On Sun, Sep 14, 2025 at 2:22 PM Victor Lazzarini < >>>>> [email protected]> wrote: >>>>> >>>>>> and the Csound processing example, how does that do in your setup? >>>>>> Does it work well. >>>>>> >>>>>> The delay line shifter code is fairly low in cost, so I would think >>>>>> it should run well. It should even allow for small ksmps/blocksize. I had a >>>>>> variable delay code running here with ksmps=8, and audio block size set to >>>>>> ksmps. >>>>>> >>>>>> Prof. Victor Lazzarini >>>>>> Maynooth University >>>>>> Ireland >>>>>> >>>>>> On 14 Sep 2025, at 19:07, Dave Seidel <[email protected]> wrote: >>>>>> >>>>>> >>>>>> Identical to DaisyCsoundProcess, the only difference being the name >>>>>> of the file and the name of the included header. >>>>>> >>>>>> On Sun, Sep 14, 2025 at 1:25 PM Victor Lazzarini < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> And the C program you used? >>>>>>> Prof. Victor Lazzarini >>>>>>> Maynooth University >>>>>>> Ireland >>>>>>> >>>>>>> On 14 Sep 2025, at 18:18, Dave Seidel <[email protected]> wrote: >>>>>>> >>>>>>> >>>>>>> Still haven't found my book, but I do have a (purchased) PDF of the >>>>>>> Springer Csound book by Victor et al. This contains the same pitchshifter >>>>>>> code along with the explanation. >>>>>>> >>>>>>> (BTW, the window used in the book is a triangle. Any reason to >>>>>>> prefer Hanningh over triangle?) >>>>>>> >>>>>>> In any case, this pitchy shifter code doesn't work well on my Daisy >>>>>>> either -- still a lot of noise overlaying the generated output. But this is >>>>>>> a Versio, so perhaps it requires something different in the >>>>>>> setup/initialization? Next step, I guess, is to compare the code in the >>>>>>> Versio example in DaisyExamples to the boilerplate C++ code used in the >>>>>>> DaisyCsound examples. >>>>>>> >>>>>>> I've attached my header file with the Csound code in it. The same >>>>>>> Csound code works just fine on my Raspberry Pi. >>>>>>> >>>>>>> >>>>>>> On Fri, Sep 12, 2025 at 4:19 PM Victor Lazzarini < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> I think the second pvsynth in this code might be pushing it >>>>>>>> Prof. Victor Lazzarini >>>>>>>> Maynooth University >>>>>>>> Ireland >>>>>>>> >>>>>>>> On 12 Sep 2025, at 20:18, Dave Seidel <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>> >>>>>>>> Rory, this was running in Daisy? >>>>>>>> >>>>>>>> On Fri, Sep 12, 2025 at 3:13 PM Rory Walsh <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> I've used ksmps=256 and fftsize=1024 and it's worked Ok for me. >>>>>>>>> I've been using pvsmooth and pvsynth. Not very heavy stuff, but nice >>>>>>>>> results all the same. >>>>>>>>> >>>>>>>>> On Fri, 12 Sept 2025 at 20:11, Dave Seidel <[email protected]> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Great, thanks very much! Still looking for the book... :-) >>>>>>>>>> >>>>>>>>>> On Fri, Sep 12, 2025 at 1:56 PM Victor Lazzarini < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> Essentially this >>>>>>>>>>> >>>>>>>>>>> https://github.com/csound/book/blob/master/part4/chapter13/13.12.csd >>>>>>>>>>> >>>>>>>>>>> Prof. Victor Lazzarini >>>>>>>>>>> Maynooth University >>>>>>>>>>> Ireland >>>>>>>>>>> >>>>>>>>>>> On 12 Sep 2025, at 18:41, Dave Seidel <[email protected]> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Thanks, Victor. I'll try those things, though I already tried >>>>>>>>>>> ksmps=256 and FFT size 1024 -- didn't work, but it did reduce the noise >>>>>>>>>>> somewhat, so I think that reinforces your theory. >>>>>>>>>>> >>>>>>>>>>> The delay-based approach might be fine, thanks for the >>>>>>>>>>> suggestion. I know I have the book around somewhere, I just need to find >>>>>>>>>>> it.... >>>>>>>>>>> >>>>>>>>>>> On Fri, Sep 12, 2025 at 1:17 PM Victor Lazzarini < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi Dave, >>>>>>>>>>>> >>>>>>>>>>>> this is probably because the Daisy can't compute audio in time >>>>>>>>>>>> for the interrupt. >>>>>>>>>>>> It could be that the FFTs are too much for it. >>>>>>>>>>>> There's a few things you could try: >>>>>>>>>>>> >>>>>>>>>>>> increase ksmps to 256 >>>>>>>>>>>> decrease FFT size to 1024 >>>>>>>>>>>> >>>>>>>>>>>> keep ksmps at 128 >>>>>>>>>>>> decrease FFT size to 512 >>>>>>>>>>>> >>>>>>>>>>>> I have not yet tested spectral processing to see what the >>>>>>>>>>>> limits are. I can't do any testing at the moment because my Daisy seed is >>>>>>>>>>>> faulty, I'm waiting on a replacement. >>>>>>>>>>>> >>>>>>>>>>>> An alternative to doing pvs-based pitch shifting is to use a >>>>>>>>>>>> delay line pitch shifter, which might just work ok in your case. Russell >>>>>>>>>>>> Pinkston's chapter in the Csound Book has an example you could use. >>>>>>>>>>>> >>>>>>>>>>>> Otherwise I can send you some code. >>>>>>>>>>>> >>>>>>>>>>>> best >>>>>>>>>>>> Prof. Victor Lazzarini >>>>>>>>>>>> Maynooth University >>>>>>>>>>>> Ireland >>>>>>>>>>>> >>>>>>>>>>>> On 12 Sep 2025, at 16:38, Dave Seidel <[email protected]> >>>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> *Warning* >>>>>>>>>>>> >>>>>>>>>>>> This email originated from outside of Maynooth University's >>>>>>>>>>>> Mail System. Do not reply, click links or open attachments unless you >>>>>>>>>>>> recognise the sender and know the content is safe. >>>>>>>>>>>> Hi Victor, >>>>>>>>>>>> >>>>>>>>>>>> I have a tiny project that essentially duplicates the >>>>>>>>>>>> DaisyCsoundProcess example, the only differences in the code being the >>>>>>>>>>>> changes names and the contents of csdText. >>>>>>>>>>>> >>>>>>>>>>>> Here's the UDO I'm using, which works fine with standalone >>>>>>>>>>>> Csound. It takes an input signal and turns it into a stereo output signal >>>>>>>>>>>> with a binaural beat. When it's executed on the Daisy, I can sort of hear >>>>>>>>>>>> the output, but it's very noisy. Is there anything in this code that you >>>>>>>>>>>> would not expect to work on the Daisy? >>>>>>>>>>>> >>>>>>>>>>>> opcode binauralize, aa, ak >>>>>>>>>>>> ain,kdiff xin >>>>>>>>>>>> >>>>>>>>>>>> ; take it apart >>>>>>>>>>>> fsig pvsanal ain, 2048, 2048/4, 2048, 1 >>>>>>>>>>>> >>>>>>>>>>>> ; determine pitches >>>>>>>>>>>> ; kcent, kamp pvspitch fsig, 0.1 >>>>>>>>>>>> kcent pvscent fsig >>>>>>>>>>>> >>>>>>>>>>>> if (kcent > 0) && (kdiff > 0) then >>>>>>>>>>>> kdiff /= 2 >>>>>>>>>>>> krat1 = (kcent + kdiff) / kcent >>>>>>>>>>>> krat2 = (kcent - kdiff) / kcent >>>>>>>>>>>> else >>>>>>>>>>>> krat1 = 1 >>>>>>>>>>>> krat2 = 1 >>>>>>>>>>>> endif >>>>>>>>>>>> >>>>>>>>>>>> ; create derived streams with shifted pitches >>>>>>>>>>>> fsig2 = fsig >>>>>>>>>>>> fbinL pvscale fsig, krat1, 0 >>>>>>>>>>>> fbinR pvscale fsig2, krat2, 0 >>>>>>>>>>>> >>>>>>>>>>>> ; put it back together >>>>>>>>>>>> aoutL pvsynth fbinL >>>>>>>>>>>> aoutR pvsynth fbinR >>>>>>>>>>>> >>>>>>>>>>>> xout aoutL, aoutR >>>>>>>>>>>> endop >>>>>>>>>>>> >>>>>>>>>>>> <daisyCsoundVersio.h> >>>>>>> >>>>>>>