Skip to main content

Crate acorde_core

Crate acorde_core 

Source
Expand description

Platform-agnostic music score data model and command engine (undo/redo), with zero I/O and zero rendering. Pairs with acorde-io for MusicXML/MIDI/ABC parsing and acorde-layout for logical score layout.

Re-exports§

pub use model::arrange::AccordionAnalysis;
pub use model::arrange::ArrangeResult;
pub use model::arrange::PartCandidate;
pub use model::arrange::analyze_for_accordion;
pub use model::arrange::arrange_for_accordion;
pub use model::change_hint::ChangeHint;
pub use model::change_hint::ChangeScope;
pub use model::commands::AddHairpinCmd;
pub use model::commands::AddMeasureCmd;
pub use model::commands::AddNoteCmd;
pub use model::commands::AddPartCmd;
pub use model::commands::AddPedalCmd;
pub use model::commands::AddPitchCmd;
pub use model::commands::AddSpannerCmd;
pub use model::commands::AddStaffCmd;
pub use model::commands::BatchCmd;
pub use model::commands::Command;
pub use model::commands::CommandStack;
pub use model::commands::CycleEnharmonicSpellingCmd;
pub use model::commands::DeleteMeasureCmd;
pub use model::commands::DeleteNoteCmd;
pub use model::commands::DeletePartCmd;
pub use model::commands::DeleteStaffCmd;
pub use model::commands::DurationScale;
pub use model::commands::ExchangeVoicesCmd;
pub use model::commands::ExplodeChordPitchesCmd;
pub use model::commands::ExplodeVoicesCmd;
pub use model::commands::ImplodeStavesCmd;
pub use model::commands::JoinMeasuresCmd;
pub use model::commands::MoveOrCopyVoiceRangeCmd;
pub use model::commands::NewScoreCmd;
pub use model::commands::PasteRangeCmd;
pub use model::commands::PasteScoreFragmentCmd;
pub use model::commands::PasteVoiceCmd;
pub use model::commands::RemoveScoreViewCmd;
pub use model::commands::RemoveSpannerCmd;
pub use model::commands::RemoveTrailingEmptyMeasuresCmd;
pub use model::commands::ReorderPartsCmd;
pub use model::commands::ResequenceRehearsalMarksCmd;
pub use model::commands::RespellScoreCmd;
pub use model::commands::RespellScoreToKeyCmd;
pub use model::commands::RespellStaffRegionCmd;
pub use model::commands::ScaleVoiceRangeCmd;
pub use model::commands::ScoreFragmentPastePolicy;
pub use model::commands::SetArpeggioCmd;
pub use model::commands::SetBarlineCmd;
pub use model::commands::SetChordSymbolCmd;
pub use model::commands::SetClefCmd;
pub use model::commands::SetCrossStaffCmd;
pub use model::commands::SetCueCmd;
pub use model::commands::SetDurationCmd;
pub use model::commands::SetDynamicCmd;
pub use model::commands::SetExpressionTextCmd;
pub use model::commands::SetFiguredBassCmd;
pub use model::commands::SetFingeringCmd;
pub use model::commands::SetFingeringsCmd;
pub use model::commands::SetGlissandoCmd;
pub use model::commands::SetGraceCmd;
pub use model::commands::SetGuitarBendAlterCmd;
pub use model::commands::SetGuitarBendCurveCmd;
pub use model::commands::SetGuitarTechniqueCmd;
pub use model::commands::SetHarmonyRangeCmd;
pub use model::commands::SetHarpPedalDiagramsCmd;
pub use model::commands::SetInstrumentDefinitionCmd;
pub use model::commands::SetInstrumentIdCmd;
pub use model::commands::SetKeySignatureCmd;
pub use model::commands::SetLyricCmd;
pub use model::commands::SetMeasureInstrumentChangeCmd;
pub use model::commands::SetMeasureTablatureChangeCmd;
pub use model::commands::SetMeasureTextCmd;
pub use model::commands::SetMetadataCmd;
pub use model::commands::SetMidiInstrumentCmd;
pub use model::commands::SetMultiRestCmd;
pub use model::commands::SetNavigationMarkCmd;
pub use model::commands::SetNoteHeadCmd;
pub use model::commands::SetNotePlacementCmd;
pub use model::commands::SetObjectStyleOverridesCmd;
pub use model::commands::SetOttavaCmd;
pub use model::commands::SetPageBreakCmd;
pub use model::commands::SetPartGroupCmd;
pub use model::commands::SetPartNameCmd;
pub use model::commands::SetPercussionKitCmd;
pub use model::commands::SetRehearsalMarkCmd;
pub use model::commands::SetScoreStyleOverridesCmd;
pub use model::commands::SetScoreTextCmd;
pub use model::commands::SetSectionBreakCmd;
pub use model::commands::SetStaffPresentationCmd;
pub use model::commands::SetStemCmd;
pub use model::commands::SetStringNumberCmd;
pub use model::commands::SetSystemBreakCmd;
pub use model::commands::SetSystemBreakIntervalCmd;
pub use model::commands::SetTabPositionCmd;
pub use model::commands::SetTablatureConfigCmd;
pub use model::commands::SetTechniqueTextCmd;
pub use model::commands::SetTempoAtMeasureCmd;
pub use model::commands::SetTempoCmd;
pub use model::commands::SetTimeSignatureCmd;
pub use model::commands::SetTransposeCmd;
pub use model::commands::SetTupletCmd;
pub use model::commands::SetUnpitchedCmd;
pub use model::commands::SetVoltaCmd;
pub use model::commands::SplitMeasureCmd;
pub use model::commands::ToggleArticulationCmd;
pub use model::commands::ToggleSlurCmd;
pub use model::commands::ToggleTieCmd;
pub use model::commands::ToggleTrillLineCmd;
pub use model::commands::TransposeStaffRegionCmd;
pub use model::commands::TupletScalePolicy;
pub use model::commands::UpdateSpannerCmd;
pub use model::commands::UpsertScoreViewCmd;
pub use model::commands::command_key;
pub use model::commands::command_label;
pub use model::duration::Duration;
pub use model::engine::EngineHistory;
pub use model::engine::HistoryConflict;
pub use model::engine::HistoryRelation;
pub use model::engine::ScoreEngine;
pub use model::fragment::MIN_SUPPORTED_SCORE_FRAGMENT_CONTRACT_VERSION;
pub use model::fragment::SCORE_FRAGMENT_CONTRACT_VERSION;
pub use model::fragment::ScoreFragment;
pub use model::fragment::ScoreFragmentCrossStaffTarget;
pub use model::fragment::ScoreFragmentDiagnostic;
pub use model::fragment::ScoreFragmentMeasure;
pub use model::fragment::ScoreFragmentMeasureAttributes;
pub use model::fragment::ScoreFragmentSelection;
pub use model::fragment::ScoreFragmentVoice;
pub use model::fragment::extract_score_fragment;
pub use model::gm::drum_name;
pub use model::gm::program_name;
pub use model::harmony::detect_chord;
pub use model::harmony::roman_numeral;
pub use model::interval::Interval;
pub use model::interval::IntervalQuality;
pub use model::notation::Articulation;
pub use model::notation::Barline;
pub use model::notation::BeamState;
pub use model::notation::ChordBarre;
pub use model::notation::ChordDefinition;
pub use model::notation::ChordDefinitionMember;
pub use model::notation::ChordDegree;
pub use model::notation::ChordSymbol;
pub use model::notation::Clef;
pub use model::notation::CrossStaff;
pub use model::notation::Dynamic;
pub use model::notation::FiguredBassFigure;
pub use model::notation::FingeringSelectionPolicy;
pub use model::notation::GuitarTechnique;
pub use model::notation::HairpinKind;
pub use model::notation::KeySignature;
pub use model::notation::Lyric;
pub use model::notation::NoteHead;
pub use model::notation::OttavaKind;
pub use model::notation::StyledText;
pub use model::notation::TabPosition;
pub use model::notation::TablatureConfig;
pub use model::notation::TextStyle;
pub use model::notation::TimeSignature;
pub use model::notation::TupletInfo;
pub use model::notation::VerseLyric;
pub use model::pitch::Pitch;
pub use model::pitch::Step;
pub use model::playback::MAX_PLAYBACK_COMPARISON_EVENTS;
pub use model::playback::MAX_TAB_PERFORMANCE_EVENTS;
pub use model::playback::MetronomeConfig;
pub use model::playback::OFFLINE_RENDER_CONTRACT_VERSION;
pub use model::playback::OfflineRenderDiagnostic;
pub use model::playback::OfflineRenderDiagnosticKind;
pub use model::playback::OfflineRenderFormat;
pub use model::playback::OfflineRenderFrameEvent;
pub use model::playback::OfflineRenderManifest;
pub use model::playback::OfflineRenderMeasureAddress;
pub use model::playback::OfflineRenderNavigationPolicy;
pub use model::playback::OfflineRenderRequest;
pub use model::playback::OfflineRenderResult;
pub use model::playback::OfflineRenderScope;
pub use model::playback::OfflineRenderSemanticEventKind;
pub use model::playback::OfflineRenderSemanticFrameEvent;
pub use model::playback::PLAYBACK_COMPARISON_CONTRACT_VERSION;
pub use model::playback::PLAYBACK_ROUTING_CONTRACT_VERSION;
pub use model::playback::PLAYBACK_TIMING_CORPUS_CONTRACT_VERSION;
pub use model::playback::PlaybackAuxSend;
pub use model::playback::PlaybackBusRoute;
pub use model::playback::PlaybackEffectRoute;
pub use model::playback::PlaybackEvent;
pub use model::playback::PlaybackOptions;
pub use model::playback::PlaybackPosition;
pub use model::playback::PlaybackRealizationProfile;
pub use model::playback::PlaybackRoutingConfig;
pub use model::playback::PlaybackRoutingManifest;
pub use model::playback::PlaybackTimingCase;
pub use model::playback::PlaybackTimingCaseReport;
pub use model::playback::PlaybackTimingCorpusReport;
pub use model::playback::PlaybackTimingMismatch;
pub use model::playback::PlaybackTimingReport;
pub use model::playback::PlaybackTimingTolerance;
pub use model::playback::TAB_PERFORMANCE_CONTRACT_VERSION;
pub use model::playback::TAB_ROUND_TRIP_CONTRACT_VERSION;
pub use model::playback::TablaturePerformanceDiagnostic;
pub use model::playback::TablaturePerformanceEvent;
pub use model::playback::TablaturePerformanceReport;
pub use model::playback::TablatureRoundTripDiagnostic;
pub use model::playback::TablatureRoundTripReport;
pub use model::playback::build_offline_render_manifest;
pub use model::playback::build_playback_routing_manifest;
pub use model::playback::compare_playback_timing;
pub use model::playback::compute_playback_position;
pub use model::playback::evaluate_playback_timing_corpus;
pub use model::playback::project_tablature_performance;
pub use model::playback::tablature_round_trip_report;
pub use model::playback::to_playback_events;
pub use model::playback::to_playback_events_bounded;
pub use model::repeat::measure_sequence;
pub use model::scale::Scale;
pub use model::scale::ScaleKind;
pub use model::score::GuitarBendPoint;
pub use model::score::HarpPedalDiagram;
pub use model::score::HarpPedalPosition;
pub use model::score::InstrumentDefinition;
pub use model::score::InstrumentRange;
pub use model::score::Measure;
pub use model::score::MeasureLength;
pub use model::score::MidiAftertouch;
pub use model::score::MidiControlChange;
pub use model::score::MidiPitchBend;
pub use model::score::MidiProgramChange;
pub use model::score::NotationSpanner;
pub use model::score::NotationSpannerKind;
pub use model::score::Note;
pub use model::score::NoteAddr;
pub use model::score::ObjectStyleOverride;
pub use model::score::ObjectStyleTarget;
pub use model::score::Part;
pub use model::score::PartGroup;
pub use model::score::PartGroupSymbol;
pub use model::score::PercussionInstrument;
pub use model::score::RegionalTranspositionTarget;
pub use model::score::RespellPolicy;
pub use model::score::Score;
pub use model::score::ScoreChange;
pub use model::score::ScoreMetadata;
pub use model::score::ScorePatch;
pub use model::score::ScoreSettings;
pub use model::score::ScoreStats;
pub use model::score::ScoreTemplate;
pub use model::score::ScoreView;
pub use model::score::ScoreViewLayoutOverrides;
pub use model::score::Staff;
pub use model::score::StaffGroup;
pub use model::score::StaffKind;
pub use model::score::StaffNoteheadScheme;
pub use model::score::StaffPresentation;
pub use model::score::StyleImportProvenance;
pub use model::score::TablatureFretMarkStyle;
pub use model::score::TablatureRhythmDisplay;
pub use model::score::ViewStaffKindOverride;
pub use model::score::ViewStaffRef;
pub use model::score::ViewStyle;
pub use model::score::ViewStyleOverride;
pub use model::score::ViewStyleProperty;
pub use model::score::ViewTranspositionPolicy;
pub use model::score::VoltaBracket;
pub use model::score::apply_patch;
pub use model::score::assign_tablature_positions;
pub use model::score::compute_beams;
pub use model::score::diff;
pub use model::score::measure_beats_remaining;
pub use model::score::optimize_tablature_positions;
pub use model::score::respell_score;
pub use model::score::respell_score_to_key;
pub use model::score::respell_staff_region;
pub use model::score::score_duration_secs;
pub use model::score::score_duration_secs_region;
pub use model::score::score_patch;
pub use model::score::suggested_stem_up;
pub use model::score::transpose;
pub use model::score::transpose_checked;
pub use model::score::transpose_staff_region_checked;
pub use model::structural_plan::STRUCTURAL_CHANGE_PLAN_CONTRACT_VERSION;
pub use model::structural_plan::StructuralChangeDiagnostic;
pub use model::structural_plan::StructuralChangeDiagnosticKind;
pub use model::structural_plan::StructuralChangePlan;
pub use model::structural_plan::StructuralMeasureStructure;
pub use model::structural_plan::plan_structural_change;
pub use model::validate::GuitarBendCurveValidationReason;
pub use model::validate::InstrumentDefinitionValidationReason;
pub use model::validate::InstrumentRangeKind;
pub use model::validate::ObjectStyleValidationReason;
pub use model::validate::PercussionInstrumentValidationReason;
pub use model::validate::ScoreViewValidationReason;
pub use model::validate::SpannerEndpoint;
pub use model::validate::StaffPresentationValidationReason;
pub use model::validate::TablatureValidationReason;
pub use model::validate::ValidationError;
pub use model::validate::ValidationReport;
pub use model::validate::ValidationWarning;
pub use model::validate::validate;

Modules§

model

Enums§

Error

Constants§

SCORE_SCHEMA_VERSION
Current Score JSON schema version produced by this crate.