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#include "util/i18n/tr.h"
6
9#include "imgui/imgui.h"
10
11namespace yaze {
12namespace editor {
13
19 public:
20 // ==========================================================================
21 // WindowContent Identity
22 // ==========================================================================
23
24 std::string GetId() const override { return "music.help"; }
25 std::string GetDisplayName() const override { return "Help"; }
26 std::string GetIcon() const override { return ICON_MD_HELP; }
27 std::string GetEditorCategory() const override { return "Music"; }
28 int GetPriority() const override { return 99; }
29
30 // ==========================================================================
31 // WindowContent Drawing
32 // ==========================================================================
33
34 void Draw(bool* p_open) override {
35 ImGui::Text(tr("Yaze Music Editor Guide"));
36 ImGui::Separator();
37
38 if (ImGui::CollapsingHeader(tr("Overview"),
39 ImGuiTreeNodeFlags_DefaultOpen)) {
40 ImGui::TextWrapped(
41 tr("The Music Editor allows you to create and modify SNES music for "
42 "Zelda 3."));
43 ImGui::BulletText(tr("Song Browser: Select and manage songs."));
44 ImGui::BulletText(tr("Tracker/Piano Roll: Edit note data."));
45 ImGui::BulletText(tr("Instrument Editor: Configure ADSR envelopes."));
46 ImGui::BulletText(tr("Sample Editor: Import and preview BRR samples."));
47 }
48
49 if (ImGui::CollapsingHeader(tr("Tracker / Piano Roll"))) {
50 ImGui::Text(tr("Controls:"));
51 ImGui::BulletText(tr("Space: Play/Pause"));
52 ImGui::BulletText(tr("Z, S, X...: Keyboard piano (C, C#, D...)"));
53 ImGui::BulletText(tr("Shift+Arrows: Range selection"));
54 ImGui::BulletText(tr("Ctrl+C/V: Copy/Paste (WIP)"));
55 ImGui::BulletText(tr("Ctrl+Wheel: Zoom (Piano Roll)"));
56 }
57
58 if (ImGui::CollapsingHeader(tr("Instruments & Samples"))) {
59 ImGui::TextWrapped(
60 tr("Instruments use BRR samples with an ADSR volume envelope."));
61 ImGui::BulletText(tr("ADSR: Attack, Decay, Sustain, Release."));
62 ImGui::BulletText(
63 tr("Loop Points: Define where the sample loops (in blocks of 16 "
64 "samples)."));
65 ImGui::BulletText(tr("Tuning: Adjust pitch multiplier ($1000 = 1.0x)."));
66 }
67
68 if (ImGui::CollapsingHeader(tr("Keyboard Shortcuts"))) {
69 ImGui::BulletText(tr("Space: Play/Pause toggle"));
70 ImGui::BulletText(tr("Escape: Stop playback"));
71 ImGui::BulletText(tr("+/-: Increase/decrease speed"));
72 ImGui::BulletText(tr("Arrow keys: Navigate in tracker/piano roll"));
73 ImGui::BulletText(tr("Z,S,X,D,C,V,G,B,H,N,J,M: Piano keyboard (C to B)"));
74 ImGui::BulletText(tr("Ctrl+Wheel: Zoom (Piano Roll)"));
75 }
76
77 if (ImGui::CollapsingHeader(tr("ASM Import/Export"))) {
78 ImGui::TextWrapped(
79 tr("Songs can be exported to and imported from Oracle of "
80 "Secrets-compatible ASM format."));
81 ImGui::BulletText(
82 tr("Right-click a song in the browser to export/import."));
83 ImGui::BulletText(tr("Exported ASM can be assembled with Asar."));
84 ImGui::BulletText(tr("Import parses ASM labels and data directives."));
85 }
86 }
87};
88
89} // namespace editor
90} // namespace yaze
91
92#endif // YAZE_APP_EDITOR_MUSIC_PANELS_MUSIC_HELP_PANEL_H_
WindowContent 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.
Base interface for all logical window content components.
#define ICON_MD_HELP
Definition icons.h:933