Repository navigation
feat(korg): Feinschliff — Massenaktion, Export-Fortschritt, RMS, Klangprofil (v3.305.0) - #35
Merged
Merged
Conversation
…gprofil (v3.305.0) Die vier Kleinkram-Punkte aus dem ModernKorgManager-Vergleich (Punkt 7). Damit ist die Liste vollstaendig abgearbeitet. - "Alle hinzufuegen" NICHT als Schleife ueber die Einzelaktion: die liest newSlots.length und Date.now(), saehe in jedem Durchlauf denselben gebuendelten React-State und dieselbe Millisekunde — alle Zeilen bekaemen Index 0 und dieselbe ID. Stattdessen bulkSlotAdd.ts (rein), das den kompletten Anhang plant; ein einziges setState. Trennt "schon in der Liste" von "kein Platz mehr". - Export-Fortschritt ueber die BESTEHENDE BulkProgressBar (deren testid ist jetzt ueberschreibbar, Default unveraendert). Gezaehlt werden nur die noch offenen Slots. - RMS neben Peak: war importiert und in der Ueberschrift versprochen, aber nie angezeigt. Dabei fiel auf, dass getPeak zweimal direkt im Render ueber alle Samples laeuft — beide jetzt via useMemo einmal je Buffer, also nebenbei schneller als vorher. Neu toDbfs() (log10(0) waere -Infinity geworden). - Klangprofil pro Slot aus dem ungenutzten sampleSpectrumPeak.ts, bewusst UEBER den EQ-Knoepfen: wer sieht wo die Energie sitzt, weiss welcher Knopf passt. EQ-Vorschlag mit Begruendung, Schwellen absichtlich grosszuegig — ein Hinweis bei jedem Sample waere wertlos. 34 neue Tests, tsc clean, 11424 gruen. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Die vier Kleinkram-Punkte aus dem ModernKorgManager-Vergleich (Punkt ⑦). Damit ist die Liste vollständig abgearbeitet (v3.301–v3.305).
1. „Alle hinzufügen" im Sample-Picker
Bewusst nicht als Schleife über die Einzelaktion gebaut.
addSampleAsSlotliestnewSlots.lengthfür den Slot-Index undDate.now()für die Zeilen-ID — in einer Schleife sieht jeder Durchlauf denselben gebündelten React-State und dieselbe Millisekunde. Alle Zeilen bekämen Index 0 und dieselbe ID; bei zwei Samples fällt das nicht auf, bei zwanzig zerlegt es die Liste.Stattdessen
bulkSlotAdd.ts(rein): plant den kompletten Anhang, der Aufrufer setzt den State genau einmal. Trennt außerdem „schon in der Liste" von „kein Platz mehr" — eine gemeinsame Zahl wäre eine irreführende Ursache und ließe den Nutzer Samples löschen, die längst drin sind.2. Fortschritt beim
.all-ExportdecodeAllPendingNewmeldete nichts; bei 100 Samples sah das aus wie ein Hänger. Wiederverwendet die bestehendeBulkProgressBarstatt einer zweiten Eigenbau-Anzeige — derendata-testidist jetzt überschreibbar, Default unverändert, bestehende Tests greifen weiter. Gezählt werden nur die noch offenen Slots; bereits dekodierte mitzuzählen ließe den Balken bei einer Teil-Aktualisierung scheinbar in der Mitte starten.3. RMS neben Peak
getRmswar importiert und die Überschrift versprach „Peak/RMS Info" — angezeigt wurde nur Peak. Beim Nachrüsten fiel auf, dassgetPeakan zwei Stellen direkt im Render über sämtliche Samples läuft; RMS ungemessen dazuzunehmen hätte das verdoppelt. Beide laufen jetzt einmal je Buffer überuseMemo, das Ergebnis ist also nebenbei schneller als vorher.Neu
toDbfs()inaudioEdit.ts:log10(0)wäre als-Infinityin der Oberfläche gelandet, jetzt-∞. Übersteuerung wird bewusst als positiver Wert gezeigt statt abgeschnitten — dass ein Sample über 0 dBFS liegt, ist genau die Information, die man sehen will.4. Klangprofil pro Slot
sampleSpectrumPeak.ts(Goertzel über sieben Bänder) lag mit Tests, aber ohne UI-Consumer da. NeukorgSlotSpectrum.ts(rein) plus Balkenanzeige im Slot-Detail — bewusst über den EQ-Knöpfen platziert: wer sieht, wo die Energie sitzt, weiß welcher Knopf passt, statt zu raten.Dazu ein zurückhaltender EQ-Vorschlag mit Begründung und Ein-Klick-Anwendung. Die Schwellen sind absichtlich großzügig: ein Hinweis, der bei jedem zweiten Sample erscheint, wird ignoriert und ist damit wertlos — dafür gibt es einen eigenen Test („hält sich bei ausgewogenem Material zurück"). Bei Stille kein Schwerpunkt und kein Hinweis; eine Empfehlung auf Grundlage von Rauschen wäre schlimmer als keine.
Tests
34 neue Tests (13 Massenaktion, 8 dBFS, 13 Klangprofil),
tscclean, volle Suite 11424 grün.Einer der Tests war zuerst selbst falsch:
/\S{10,}/verlangt zehn Zeichen ohne Leerzeichen, die Begründung ist aber ein Satz. Die Assertion wurde auf die gemeinte Aussage umgestellt, statt den Code daran anzupassen.Der eine lokale Failer (
electribe-import.test.tsPan-Histogramm über die lokalee2s-2016.e2sallpat) ist vorbestehend und skippt auf CI.🤖 Generated with Claude Code