yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
music_help_panel.h
Go to the documentation of this file.
1#ifndef YAZE_APP_EDITOR_MUSIC_PANELS_MUSIC_HELP_PANEL_H_
2#define YAZE_APP_EDITOR_MUSIC_PANELS_MUSIC_HELP_PANEL_H_
3
4#include <string>
5
8#include "imgui/imgui.h"
9
10namespace yaze {
11namespace editor {
12
18 public:
19 // ==========================================================================
20 // EditorPanel Identity
21 // ==========================================================================
22
23 std::string GetId() const override { return "music.help"; }
24 std::string GetDisplayName() const override { return "Help"; }
25 std::string GetIcon() const override { return ICON_MD_HELP; }
26 std::string GetEditorCategory() const override { return "Music"; }
27 int GetPriority() const override { return 99; }
28
29 // ==========================================================================
30 // EditorPanel Drawing
31 // ==========================================================================
32
33 void Draw(bool* p_open) override {
34 ImGui::Text("Yaze Music Editor Guide");
35 ImGui::Separator();
36
37 if (ImGui::CollapsingHeader("Overview", ImGuiTreeNodeFlags_DefaultOpen)) {
38 ImGui::TextWrapped(
39 "The Music Editor allows you to create and modify SNES music for "
40 "Zelda 3.");
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.");
45 }
46
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)");
54 }
55
56 if (ImGui::CollapsingHeader("Instruments & Samples")) {
57 ImGui::TextWrapped(
58 "Instruments use BRR samples with an ADSR volume envelope.");
59 ImGui::BulletText("ADSR: Attack, Decay, Sustain, Release.");
60 ImGui::BulletText(
61 "Loop Points: Define where the sample loops (in blocks of 16 "
62 "samples).");
63 ImGui::BulletText("Tuning: Adjust pitch multiplier ($1000 = 1.0x).");
64 }
65
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)");
73 }
74
75 if (ImGui::CollapsingHeader("ASM Import/Export")) {
76 ImGui::TextWrapped(
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.");
82 }
83 }
84};
85
86} // namespace editor
87} // namespace yaze
88
89#endif // YAZE_APP_EDITOR_MUSIC_PANELS_MUSIC_HELP_PANEL_H_
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.
#define ICON_MD_HELP
Definition icons.h:933