Thanks for the response, Spencer. Your suggestions matched exactly with what I implemented! I used my own FFT, and filled an internal sample buffer. It works great!

I also have a stereo GVerb ChuGin underway. The DSP is working but I haven't implemented all of the settable options yet.

My code is in a fork of the CCRMA chugin repo at https://github.com/jwmatthys/chugins

I made a little demo of the pitch tracker by combining it with PitShift to make a simple autotuner. The ostinato ModalBar is GVerb-ed. It's here: https://soundcloud.com/jwmatthys/obama-autotuned-chuck-version

Thanks,
Joel



On 12/24/2013 11:00 AM, Spencer Salazar wrote:
Hey Joel,

Its not currently possible to create a UAna ChuGin, though this is something we are definitely considering for the future. If it were me doing this right now I would buffer FFT frames internally in a UGen and spit out pitches from a member function or variable as they become available. You would probably have to write your own FFT (or use code/a library from somewhere else), which is sort of lame/inefficient from a software design perspective, given that ChucK already has its own FFT implementation built-in. 

That being said, I think a dependable, go-to pitch tracker would be a great addition to ChucK's chugin library, so please keep us posted on your work and we would be happy to help with any general guidance or specific questions. This is the kind of use case we want to make easy, or at least not unnecessarily cumbersome. 

Im planning to write a solid chugin tutorial some time in the next month or so, but for now, yes, the paper and the source code are the primary documentation. A good portion of ChucK's internal ugens/libraries use the ChuGin-style API (but are compiled in statically of course). So the ChucK source tends to have more breadth in showing how the system works than most of the existing chugins, which are generally pretty simple. 

spencer



On Mon, Dec 23, 2013 at 6:04 PM, Joel Matthys <jwmatthys@yahoo.com> wrote:
I'm trying to implement a good pitch tracker as a ChuGin. Is there any kind of tutorial or walk-through that anyone has done?

A few questions:
- Is it possible to create a UAna ChuGin or must it be a UGen?

- How do you suggest implementing an FFT-based instrument which uses 1024 or 2048 sample frames for analysis?

- Besides the CCRMA paper and the source code, is there any documentation of ChuGin programming?

Thanks!
Joel
_______________________________________________
chuck-users mailing list
chuck-users@lists.cs.princeton.edu
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users




_______________________________________________
chuck-users mailing list
chuck-users@lists.cs.princeton.edu
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users