Standalone player of Monkey Island PC-Speaker music

Overview

Detailed blog post about this, at: https://www.thanassis.space/monkeyisland.html

  • I modified DOSBox to extract the frequency/delay value pairs of the Monkey Island PC-Speaker songs.
  • I then managed to squeeze all the music data inside an ATtiny85 (512 bytes of RAM, 8 KB of flash)
  • Once I did, I created a small circuit with a speaker, to play the music...
  • ...as a gift for my nieces and nephews; whom I will see next week, after being away for so long! (COVID19)

Yes, their uncle is a complete nerd. And he made sure they grew up meeting Guybrush Threepwood :-)

Just read the blog post.

--

For those that want to reproduce the circuit: I confess I didn't make a schematic, since the HW part is so simple :-) The only part that matters is the transistor-speaker connection - copying it below from the Arduino forum:

Connecting PB0 to the base of the transistor - and controlling the speaker

As for the connections, as you can see at the top of the code...

  • The transistor's base gets connected to PB0 (via the 1K resistor)
  • The LED is connected to PB1 (via a 220 Ohm resistor)
  • ...and the pushbutton to PB3.

The pushbutton pin is pulled to GND via a 10K resistor, but pulled up to VCC when the button is pushed.

Also: these assignments are just #defines in the code - feel free to change them if a different placement suits you better.

Here's some ASCII-art of the ATtiny85, to show the pin layout:

                                    +--------+
       (PCINT5/~RESET/ADC0/dW) PB5  | 1    8 | VCC
(PCINT3/XTAL1/CLKI/~OC1B/ADC3) PB3  | 2    7 | PB2 (SCK/USCK/SCL/ADC1/T0/INT0/PCINT2)
 (PCINT4/XTAL2/CLKO/OC1B/ADC2) PB4  | 3    6 | PB1 (MISO/DO/AIN1/OC0B/OC1A/PCINT1)
                               GND  | 4    5 | PB0 (MOSI/DI/SDA/AIN0/OC0A/~OC1A/AREF/PCINT0)
                                    +--------+

Enjoy!

And share pictures if you make one :-)

You might also like...
By controlling the frequency at which the output Pins of MSP430 are turned off and on, we can make music.
By controlling the frequency at which the output Pins of MSP430 are turned off and on, we can make music.

By controlling the frequency at which the output Pins of MSP430 are turned off and on, we can make music.

PendulumSynth is an on-going and open-source project, running on Arduino platform with the goal of mixing real-world physics into music composition and musical performance.
PendulumSynth is an on-going and open-source project, running on Arduino platform with the goal of mixing real-world physics into music composition and musical performance.

PendulumSynth PendulumSynth is an on-going and open-source project, running on Arduino platform with the goal of mixing real-world physics into music

C/C++ library for converting a stream of OPL FM synth chip commands to the OPB music format

OPBinaryLib C/C++ library for converting a stream of OPL FM synth chip commands to the OPB music format Basic usage Store your OPL commands as a conti

A light-weight music Discord bot using Orca.

What's the "Music Discord bot with C"? A light-weight music Discord bot using Orca for it's bot. It's easy to use and install. How to download and use

C++ library for audio and music analysis, description and synthesis, including Python bindings

Essentia Essentia is an open-source C++ library for audio analysis and audio-based music information retrieval released under the Affero GPL license.

An experimental music sequencer using Uxn, designed to run inside of sndkit.

uxnseq An experimental music sequencer using Uxn, designed to run inside of sndkit. The core motivation of this project to test how easily the Uxn VM

A next generation media player, with vim-like bindings

MusicKid A next generation media player, with vim-like bindings Installation Clone the repo git clone git-url cd MusicKid/Final Install dependencies

Library and command line backend for the Raspberry Pi OPL3 emulator and midi player

About this repository This repository holds the source code for the pioplemidi backend. You can compile it if you only want to use the library or the

MP3 Player/Organizer

I ♡ Music I ♡ Music is an MP3 player and organizer. It is designed for handling collections of albums in MP3 format, and it is very visual, attempting

Owner
Thanassis Tsiodras
Lead Software Engineer of a software services startup for more than a decade. Over the last 5 years, working for the European Space Agency.
Thanassis Tsiodras
Strawberry is a music player and music collection organizer.

Strawberry is a music player and music collection organizer. It is a fork of Clementine released in 2018 aimed at music collectors and audiophiles. It's written in C++ using the Qt toolkit.

Strawberry Music Player 1.8k Jan 5, 2023
Arduino Audio Tools (Music Player, Music Recorder supporting I2S, Microphones, DAC, ADC, A2DP, Url)

Arduino Audio Tools Some basic header-only C++ classes that can be used for Audio Processing provided as Arduino Library: a simple I2S class (to read

Phil Schatzmann 527 Jan 7, 2023
A music player based on RT-thread and AB32VG1.

A music player based on RT-thread and AB32VG1.

杨澄 7 May 16, 2022
C++ Audio and Music DSP Library

_____ _____ ___ __ _ _____ __ __ __ ____ ____ / \\_ \\ \/ / |/ \| | | | \_ \/ \ | Y Y \/ /_ \> <| | Y Y \ | |_|

Mick Grierson 1.4k Jan 7, 2023
🎵 Music notation engraving library for MEI with MusicXML and Humdrum support and various toolkits (JavaScript, Python)

Verovio is a fast, portable and lightweight library for engraving Music Encoding Initiative (MEI) digital scores into SVG images. Verovio also contain

RISM Switzerland 519 Jan 1, 2023
A lightweight music DSP library.

Soundpipe Soundpipe is a lightweight music DSP library written in C. It aims to provide a set of high-quality DSP modules for composers, sound designe

Paul Batchelor 102 Dec 14, 2021
A simple CLI to extract & save artwork of a 🎵 music/audio file.

artwork-extractor A simple CLI to extract & save artwork of a ?? music/audio file. Usage Dependencies MediaInfoLib On Debian based distros, one may in

Hitesh Kumar Saini 5 Aug 4, 2021
a library for audio and music analysis

aubio is a library to label music and sounds. It listens to audio signals and attempts to detect events. For instance, when a drum is hit, at which frequency is a note, or at what tempo is a rhythmic melody.

aubio 2.9k Jan 2, 2023
Linux client for Archo Music written in C++, uses Qt Framework.

ArchoMusicLinux Linux client for Archo Music written in C++, uses Qt Framework. For the original client, visit Archo Music Compiling Setting up the li

GianXD 2 Nov 13, 2021
projectM - cross-platform music visualization. Open-source and Milkdrop-compatible

projectM - cross-platform music visualization. Open-source and Milkdrop-compatible

projectM Visualizer 2.5k Dec 31, 2022