Author Topic: "Slightly" off topic: RoboVox accompany for the preen...  (Read 7621 times)

SMF

  • Team member
  • *
  • Posts: 43
    • View Profile
"Slightly" off topic: RoboVox accompany for the preen...
« on: February 06, 2021, 09:36:06 PM »
Hi,

this is not directly related to the PreenFM in any way, so please bear with me for this off-topic post... But I think it could be interesting for the one or the other here. I always wanted a RoboVox (who doesn't?). But getting the chips is getting more and more difficult and I didn't want to rip it off one of my extension-cards. So, I tried to emulate the thing on a microcontroller (UNO R3 with AT16U for USB). I am quite pleased with the result:

https://youtu.be/50V5BVDGWm0

I am currently in the process of smoothing out some rough edges in the FW. After that I would be pleased to share it.

best,
Stefan

lokki

  • Sr. Member
  • ****
  • Posts: 383
    • View Profile
Re: "Slightly" off topic: RoboVox accompany for the preen...
« Reply #1 on: February 06, 2021, 11:04:24 PM »
Please do!

Is it based on LPC? It sounds different....

vurt

  • Team Member
  • **
  • Posts: 84
    • View Profile
Re: "Slightly" off topic: RoboVox accompany for the preen...
« Reply #2 on: February 06, 2021, 11:15:48 PM »
Really cool. Want  ;D

SMF

  • Team member
  • *
  • Posts: 43
    • View Profile
Re: "Slightly" off topic: RoboVox accompany for the preen...
« Reply #3 on: February 07, 2021, 05:47:18 PM »
Is it based on LPC? It sounds different....

No, it is based on "synchronous-windowed-additive-synthesis". This tries to relatively closely model the output of a bandpass-filter when fed with a sawtooth wave (or noise). So it should sound quite similar to the Votrax SC-2 but of course not identical. The Votrax used (depending on the model) either a sawtooth or a pulse-wave (in both cases mixed with noise) to excite three bandpass filters.

LPC indeed does sound completely different. More like a speak'n'spell...

Essentially the synthesis-engine calculates 7 wavetable-oscillators, four of them synchronised to each other and windowed for the voiced sounds and three of them free-running for the unvoiced sounds. All of these oscillators produce a sine-wave. In case of the three oscillators for the unvoiced sounds the oscillators are frequency-modulated with white-noise to simulate the output of a bandpass-filter fed with white-noise.

Usage currently works like this:

  • On the lowest three MIDI octaves you can choose the f0 frequency (pitch of the voice). This will not trigger a phoneme. It just silently sets the frequency.
  • On the octaves above that you can choose to play several phonemes. If played legato these morph into each other. Otherwise they are played separately.
  • Using CCs you can
    • change the position of the formants from super-male to Mickey Mouse
    • change the noisiness of the voice
    • the morphing-time, tremolo,...
    • ...

best,
Stefan

the_duckchild

  • Team member
  • *
  • Posts: 26
    • View Profile
Re: "Slightly" off topic: RoboVox accompany for the preen...
« Reply #4 on: February 09, 2021, 03:37:27 PM »
brilliant stuff

:)

SMF

  • Team member
  • *
  • Posts: 43
    • View Profile
Re: "Slightly" off topic: RoboVox accompany for the preen...
« Reply #5 on: February 13, 2021, 04:55:59 PM »
Compile this with your favourite Arduino IDE, push it to the UNO and get your first RoboVox-Preview while it is hot... ;D

Notes:
a) you should use a LP-filter on Pin 11 (Audio-Out) to get rid of aliasing above ~8kHz
b) you should use a HP-filter (before or after the LP mentioned under (a)) with about 25Hz to get rid of the DC component
c) you should either
    * attach MIDI via TX/RXs pins (see usual tutorials for this) OR
    * re-programm the AT8U/AT16U with either HIDuino or MIDIklik, so that it behaves as USB-MIDI-interface.

Brief Usage:
=========

Play Midi-Notes C0-C3 (omni-channel) for setting f0. Play higher notes to select phoneme. Velocity changes volume. CCs for controling/altering parameters: See source.

And don't forget to look at the "usage_example.mid" for more details.

Have fun!
Stefan

PS: If you actually do stuff with it, let me know... ;-)