Split kit and keys; KEYS GEN with MOTIF, 303, TURING, ARP
Some checks failed
check / check (push) Has been cancelled
Some checks failed
check / check (push) Has been cancelled
- genome(seed, salts) now has three parts with their own RNG streams: shared (steps, form, swing, arc, layback, fill odds, phase offset), kit (density, frame, accent cycle, free snare) and keys (scale/root, progression, motif, hocket, bass tone, note lengths, range). ROLL KEYS now renews the harmony too; ROLL KIT leaves the keys alone. - Keys generators share one signature and can fix note lengths: MOTIF (the old line), 303 (acid bass, answers in the rests, drone or silent pad), TURING (8/16-bit shift register, DRIFT flips bits, 16-bar window), ARP (triad/7th arpeggio, roots on kicks). - Pages: KIT GEN, KEYS GEN; ROLL shows KIT / KEYS; slots keep both gens. - Flash record v3 (old settings ignored). Bring-up golden checksums updated. - C port matches; host test and ASan/UBSan pass. Intended music change: every seed sounds different (genome split, new generators). Vectors regenerated with npm run vectors; the case grid now crosses all kit and keys generators, with TURING runs past its window. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"note": "mix(a,b) hash, xorshift32 Rng (next, below(n), chance(p)) and genome(seed). genome keys are the JS field names.",
|
||||
"note": "mix(a,b) hash, xorshift32 Rng (next, below(n), chance(p)) and genome(seed, salts). genome keys are the JS field names.",
|
||||
"mix": [
|
||||
{
|
||||
"a": "0x00000000",
|
||||
@@ -270,6 +270,10 @@
|
||||
"genomes": [
|
||||
{
|
||||
"seed": "0x5EEDB0C5",
|
||||
"salts": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"genome": {
|
||||
"steps": 14,
|
||||
"form": [
|
||||
@@ -279,36 +283,40 @@
|
||||
1
|
||||
],
|
||||
"formName": "ABAB",
|
||||
"scale": 18,
|
||||
"root": 6,
|
||||
"fillP": 110,
|
||||
"rot": 1,
|
||||
"swing": 35,
|
||||
"arc": 0,
|
||||
"layback": 0,
|
||||
"dens": [
|
||||
81,
|
||||
37
|
||||
59,
|
||||
77
|
||||
],
|
||||
"fillP": 47,
|
||||
"monoLen": 1,
|
||||
"monoRange": 2,
|
||||
"rot": 0,
|
||||
"hocket": 85,
|
||||
"accentCycle": 3,
|
||||
"frame": 7,
|
||||
"freeK": 4,
|
||||
"freeRot": 3,
|
||||
"scale": 0,
|
||||
"root": 5,
|
||||
"monoLen": 0,
|
||||
"monoRange": 1,
|
||||
"hocket": 180,
|
||||
"bassDeg": 2,
|
||||
"prog": [
|
||||
0,
|
||||
3,
|
||||
0,
|
||||
6,
|
||||
5,
|
||||
4
|
||||
],
|
||||
"swing": 35,
|
||||
"arc": 1,
|
||||
"motifLen": 5,
|
||||
"accentCycle": 3,
|
||||
"layback": 0,
|
||||
"frame": 2,
|
||||
"freeK": 3,
|
||||
"freeRot": 5
|
||||
"motifLen": 5
|
||||
}
|
||||
},
|
||||
{
|
||||
"seed": "0x00000001",
|
||||
"salts": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"genome": {
|
||||
"steps": 16,
|
||||
"form": [
|
||||
@@ -318,36 +326,40 @@
|
||||
0
|
||||
],
|
||||
"formName": "AABA",
|
||||
"scale": 16,
|
||||
"root": 2,
|
||||
"dens": [
|
||||
80,
|
||||
95
|
||||
],
|
||||
"fillP": 110,
|
||||
"monoLen": 1,
|
||||
"monoRange": 2,
|
||||
"fillP": 102,
|
||||
"rot": 0,
|
||||
"swing": 35,
|
||||
"arc": 2,
|
||||
"layback": 1,
|
||||
"dens": [
|
||||
53,
|
||||
68
|
||||
],
|
||||
"accentCycle": 7,
|
||||
"frame": 3,
|
||||
"freeK": 2,
|
||||
"freeRot": 15,
|
||||
"scale": 19,
|
||||
"root": 0,
|
||||
"monoLen": 2,
|
||||
"monoRange": 1,
|
||||
"hocket": 90,
|
||||
"bassDeg": 3,
|
||||
"bassDeg": 2,
|
||||
"prog": [
|
||||
0,
|
||||
2,
|
||||
5,
|
||||
0,
|
||||
5
|
||||
4
|
||||
],
|
||||
"swing": 21,
|
||||
"arc": 1,
|
||||
"motifLen": 3,
|
||||
"accentCycle": 3,
|
||||
"layback": 0,
|
||||
"frame": 0,
|
||||
"freeK": 2,
|
||||
"freeRot": 1
|
||||
"motifLen": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"seed": "0xDEADBEEF",
|
||||
"salts": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"genome": {
|
||||
"steps": 12,
|
||||
"form": [
|
||||
@@ -357,36 +369,169 @@
|
||||
0
|
||||
],
|
||||
"formName": "AAAA",
|
||||
"scale": 10,
|
||||
"root": 0,
|
||||
"fillP": 80,
|
||||
"rot": 0,
|
||||
"swing": 50,
|
||||
"arc": 1,
|
||||
"layback": 0,
|
||||
"dens": [
|
||||
91,
|
||||
66
|
||||
78,
|
||||
78
|
||||
],
|
||||
"fillP": 40,
|
||||
"accentCycle": 5,
|
||||
"frame": 0,
|
||||
"freeK": 3,
|
||||
"freeRot": 14,
|
||||
"scale": 5,
|
||||
"root": 1,
|
||||
"monoLen": 0,
|
||||
"monoRange": 2,
|
||||
"rot": 1,
|
||||
"hocket": 170,
|
||||
"bassDeg": 4,
|
||||
"prog": [
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
3,
|
||||
5,
|
||||
6
|
||||
],
|
||||
"swing": 50,
|
||||
"arc": 2,
|
||||
"motifLen": 4,
|
||||
"accentCycle": 5,
|
||||
"motifLen": 5
|
||||
}
|
||||
},
|
||||
{
|
||||
"seed": "0x00009AAB",
|
||||
"salts": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"genome": {
|
||||
"steps": 20,
|
||||
"form": [
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"formName": "ABAB",
|
||||
"fillP": 60,
|
||||
"rot": 1,
|
||||
"swing": 0,
|
||||
"arc": 0,
|
||||
"layback": 1,
|
||||
"dens": [
|
||||
66,
|
||||
42
|
||||
],
|
||||
"accentCycle": 7,
|
||||
"frame": 6,
|
||||
"freeK": 2,
|
||||
"freeRot": 12,
|
||||
"scale": 5,
|
||||
"root": 3,
|
||||
"monoLen": 0,
|
||||
"monoRange": 2,
|
||||
"hocket": 165,
|
||||
"bassDeg": 2,
|
||||
"prog": [
|
||||
0,
|
||||
6,
|
||||
5,
|
||||
4
|
||||
],
|
||||
"motifLen": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"seed": "0x5EEDB0C5",
|
||||
"salts": [
|
||||
3,
|
||||
0
|
||||
],
|
||||
"genome": {
|
||||
"steps": 14,
|
||||
"form": [
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"formName": "ABAB",
|
||||
"fillP": 110,
|
||||
"rot": 1,
|
||||
"swing": 35,
|
||||
"arc": 0,
|
||||
"layback": 0,
|
||||
"dens": [
|
||||
89,
|
||||
77
|
||||
],
|
||||
"accentCycle": 0,
|
||||
"frame": 1,
|
||||
"freeK": 3,
|
||||
"freeRot": 12,
|
||||
"scale": 0,
|
||||
"root": 5,
|
||||
"monoLen": 0,
|
||||
"monoRange": 1,
|
||||
"hocket": 180,
|
||||
"bassDeg": 2,
|
||||
"prog": [
|
||||
0,
|
||||
6,
|
||||
5,
|
||||
4
|
||||
],
|
||||
"motifLen": 5
|
||||
}
|
||||
},
|
||||
{
|
||||
"seed": "0x5EEDB0C5",
|
||||
"salts": [
|
||||
0,
|
||||
5
|
||||
],
|
||||
"genome": {
|
||||
"steps": 14,
|
||||
"form": [
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"formName": "ABAB",
|
||||
"fillP": 110,
|
||||
"rot": 1,
|
||||
"swing": 35,
|
||||
"arc": 0,
|
||||
"layback": 0,
|
||||
"dens": [
|
||||
59,
|
||||
33
|
||||
],
|
||||
"accentCycle": 3,
|
||||
"frame": 7,
|
||||
"freeK": 4,
|
||||
"freeRot": 3
|
||||
"freeRot": 3,
|
||||
"scale": 12,
|
||||
"root": 11,
|
||||
"monoLen": 2,
|
||||
"monoRange": 1,
|
||||
"hocket": 170,
|
||||
"bassDeg": 3,
|
||||
"prog": [
|
||||
0,
|
||||
4,
|
||||
5,
|
||||
3
|
||||
],
|
||||
"motifLen": 5
|
||||
}
|
||||
},
|
||||
{
|
||||
"seed": "0x12345678",
|
||||
"salts": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"genome": {
|
||||
"steps": 16,
|
||||
"form": [
|
||||
@@ -396,36 +541,40 @@
|
||||
1
|
||||
],
|
||||
"formName": "ABAB",
|
||||
"scale": 0,
|
||||
"root": 5,
|
||||
"fillP": 43,
|
||||
"rot": 1,
|
||||
"swing": 0,
|
||||
"arc": 2,
|
||||
"layback": 1,
|
||||
"dens": [
|
||||
50,
|
||||
83
|
||||
49,
|
||||
72
|
||||
],
|
||||
"fillP": 111,
|
||||
"accentCycle": 5,
|
||||
"frame": 4,
|
||||
"freeK": 2,
|
||||
"freeRot": 5,
|
||||
"scale": 10,
|
||||
"root": 2,
|
||||
"monoLen": 1,
|
||||
"monoRange": 1,
|
||||
"rot": 2,
|
||||
"hocket": 170,
|
||||
"bassDeg": 3,
|
||||
"monoRange": 2,
|
||||
"hocket": 165,
|
||||
"bassDeg": 2,
|
||||
"prog": [
|
||||
0,
|
||||
0,
|
||||
6,
|
||||
5,
|
||||
4
|
||||
],
|
||||
"swing": 0,
|
||||
"arc": 1,
|
||||
"motifLen": 5,
|
||||
"accentCycle": 3,
|
||||
"layback": 0,
|
||||
"frame": 1,
|
||||
"freeK": 3,
|
||||
"freeRot": 9
|
||||
"motifLen": 5
|
||||
}
|
||||
},
|
||||
{
|
||||
"seed": "0xC0FFEE00",
|
||||
"salts": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"genome": {
|
||||
"steps": 16,
|
||||
"form": [
|
||||
@@ -435,71 +584,32 @@
|
||||
0
|
||||
],
|
||||
"formName": "AABA",
|
||||
"scale": 19,
|
||||
"root": 0,
|
||||
"dens": [
|
||||
42,
|
||||
74
|
||||
],
|
||||
"fillP": 78,
|
||||
"monoLen": 1,
|
||||
"monoRange": 2,
|
||||
"rot": 2,
|
||||
"hocket": 210,
|
||||
"bassDeg": 2,
|
||||
"prog": [
|
||||
0,
|
||||
0,
|
||||
3,
|
||||
3
|
||||
],
|
||||
"swing": 21,
|
||||
"fillP": 115,
|
||||
"rot": 0,
|
||||
"swing": 0,
|
||||
"arc": 1,
|
||||
"motifLen": 3,
|
||||
"accentCycle": 5,
|
||||
"layback": 0,
|
||||
"frame": 3,
|
||||
"freeK": 3,
|
||||
"freeRot": 12
|
||||
}
|
||||
},
|
||||
{
|
||||
"seed": "0x0BADF00D",
|
||||
"genome": {
|
||||
"steps": 16,
|
||||
"form": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0
|
||||
],
|
||||
"formName": "AABA",
|
||||
"scale": 9,
|
||||
"root": 6,
|
||||
"dens": [
|
||||
46,
|
||||
85
|
||||
49,
|
||||
47
|
||||
],
|
||||
"fillP": 92,
|
||||
"monoLen": 1,
|
||||
"accentCycle": 3,
|
||||
"frame": 3,
|
||||
"freeK": 4,
|
||||
"freeRot": 9,
|
||||
"scale": 12,
|
||||
"root": 3,
|
||||
"monoLen": 0,
|
||||
"monoRange": 1,
|
||||
"rot": 1,
|
||||
"hocket": 90,
|
||||
"bassDeg": 2,
|
||||
"hocket": 180,
|
||||
"bassDeg": 4,
|
||||
"prog": [
|
||||
0,
|
||||
3,
|
||||
0,
|
||||
6,
|
||||
5,
|
||||
4
|
||||
],
|
||||
"swing": 35,
|
||||
"arc": 2,
|
||||
"motifLen": 3,
|
||||
"accentCycle": 3,
|
||||
"layback": 0,
|
||||
"frame": 3,
|
||||
"freeK": 2,
|
||||
"freeRot": 9
|
||||
"motifLen": 5
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user