Categories
Arduino software

Minimalist Programming

Sometimes it’s fun to do things just because they are interesting. This idea seems to be behind minimalist programming languages (languages with barely enough keywords to be viable). These languages have no useful purpose except to pose a challenge to programmers using them. Here’s one I played with on the Arduino.

Categories
algorithm Arduino software

MultiBlink – Simplifying concurrent LED patterns

A long time ago (2012) I wrote an application called MultiBlink that allowed me to control many simultaneous independent monochrome LEDs lighting in patterns. The original version was updated a number of times, gaining more features (and complexity) with each iteration. Recently I updated MultiBlink to version 5, which included a conversion to using neopixel type RGB LEDs controlled using the FastLED library.

Categories
Arduino electronics MIDI software

DIY MIDI Percussion Kit – Part 2

In the first part we built up some percussion sensors using piezo electric elements that can detect a strike and provide feedback on the strength of the blow.

In this part we define a software framework that turns these, and any other similar sensors, into a DIY percussion kit.

Categories
Arduino electronics hardware MIDI

DIY MIDI Percussion Kit – Part 1

Some small projects are interesting because they can enable more than their initial proposition, and the simplicity of producing synthesized sounds using a MIDI interface allows us to experiment with different types of instrument ‘user interfaces’.

In this project I build a flexible software kernel for a DIY MIDI percussion kit that can initially be used switches and piezo sensors but is easily extensible.

Categories
Arduino software

An Easy ‘Simon’ Game

As a child I enjoyed playing an electronic light-and-sound game called Simon. This memory had completely slipped from my memory until I recently saw something about it on the internet.

As this seemed to be a good subject for some Arduino recreational programming, I did some research and recreated the game using Arduino code. Here’s the result.

Categories
algorithm Arduino Parola software

Parola A to Z – Handling non ASCII characters (UTF-8)

A question that I am asked on a regular basis is why particular characters in messages are not displayed ‘as-expected’ by the Parola library. These characters, often typed in from the Serial monitor or embedded within strings, contain non-ASCII characters. Here’s what is happening.

Categories
algorithm Arduino electronics PCB software

Making music with a Yamaha YM2413 Synthesizer – Part 3

Part 1 and part 2 of this series set up the hardware and software infrastructure to support end-user applications using the YM2413 synthesizer. These are discussed in this final instalment.

Categories
algorithm Arduino electronics PCB software

Making music with a Yamaha YM2413 Synthesizer – Part 2

The first part concluded with the YM2413 hardware and an amplifier on a test Arduino Uno shield. In this and the next part we explore the interface to the device and how to control the hardware to make music.

Categories
Arduino hardware software

A Glockenspiel Music Box

My project ‘to-do’ list has for a long time included automating a percussion instrument. I recently decided that a xylophone or glockenspiel type instrument would be a good idea … until I saw the cost of one of those things!

So to fulfill my ambition in an economical way, I downsized to automating a toy glockenspiel. Here’s how it went.

Categories
algorithm Arduino software

An RTTTL Parser Class

Ring Tone Text Transfer Language (RTTTL) was developed by Nokia in the 1980’s as a format and mechanism to manage ringtones on cell phones. As Nokia was leader brand at the time, this method was quickly adopted by many other manufacturers and became the de-facto standard for ringtones.

As cell phone hardware became more capable, the use of RTTTL has diminished in favour of more advanced sound production – today most ringtones are simply ordinary sound files. RTTTL files, however, are still useful in may applications.