OSound programs
Note: One of the most convenient ways to run the program on a non-DOS machine is via vDos, an application that sets up its own DOS environment on your computer. All you have to do is pair a DOS drive letter with a Windows drive/directory letter, copy the program into it and type its name in the DOS window.
How does an artificial mind sound like?
Below are several samples from the processes of the inner matrix of the OtoomCM program, followed by an explanation.
The program OSound comes in three versions, OSound1, OSound2 and OSound3. All are a derivation from OtoomCM so that the necessary data files can be written, and they can be downloaded together with their manual and three other programs that are used to produce a midi file. See the manuals for the full instructions.
OSound1: in auto mode only up to 5 separate inputs via the input file are possible; the manual mode has no input limits.
OSound2: in auto mode an entire text can be read in via the input file; the manual mode has no input limits either. The text file a.txt includes the beginning of the Introduction to Bertrand Russell's History of Western Philosophy (Routledge, 2000, p.13). Note: use the other programs packed with this version for further processing, not those from version 1.
OSound3: in this version three display areas can be saved as bitmap files during processing, and together with the resulting midi sound file can be used to make a video showing the progress in visual and auditory format. These areas are, the entire screen area (minus the menu section), the node states display area, and the output display area.
Some sample outputs from OSound1:
aw-10-1 100 matrix nodes, 10 cycles, playing time 1min 41sec:
cello, clarinet, flute, oboe, acoustic grand piano, bright acoustic piano
aw-10-7 100 matrix nodes, 10 cycles, playing time 1min 41sec:
synth lead 6, synth pad 1, shakuhachi, synth pad 3, synth pad 4, synth tom, xylophone
bw-10-2 100 matrix nodes, 10 cycles, playing time 1min 41sec:
cello, clarinet, flute, english horn, viola, violin
aw-15-6 210 matrix nodes, 15 cycles, playing time 1min 36sec:
draw organ, percussive organ, music box, goblin, ice rain, bottle blow, glockenspiel
aw-20-5 210 matrix nodes, 20 cycles, playing time 1min 36sec:
ooh choir, distortion guitar, guitar fret noise, pizzicato strings, koto, glockenspiel, woodblock
m1 manual mode, 20 cycles, playing time 0min 24sec:
ooh choir, distortion guitar, guitar fret noise, pizzicato strings, koto, glockenspiel, woodblock
Comparative sample outputs from OSound2:
b1-2 64 matrix nodes, 64 element matrix nodes, 1600 cycles, playing time 2 min 6 sec:
cello, clarinet, flute, oboe, acoustic grand piano, bright acoustic piano
b2-2 144 matrix nodes, 144 element matrix nodes, 1600 cycles, playing time 4 min 46 sec:
cello, clarinet, flute, oboe, acoustic grand piano, bright acoustic piano
Comparative sample outputs from OSound3:
Text used - 'a' file group:
Single letters in a certain order. This is a plain text file used to test OSound under several conditions.
Text used - 'b' file group:
Same words with various repetitions of the letters:
TTTThhiiiiiiiiissssssssssssss
iiis aaaaaaaaaaaaaaaaaaaaaaaapppppllllllllllaaaiiiiiiiinnnnnnnnnnnnnnn ttteeeeeeeeeeexxxxtttttttttt
ffiiiiiiiiiiiiiiileeeeeeeee uuussssseeeeeeddddddd ttooo ttttteeeeeeeeeesssssssssssssssssssstttttttttttttttttttt
OOOOOOOOOOOOOOOOOOOOOOOSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSooooooooo.
oooooooooooooooooooouuuuuuuuuuuuuuuuuuuuuunnnnnnnnnnnnnnnndddddddddddddd uuundddddddddddddeeeeerrrrrrrrrrrr
ssssssssssseeevvvvvvvvvverrrrrrrrrraaaaaaaaaaaaaaaalllllllllll
ccccccccccccccccccccccooooooooooooooonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn -no space!- ddddddddddddddii.
iitttttioooooooooooooonnnnnnnnnssssssssssss.
NOTE: The sound has been mastered to increase the gain; the 'background' noise from the entire matrix can be heard better.
am3_n 49 matrix nodes, 49 element matrix nodes, 72 cycles, node states display area.
Instruments used are, cello, viola, violin, acoustic grand piano, bright acoustic grand piano.
am3_o 49 matrix nodes, 49 element matrix nodes, 72 cycles, output display area.
Instruments used are, cello, viola, violin, acoustic grand piano, bright acoustic grand piano.
bn5_n 100 matrix nodes, 49 element matrix nodes, 718 cycles, node states display area.
Instruments used are, ooh choir, distortion guitar, guitar fret noise, pizzicato strings, koto, glockenspiel,
woodblock.
bn5_o 100 matrix nodes, 49 element matrix nodes, 718 cycles, output display area.
Instruments used are, ooh choir, distortion guitar, guitar fret noise, pizzicato strings, koto, glockenspiel,
woodblock.
The source of the sounds
The actions within the matrix are based on integers. They produce chaos-type affinity relationships between nodes, and these relationships form clusters and at other times disperse them (for a more comprehensive explanation see "How the mind works: the principle dynamics in the bio- and non-bio version"). The integers are treated as frequencies and are transposed to notes (not every frequency relates to a precise note). If a certain note is repeated it is treated as a long(er) note, depending on the number of repetitions. If the note emerges from a region of a relatively high affinity its duration is increased as well as its volume. Every cycle of the matrix processes translates into a track in the midi file.
Choice of instruments, pitch, and channel
The midi file format provides 128 different simulated sound sources. Most are instruments (such as piano, flute, etc), some are not (such as ice rain, ooh choir, etc). The important aspect here is the ability or otherwise of each source to maintain a note for a given time. Some can hold a note for its intended duration, some cannot (an organ can, a woodblock cannot). Therefore short and single notes were assigned to instruments that will only play a short note, long notes (derived from long repetitions) were assigned to an instrument that is suitable for ongoing sustain (ie, any woodwind, organ, synths), and some notes that fall in between were assigned to something like a piano. In midi files the notes can only go from 0 to 128, standing for the familiar A, B, B-flat, and so on. Because the number range coming from the matrix is much higher, pitch bends were used to widen the scope. Pitch bend values are also calculated from affinity values coupled with durations. Not all instruments were made available at any given time, rather ensembles were put together with a selection of certain instruments. At the moment there are seven. As each instrument is assigned a different channel, in the end the notes are played according to their suitability for an instrument, their duration, their volume and the channel they happen to fall on.
Interpretation, not modification!
The sound you hear is the sound produced by the artificial mind. Sound comes from frequencies, frequencies are numbers, and it is numbers that make the system work. Volume and duration are a function of affinity values and as such of internal states. They are determined by the processes within the system. Only the choice of instruments and channels are a matter of interpretation, largely dictated by the midi format. Short, single, varying notes are a sign of small clusters emerging and disappearing. Long, accumulating, louder and louder notes indicate an increasing stability of a certain region, growing and drawing its neighbours towards its own state. Conversely, shorter notes and decreasing volume mark the deterioration of a cluster. All these scenarios can occur at the same time or after one another.
Credit:
The creation of midi files, indeed understanding them in the first place, would not have been possible without the csvmidi / midicsv programs it was my good fortune to discover. Midicsv translates a midi file from its binary format into a comma-separated-values text file, which means humans can read it. Csvmidi does the opposite.
... and remember:
AI can have two purposes. One is to use the power of computers to augment human thinking, just as we use motors
to augment human or horse power. Robotics and expert systems are major branches of that. The other is to use a
computer's artificial intelligence to understand how humans think. In a humanoid way. If you test your programs
not merely by what they can accomplish, but how they accomplish it, then you're really doing cognitive science;
you're using AI to understand the human mind.
-- Herbert A. Simon (The Sciences of the
Artificial, 1996)
© Martin Wurzinger - see Terms of Use