diff --git a/src/constants.zig b/src/constants.zig index ad33f0f..2c89cf2 100644 --- a/src/constants.zig +++ b/src/constants.zig @@ -1,4 +1,4 @@ -pub const music_theory = struct { +pub const theory = struct { const chromatic_pitches = []const u8{ "A", "A#", diff --git a/src/main.zig b/src/main.zig index edbeb5d..0efdbef 100644 --- a/src/main.zig +++ b/src/main.zig @@ -14,7 +14,7 @@ pub fn main() !void { rl.setTargetFPS(60); - var midi_output = try MidiOutput.init(); + var midi_output = try MidiOutput.init("ClefCraft"); defer midi_output.deinit(); while (!rl.windowShouldClose()) { diff --git a/src/midi/output.zig b/src/midi/output.zig index c27a704..35e0b8b 100644 --- a/src/midi/output.zig +++ b/src/midi/output.zig @@ -3,9 +3,9 @@ const rtmidi = @import("rtmidi"); pub const MidiOutput = struct { output: ?*rtmidi.Out, - pub fn init() !MidiOutput { + pub fn init(name: [:0]const u8) !MidiOutput { var output = rtmidi.Out.createDefault() orelse return error.MidiOutFailed; - output.openVirtualPort("ClefCraft"); + output.openVirtualPort(name); return MidiOutput{ .output = output }; } diff --git a/src/root.zig b/src/root.zig index 77f9515..4fa2933 100644 --- a/src/root.zig +++ b/src/root.zig @@ -1,15 +1,15 @@ const std = @import("std"); const testing = std.testing; -pub const Interval = @import("interval.zig").Interval; -pub const Note = @import("note.zig").Note; -pub const Pitch = @import("pitch.zig").Pitch; -pub const Scale = @import("scale.zig").Scale; +pub const Interval = @import("theory/interval.zig").Interval; +pub const Note = @import("theory/note.zig").Note; +pub const Pitch = @import("theory/pitch.zig").Pitch; +pub const Scale = @import("theory/scale.zig").Scale; test { // Run all unit tests. - _ = @import("interval.zig"); - _ = @import("note.zig"); - _ = @import("pitch.zig"); - _ = @import("scale.zig"); + _ = @import("theory/interval.zig"); + _ = @import("theory/note.zig"); + _ = @import("theory/pitch.zig"); + _ = @import("theory/scale.zig"); } diff --git a/src/interval.zig b/src/theory/interval.zig similarity index 98% rename from src/interval.zig rename to src/theory/interval.zig index 4e5e00c..afcf2ff 100644 --- a/src/interval.zig +++ b/src/theory/interval.zig @@ -4,8 +4,8 @@ const log = std.log.scoped(.interval); const Note = @import("note.zig").Note; -const notes_per_octave = @import("constants.zig").music_theory.notes_per_octave; -const semitones_per_octave = @import("constants.zig").music_theory.semitones_per_octave; +const notes_per_octave = @import("../constants.zig").theory.notes_per_octave; +const semitones_per_octave = @import("../constants.zig").theory.semitones_per_octave; pub const Interval = struct { quality: Quality, diff --git a/src/note.zig b/src/theory/note.zig similarity index 99% rename from src/note.zig rename to src/theory/note.zig index f81b36a..d0fff04 100644 --- a/src/note.zig +++ b/src/theory/note.zig @@ -4,14 +4,14 @@ const log = std.log.scoped(.note); const pitch = @import("pitch.zig"); const _interval = @import("interval.zig"); -const utils = @import("utils.zig"); +const utils = @import("../utils.zig"); const Accidental = pitch.Accidental; const Interval = _interval.Interval; const Letter = pitch.Letter; const Pitch = pitch.Pitch; -const semitones_per_octave = @import("constants.zig").music_theory.semitones_per_octave; +const semitones_per_octave = @import("../constants.zig").theory.semitones_per_octave; // The international standard pitch, A440. const standard_note = Note{ .pitch = Pitch{ .letter = .a, .accidental = null }, .octave = 4 }; diff --git a/src/pitch.zig b/src/theory/pitch.zig similarity index 98% rename from src/pitch.zig rename to src/theory/pitch.zig index e5a4ae7..a2ffaf6 100644 --- a/src/pitch.zig +++ b/src/theory/pitch.zig @@ -2,10 +2,10 @@ const std = @import("std"); const assert = std.debug.assert; const log = std.log.scoped(.pitch); -const utils = @import("utils.zig"); +const utils = @import("../utils.zig"); const letter_count = 7; -const semitones_per_octave = @import("constants.zig").music_theory.semitones_per_octave; +const semitones_per_octave = @import("../constants.zig").theory.semitones_per_octave; /// The chosen notational spelling for a pitch class. /// diff --git a/src/scale.zig b/src/theory/scale.zig similarity index 100% rename from src/scale.zig rename to src/theory/scale.zig diff --git a/src/ui/piano.zig b/src/ui/piano.zig index 6be31db..ea4dd85 100644 --- a/src/ui/piano.zig +++ b/src/ui/piano.zig @@ -4,7 +4,7 @@ const log = std.log.scoped(.piano); const rl = @import("raylib"); const MidiOutput = @import("../midi/output.zig").MidiOutput; -const Note = @import("../note.zig").Note; +const Note = @import("../theory/note.zig").Note; const key_count = 88; const key_spacing = 2;