Beta 0.3.0
2024-10-29
- Added new collection; Amico, with one unit "Arduino UNO R3"
- Added the Audio Out unit to the Alpha Collection
- External unit API has new features, its now at version 0.4.0
- Fixed the alpha/sequencers/pulse_generator so that it doesn't output "false" as often as it did. Now it only outputs true or false whenever a change is necessary
- Fixing up what units are displayed in the dropdown when you toggle the development_mode boolean (its not supposed to display those that are marked as "in development" when the program isn't run in development mode)
Over a year ago I decided to come up with a short list of what I called "killer features" for Alchemy. Some things that I imagined if I could add would allow me to produce a really interesting and entertaining demo. The first was External Units - which you can see I've added in previous* updates. Number two; is Arduino support.
Amico
The new Amico Arduino UNO R3 unit allows you to interface with a real-life Arduino board and read or write to the pins in Alchemy.

Arduino is an Italian company, so I figured it would be cute to name this companion unit the "amico", the Italian for 'friend'.
This means for example, that you could set up a light show in a theatre where lights flash in time with the beat of the music. Imagine someone playing a drum kit where each of the drums and symbols is attached to a particular light in the room, and flash when that drum or symbol is hit! With Arduino it can be done. Or maybe set up some light sensors which trigger drum sounds, so a person can wave their hand over them and play a rhythm, or to start and stop loops of music.
We could also do robotic control! With Arduino we can control motors and solenoids, you could create all kinds of control systems. You could set up some home automation to control your lights or heating, or to water your plants.
Basically, anything you can do with an Arduino you can now do with Alchemy. And you get the added benefit of having Alchemy itself, with its constantly growing range of abilities, all easily plugged together!

There are many types of Arduino, and many add-ons you can get for it too. This update is limited to the UNO R3 board and doesn't have any facility for the many add-ons... Not yet anyway. I've spent some time writing a Rust library for communicating with boards loaded with the Firmata sketch, which could be used to create Units for the other larger and smaller Arduino boards. I just don't have any of them to test with yet.
Audio Out
One thing I realised I had forgotten to add was a unit that you could use to address any output stream. The Amplifier is only uses two channels and by design only uses the 'default' output device. The new Audio Output Unit allows you to select any output device and any of its channels.

We already have the opposite with the Audio In Unit, but I guess it just never crossed my mind to do output too.
Until Next Time
I hope you enjoy this update and find something fun and interesting to do with it!
In the future, I'm hoping to add a "computer" unit, within which you could write Python or Javascript code which would be run in a sandbox and could listen to and transmit from ports, allowing for more advanced processing features. You can do this with the External Unit API already, but I think I'd like a nicer package.
Oh, and "killer feature" number three? Midi
*In hindsight, I probably should have left this for last. This doesn't really fit into the whole "cool demo" goal, as its more about opening the program for other people to make their own units... something I need users for first