From 3b68c1a49e82118cc21c6bb805c3d2ab5ca07218 Mon Sep 17 00:00:00 2001 From: Michael Winter Date: Sun, 19 Apr 2026 01:34:56 +0200 Subject: [PATCH] Add Reseed & Generate button; adjust voice movement weights --- src/path.py | 12 +++++++----- webapp/generate.html | 8 ++++++++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/path.py b/src/path.py index 4b1a916..5fbb95d 100644 --- a/src/path.py +++ b/src/path.py @@ -176,8 +176,10 @@ class Path: next_cents = destination_chord.pitches[voice_idx].to_cents() if curr_cents != next_cents: change_after[voice_idx] += 1 - if change_after[voice_idx] >= threshold: - change_after[voice_idx] = 0 + else: + change_after[voice_idx] = sustain_after[voice_idx] / 10 + if change_after[voice_idx] >= (threshold*1): + change_after[voice_idx] = sustain_after[voice_idx] / 10 step = PathStep( source_node=source_node, @@ -268,7 +270,7 @@ class Path: if target_norm: w *= target_norm[i] * config.get("weight_target_register", 1) - step.weight = w**8 + step.weight = w**16 weights.append(w) step.normalized_scores = { @@ -388,7 +390,7 @@ class Path: if current_cents[voice_idx] != candidate_cents[voice_idx]: sum_changing += sustain_counts[voice_idx] - return sum_changing + return sum_changing**2 def _factor_rgr_voice_movement( self, @@ -421,7 +423,7 @@ class Path: if current_cents[voice_idx] != candidate_cents[voice_idx]: sum_repeating += change_counts[voice_idx] - return sum_repeating + return sum_repeating**8 def _factor_harmonic_compactness( self, diff --git a/webapp/generate.html b/webapp/generate.html index 493f42e..700b171 100644 --- a/webapp/generate.html +++ b/webapp/generate.html @@ -483,6 +483,7 @@
+ @@ -625,6 +626,13 @@ } } + function reseedAndGenerate() { + const newSeed = Math.floor(Math.random() * 999999) + 1; + document.getElementById('seed').value = newSeed; + generate(); + } + + document.getElementById('reseedGenerateBtn').addEventListener('click', reseedAndGenerate); document.getElementById('generateBtn').addEventListener('click', generate); document.getElementById('viewBtn').addEventListener('click', viewChords); document.getElementById('transcribeBtn').addEventListener('click', transcribe);