{ "repo_notes": [ { "content": "" } ], "pages": [ { "title": "PyTaiko Overview", "purpose": "High-level introduction to PyTaiko: what it is, its purpose as a Taiko no Tatsujin simulator, main features, and architecture overview", "page_notes": [ { "content": "" } ] }, { "title": "Getting Started", "purpose": "Installation instructions, running the application on different platforms, basic configuration", "parent": "PyTaiko Overview", "page_notes": [ { "content": "" } ] }, { "title": "Project Structure", "purpose": "Overview of the codebase organization: directory structure, major modules, and how they relate", "parent": "PyTaiko Overview", "page_notes": [ { "content": "" } ] }, { "title": "Application Architecture", "purpose": "Core application structure: main loop, screen management system, lifecycle, and state flow", "page_notes": [ { "content": "" } ] }, { "title": "Screen System", "purpose": "Detailed explanation of the screen-based architecture: Screen base class, screen transitions, lifecycle methods (on_screen_start, update, draw, on_screen_end)", "parent": "Application Architecture", "page_notes": [ { "content": "" } ] }, { "title": "Screen Flow", "purpose": "The progression through different screens: Loading → Title → Entry → Song Select → Game → Result, including state management", "parent": "Application Architecture", "page_notes": [ { "content": "" } ] }, { "title": "Configuration System", "purpose": "config.toml structure, configuration loading, runtime settings, and how configuration affects different subsystems", "parent": "Application Architecture", "page_notes": [ { "content": "" } ] }, { "title": "Global State Management", "purpose": "global_data module: shared state, session data, input locking mechanism, and cross-system communication", "parent": "Application Architecture", "page_notes": [ { "content": "" } ] }, { "title": "Gameplay System", "purpose": "Core gameplay mechanics: how the game works, from chart loading to scoring", "page_notes": [ { "content": "" } ] }, { "title": "TJA Chart Format", "purpose": "The TJA file format: structure, metadata, note notation, commands (#BPMCHANGE, #SCROLL, #GOGOSTART, etc.), and branching", "parent": "Gameplay System", "page_notes": [ { "content": "" } ] }, { "title": "Chart Parsing", "purpose": "TJAParser implementation: encoding detection, metadata extraction, note parsing, position calculation (hit_ms, load_ms), and NoteList generation", "parent": "Gameplay System", "page_notes": [ { "content": "" } ] }, { "title": "Note Management", "purpose": "Note lifecycle: spawning, movement, rendering, note types (don, kat, drumrolls, balloons), and the note manager system", "parent": "Gameplay System", "page_notes": [ { "content": "" } ] }, { "title": "Input Handling", "purpose": "Input abstraction layer: keyboard/gamepad/touch support, keybind configuration, input locking, and player-specific inputs", "parent": "Gameplay System", "page_notes": [ { "content": "" } ] }, { "title": "Hit Detection", "purpose": "check_note implementation: timing windows (GOOD/OK/BAD), hit evaluation, auto-play mode, and hit feedback", "parent": "Gameplay System", "page_notes": [ { "content": "" } ] }, { "title": "Scoring System", "purpose": "Score calculation: base_score formula, combo mechanics, gauge system, clear conditions, and crown determination", "parent": "Gameplay System", "page_notes": [ { "content": "" } ] }, { "title": "Score Persistence", "purpose": "scores.db structure, hash_note_data calculation, score writing logic, and score history tracking", "parent": "Gameplay System", "page_notes": [ { "content": "" } ] }, { "title": "Audio System", "purpose": "Overview of the audio architecture: layered design, Python API, C library, and PortAudio backend", "page_notes": [ { "content": "" } ] }, { "title": "Audio Engine API", "purpose": "AudioEngine class: initialization, device management, sound vs music distinction, volume control, and playback methods", "parent": "Audio System", "page_notes": [ { "content": "" } ] }, { "title": "Sound Playback", "purpose": "Static sound loading, playback, volume/pan control, and simultaneous sound mixing", "parent": "Audio System", "page_notes": [ { "content": "" } ] }, { "title": "Music Streaming", "purpose": "Music stream architecture: double-buffering, update requirements, seeking, and continuous playback", "parent": "Audio System", "page_notes": [ { "content": "" } ] }, { "title": "C Audio Library", "purpose": "Low-level implementation: PortAudio callback, audio buffer management, mixing algorithm, and threading model", "parent": "Audio System", "page_notes": [ { "content": "" } ] }, { "title": "Building Audio Libraries", "purpose": "Makefile system: platform detection, dependency management, static vs dynamic linking, and cross-platform builds", "parent": "Audio System", "page_notes": [ { "content": "" } ] }, { "title": "Video Audio Integration", "purpose": "VideoPlayer class: audio extraction, synchronization with video frames, and integration with AudioEngine", "parent": "Audio System", "page_notes": [ { "content": "" } ] }, { "title": "Visual System", "purpose": "Overview of graphics rendering: raylib integration, texture management, and animation framework", "page_notes": [ { "content": "" } ] }, { "title": "Texture Management", "purpose": "TextureWrapper architecture: ZIP-based asset loading, texture.json format, frame-based sprites, and drawing API", "parent": "Visual System", "page_notes": [ { "content": "" } ] }, { "title": "Animation Framework", "purpose": "Animation system design: BaseAnimation class, animation types (fade/move/texture_change/resize), easing functions, and lifecycle", "parent": "Visual System", "page_notes": [ { "content": "" } ] }, { "title": "Animation Definitions", "purpose": "animation.json format: declarative animations, property references, delay chaining, and screen-specific animations", "parent": "Visual System", "page_notes": [ { "content": "" } ] }, { "title": "Background System", "purpose": "Background class architecture: component orchestration, state-driven updates (normal/fever/rainbow), and milestone-based effects", "parent": "Visual System", "page_notes": [ { "content": "" } ] }, { "title": "Background Components", "purpose": "Individual background objects: DonBG, BGNormal, BGFever, Dancer, Fever, Footer, Renda, Chibi - their roles and implementations", "parent": "Visual System", "page_notes": [ { "content": "" } ] }, { "title": "Collaborative Backgrounds", "purpose": "COLLABS system: theme registry, custom background implementations (Dan, Oshiri, ButtoBurst, etc.), and component overriding", "parent": "Visual System", "page_notes": [ { "content": "" } ] } ] }