Email or username:

Password:

Forgot your password?
Top-level
patchlore

Porting the nasal sounds has been a bit of a bumpy ride.

I have introduced a NaN somewhere. This kills the DSP. Now I need to track down where it has been introduced.

My approach has been to use panic and counters to iteratively bisect and find the earliest instance of a NaN. It's slow and tedious work.

The NaNhunt will resume tomorrow.

9 comments
crop

@patchlore
Your problem made me search for "better" floats. ... maybe this crate would help in your case: lib.rs/crates/typed_floats

patchlore

@crop nice! this looks very helpful indeed. I will check it out!

patchlore

With some trial and error, I managed to get throat singing working!

#vocalsynthesis #dsp #rust

Adrian Cochrane

@patchlore Sounds beautiful! With lots of promise!

MarcatoMarc

@patchlore Awesome!

patchlore

I made an oopsie and now the particular shapes I sculpted for this demo don't work anymore. Had to sculpt some new ones. They are okay enough though not as loud and pronounced as this one.

patchlore

Anyways, nasal/velum control seems to work I think. It's now a slider on the demo page. I've also turned on 2x oversampling, which will hopefully smooth things out a bit:

pbat.ch/recurse/demos/singer_t

Reilly Spitzfaden (they/them) replied to patchlore

@patchlore this project is super cool! My only experience with DSP/synths is in C++/JUCE, but I've been wanting to learn how to do it in Rust. I'll have to give this project a look

patchlore replied to Reilly Spitzfaden (they/them)

@reillypascal still learning things. the actual DSP programming feels pretty similar to how I do it in C, at least with my current coding style. I'm sure I'll get rustier as I go. Rust is more strict about number types (float vs int), and has some funny notation for math functions (x.sin() instead of sin(x)). There is a huge performance difference between debug and release builds.

Go Up