PulseForge, bir ses dosyasındaki ritmik vuruşları analiz edip bunları oynanabilir bir ritim-dövüş prototipine dönüştürmeyi amaçlayan deneysel bir Unity projesidir.
Şu anki sürüm final oyun değildir. Bu repo, önce sağlam bir ritim oynanış çekirdeği kurmayı, sonra ses analizinden gelen veriyi Unity içinde oynanabilir beatmap olarak kullanmayı hedefleyen aşamalı bir prototiptir. Yani her şarkıyı kusursuz şekilde oyuna çeviren final bir sistem değil; ölçülebilir, test edilebilir ve geliştirilebilir bir teknik temeldir.
Mevcut kod, aşağıdaki tarihsel altı milestone'un ötesinde C# Radial V2 hattını içerir:
RadialAudioAnalyzerV2: onset/feature extraction, tempo/beat grid ve section analizi.RadialEncounterPlanner: seed tabanlı encounter üretimi, validation/repair ve versioned fingerprint.- Radial rhythm session, DSP timing/input, calibration/training ve Standard/Survival/OneLife modları.
- Kullanıcı settings/profile, track library ve versioned audio/beatmap cache kalıcılığı.
- Unity Editor Audio Pipeline penceresinde varsayılan Radial V2 ve ayrı Legacy Python V1 seçimi.
Radial V2 ile Legacy Python çıktıları aynı sözleşme değildir. Aşağıdaki Guard/Strike,
Python CLI ve eski demo adımları Legacy Python V1 / ilk prototip kapsamını anlatır.
Legacy Editor örnekleri için önce Pipeline = LegacyPythonV1 seçilir.
Mevcut C# EditMode testleri analiz/planner, timing, game mode ve cache sözleşmelerini kapsar;
bu README güncellemesi Unity test/build veya gerçek custom-song kabulünü yeniden çalıştırmaz.
Her şarkı için doğru BPM veya kusursuz otomatik koreografi garantisi yoktur.
Tarihsel ilk altı milestone:
| Milestone | Durum | Açıklama |
|---|---|---|
| Milestone 1: Debug Rhythm Combat Prototype | Tamamlandı | Unity içinde ritim judgement, lane, score, combo, combat feedback ve DSP audio clock ile çalışan debug prototip. |
| Milestone 2: Audio Pipeline Prototype | Tamamlandı | Python tabanlı WAV analyzer, diagnostics, postprocessor, comparison tool, pipeline runner ve Unity Editor pipeline window. |
| Milestone 3: Forge Preview / Beatmap Visualization | Tamamlandı | Unity Editor Audio Pipeline penceresinde raw/playable timeline preview, report summary paneli ve generated JSON atama akışı. |
| Milestone 4: Combat Visualization Prototype | Tamamlandı | OnGUI feedback'e ek olarak sahnede player/enemy, parry, slash, miss/hit taken ve intensity tabanlı efekt şiddeti gösteren debug combat visualization katmanı. |
| Milestone 5: Combat Style Variants | Tamamlandı | Aynı ritim analizinden Balanced, Defensive, Aggressive ve Bursty playable beatmap varyantları üretme, karşılaştırma, preview etme ve prototype'a atama akışı. |
| Milestone 6: Runtime Custom Song Import | Tamamlandı | Windows build içinde tester ses dosyası seçimi, FFmpeg ile PCM WAV dönüşümü, runtime Audio Pipeline ayarları ve kullanıcı kontrollü Start/Pause akışı. |
Şu anda sistem şu akışı destekler:
WAV audio
↓
Python audio analyzer
↓
Raw beatmap JSON
↓
Playable beatmap postprocessor
↓
Combat style variants
↓
Unity Editor Forge Preview / visualization
↓
Unity JSON import
↓
Debug rhythm-combat prototype
↓
OnGUI + scene combat feedback
Milestone 6 Windows tester build'inin tarihsel quick-import akışı:
MP3 / WAV / M4A / AAC / FLAC / OGG / OPUS / WMA / AIFF
↓
FFmpeg ile 44.1 kHz stereo PCM WAV
↓
Runtime hızlı onset analizi
↓
Guard / Strike quick beatmap
↓
Hazır runtime session
↓
Start / Restart ile DSP oynanış
RhythmSessiontabanlı ritim oturumu.Perfect,Good,Missjudgement sistemi.GuardveStrikeaksiyonları.Pending,Hit,Missedevent yaşam döngüsü.- Timeout ile kaçırılan eventlerin otomatik
Missedolması. - Score, combo, max combo ve sonuç sayaçları.
- OnGUI tabanlı debug rhythm lane.
- OnGUI tabanlı combat feedback paneli:
PERFECT PARRYGOOD PARRYPERFECT SLASHGOOD SLASHMISS / HIT TAKEN
- Sahne tabanlı
DebugCombatSceneViewfeedback katmanı:- Player ve enemy için basit 2D primitive görseller.
- Guard sonuçları için parry spark.
- Strike sonuçları için diagonal slash.
- Miss ve timeout için player hit taken flash/shake.
- Perfect / Good ve
BeatEventintensity değerine göre görsel şiddet farkı.
RealtimeSongClockveDspAudioSongClockdesteği.- AudioClip atanırsa DSP tabanlı zamanlama.
- Windows build içinde
Choose Audio Fileile özel şarkı seçimi. - Seçilen şarkıyı otomatik PCM WAV'a dönüştürme ve runtime hızlı beatmap üretimi.
- Runtime sahnede
Detection,DifficultyveCombat Styleseçimi. - Açılışta ve başarılı pipeline çalışmasından sonra şarkıyı bekleme durumunda tutma.
- Aynı kontrol satırında
Start / RestartvePause / Resumedüğmeleri. - Özel şarkı seçilmezse mevcut Inspector AudioClip/beatmap kaynaklarına geri düşme.
- Debug beatmap için üç kaynak:
- JSON
TextAsset DebugBeatMapAssetScriptableObject- Hardcoded fallback beatmap
- JSON
- Start countdown.
- Aynı anda
Guard + Strikespam davranışını engelleyen ambiguous input koruması. - Debug timing calibration paneli:
- Beatmap offset
- Input offset
- Son timing error gösterimi
tools/audio_analyzer/ altında çalışan araçlar:
generate_debug_click_track.py- Bilinen click zamanlarında deterministic WAV üretir.
pulseforge_audio_analyzer.py- PCM WAV dosyasından ritmik peak/onset noktaları çıkarır.
amplitudeveonsetdetection mode destekler.- Unity uyumlu beatmap JSON üretir.
- Analysis report JSON ve frame debug CSV üretebilir.
compare_beatmaps.py- Expected ve actual beatmap JSON dosyalarını karşılaştırır.
- Ortalama hata, maksimum hata ve önerilen global offset hesaplar.
postprocess_beatmap.py- Raw analyzer output’unu daha oynanabilir beatmap’e dönüştürür.
easy,normal,harddifficulty presetleri.preserve,alternate,pattern,intensityaction mapping modları.legacy,balanced,defensive,aggressive,burstycombat-style presetleri.
run_debug_pipeline.py- WAV → raw JSON → playable JSON → optional compare report akışını tek komutla çalıştırır.
--combat-styleile tek bir combat-style playable output üretebilir.
generate_style_variants.py- Aynı WAV veya raw beatmap üzerinden Balanced / Defensive / Aggressive / Bursty playable JSON varyantları üretir.
- Variant postprocess ve optional compare raporlarını diagnostics klasörüne yazabilir.
Unity menüsünden açılır:
Tools > PulseForge > Audio Pipeline
Bu pencere üzerinden:
- WAV AudioClip seçilebilir.
- Detection mode seçilebilir.
- Difficulty seçilebilir.
- Action pattern verilebilir.
- Combat style seçilebilir.
- Python pipeline çalıştırılabilir.
- Style variant outputları üretilebilir.
- Raw ve playable beatmap JSON üretimi aynı pencerede görülebilir.
- Raw/playable eventler timeline üzerinde karşılaştırılabilir.
- Balanced / Defensive / Aggressive / Bursty variantları event count, Guard count, Strike count ve dropped count ile karşılaştırılabilir.
- Seçilen variant timeline preview hedefi yapılabilir.
- Analysis, postprocess ve compare raporları okunabilir özet olarak incelenebilir.
- Üretilen playable JSON Project panelinde seçilebilir.
- Seçili
DebugRhythmPrototypeControllerobjesine generated JSON veya style variant JSON atanabilir.
Demo videosu veya portfolyo kaydı için ayrıntılı akış: docs/10-demo-recording-guide.md
Demo sonrası repository temizliği için kontrol listesi: docs/11-repository-cleanup-checklist.md
Combat Style Variants milestone ayrıntıları: docs/12-combat-style-variants-milestone.md
Windows tester build'i için özel şarkı hazırlama ve kullanım adımları: docs/13-runtime-custom-song-import.md
Kısa demo akışı:
Tools > PulseForge > Audio Pipelinepenceresini aç.- Demo WAV dosyasını seçip pipeline'ı çalıştır.
- Timeline preview ve report summary alanlarını kontrol et.
- Generated playable JSON'u seçili
DebugRhythmPrototypeControllerobjesine ata. - Demo sahnesini Play Mode'da çalıştır.
Kısa style variant test akışı:
Tools > PulseForge > Audio Pipelinepenceresini aç.- WAV dosyasını seç.
Generate Style Variantsçalıştır.AggressiveveyaDefensivevariantını preview et.- Seçili
DebugRhythmPrototypeControllerobjesine variant JSON'u ata. - Play Mode'da Guard / Strike dağılımını ve sahne feedback'ini test et.
Kısa runtime custom song test akışı:
- Repository kökünde
powershell -ExecutionPolicy Bypass -File .\tools\runtime_audio\setup_ffmpeg.ps1çalıştır. - Windows build al.
- Build'i açıp sağ panelde
Runtime Audio Pipelineayarlarını seç. Choose Audio & Run Pipelineile desteklenen bir ses dosyası seç.Ready: ... (... beats)mesajından sonraStart / Restartdüğmesine bas.- Oynanış sırasında
Pause; devam etmek için aynı yerdeResumekullan.
Unity içinde şu sahneyi aç:
Assets/PulseForge/Demo/Scenes/PF_DebugRhythmPrototype.unity
Sahnede Debug Rhythm Prototype adlı GameObject bulunmalıdır. Bu objede DebugRhythmPrototypeController component’i vardır.
Inspector’da şu alanlar atanmış olmalıdır:
Debug Audio Clip:
PF_Debug_120BPM_DefaultBeatMap.wav
Debug Beat Map Json:
BM_Playable_Debug_120BPM.json
Debug Beat Map Json boşsa, proje DebugBeatMapAsset veya fallback hardcoded beatmap ile
çalışabilir. Ancak pipeline-generated demo için JSON atanması tercih edilir.
- Play Mode’a gir.
Start / Restartbutonuna bas.- Countdown bitince ses ve lane 0’dan başlar.
- Kontroller:
Space = Guard
J = Strike
- Lane üzerindeki markerlar hit line’a geldiğinde doğru inputu ver.
- Score, combo, timing feedback ve combat feedback panelini izle.
Milestone 4 ile OnGUI combat feedback'e ek olarak sahnede basit 2D combat feedback görülebilir.
- Play Mode'da
Start / Restartile oturumu başlat. Spaceile Guard eventlerini yakala; sahnede player yakınında parry feedback görünmeli.Jile Strike eventlerini yakala; enemy üzerinde slash feedback görünmeli.- Bilerek input kaçır veya event timeout olana kadar bekle; player tarafında
MISS / HIT TAKENfeedback'i görünmeli. - Farklı intensity değerlerine sahip eventlerde efekt ölçeği, parlaklığı ve miss shake şiddetinin değiştiğini kontrol et.
Bu sahne feedback'i final art veya gerçek animasyon sistemi değildir. Harici sprite, texture, material veya Animator Controller kullanmadan, ritim sonucunun sahnede okunabilir dövüş feedback'ine dönüşmesini gösteren prototype katmanıdır.
- Unity menüsünden
Tools > PulseForge > Audio Pipelinepenceresini aç. Input Audio Clipalanına WAV tabanlı demo audio clip'i seç.- Gerekirse
Expected Beat Map JSONalanına referans beatmap JSON'u ata. - Output name, pattern, detection mode, difficulty ve action mode değerlerini kontrol et.
Run Pipelineile pipeline'ı çalıştır.- Timeline preview üzerinde raw ve playable event dağılımını kontrol et.
- Reports panelinden analysis, postprocess ve compare özetlerini oku.
Ping / Select Generated JSONile generated playable JSON'u Project panelinde seç.- Sahnede
DebugRhythmPrototypeControllerbulunan GameObject'i seç. Assign to Selected Debug Prototypeile generated playable JSON'u prototype'a ata.- Style variant testi için
Generate Style Variantsçalıştır. Style Variant Comparisonpanelinde Balanced / Defensive / Aggressive / Bursty dağılımlarını kontrol et.Previewile istediğin variantı timeline preview'de göster.Assignile seçilen variant JSON'u prototype'a ata.
Python araçları standart kütüphane ile yazılmıştır. Harici paket gerekmez. Python komutları proje kökünden çalıştırılmalıdır.
python -m unittest discover tools/audio_analyzer/testspython tools/audio_analyzer/generate_debug_click_track.py --output Assets/PulseForge/Demo/Audio/PF_Debug_120BPM_DefaultBeatMap.wav --times 1.00,1.50,2.00,2.50,3.00,3.25,3.75,4.25,4.75,5.25python tools/audio_analyzer/pulseforge_audio_analyzer.py Assets/PulseForge/Demo/Audio/PF_Debug_120BPM_DefaultBeatMap.wav --output Assets/PulseForge/Demo/BeatMaps/BM_Raw_Debug_120BPM.json --display-name "Raw Debug 120 BPM" --pattern Guard,Guard,Strike,Guard,Strike,Strike,Guard,Strike,Guard,Strike --detection-mode amplitude --summaryDebug click track içinde 3.00 ve 3.25 saniyelerde yakın eventler olduğu için demo map’te
hard difficulty kullanmak daha uygundur. normal preset bu iki eventten birini
seyreltebilir. Bu hata değil; postprocessor’ın oynanabilirlik filtresinin beklenen
davranışıdır.
python tools/audio_analyzer/postprocess_beatmap.py Assets/PulseForge/Demo/BeatMaps/BM_Raw_Debug_120BPM.json --output Assets/PulseForge/Demo/BeatMaps/BM_Playable_Debug_120BPM.json --display-name "Playable Debug 120 BPM" --difficulty hard --action-mode pattern --pattern Guard,Guard,Strike,Guard,Strike,Strike,Guard,Strike,Guard,Strike --report-output tools/audio_analyzer/out/postprocess_debug_120bpm_report.jsonpython tools/audio_analyzer/compare_beatmaps.py Assets/PulseForge/Demo/BeatMaps/BM_Debug_120BPM_Default.json Assets/PulseForge/Demo/BeatMaps/BM_Playable_Debug_120BPM.json --tolerance-ms 40 --report-output tools/audio_analyzer/out/compare_debug_120bpm.jsonpython tools/audio_analyzer/run_debug_pipeline.py --input-wav Assets/PulseForge/Demo/Audio/PF_Debug_120BPM_DefaultBeatMap.wav --output-dir Assets/PulseForge/Demo/BeatMaps --name Debug_120BPM --pattern Guard,Guard,Strike,Guard,Strike,Strike,Guard,Strike,Guard,Strike --detection-mode amplitude --difficulty hard --action-mode pattern --expected-json Assets/PulseForge/Demo/BeatMaps/BM_Debug_120BPM_Default.json --summaryBu komut şunları üretir:
Assets/PulseForge/Demo/BeatMaps/BM_Raw_Debug_120BPM.json
Assets/PulseForge/Demo/BeatMaps/BM_Playable_Debug_120BPM.json
tools/audio_analyzer/out/Debug_120BPM_analysis_report.json
tools/audio_analyzer/out/Debug_120BPM_postprocess_report.json
tools/audio_analyzer/out/Debug_120BPM_compare_report.json
Milestone 5 ile aynı WAV veya raw beatmap üzerinden dört playable variant üretilebilir:
python tools/audio_analyzer/generate_style_variants.py --input-wav Assets/PulseForge/Demo/Audio/PF_Debug_120BPM_DefaultBeatMap.wav --output-dir Assets/PulseForge/Demo/BeatMaps --name Debug_120BPM --difficulty hard --detection-mode amplitude --summaryBu akış varsayılan olarak şu playable JSON dosyalarını üretir:
Assets/PulseForge/Demo/BeatMaps/BM_Playable_Debug_120BPM_Balanced.json
Assets/PulseForge/Demo/BeatMaps/BM_Playable_Debug_120BPM_Defensive.json
Assets/PulseForge/Demo/BeatMaps/BM_Playable_Debug_120BPM_Aggressive.json
Assets/PulseForge/Demo/BeatMaps/BM_Playable_Debug_120BPM_Bursty.json
Defensive Guard ağırlıklı, Aggressive Strike ağırlıklı dağılımı kontrol etmek için
kullanışlıdır. Ayrıntılar:
docs/12-combat-style-variants-milestone.md
tools/audio_analyzer/out/ klasörü debug çıktıları içindir ve Git’e alınmamalıdır.
Unity içinde şu menüden açılır:
Tools > PulseForge > Audio Pipeline
Önerilen demo ayarları:
Input Audio Clip:
PF_Debug_120BPM_DefaultBeatMap.wav
Expected Beat Map Json:
BM_Debug_120BPM_Default.json
Output Name:
Debug_120BPM
Pattern:
Guard,Guard,Strike,Guard,Strike,Strike,Guard,Strike,Guard,Strike
Detection Mode:
amplitude
Difficulty:
hard
Action Mode:
pattern
Combat Style:
legacy
Use Expected Compare:
true
Run Pipeline sonrası generated JSON bulunursa pencere bunu gösterebilir. Combat Style
değeri legacy iken eski Action Mode / Pattern workflow'u korunur. balanced,
defensive, aggressive veya bursty seçildiğinde action mapping combat-style preset
tarafından kontrol edilir.
Milestone 3 ile pencere raw/playable beatmap eventlerini timeline üzerinde gösterir ve analysis, postprocess, compare raporlarını okunabilir özetlere dönüştürür. Böylece raw analyzer output'u ile playable postprocessor output'u arasındaki fark Unity içinde görülebilir.
Milestone 5 ile aynı pencerede ek olarak:
Generate Style Variantsile Balanced / Defensive / Aggressive / Bursty playable JSON dosyaları üretilebilir.Style Variant Comparisonpanelinde event count, Guard count, Strike count, first/last time ve dropped count incelenebilir.- Her variant
Ping / Selectile Project panelinde bulunabilir. Previewile timeline preview hedefi seçilen variant'a çevrilebilir.Assignile seçiliDebugRhythmPrototypeControllerobjesine ilgili variant JSON atanabilir.
İstenirse Ping / Select Generated JSON ile generated playable JSON Project panelinde
seçilebilir. Sahnede DebugRhythmPrototypeController olan GameObject seçiliyken
Assign to Selected Debug Prototype butonu ile generated JSON component’e atanabilir.
Bu pencere final beatmap editor veya waveform editor değildir. Şu anki rolü pipeline çıktısını incelemek, raporları özetlemek ve generated playable JSON'u prototype'a bağlamayı kolaylaştırmaktır.
Bu işlem sahneyi otomatik kaydetmez. Bu tercih, editor aracının kullanıcı onayı olmadan sahne dosyasını değiştirmesini önlemek için korunur.
Assets/PulseForge/
├── Runtime/
│ ├── Domain/Rhythm/
│ │ ├── HitJudge.cs
│ │ ├── BeatEventRuntime.cs
│ │ ├── BeatEventMatcher.cs
│ │ ├── RhythmInputResolver.cs
│ │ ├── BeatEventTimeoutProcessor.cs
│ │ ├── RhythmSession.cs
│ │ └── ScoreTracker.cs
│ ├── Unity/
│ │ ├── BeatMaps/
│ │ │ ├── DebugBeatMapAsset.cs
│ │ │ └── DebugBeatMapJsonParser.cs
│ │ ├── Timing/
│ │ │ ├── ISongClock.cs
│ │ │ ├── RealtimeSongClock.cs
│ │ │ └── DspAudioSongClock.cs
│ │ └── Prototype/
│ │ ├── DebugRhythmPrototypeController.cs
│ │ ├── DebugRhythmLaneRenderer.cs
│ │ ├── DebugCombatFeedbackRenderer.cs
│ │ └── DebugCombatSceneView.cs
├── Editor/
│ └── AudioPipeline/
│ ├── BeatmapTimelinePreviewDrawer.cs
│ ├── PipelineReportSummaryDrawer.cs
│ └── PulseForgeAudioPipelineWindow.cs
└── Demo/
├── Audio/
├── BeatMaps/
└── Scenes/
tools/audio_analyzer/
├── generate_debug_click_track.py
├── pulseforge_audio_analyzer.py
├── compare_beatmaps.py
├── postprocess_beatmap.py
├── run_debug_pipeline.py
├── generate_style_variants.py
├── tests/
│ ├── test_compare_beatmaps.py
│ ├── test_generate_style_variants.py
│ ├── test_postprocess_beatmap.py
│ ├── test_pulseforge_audio_analyzer.py
│ └── test_run_debug_pipeline.py
└── README.md
PulseForge şu ayrımı korumaya çalışır:
Domain layer
→ Unity bilmez.
→ Perfect / Good / Miss, event state, session ve score kurallarını taşır.
Unity runtime/debug layer
→ Domain sistemini sahne içinde çalıştırır.
→ Audio clock, lane, OnGUI feedback, sahne combat feedback'i ve debug HUD sağlar.
Unity editor layer
→ Python pipeline’ı Unity içinden çalıştırır.
→ Generated JSON’u bulur ve prototype’a atamayı kolaylaştırır.
→ Raw/playable timeline preview ve pipeline report summary sağlar.
→ Style variant generation, comparison, preview ve assign akışını taşır.
Python tools
→ WAV analiz eder.
→ Raw beatmap üretir.
→ Playable beatmap’e postprocess eder.
→ Combat-style playable variantları üretir.
→ Karşılaştırma ve diagnostics sağlar.
Bu ayrımın amacı basit: Ses analizi değişince Unity gameplay çekirdeği yıkılmasın. Unity UI veya sahne feedback'i değişince Python analyzer etkilenmesin. Her katmanın sorumluluğu sınırlı kaldığında değişikliklerin etkisi daha kolay izlenir.
Demo veya commit öncesinde en az Python unittest komutunu ve Unity Edit Mode test akışını hatırla. Unity testleri bu ortamda çalıştırılamadıysa bunu sonuç raporunda açıkça belirt.
Unity içinde:
Window > General > Test Runner > EditMode > Run All
Test edilen ana davranışlar:
- Hit judgement sınırları.
- Beat event runtime state geçişleri.
- Pending event matching.
- Input resolve akışı.
- Timeout miss işleme.
- RhythmSession sayaçları.
- ScoreTracker davranışı.
python -m unittest discover tools/audio_analyzer/testsTest edilen ana davranışlar:
- WAV generator.
- Analyzer amplitude/onset mode.
- Diagnostics report ve CSV.
- Beatmap comparison.
- Playable postprocessor.
- Tek komutluk pipeline runner.
- Combat-style presetleri ve style variant generation.
Şu an sistemin yapmadıkları:
- Runtime custom song import yalnızca Windows build'de var.
- Runtime analiz hızlı onset/peak üretimidir; final beat tracking değildir.
- Editor Python pipeline'ı dış bağımlılıksızdır; runtime format dönüşümü için build'e ayrıca FFmpeg hazırlanır.
- Gerçek müziklerde kusursuz beat detection iddiası yok.
- Final UI yok.
- Sahne combat feedback'i prototype seviyesindedir; final animasyon/sprite combat sistemi yok.
- Tam beatmap editor yok.
- Forge Preview final beatmap editor veya waveform editor değildir.
- Timeline preview şimdilik inceleme amaçlıdır; event authoring aracı değildir.
- Combat-style presetleri final koreografi üreticisi değildir; basit ve deterministik Guard / Strike dağılımlarıdır.
- JSON
schemaVersion: 1hâlâGuard/Strikeaksiyonlarıyla sınırlıdır. - Verse, chorus, drop gibi yapısal müzik analizi yoktur.
- HeavySlash, Burst veya benzeri ayrı combat event type'ları henüz yoktur.
- Seviye seçme veya kullanıcı profili yok.
- Online skor yok.
Bunlar eksiklik olarak değil, bu milestone’un bilinçli sınırları olarak değerlendirilmelidir. Sınırların açık tutulması, prototipin teknik hedefini ve değerlendirme kapsamını netleştirir.
Aşağıdaki liste eski hazırlık planıdır; bugünkü implementation en üstteki Radial V2 bölümünde ayrılmıştır. BPM/beat grid, section analizi, radial encounter/action ve cache kodları artık vardır; bunları hâlâ uygulanmamış özellikler olarak okumayın. Liste güncel milestone kabulü veya yeni bir geliştirme taahhüdü değildir:
-
Project Cleanup / Demo Recording Prep
- Demo sahnesi, README ve milestone dokümanlarını video kaydına hazır hale getirmek.
- Kısa portfolyo akışını netleştirmek: pipeline → style variants → preview → assign → Play Mode → sahne combat feedback.
- Gereksiz debug çıktılarını ve geçici dosyaları kontrol etmek.
-
Gerçek müzik WAV testleri
- Debug click track dışındaki WAV dosyalarında analyzer ve combat-style presetlerini test etmek.
- Defensive / Aggressive / Bursty çıktılarının gerçek müzikte ne kadar okunabilir olduğunu ölçmek.
- Threshold, min-gap ve burst window değerlerini diagnostics üzerinden iyileştirmek.
-
Combat event type genişletmesi
Guard/Strikesınırının ötesinde metadata veya yeni action tipleri araştırmak.- HeavySlash, Burst veya GuardBreak gibi fikirleri JSON schema değişikliği gerektirmeden önce tasarlamak.
- Runtime feedback tarafında hangi yeni actionların gerçekten değer kattığını test etmek.
Sonraki iyileştirme başlıkları:
-
Beatmap authoring/editing
- Generated beatmap üzerinde küçük düzeltmeler yapabilme.
- Offset, action ve event silme/ekleme araçları.
-
Analyzer tuning
- Gerçek müzik benzeri WAV dosyalarında onset mode ayarlarını test etmek.
- Diagnostics CSV üzerinden threshold, baseline ve min-gap değerlerini iyileştirmek.
-
Forge Preview polish
- Timeline zoom veya ölçek kontrolü.
- Daha ayrıntılı compare görselleştirmesi.
- Waveform veya energy curve debug görünümü araştırması.
-
Daha gelişmiş audio analysis
- Dış bağımlılıklar değerlendirilirse librosa/essentia tabanlı ikinci analiz pipeline’ı.
- BPM ve beat tracking.
- Section/intensity segmentation.
- docs/06-debug-prototype-milestone.md
- docs/07-audio-pipeline-milestone.md
- docs/08-forge-preview-milestone.md
- docs/09-combat-visualization-milestone.md
- docs/10-demo-recording-guide.md
- docs/11-repository-cleanup-checklist.md
- docs/12-combat-style-variants-milestone.md
- docs/13-runtime-custom-song-import.md
- tools/audio_analyzer/README.md