Hardware-ize a VST (attempt1)

...and how to do so...
RELATED
PRODUCTS

Post

nice one on your persistence

wishing your success with it

you need sound more than us,
but damn- make some sound u bad thing!

heh- are you employable Antto? I need to do this too to a degree,
let me know if you'd like me to pm
I have a concept- my wage would suck hard though

Post

sweet
Duh

Post

nix808 wrote: Tue Mar 24, 2020 8:05 pm nice one on your persistence

wishing your success with it

you need sound more than us,
but damn- make some sound u bad thing!

heh- are you employable Antto? I need to do this too to a degree,
let me know if you'd like me to pm
I have a concept- my wage would suck hard though
i'm employed already

update: after this board was sitting gathering dust for months, i decided to give it another chance during the holidays

as part of another project, i made a little adapter for JTAG to SWD/STDC14
Image
(on the left)
now i can use the virtual serial port that's part of the DAP programmer too

i started by trying to get buffered, interrupt-driven USART transmit and receive, written from scratch.. it worked, so i have serial debug output and MIDI-in seems to work

next, investigating why there's no data on the I2S SDO pin
writing slightly better code for the audio codec
implementing my own I2S code, then the scary DMA
Image

i had made a few mistakes in my initial codec config, the thing was never gonna make sound since it's in "power-save" mode by default
i eventually got sound out of it, but half of the time it was junk data:
Image

it took me a lot of headaches to figure this out
eventually i think i solved it - the DMA descriptor addressing when auto-increment is used, are weird
floating point stuff seems to be working too

i don't remember why, but i had initially "designed" this to run the PCM3060 in 16bit mode at 96kHz, but now i went for 24bit I2S with 32bit slots

audio input hasn't been tested yet, i should populate some more of the components next.. like the audio input, some of the analog pots, and maybe the square waveshaper

during developement, it would be very convenient to drive this thing with MIDI notes coming from the x0xb0x
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

populated most of the audio circuits
unfortunately the reception from the codec is giving me only 0 values, no idea why

i probed the square, roughly tuned it (ramp bias and scale before the waveshaper)

http://antonsavov.net/tmp/z_same54_audi ... s_x0x1.mp3
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

i made some progress recently

unfortunately the filter starts to not work well at higher cutoff frequencies, possibly double precision floating point would've helped but the MCU only has single precision
thus i had to oversample it... a lot...
8x is the minimum oversampling factor for it to behave well, and the MCU couldn't really do it in realtime anymore
i had used the 1-sample-delayed feedback, and then iterative method of some sort, so it was very variable
then i finally managed to convince wxMaxima to solve the feedback mathz and now it's with predicted feedback and no iterations

so i made a bunch of compromises around, including reducing the sampling rate... all the way down to 48kHz... and i overclocked the MCU
so now it runs in realtime, i'm currently tuning it roughly.. an oscilloscope would be very convenient, i might be able to borrow one soon-ish

since i still have no audio input from the codec, the wonderful analog square wave can't get into my filter, thus i tried to write yet another model of the square wave.. this time with more mathzy curves
it's still fake, but at fixed frequencies i can tune it to match the shape of the real thing very very closely.. i still wanna get a scope so i can recalibrate it better

potentiometers are working... i can haz tweakage
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

Slick :)
Duh

Post

another audio demo, it seems a bigger chip will be needed, and a different audio codec

http://antonsavov.net/tmp/same54_audio_01.mp3

possibly it won't be populated any more than this, so here's the final pic:
Image
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

It does sound nice ;)
Duh

Post

Hi antto
Recently I plan to build a pedal experimental board with PCM3060 codec and some RPI-like SBC. I wonder that some questions from your point of view
1. PCM3060 is enough for realtime audio? or are there any other substitutions?
2. MCU(bare metal) or SBC(linux) is better? IMO, SBC would be more flexible to build software, MCU may be more realtime

Regards

Post

antto wrote: Mon Jun 06, 2022 5:00 am
sorry to bother you, guy above needs your expertise!

nice work btw, missed the thread before :)

Post

rossihwang wrote: Sat Jul 08, 2023 9:14 am Hi antto
Recently I plan to build a pedal experimental board with PCM3060 codec and some RPI-like SBC. I wonder that some questions from your point of view
1. PCM3060 is enough for realtime audio? or are there any other substitutions?
2. MCU(bare metal) or SBC(linux) is better? IMO, SBC would be more flexible to build software, MCU may be more realtime

Regards
if that's an "effect pedal" then you probably need both audio input and audio output
PCM3060 is stereo in/out, so by specs it has 2 inputs and 2 outputs
however, as you may see from my unfortunate experience here - i could so far never get any input from it
if you websearch like i did, you may find a few other individuals who have had a similar experience as me with this codec, in fact, i could not find a single clue on the internet about anyone who has managed to use this codec in full-duplex mode

so i honestly wouldn't recommend it
for an eventual next try i bought a different codec - AK4558EN, it's stereo, and there are at least 2 or 3 commercial products that use it, so both inputs and outputs should work
the only slightly unfortunate aspects about it are that it's QFN only and I2C... i actually can solder QFNs now, but i still hate I2C and prefer SPI, but oh well

SBC sounds like you'd be writing a "program", while with an MCU you're writing a firmware
i confirm that with the MCU you are free to set up the audio however you want (within the capabilities of the codec and MCU) so you can get very very low latency, not sure about the SBC
in general i have zero in-depth experience with these SBCs
EDIT: supposedly it should be easier to write a program for the SBC running linux, i think, you'd just need the right compiler and then it's the same as writing a program for a "PC" with linux, more or less
but i'm not sure how you're gonna "glue" the audio codec onto the SBC
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

as i've already said, the MCU i chose wasn't fast enough for the synth i wanted to run on it, however, it is fast enough for a lot of simpler DSP algorithms, so i might make a small board with it and the new audio codec to have 2 mono inputs and 2 outputs and then write some distortions or what not
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post Reply

Return to “DIY: Build it and they will come”