• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

STM32 based DSP/EQ

voodooless

Grand Contributor
Forum Donor
Joined
Jun 16, 2020
Messages
10,406
Likes
18,370
Location
Netherlands
Thank you, yes I have seen and read it before. I am a MS guy since 286 era and am realatively new to Mac. Basically they are saying, as every software vendor would say, "that's fine, yeah, totally ok, go ahead and change it" which was not really exuding confidence , so I checked Apple support which reads:

Kexts have the same privileges as the kernel, and thus any vulnerabilities in third-party kexts can lead to full operating system compromise.

Same privileges as kernel is the part I gave up. Maybe you know more than I do - do you think it is fine?
Well, yes, they are kernel extensions from 3rd party developers. So obviously these will have access privileges. So by default, Apple only allows its own kernel extensions. It's a matter of trust really. Installing new extensions cannot be done without user consent, so you'll always know what is installed.

I've been running Soundsource for quite a few years, and never had any issues whatsoever.
 

venquessa

Member
Joined
Feb 6, 2023
Messages
59
Likes
66
I got gear envy.
Need some more?
audio_dev_schem.pngaudio_dev_circ.png

I'll share the source files, et. al, once I fix the fact the LCLK and SCLK are swapped on the Anamero modules (top and bottom) Optical and USB1

As you can see, it's rather simple. Given that it's mostly modules.
 

venquessa

Member
Joined
Feb 6, 2023
Messages
59
Likes
66
Update. I cannot recommend those optical modules. The first one died and I assumed it was my fault. I replaced it. This morning the second one died. Same behaviour.

Worked fine, although an IR camera reveals one of the ICs is 55*C, 65*C if you step the bit rates up.
Then suddenly not working. It has MCLK, LCLK, SCLK, and what looks like a dead floating DATA line. Output drive gone, just flat with ripples and 50mV spikes. The I2S line driver chip is too hot to touch.

I still partially raise my hands that these failures could be my fault, working with bare modules and 3.3V ... it doesn't take much to spike one.

That said, at the least they are extremely fragile.

What cheered me up was the instant I plugged the USB module in, music started which I found surprising as the board wasn't powered! Alas, of course it's powered from the USB.

I have a different product optical/spdif board to test and will let you know. I believe it was a lot cheaper.
 

voodooless

Grand Contributor
Forum Donor
Joined
Jun 16, 2020
Messages
10,406
Likes
18,370
Location
Netherlands
Please note that while the PCM2706 is very convenient, it's also an ancient device, and is only a UAC 1 device in synchronous mode, meaning clock recovery is done via the USB data packets, and not via an external clock and the data asynchronous. This will yield a much higher jitter. In many cases though, this should not be audible.

Another viable option to tinker with audio stuff is to buy an XMOS board. It has lots of options, and the CPUs are very powerful. You can do much more with those than just do USB audio ingest.
 

venquessa

Member
Joined
Feb 6, 2023
Messages
59
Likes
66
The PCM2706 is only there as it's driverless, UAC1. ie. it should work with anything.

I have not even attached a master clock to it, I don't think it provides one or accepts one. That's fine in my case as the IO is asynchronous driven by the output FIFO and expects things to get out of sync.

The headers themselves are just I2S headers. They are ordered to match the modules I have, but I also intend to use the PCM2706 header to play with BT recieve and or TX modules.

You do have to be careful with your load and interrupt overheads though. I have found it's all too easy to upset the timing if a bit of code goes wrong. Like a bug in the UART while I was working on it was spinning back forward between its error interrupts at full speed. That caused a noticable clicking, suggesting the output FIFO was not being kept full. Anyway that was an erroneous state of affairs. You still need to be careful with priorities and such. Also I need a monitor or supervisor which checks for things like the FIFO over/under runs, I2S desync errors, noise gate and other "nice to haves". Ideally if things are not performing as expected I'd like an indication that tells me that.

Literally I intend to put a clock counter on the outputs to confirm they are running at the fs I set them to and not half clocking or similar.
 

voodooless

Grand Contributor
Forum Donor
Joined
Jun 16, 2020
Messages
10,406
Likes
18,370
Location
Netherlands
The PCM2706 is only there as it's driverless, UAC1. ie. it should work with anything.
It does :) But blame Microsoft for not delivering a driverless UAC 2 implementation, while macOS and Linux had it for more than a decade :facepalm:
 
Top Bottom