REVISITED A MSG History 1. The beginnings Ideas concerning music programming date as far back as the middle '80. I just bought a midi interface for my C-64, so I progammed the first sequence in basic. I quickly abandoned that sort of nonsene and bought a sequencer program - from Jellinghaus. 2. The Atari In 1987, I bought an Atari ST. The old ST Basic was nearly unusable, but quickly Omikron Basic was released, which was much better. My first project was an 'Analogue Sequencer Simulator' which had two rows of 16 notes which played simultaneously or alternating. Pitch, Velocity, and Length could be changed while the sequencer played. It was interactive, but I am afraid I lost the source code. Compiled Omikron Basic programs needed to run with an external library, which annoyed me (and still does with visual basic). Consequently, I switched to GFA Basic. This is what I still use today. The random functions are without doubt the oldest parts, followed by the Lissajous functions, which I found very fascinating as graphics. Both are quite easy to code, as the former is simply using the RND function, the latter more or less using a sine function. Kandinsky was an early program to process graphics musically. I had only the demo version, but that did not matter much. I remember thinking 'Well, they implemented all that graphic stuff that other graphic spplications do better, and they implemented that sequencer stuff that sequencers do better'. I wanted only to transform graphics into midi information. I was not interested in "musical graphics" or "graphical music" and still am not. I just wanted the possibility to extract information from graphics and use it, if it fit, as part of my music. So, in 1989, I started to work on a program that today has become MSG's graphic module. That year was a kind of 'year of algorithmic composition', because both big German keyboards magazine (KEYBOARDS and KEYS) featured a series on programming. In 'Keyboards' it was called "Rechners Neunte" ("computer's ninth") - I do not read 'Keys', though (Both magazines often have the same topics - what is new, is new, is new - and I have a strong suspicion that test results are coloured by the size of advertising area each firm buys in the magazines. But never mind). The first articles about mapping notes to midi, the structure of midi data, or assigning of modes gave me nothing new. The most intersting article was that about the programming of 'Drumming', which I did not know then. I thought it well worth programming, and I did. Like this, I worked on different ideas. Using them together in one single program was only one thought away, but I cannot remember when I actually did that. 3. MSG 3.3 This version is the oldest to survive, from April, 1996. There were only three different screens: editor, make, and rhythmn. The other modules which appeared in the unit menu were: graphic, drumming, ami, ascii, and morse. Choosing on of them led to a variation of the make screen. As you see, no distinction in Pre-, Main-, and Postprocessing was being made. The probability tables are present in a simple form for pitch and length, not for velocity. There is a graphical display funtion as well. It shows three displays, dotting pitch, velocity, and length on the y-axis, the event number on the x-axis. Not editable and not useful, but nice to look at - at least for an engineer like me. 4. MSG 3.5 This version is the oldest I still have the source code of - September, 1996. Here, we find the distinction into Preprocessing (Graphic, Morse, Load Midi), Main Processing (Make, Rhythmn), and Post Processing (Editor, Modify, Drumming, Transform). At first sight, Modify, Transform, and the Envelopes of the make module are the new features. The Ami and the Ascii module of v3.3 simply disappeared? No. As both Ami and Ascii modules only access possibilities to (originally pitch) values, these functions are now hidden in the probability tables. In fact, they are used to GENERATE these tables (so, you can generate a table to generate midi values...). The Ami Edit Screen still loads and saves original AMI files (yes, for that old freeware application) but goes ways ahead of the old program. There is a new edit screen to generate a probability table, STATISTIC. The new MODIFY module lets you modify Pitch, Velocity, Length, and Position in more or less musically meaningful ways. I love to mess around. This is even more true for the new TRANSFORM module, with which you can twist anything beyond recognition (in Germany we call that "die Sequenz verwursten", literally: "sausaging the sequence"). Length values can be higher than a half note from this version up. 5. MSG 3.8 October, 1997 - almost a year without major improvements. A new module, DRAW, is included. The graphic display of sequences has a second screen that displays pitch vs. position but no note length - still useless. The MODIFY module lets you select the events that are to be processed, however limited. The same holds for the TRANSFORM module. 6. MSG 4.0 December, 1997. New ideas had to be programmed. I think v4.0 takes a big step ahead. However, changes seem small at first sight. The intro screen is new, yes. some new modules, fine. So what? Modules come now in three categories: Generate, View/Select, And Modify. This new distinction is quite important: MSG generates and modifies - controlled by many parameters - sequences for you. The View/Select category holds the modules where adjustment by hand is possible and desirable. The DISPLAY and SELECT EVENT modules are specially designed to select and deselect events. Only selected events will be modified. Two new modifying modules are there, ORNAMENT and BATCH. Both do musical things that are not easy to accomplish otherwise, e.g. the harmonic shift or sorting in n-tuplets. 7. MSG 4.01 and the future February, 2001. No MSG programming for more than three years. Owing to my signing up to the atari midi egroup, I did something I was itching for: programming something for MSG. Musinum came in handy, so I added this as a new module. I guess the next steps will polish some modules up, little by little. Those three years pausing does not mean that MSG is not on my mind. Over the months, ideas for further enhancements developed. I do not mean adding a module or a function - this is rather easy now. Only today I added four more modes, what took about ten minutes. No, other factors have to be taken into account. a) The program's size. More features mean less events. I will definitely stick to 1 MB memory because it is so common. MSG has to run on these machines. b) Structure. MSG's current structure is not easily comprehensible. Clarifiction will take quite a lot of reconstruction and effort. c) Macro features. I would like to add possibilities to deal with bigger structures. After the generating, editing, and modifying efforts you would define several tracks, which will then be arranged. Functions for that could be Lindenmayer systems, fractals, mathematical functions... d) Interactive Features. I see a way to program an independent sequencer routine. Still I am not sure if I should do it - only a few modules would benefit. This would be a completely different approach. e) Include other event types like Control Change, Pitch Bend etc. f) Operating System. As I use mostly my Windows 98 System now, porting is still tempting... 2001-03-09 Hellmuth Schomberg