Show more

A starting design for a 100W guitar amplifier, complete with distortion and reverb. I need to add an auxiliary out circuit, as well. Looking good!

Some EE work this morning and in the last few days. Looking into building a guitar amplifier!

A favorite software technique I use: dynamically loading libraries and using function pointers to access the loaded library. Works in just about any contact in C/C++ and I have used it to make projects simpler to manage, and faster to compile. It's also very useful for building plugins.

More work tonight on the embedded Linux platform. I am building my custom Qt app and Audacity, together, on a Weston (Wayland) reference compositor. The goal is to bring up Audacity on the board and work with the audio interfaces.

Continuing work on a Linux-based effects system....I had to move up from anything STM32-based. There is simply too much efficiency in using Linux.

@SteveWhitty Great to see some Rush fans on Mastodon! I cannot stop listening to Rush (going on since 1987), and Permanent Waves is one of my favorites. My favorite tune off the album is probably Natural Science, but The Spirit of Radio is a close second.

The guy who wants to put neurolinks in our heads worries about people knowing where he is.

It's been a while, but I simply had no "spark" as far as writing new/interesting software is concerned, for the last little while.

This is related to a work project, but I am well on my to creating a Qt/Golang-based Modbus simulation program. I have managed to bind Qt/Quick/Qml to Go, and this is all enough to run a full-blown simulation. More to come.

I am switching directions, but I am getting into what all I'd really like to do anyway, and that's solve a problem I have always seen with audio production setups. So, the new goal is to mostly skip over reinventing the wheel (USB audio) and delve into digital audio workstation development using embedded Linux and various control. Lots more to come.

This kind of took most of Sunday, but whatever.... I built Audacity for the Yocto embedded Linux. I have a graphical environment already, so it will be handy to have access to Audacity to get a summary of the audio capabilities on the Apalis iMX8 platform. Plus a little fun running Spotify in Fedora.

Audacity - I am building this on the iMX8 system to test out the basic audio interfaces that are provided between the iMX8 Apalis SOM and Ixora carrier board.

Living the dream! I have some hardware work to do on the STM32 (ie. making a whole design on a printed circuit board) before I can do much more with that system. A limiting factor, as well, is the latency minimization on the USB audio interface. It's still manageable to use for a certain number of effects, but I need to make sure that I can do enough audio processing to have a viable product. The backup is Linux, and I will pursue that in the coming weeks, as well.

In working with the current platform tonight, I found that the USB audio interface is a limiting factor for signal processing - on the same processor. The buffer size is set at 48 bytes, due to the sample rate of USB FS and the audio sample rate. This is great for the USB audio interface, as the fairly latency is low, but between this and the short cycles between ADC transfers, effects processing is not ideal. So, the way forward now is...back to Linux, mostly.

Well, this is how development should/can run - start over early enough to not get into a bind. So, I have decided to take a sledge hammer to my current "issues" in using the STM32F407VG as the basis for a "simple" audio effects USB device. With this, I am seeing why these devices run up in cost. Getting to the crux of my issue(s): I can either upgrade the STM32 and still sacrifice a few features...or jump to an old reliable...the IMX6 running Linux!

Distortion! Learning a bit more about creating distortion with simple DSP routines. I have been wrestling with an issue where too few samples (as in none) were being skipped to compute whatever it takes to provide sine/cosine/modulo, etc. Other DSP algorithms I had used in AnaddrSynth - running on the iPad - even had some skips. So, this was a great lesson!

I finished the serial port management, as far as reconnection is concerned. This makes debugging and restarting the audio device much simpler. I also verified the distortion effects' gain setting and adding the module to the effects chain. Good session.

Getting into packets agains this afternoon, finding a way to embedded module type, command type, command end/begin, etc. At the moment, I am getting a gain value across, encoded as uint32, which takes some work. I will have to work on the decode on the STM32 side, as well.

So, I got into making up a very, very simple module - a saturation module - requiring one parameter. However, the thought occurred to me that I really need a packetization system in order to differentiate between modules and which ones need what settings, etc. So, this afternoon has been dedicated to that - which is still fun! I love it when I can take IEEE standards and use those to get things done.

Show more
Librem Social

Librem Social is an opt-in public network. Messages are shared under Creative Commons BY-SA 4.0 license terms. Policy.

Stay safe. Please abide by our code of conduct.

(Source code)

image/svg+xml Librem Chat image/svg+xml