1#ifndef YAZE_APP_EDITOR_MUSIC_PANELS_MUSIC_HELP_PANEL_H_
2#define YAZE_APP_EDITOR_MUSIC_PANELS_MUSIC_HELP_PANEL_H_
8#include "imgui/imgui.h"
23 std::string
GetId()
const override {
return "music.help"; }
33 void Draw(
bool* p_open)
override {
34 ImGui::Text(
"Yaze Music Editor Guide");
37 if (ImGui::CollapsingHeader(
"Overview", ImGuiTreeNodeFlags_DefaultOpen)) {
39 "The Music Editor allows you to create and modify SNES music for "
41 ImGui::BulletText(
"Song Browser: Select and manage songs.");
42 ImGui::BulletText(
"Tracker/Piano Roll: Edit note data.");
43 ImGui::BulletText(
"Instrument Editor: Configure ADSR envelopes.");
44 ImGui::BulletText(
"Sample Editor: Import and preview BRR samples.");
47 if (ImGui::CollapsingHeader(
"Tracker / Piano Roll")) {
48 ImGui::Text(
"Controls:");
49 ImGui::BulletText(
"Space: Play/Pause");
50 ImGui::BulletText(
"Z, S, X...: Keyboard piano (C, C#, D...)");
51 ImGui::BulletText(
"Shift+Arrows: Range selection");
52 ImGui::BulletText(
"Ctrl+C/V: Copy/Paste (WIP)");
53 ImGui::BulletText(
"Ctrl+Wheel: Zoom (Piano Roll)");
56 if (ImGui::CollapsingHeader(
"Instruments & Samples")) {
58 "Instruments use BRR samples with an ADSR volume envelope.");
59 ImGui::BulletText(
"ADSR: Attack, Decay, Sustain, Release.");
61 "Loop Points: Define where the sample loops (in blocks of 16 "
63 ImGui::BulletText(
"Tuning: Adjust pitch multiplier ($1000 = 1.0x).");
66 if (ImGui::CollapsingHeader(
"Keyboard Shortcuts")) {
67 ImGui::BulletText(
"Space: Play/Pause toggle");
68 ImGui::BulletText(
"Escape: Stop playback");
69 ImGui::BulletText(
"+/-: Increase/decrease speed");
70 ImGui::BulletText(
"Arrow keys: Navigate in tracker/piano roll");
71 ImGui::BulletText(
"Z,S,X,D,C,V,G,B,H,N,J,M: Piano keyboard (C to B)");
72 ImGui::BulletText(
"Ctrl+Wheel: Zoom (Piano Roll)");
75 if (ImGui::CollapsingHeader(
"ASM Import/Export")) {
77 "Songs can be exported to and imported from Oracle of "
78 "Secrets-compatible ASM format.");
79 ImGui::BulletText(
"Right-click a song in the browser to export/import.");
80 ImGui::BulletText(
"Exported ASM can be assembled with Asar.");
81 ImGui::BulletText(
"Import parses ASM labels and data directives.");
Base interface for all logical panel components.
EditorPanel providing help documentation for the Music Editor.
std::string GetId() const override
Unique identifier for this panel.
std::string GetEditorCategory() const override
Editor category this panel belongs to.
std::string GetDisplayName() const override
Human-readable name shown in menus and title bars.
int GetPriority() const override
Get display priority for menu ordering.
void Draw(bool *p_open) override
Draw the panel content.
std::string GetIcon() const override
Material Design icon for this panel.