full page
The Sound of Mind

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 code, 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:

(Note: you need Apple Quicktime to play the sounds)

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:

(Note: you need Apple Quicktime to play the sounds)

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 ccccccccccccccccccccccooooooooooooooonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnddddddddddddddii
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.

am3_n
The matrices are quite small, and despite the varying input the nodes very quickly settle into a permanent state in terms of their affinity relationships. The output changes - see am3_o below - because although the affinities vary little even small changes produce different outputs (the discs have been blurred to give an impression of the clusters which produced them).

am3_o

bn5_n
Here the inner matrix is somewhat larger (but the element matrices are of the same size) and clusters are formed that change their affinity relationships with their neighbours. Although the clusters become well defined, within themselves the affinities can change nevertheless. The output changes as usual - see bn5_o below. The discs have been left as they appear on the screen.

bn5_o

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 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 process 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 channel 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)
This quote comes from the Centre for Computational Intelligence.