The manx project started out as a tool to play music on self made metallophones attached to a real standard IBM-PC parallel port. This was in 1992. USB ports can not be used for this type of real time control. The first version was written by Marcel Hendrix. It progressed to be a general tool to make music audible, on built in midi devices and the speaker as well. As most programs on this site, it is written in Forth. The first version ran on iforth systems, first on MS-DOS, later also on Linux. You can retrieve the first revision from the RCS archive .
Marcel Hendrix started working with midi a lot more than with
the tingle-tangle's.
As a result midi commands get added, and the real time aspect
was played down.
An important change is that subsequent version loads the whole
piece and handles several instruments at the same time.
(In the first version the two metallophones were handled by each
having an instance of the manx program running and an
interesting mechanism to keep the instruments synchronized.)
It is also easy to cahnge to a different instrument.
All scores can be played on the internal speaker of a PC on
a part by part basis. (This has more to do with restrictions
regarding the PC-hardware, then regarding the program.
The speaker can play only one pitch at a time.)
This version was not portable at all, and as of 2017 iforth on MS-DOS
is no longer supported, nor 32 bit versions on modern MS-Windows's.
The drivers before tmanx (see below) had a serious design flaw.
If a musical note of say a quarter was played,
it was turned into a note of a fixed duration of 60 mS specified
in the midi file, this being the time that the relais had to
be activated.
This file can no longer be played on a speaker, or an organ,
because the note duration is too small.
In the 21th century the program was in real bad shape. At the HCC-dagen the Forth Chapter Holland could not play two instruments together, and it was exceedingly obsure how they were to be operated. I undertook to get this code running again portably, and playing the instruments together. I want portability problems by using three preludes: for ciforth, for gforth and for iforth. Despite tremendous efforts I could not get this second version to work, even with iforth. Even running it on iforth was hampered, because there was no official version of iforth available to the Dutch FIG chapter. Portability to gforth and lina turned out to be even more difficult.
If you want to experiment with this version,
start out with reading the text files such as notes.txt
in this archive.
You can not download the second version of manx as such.
Instead, download the general archive (see below)
and extract RCS version 1
using
co -r1 RCS/*
.
The RCS archives contains those
previous versions and, from revision 2.1 on,
the turnkey version (see below).
You want to have some musical scores to experiment with.
You can download them too.
The original authors have GPL-ed this code, and I have GPL-ed my additions. Our intentions at some time was to make this an open source project.
The third version of manx is called tmanx: turnkey manx. At last I gave up the idea to remain compatible with the old manx. Also I just wanted it to run on ciforth. I redesigned the language and rewrote the program from scratch. (since 2002) Compare this with the specification Marcel Hendrix has on his page. The claim that the old manx supplied with iforth's can control the tingle tangle's is incorrect, in view of changes to the hardware. A collection of music pieces in the new format, correct for my new version of manx is found in scores archive The Forth Chapter has added a new instrument, an organ, similar in sound to street-organs. I corrected the design flaw, regarding the notes duration of 60 mS. Consequently, these pieces can be made to play on the organ, The main source file is totally rewritten and now called manx2.frt. You may not run it, but it can be studied as an example of how to write an application language in Forth. Although there is an interface layer where through midi messages pass, there was no longer an option to play the files on a midi card. Old manx could control the tingle tangle's only via the generation of a midi file from manx scores, then play that prebuild file. Now I could use the facilities of ciforth to make a turnkey program, both with the lina and wina versions of ciforth. The result is an executable (on Windows or Linux) that is installed to start up with .sco files. Those files have a nice pictogram associated with it, a metallophone in a fig-green trapezium. The graphical user interface is installed such that the file name is passed as a parameter to tmanx, then played automatically. This has been accomplished on the Windows desktop (windows 95, later Windows XP) as well as KDE. During the play a window is present with the score. On KDE that window is normally closed. By making the window active and pressing a key, the playing stops. All interactive Forth commands become available, to play single voices, with different speed or transposed a semitone up, or a range of bars. The score files are also installed with an editor attached to right clicking, such that editing a score is intuitive.
In order to run manx one needs a couple of bits that can be toggled in real time, and a fast wrapping counter. An Intel linux or an Intel MS-Windows system with a parallel printer port will do. The Pentium's RDTSC, is sufficient for the timing. However the Raspberry pi and the Orange pi have general io ports "gpio's" that can be used, and both provide a counter of the order of 1 Mhz which is plenty fast enough. On both pi's manx has been successfully demonstrated.
Some archives here require old versions of the compiler. There is an explanation of how to build them.
You can download the
newest of manx contained in the RCS archive, see below.
You can build using the version 4 compiler of lina,
This assumes lina version 4.0.6.
by extracting the version tagged LAST_FOR_LINA4.
co RCS/* -rLAST_FOR_LINA
This is the last time reference to turnkey is made.
After 2005 the project is just called manx.
Use
co RCS/*
to just extract the latest revision and build it using make.
This assumes lina version 5.3.0
You can download a
up to date archive of manx able to build on ciforth 5 .
These will contain code for the armbian (raspberry pi, orange pi)'s
so you can inspect but not build the program,
in expectation of publication of armbian Debian archives.
Note that the archive contains all versions, since 1992.