CMSIS provides ready-to-use implementation.
For interpolation you need call arm_fir_interpolate_init_f32 (once) and arm_fir_interpolate_f32 ( in the loop)
For decimation you need call...
Type: Posts; User: tomas
CMSIS provides ready-to-use implementation.
For interpolation you need call arm_fir_interpolate_init_f32 (once) and arm_fir_interpolate_f32 ( in the loop)
For decimation you need call...
If you did oversampling "by the book" you would need polyphase FIR interpolator at the input and polyphase FIR decimator filter at the output. These are costly. Not doing things by the book results...
With max resonance you can clearly hear that analog filter has some "gritty" quality to it (2:52 of your video), while digital is sterile and lacks this effect completely.
I noticed that you are using copy of the same input sample when oversampling and averaging output. You may consider using linear interpolation on input and dropping on output.
Sorry, I did not want to sound harsh, I realised that I was too quick to post feedback, so I deleted it as it requires more time. I will run newest code and do more tests.
UPDATE: Now I am running...
For obvious (performance) reasons nobody uses math library tanhf for audio. It is way too slow. And if you read previous posts, you would see that I earlier wrote to use float everywhere, not double...
For what it is worth soft saturation (distortion) is absolutely essential to Moog sound. https://www.youtube.com/watch?v=5sAq0FjRUI4
And using tanh() in simultation is not random choice. Moog ladder...
Was busy with other stuff, but over the weekend I intend to pull that code and check against analog 4pole "moog" filter simulation in hardware Virus TI synthesiser. Guys from Kemper Music are famous...
Here you can find the document that describes from where the delays come from:
https://www.ti.com/lit/wp/slyy095a/slyy095a.pdf?ts=1613141458124
For what it is worth it is not possible to exactly simulate non-linear analog filter with feedback in digital domain because of the delay introduced by digitization.
So called "zero delay" filters...
Sorry. Apparently I need to get my eyes checked.
For better reliability of your MIDI IN consider 10k resistor between pin 7 and ground of optocoupler as explained here:...
As I wrote in my earlier post, I advise to keep attention to those little details such as using floating point constants:
4.0 is a DOUBLE (64-bit) constant. It causes your computations to be done in...
Two performance suggestions:
1. Use f for constants: like 0.9892f instead of 0.9892. Constants by default are double. Float is twice as fast even on hardware FPU
2. Use float instead of double...
SNR is measured in dB. And it was observation / comment / remark (hence "approx" word), not measurement. PT8211 is so bad, not only with regards to noise but mainly to distortion that I wonder why...
"Brand" effect. Everything that has name "Raspberry Pi" on it gets media coverage. Every web site talks circles about it and praises it as it was the best thing since sliced bread. They don't mention...
The other person could say: Focus on your core product/business. High-performance microcontrollers in tiny user-friendly package. Why would anyone bother to think about yet another 12-year old Cortex...
Cortex M0 was introduced in 2009. So it is 12 year old tech.
CPU in Raspberry PI 1 wasn't 12 years old.
But typical user does not program (majority of) them using APIs (yet), of course except...
+1.
That is my sentiment too. I have seen such hype so many times in the past. Don't waste time on platform that is not bringing anything new.
M0 is old tech, underpowered, lacking crucial...
Yes, I have been running it at 750MHz super stable, but decreased longevity https://www.nxp.com/docs/en/nxp/application-notes/AN12253.pdf worries me a bit.
And it is 5 times as useful :-) Seriously. I am making project that requires LOT of horse power and will probably use 5 or more Teensy 4s. And I need bare metal,
so Linux based things like Raspberry...
+1. and 600MHz T4 is even better :D
There is detailed chart on page 180 of reference manual for F401.
FIFO has four 32-bit words that can act as 16 bytes or 8 half-words (16-bit).
It does. Page 166 and page 180 of STM32F401 Reference manual: "Four-word depth 32 first-in, first-out memory buffers (FIFOs) per stream."
FIFO in STM32F401 is universal that handles not only I2S...
Exactly, noise floor approx -58dB that is less than 10 bits. Good cassette decks in '80s were able to get >70dB.
I2S without masterclock limits the number of DACs you can connect to those that don't need MCLK. Also since this PIO seems to be implementing I2S in software
the question arises about clock jitter...
Now do the same with PT8211 and you will see how bad it really is. I would say it is no better than '80s compact cassette.
I also hate Arduino IDE, but there is a solution already. I strongly recommend taking a look at PlatformIO (Visual Studio Code addon). It is night and day compared to Arduino. I used various IDEs for...
I am using studio grade ADC AK5394A (123dB SNR/ 123dB DR) with Visual Analyser. With regards to your results, your power supply may be the culprit too. Disconnect USB and try running from some high...
I would actually say that pretty much ALL current high quality sigma-delta audio DACs have oversampling built-in with multistage decimator and FIR filters that have quality way above what is offered...
Yes it would be very handy to have SDRAM option on board. Note that this Daisy board uses STM32H750 microcontroller at @480MHz so it is already significantly slower than existing Teensy 4 @600MHz,...
First, in almost all practical cases you use windowed sinc.
Second, as I wrote, its better to do range reduction yourself.
Range reduction of large arguments in trigonometric functions is always problematic because PI constant used is inherently inaccurate. There is infamous bug in Intel x87 FPU hardware that causes sin...
Yes see:
https://www.mathworks.com/help/dsp/ug/optimized-fixed-point-fir-filters.html
It works because you have converted (rescaled) floating point coefficients to fixed point. If you use short data type (16 bit), coefficients are supposed to be in the range of -32768 upto 32767 and...
Datatype short is 16 bit - it is too low resolution for coefficients of a good filter. Also if you just change the data type from int to short, you will likely overflow the range, as short has only...
I did that already in the past. True power issues are a problem if you want to light up entire strip, but to light up only a few leds out of say 4 octave keyboard (48 leds) (usually you don't have...
Just my 2 cents worth: I also faced problem that I needed a decent and FAST debugger for complex programs written for embedded systems (not only Teensy but STM32 too). Although I got debugger with...
Soldering Teensy is not rocket science. Certainly not more complicated than soldering Arduino Nano or Micro. Keep temperature in check, don't use too much tin and heat the pad and the pin not more...
I got Access Virus TI hardware synth (virtual analog) and you can pretty easily get bass/tom/snare drums with it with self-oscillating 4 pole resonant filter that has its cutoff frequency modulated...
Defragster - thank you very much.
I also would like to know if part number to be used in future teensy will be i.MX RT1176 and what is planned release date of 1GHz Teensy, please?
Happy festive season to everyone!
With all due respect, "Teensymoog" is sonically nowhere near real Minimoog. The same applies to pretty much any synth created using Audio library for a number of reasons:
1. Aliasing - audio library...
OK, I see what you meant. The thread is flat, no threads are shown by default, as you noticed. A clickable "1 reply" button reveals direct replies, just making easier to locate them. You don't need...
All Discourse setups I have seen work with flat threads. So frankly, I don't know what you saw.
@luni - thank you for the feedback, yes pasting images straight into post is huge time saver.
There is an import script/procedure and tutorial: https://meta.discourse.org/t/importing-from-vbulletin-4/54881
But I did not do VB import myself, so I can't comment about how good or bad the...
For what it is worth, may I suggest Discourse https://www.discourse.org/ It is modern community software, authored by people behind StackOverflow, in many ways better than vBulletin and classic BB....
I also think that Wolfson codecs are generally very good. I got bunch of WM8591 (110dB DAC/102db ADC) and that is true that it requires proper mixed signal design of your board but results are very...
For what it is worth, Amiga Paula chip had 4 separate 8 bit multiplying DACs each with independently controlled sampling rate and with 6 bit digital volume control for each DAC all driven by...
For what it is worth, as per my own testing, Teensy 4 is fast enough to produce over 400 band-limited (anti-aliased) PolyBLEP square and/or sawtooth waves @44.1kHz (custom code, not using Audio...