Skip to main content

Crate use_music

Crate use_music 

Source
Expand description

§use-music

Facade over the focused RustUse symbolic music primitive crates.

§Experimental

use-music is experimental while the workspace remains below 0.3.0.

§Example

use use_music::{BeatsPerMinute, ChordSymbol, NoteName, TimeSignature};

let note = NoteName::new("C#4")?;
let chord = ChordSymbol::new("Cmaj7")?;
let meter = TimeSignature::new(4, 4)?;
let tempo = BeatsPerMinute::new(120.0)?;

assert_eq!(note.as_str(), "C#4");
assert_eq!(chord.as_str(), "Cmaj7");
assert!(meter.is_common_time_like());
assert_eq!(tempo.value(), 120.0);

§Scope

  • Re-exports all focused use-music crates.
  • Keeps implementation logic in the child crates.

§Non-goals

  • Audio generation, DSP, synthesis, playback, MIDI device I/O, notation rendering, or full parser behavior.

§License

Licensed under either Apache-2.0 or MIT.

Re-exports§

pub use use_articulation as articulation;
pub use use_chord as chord;
pub use use_dynamics as dynamics;
pub use use_interval as interval;
pub use use_key as key;
pub use use_meter as meter;
pub use use_midi as midi;
pub use use_mode as mode;
pub use use_notation as notation;
pub use use_note as note;
pub use use_pitch as pitch;
pub use use_rhythm as rhythm;
pub use use_scale as scale;
pub use use_tempo as tempo;
pub use use_tuning as tuning;

Structs§

BeatsPerMeasure
BeatsPerMinute
Cents
ChordInversion
ChordName
ChordSymbol
CircleOfFifthsPosition
CompoundInterval
DiatonicStepDistance
DottedDuration
DynamicLevel
EnharmonicSpelling
EqualTemperamentDivision
ExpressionMarking
IntervalName
IntervalNumber
KeyAccidentalCount
KeyName
KeySignature
MeasureNumber
MeasurePosition
MetricAccentPattern
MetronomeMark
MicrotonalDivision
MidiChannel
MidiControllerNumber
MidiPortName
MidiProgramNumber
MidiVelocity
ModeDegree
ModeName
NoteDuration
NoteName
Octave
PitchClassNumber
PitchName
PitchNumber
ReferencePitch
RestDuration
RhythmPatternName
RhythmicPosition
ScaleDegree
ScaleName
ScalePattern
ScaleToneCount
ScorePartName
SemitoneDistance
SimpleInterval
StaffLineCount
TempoMapPoint
TempoRange
TimeSignature
Tonic
TuningRatio
TupletRatio

Enums§

AccentDynamicKind
Accidental
ArticulationError
ArticulationKind
BarlineKind
BeatDivision
BeatUnit
ChordError
ChordQuality
ChordToneRole
ChordVoicingKind
ChurchMode
ClefKind
ConcertPitchStandard
DurationValue
DynamicChangeKind
DynamicMarking
DynamicsError
EndingKind
HairpinKind
IntervalDirection
IntervalError
IntervalQuality
KeyError
KeyMode
MeterError
MeterKind
MidiDeviceKind
MidiError
MidiEventKind
MidiMessageKind
MidiProfileKind
MidiPropertyKind
MidiUmpMessageKind
MidiVersion
ModalBrightness
ModeError
ModeFamily
ModeKind
MusicDocumentKind
NotationError
NotationFormat
NotationSymbolKind
NoteClass
NoteError
NoteLetter
OrnamentKind
ParallelKeyRelation
PerformanceTechnique
PhraseMarkKind
PickupMeasureKind
PitchError
PitchRegister
ReferenceNote
RelativeKeyRelation
RepeatMarkKind
RhythmError
RubatoKind
ScaleError
ScaleKind
SeventhChordKind
SlurKind
StaffKind
SyncopationKind
TemperamentKind
TempoChangeKind
TempoError
TempoMarking
TieKind
TriadKind
TuningError
TuningSystem

Functions§

is_valid_midi_note_number

Type Aliases§

ChordAlteration
ChordExtension
ChromaticScale
DiatonicScale
NaturalNote
NoteSpelling
PentatonicScale
PitchClass
PitchSpelling
ScaleStepPattern
ScientificPitchNotation