Back to Thomas Sjöland's music page.
From 1976 to 1981 I spent a lot of time with the computer studio at EMS, the electronic music studio at Kungsgatan 8, Stockholm. This unique studio had a PDP-15 computer controlling a bank of oscillators, filters, ringmodulators and a mixer.
I used the EMS-1 composition language and various program generators for the production of experimental pieces of electronic computer music. I also implemented real-time editors for the EMS FM-generators (FMT, Polly, S etc.), a ratfor-style preprocessor, libraries to simplify the construction of music software, real time kernels with concurrent execution under full user control, and 3-D display software for a unique vector display terminal, all in FORTRAN. A tutorial was produced intended for composers interested in programming the studio using FORTRAN.
It might be fun to listen to a piece generated with one of my real-time composition algorithms (coded in FORTRAN IV of course), Computer Sound Sculpture III (2Mb, mp3).
Check this youtube clip.
During 1979-1983 L. Fahlén constructed a specialized bitslice processor design allowing 128 programmable FM-oscillators to generate sound in real time. Following the state of the art at this (pre-MIDI) period there was no ramp generator in hardware. Instead a control computer was intended for this purpose. I constructed the software in Z80-assembly for an embedded 6 Mhz Z80-B processor to solve this problem. The computer was however too weak to allow the sample rates of the ramps to use the same frequency as the sound producing hardware with more than about 30 simultaneous ramp functions, causing audible aliasing effects with steep ramps at times.
The whole setup was controlled from an ABC80-computer using the FIG-FORTH programming environment. This turned out to be ideal for flexible low-level modifications, but the lack of memory in the Z80-based computer disallowed more advanced control software to store its state in primary memory, a requirement necessary for acceptable real-time performance. 16-bit processors came out. A redesign introduced a M68000 on the control board. We (I) adapted some of the software for the Z8000 and for an LSI-11 as well, and we used a special co-processor to enhance number crunching of the Z80. Then Fahlén's exjobb was finally finished, and the project then was discontinued, due to the commercial MIDI based synthesizers, such as YAMAHA DX7 etc. that became available.
On the CD-rom "IT and music" produced in 1994 for IVA's 70-year anniversary I contributed with a program (including its rather simple source code in Think C) that generates MIDI according to an algorithm that I used in the piece "Infinite Variations" played at the International Electronic Music Festival, Stockholm, 1980.
I have produced some Mac-based software in C and Prolog. Even though these are not finished applications, the code might be of interest for program developers. Feedback is appreciated, although I do not currently actively develop the code. Questions on the code, will be answered. You can use the code for any private, educational or research project, but if you build a product using this code I wish to be contacted for discussions on legal matters.
I experimented with using the logic programming language Prolog as a control environment for MIDI equipment. The software written in LPA-Prolog contains some test software using an interface to the MIDI-manager in LPA-Prolog.The interface glue is a resource coded in Think C. The most recent version of this code (out of date, but essentially ok) has been ported to MacProlog32.
Note that the code is not a finished application, but rather a