Making noise with a SN76489 Digital Sound Generator – Part 3

In the first part and second part we examined the basics of the SN76489 hardware and the development of a library to manage sound production from this IC.

So, after all this effort, what kind of sound does this hardware produce? In this final post I run a few tests and dig into the resulting waveforms.

Continue reading “Making noise with a SN76489 Digital Sound Generator – Part 3”

Making noise with a SN76489 Digital Sound Generator – Part 2

In the first part we examined the basics of the SN76489 hardware and how to manage it at the hardware interface between MCU and IC.

To enable sound generation experiments, the first thing I did was create a library to allow me to write sketches without worrying too much about this underlying hardware management.

Continue reading “Making noise with a SN76489 Digital Sound Generator – Part 2”

Making noise with a SN76489 Digital Sound Generator – Part 1

Most computer games from the 80’s are recognizable by the bleeps and bloops they produced for sound. The easiest way to do this to toggle a single I/O pin to generate a square wave but there are some retro sound ICs that allow us to do much better for a minimal investment.

The SN76489 is one such IC that is still available at a very modest price and is easily interfaced to modern microprocessors.

Continue reading “Making noise with a SN76489 Digital Sound Generator – Part 1”

YX5300 Serial MP3 Player – Message Sequencing

Since my previous YX5300 post I have received a number of questions related to how the serial messages between a host and the MP3 module work. Understanding this message flow is important when writing code that uses the MP3 player in an interactive application.

Continue reading “YX5300 Serial MP3 Player – Message Sequencing”

YX5300 Serial MP3 Player (Catalex Module)

YX5300_Serial_MP3_PlayerWhile browsing eBay looking for a module to play extended sound effects (MP3 and WAV files), I came across these modules that looked like they would fit my purpose. The module has been around for a few years and is based on the YX5300 IC. As it turns out they are easy to use and produce a good sound in a small package.

Continue reading “YX5300 Serial MP3 Player (Catalex Module)”

Fun and Games, and a New Library

F+G_Icon

I have for some time wanted to (re)write some of the computer games from my younger days as an exercise in programming and for a bit of fun. I recently decided to do this on a very low-res display made from individual LED matrix modules and in the process created a new library to manage the LED panel display.

Continue reading “Fun and Games, and a New Library”

Playing MIDI files on Arduino – Part 3 Hardware and MD_MIDIFile Library

MIDI_computer_music

Part 1 and part 2 covered Standard MIDI Files and playing music at the right tempo. Once we have a MIDI stream, we need hardware that can play the notes.

In this part we’ll look at how to finally make a sound and how the MD_MIDIFile library supports this in software.

Continue reading “Playing MIDI files on Arduino – Part 3 Hardware and MD_MIDIFile Library”

Playing MIDI files on Arduino – Part 2 Keeping to the Beat

MIDI_computer_music

Keeping time in music is very important. So it stands to reason that MIDI files include a number of parameters related to keeping time, and the MIDI standard also includes time synchronization messages to ensure that all the instruments keep to the same musical beat.

Part 1 covered the content of Standard MIDI Files. In this part we’ll look at the how to  keep the music synchronised to the beat, one of the more complex parts of playing a SMF.

Continue reading “Playing MIDI files on Arduino – Part 2 Keeping to the Beat”

Playing MIDI files on Arduino – Part 1 Standard MIDI Files

MIDI_computer_musicMIDI is an industry standard music technology protocol that connects products from many different companies including digital musical instruments, computers, tablets, and smartphones. MIDI is used every day around the world by musicians, DJs, producers, educators, artists, and hobbyists to create, perform, learn, and share music and artistic works.

MIDI music can be stored in standard files. Here’s what they look like and how they work and how we can ‘play’ the files.

Continue reading “Playing MIDI files on Arduino – Part 1 Standard MIDI Files”

Tic-Tac-Toe and an Experiment in Game Interface

tictactoeThe motivation for this project was to explore the separation between the algorithm for managing a game and the user interface for the game. Discovering a Tic-tac-toe algorithm simple enough to implement on the Arduino allowed an exploration of this concept in a game with simple user interface requirements.

Continue reading “Tic-Tac-Toe and an Experiment in Game Interface”