aboutsummaryrefslogtreecommitdiff
path: root/README.txt
blob: 8ee759983509b48256b73745ed58b2d7532d88d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
frankenstein set of externals

authors:
dmorelli: www.davidemorelli.it
pland: www.davidcasal.com
with the help of vatic

last update: 
14-10-2005

------------------- what is this?

this is an attempt to build an intelligent system for realtime 
improvisation, a system that follows a human player and proposes
rhythm, melody, chords sequences, formal structure.
it learns the style in realtime.
it uses various AI techniques: GA, searchs, ANN (maybe)

description of files:

chord_melo.c
a GA melody generator. it takes a melody as input and evolves it over time.
uses co-evolutionary techniques (Todd)

chords_memory.c
it is a directional graph which implements a memory of the played 
chords sequences, you can train it...
and once trained you can ask questions like:
in C major, from a D minor 7h where did I go most if the times?
or
in C major, from a D minor 7h build a chord sequence to bring me
in D major in 4 steps using the chords sequences I used most

harmonizer.c
a GA external that build choir voicing for 5 voices: 
you pass it the midi value of each voice, starting chord, next chord
and it outputs a list with the midi values of each voice.
avoids hidden 8ves and 5ths.


folders:

doc/
implementation documents, notes, logs, ideas, etc..
patches/
example patches, help patches, some used in performances, etc..
aima/
python patches not yes used but interesting for agents
ruby/
gridflow patches not yet used
old/
old not used code
test/
testing code, not to be used
backup/
previous versions


TODO:

gluer/solderer
an external that takes the input of two or more chord_melody,
a chord sequence and glues the melody statemets together
to build a long complete melody.

form_manager
an external that manages the form and structure of the piece:
decide which melody statement to use, the chord sequence to ask for, etc..

various objects to detect played notes

diatonic_melody.c
same as chord_melody but without chord reference, only scale used
(for post-tonal music non based on chords)

chromatic_melo.c
same as diatonic_melo but without any reference (for atonal music)