pub mod core;
pub mod midi;
pub mod notation;
pub mod stream;
#[cfg(feature = "realtime")]
pub mod realtime;
#[cfg(feature = "graphics")]
pub mod render;
pub mod analysis;
pub use core::{Chord, Duration, Interval, Note, Pitch, Rest};
pub use midi::{MidiEvent, MidiFile, MidiMessage, MidiTrack};
pub use notation::{Clef, Dynamics, KeySignature, Tempo, TimeSignature};
pub use stream::{Measure, Part, Score, Stream, Voice};
#[cfg(feature = "realtime")]
pub use realtime::{MidiInput, MidiOutput, MidiPort};
#[cfg(feature = "graphics")]
pub use render::{RenderConfig, ScoreElement, ScoreRenderer};
pub mod prelude {
pub use crate::core::{
Accidental, Chord, Duration, DurationType, Interval, Note, Pitch, Rest, Step,
};
pub use crate::midi::{MidiEvent, MidiFile, MidiMessage, MidiTrack};
pub use crate::notation::{Clef, Dynamics, KeySignature, Tempo, TimeSignature};
pub use crate::stream::{Measure, MusicElement, Part, Score, Stream, Voice};
#[cfg(feature = "realtime")]
pub use crate::realtime::{MidiInput, MidiOutput, MidiPort};
#[cfg(feature = "graphics")]
pub use crate::render::{RenderConfig, ScoreElement, ScoreRenderer};
}