Files
product-vamp/data/composition/melodic_vocabulary.json
T
khodowany 68df7292ee Cleanup
2026-10-04 17:14:13 -05:00

271 lines
5.4 KiB
JSON

{
"version": 1,
"provenance": "Independently authored, transposable rhythmic gestures and chord-member traversal operators. No notes, rhythms, measurements, or fitted parameters were extracted from the optional reference scores. Joint gesture operators were motivated by analysis of the supplied validation solos, then authored as general harmonic/rhythmic transformations. No target phrase, position, pitch sequence or frequency is stored.",
"license": "MIT",
"cells": [
{
"id": "pickup_to_statement",
"purpose": "entrance",
"values": [
"r:1/2",
"1/2",
"1",
"1/2",
"1/2",
"1"
],
"subdivision": "binary",
"entry": "pickup",
"exit": "settle"
},
{
"id": "delayed_statement",
"purpose": "entrance",
"values": [
"r:1",
"1",
"1/2",
"1/2",
"1"
],
"subdivision": "binary",
"entry": "pickup",
"exit": "settle"
},
{
"id": "syncopated_connection",
"purpose": "connect",
"values": [
"1/2",
"1",
"1/2",
"1/2",
"1/2"
],
"subdivision": "binary",
"entry": "attack",
"exit": "continue"
},
{
"id": "cross_bar_connection",
"purpose": "connect",
"values": [
"r:3/2",
"1/2",
"1/2",
"1/2",
"1",
"1/2",
"1/2"
],
"subdivision": "binary",
"entry": "pickup",
"exit": "continue"
},
{
"id": "quarter_eighth_development",
"purpose": "continue",
"values": [
"1",
"1/2",
"1/2",
"1",
"1"
],
"subdivision": "binary",
"entry": "attack",
"exit": "continue"
},
{
"id": "held_note_continuation",
"purpose": "continue",
"values": [
"3/2",
"1/2",
"1/2",
"1/2",
"1"
],
"subdivision": "binary",
"entry": "attack",
"exit": "continue"
},
{
"id": "answer_with_breath",
"purpose": "answer",
"values": [
"1/2",
"1/2",
"3/2",
"r:1/2",
"1"
],
"subdivision": "binary",
"entry": "attack",
"exit": "settle"
},
{
"id": "short_then_broaden",
"purpose": "answer",
"values": [
"1/2",
"1",
"3/2",
"r:1"
],
"subdivision": "binary",
"entry": "attack",
"exit": "release"
},
{
"id": "anticipated_sustain",
"purpose": "arrival",
"values": [
"r:5/2",
"1/2",
"3"
],
"subdivision": "binary",
"entry": "pickup",
"exit": "settle"
},
{
"id": "late_sustain",
"purpose": "arrival",
"values": [
"1",
"1/2",
"5/2"
],
"subdivision": "binary",
"entry": "attack",
"exit": "settle"
},
{
"id": "triplet_resolution",
"purpose": "arrival",
"values": [
"1/3",
"1/3",
"1/3",
"2",
"r:1"
],
"difficulty": "triplet",
"subdivision": "triplet",
"entry": "attack",
"exit": "release"
}
],
"chord_paths": [
{
"id": "ascending_members",
"purpose": [
"entrance",
"continue",
"connect",
"arrival"
],
"direction": "up",
"member_steps": [
1
],
"prefix_attacks": [
2,
3,
4
],
"max_interval": 7,
"members": "basic",
"require_chord_entry": true
},
{
"id": "descending_members",
"purpose": [
"entrance",
"continue",
"connect",
"arrival"
],
"direction": "down",
"member_steps": [
1
],
"prefix_attacks": [
2,
3,
4
],
"max_interval": 7,
"members": "basic",
"require_chord_entry": true
},
{
"id": "member_turn",
"purpose": [
"continue",
"connect",
"answer"
],
"direction": "toward",
"member_steps": [
1,
-1
],
"prefix_attacks": [
3
],
"max_interval": 7,
"members": "basic",
"require_chord_entry": true
},
{
"id": "guide_connection",
"purpose": [
"continue",
"connect",
"answer",
"arrival"
],
"direction": "toward",
"member_steps": [
1
],
"prefix_attacks": [
2
],
"max_interval": 7,
"members": "defining",
"require_chord_entry": false
}
],
"gesture_rules": [
{
"id": "harmonic_arrival",
"kind": "harmonic_arrival",
"arrival_offsets": [
"-1/2",
"0",
"1/2"
],
"holds": [
"3/2",
"5/2"
],
"release": "1/2",
"purpose": "Approach a harmonic change, settle, then release; earlier arrivals require an anticipation contract."
},
{
"id": "sustained_color",
"kind": "sustained_color",
"purpose": "Choose an approved exposed color with its required continuation before realizing the route."
}
],
"motion_subdivision": {
"minimum_value": "2",
"pulse": "1/2",
"max_attacks": 16,
"purpose": "Reopen one provisional long value into continuous mapped movement; committed arrivals and exact rhythmic identities are excluded."
}
}