After some consideration I changed the len parameter of the sampler, to limit the playback length in relation to the absolute length of the sample and not the remainig length after applying the offset.

Next big user experience feature are more elaborate help text for nodes/modules. I don't want the user (or even myself) to switch out of HexoSynth just to look up how a module works or what a parameter/input port does.

Another important user experience feature has been added to HexoSynth: node/module descriptions in the Menu. Just to understand the purpose of a given node at a glance. It will make exploring all the difference nodes and modules very easy and convenient.

As next task, I concentrate on adding a description and help text field to the existing nodes. And also add a dialog to the F1 help in HexoSynth to display this. The description will be displayed in the context menu where you can add new nodes to the matrix.

The progress in HexoTk for the Knobs was done for the Detune parameter for oscillators in HexoSynth. You can use these to detune the oscillator in semitones and cents. Finer adjustments are also possible by holding down the Ctrl and Shift keys.

Another feature on my GUI toolkit HexoTk: Knobs can now be snapped/rounded to 2 different resolutions and even without snapping when control key is pressed. I also implemented a finer adjustment mode with shift key pressed. The actual resolution and snap will then depend on the specific parameter in HexoSynth.

I just added an extra gate output for each column in the tracker, which makes making simple melodies much easier (there are separate gate columns possible, but more complicated). as you notice from the clicks: there are absolutely no envelopes implemented yet!

Some months ago I could not imagine automated testing of DSP code would be this useful. But a DSP engine is after all quite deterministic. In this instance it was super helpful to root out the remaining bugs in my feedback handling.

I turned my attention to implementing feedback within the DSP graph. Currently the 64 sample buffers prevent immediate feedback, also due to the ordering algorithm. So HexoSynth will provide FbWr (Feedback Write) and FbRd (Feedback Read) nodes to send slightly delayed (1.5ms) audio to other nodes.

So far the bird seem to like it. It's a big improvement over the previous situation with the plates. I stared making a Git project for each 3D print I design now, so you can find it on my personal Git repository on m8geil.de/repo/3DP_BirdFeeder

The sampler module has been finished now. One Shot mode, Offset, Length, De-Click and retriggering have been implemented now. Here is a small demonstration of it's capabilities. You can modulate most parameters at audio rate and go wild.

Today something completely different: I designed a bird feeder for 3D printing. It has a big silo attached on the top, so I don't have to refill so frequently anymore. It's also split up into multiple parts, to cut down on printing time and so that it fits within 20x20x20cm build volume. You can already download the files from my Git repository: m8geil.de/repo/3DP_BirdFeeder - Going to print it within the next days.

Finally back at implementing the sampler. Here you see that I just got basic directory browsing working. Next up is connecting file selection with the actual sample loader and we can select arbitrary files to load and play.

I don't tinker on my PC hardware often. But the replacement HDD arrived, and I had to. I kept the bad HDD and moved it to /dev/sdb for recovering the data that is not in bad sectors. No important data was damaged, and the up side is, that I run now Ubuntu 20.04 instead of 18.04.

Oh, and yes, the protection foil was on that PC for 2 years now, so I finally took it off now. Very satisfying 🙂

Because a dying harddisk didn't hold me back, I invested some work into my other long term project: WLambda scripting language. As listed in the recent release, I implemented a reference doc that can be browsed directly from the REPL, which makes looking stuff up a total breeze. Also implemented std:str:edit_distance while I was at it.

Show older
Mastodon

This is a brand new server run by the main developers of the project as a spin-off of mastodon.social 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!