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:
@@ -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