• Audio
  • Realtime audio drivers in Rust

a month later
15 days later

l0calh05t Oh cool! This is great. I really look forward to your next post and reading about getting bela-sys and bela-rs working and happy.

I'd be happy to help make a tutorial for Mac and Unix users as well.

    5 days later
    12 days later

    djensenius You're welcome! And thank you so much for the show of appreciation! Blogging and tweeting can feel a lot like talking to a wall when you only have a handful of followers, so thanks for the motivation to continue

    12 days later
    2 months later

    Thanks for the interesting write up, it's nice to see how straightforward it is to do SIMD in Rust.

    The reĀ­al thing alĀ­so had to apĀ­ply some tricks to conĀ­trol clickĀ­ing.

    Tell me about it (I wrote about it, glad to see some common interests šŸ™‚ ).

    Some of them even sound kinĀ­da orĀ­gan-ish.

    I modified an open source Hammond emulator for conducting a study (Ch 4 here) and something that made a big difference in the "realism" (or at least in making the sound passable) was the relative weighing of the partials: in practice the gains are far from unitary. To get an approximation of that I played all the notes on a Hammond C3 with only one drawbar active at any time. With a Matlab script I was able to infer the relative weights. Although clearly these are just an approximation of what happens when they are summed together, the difference it made to the sound was night and day.

      giuliomoro Thanks for the interesting write up, it's nice to see how straightforward it is to do SIMD in Rust.

      Yeah, and not even a single CPU-specific line of code was necessary. This was my first experiment with Rustā€™s explicit SIMD support and I was very impressed as well. Since my original post on the topic, the Rust library team actually integrated the portable_simd crate into the standard library (still nightly only though!)

      giuliomoro Tell me about it (I wrote about it, glad to see some common interests šŸ™‚ ).

      Cool! Thanks for the link šŸ˜Š I was planning to base it on info I find around the web on pages like the Hammond Wiki (such as how the manuals are tapered). And it turns out they actually link your article on the key click page! I may have to pick your brain on some topics when the project is further along

      giuliomoro I modified an open source Hammond emulator for conducting a study (Ch 4 here) and something that made a big difference in the "realism" (or at least in making the sound passable) was the relative weighing of the partials: in practice the gains are far from unitary. To get an approximation of that I played all the notes on a Hammond C3 with only one drawbar active at any time. With a Matlab script I was able to infer the relative weights. Although clearly these are just an approximation of what happens when they are summed together, the difference it made to the sound was night and day.

      I wonder why I didnā€™t find that one during my research šŸ§ But for now Iā€™ll stick to basing it on tech specs instead of existing code. If Iā€™m not mistaken, the tapering, interacting with the passive summing via the drawbar transformers and the preamp creates the weighting of the partials (which may vary if multiple keys use the same tone wheel). And as your thesis abstract states: standard MIDI keyboards really arenā€™t the correct approach for a Hammond simulation! But no time (or skill) for custom hardware šŸ˜…

        l0calh05t And it turns out they actually link your article on the key click page!

        Wow I had no idea. I have been a big fan of that site obviously!

        l0calh05t But for now Iā€™ll stick to basing it on tech specs instead of existing code.

        that sounds good. In the end I spent perhaps more time understanding their code than it would have taken to implement it from scratch ... they try to be clever about many things that make perhaps sense in a VST context but not so much in the context of an embedded instrument...

        2 months later