Re: [Csnd-dev] [EXTERNAL] [Csnd-dev] More Daisy help

thorin kerr <[email protected]> Mon, 15 Sep 2025 10:37:26 +1000
Newsgroups gmane.comp.audio.csound.devel
Message-ID <CABf-TA8ppwpfv+TAaO7f9TGbFcy6YLdTPrq9t3CvfLVP0JFVnQ@mail.gmail.com>
I did did it on a Daisy Pod, which is a Daisy Seed mounted on a board with
a few conveniences (audio and midi io, and a few pots and buttons).



On Mon, 15 Sept 2025, 4:09 am Dave Seidel, <[email protected]> wrote:

> Ah, thanks Thorin, I will try that. Did you do this on a Daisy? I should
> mention that the code, as I posted it, works on the Qu-Bit Nebulae, which
> runs Csound 6 in a Raspberry Pi 3.
>
> On Sat, Sep 13, 2025 at 8:18 AM thorin kerr <[email protected]> wrote:
>
>> I managed to get Dave's example working cleanly with the following
>> settings:
>> ksmps=256, ifftsize=1024,
>> also hw.SetAudioBlockSize(512); in the .cpp.
>> And... instead of pvsynth...
>> aoutL pvsadsyn fbinL, 55, 1, 6
>>
>> aoutR pvsadsyn fbinR, 55, 1, 6
>>
>>
>>
>>
>> On Sat, Sep 13, 2025 at 3:41 AM 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
>>>>
>>>>