Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Verilog source for my green Lifemidi box, for producing lights and MIDI-music.
Verilog Scheme
branch: master
Failed to load latest commit information.
src Added a Copyright-notice.
.gitattributes Initial github-published version, 2012-12-16. With Helsinki Wark-fest…


lifemidi/README -- The latest revision Dec 16 2012 Evening by karttu.

(No functional changes to the version presented at WÄRK:fest 20. - 21.10.2012,
just some minor clean-up of comments and indentation of code.)

Unless otherwise noted,
all Verilog code is Copyright (C) 2005-2012 by Antti Karttunen,
and is placed under GNU General Public License version 2.
See file COPYING in src directory.
(The module syncinp.v is so simple and a standard example from text books
that it is probably Public Domain.)

This project contains a Verilog-source code and the associated UCF-file
to be uploaded into Digilent's Spartan-3 Starter Kit Board with Xilinx
Spartan3 XC3S200-FT256 FPGA-chip. See:,400,799&Prod=S3BOARD

Additional Verilog-modules needed:

 raminfr.v, timescale.v, uart_defines.v, uart_tfifo.v and uart_transmitter.v
 located under this subdirectory:,listing?repname=uart16550&path=%2Fuart16550%2Ftrunk%2Frtl%2Fverilog%2F#path_uart16550_trunk_rtl_verilog_

Additional, extra hardware needed:

 - A 8x8 LED and reed-relay (reed-switch) matrix from an old Mefisto or similar
   chess computer. Of course you could solder it up by yourself as well.

 - Self-made optoisolator-board which interfaces 3,3 Volt FPGA-side to 5V side
   controlling the LED/reed-relay matrix and some other things.

 - A pulsing rotary-dialer from an old Ericsson (or similar) telephone.
   (This is for changing the factorial expansion/permutation which the
    device is currently playing and iterating slowly one step by time forward).

 - A 16 x 7-segment LED-display from an old Digitel-2000 telephone, from a
   model which had such a display. See for an example.
   Of course you could build this from any 7-segment led-displays
   you happen to have. The decimal points are also used.

 - A small "side-wing" thru which the above two elements are connected to
   Spartan-3 Board thru its User B1 Expansion Connector. This side-wing
   contains also the eight series resistors (etuvastukset) for each
   of the segments, as well as two pull-up resistors for the pulsing
   and "in the rest" signals coming from the rotary dialer.

 - Of course you need also some MIDI sound source box to hear any sounds.

 - Optionally, an external source for the beat.
   See e.g.

You can see some old photos of the device at:

However, since then I have added an additional optoisolator to the
optoisolator board for the incoming DIN-sync signal, and also added a
transistor for the outgoing MIDI-signal. The transistor's emitter is
connected to the grounds of both 3,3V and 5V side, so they are not
anymore galvanically separated as before. BTW, currently the setup is
extremely sensitive to any switching on of the electrical appliances
connected to the same extension cord.

A photo how the apparatus looks now in 2012 Q4:

See also:
(the sound comes mostly from other devices in that set-up).

You can contact me at: <My-firstname>.<My-Surname>,

  Antti Karttunen, Helsinki, December 16 2012.
Something went wrong with that request. Please try again.