MusicalTime => Beats.
authorDavid Robillard <d@drobilla.net>
Wed, 7 Jan 2015 05:12:07 +0000 (00:12 -0500)
committerDavid Robillard <d@drobilla.net>
Wed, 7 Jan 2015 05:12:07 +0000 (00:12 -0500)
66 files changed:
gtk2_ardour/edit_note_dialog.cc
gtk2_ardour/editor.cc
gtk2_ardour/editor.h
gtk2_ardour/editor_drag.cc
gtk2_ardour/editor_ops.cc
gtk2_ardour/hit.h
gtk2_ardour/midi_cut_buffer.cc
gtk2_ardour/midi_cut_buffer.h
gtk2_ardour/midi_list_editor.cc
gtk2_ardour/midi_list_editor.h
gtk2_ardour/midi_region_view.cc
gtk2_ardour/midi_region_view.h
gtk2_ardour/note.h
gtk2_ardour/note_base.h
gtk2_ardour/note_player.h
gtk2_ardour/patch_change_dialog.cc
gtk2_ardour/patch_change_dialog.h
gtk2_ardour/public_editor.h
gtk2_ardour/quantize_dialog.cc
gtk2_ardour/step_editor.cc
gtk2_ardour/step_editor.h
gtk2_ardour/step_entry.cc
gtk2_ardour/step_entry.h
libs/ardour/ardour/beats_frames_converter.h
libs/ardour/ardour/legatize.h
libs/ardour/ardour/midi_model.h
libs/ardour/ardour/midi_operator.h
libs/ardour/ardour/midi_playlist_source.h
libs/ardour/ardour/midi_region.h
libs/ardour/ardour/midi_source.h
libs/ardour/ardour/midi_state_tracker.h
libs/ardour/ardour/quantize.h
libs/ardour/ardour/smf_source.h
libs/ardour/ardour/tempo.h
libs/ardour/ardour/transform.h
libs/ardour/ardour/variant.h
libs/ardour/beats_frames_converter.cc
libs/ardour/import.cc
libs/ardour/legatize.cc
libs/ardour/midi_diskstream.cc
libs/ardour/midi_model.cc
libs/ardour/midi_playlist_source.cc
libs/ardour/midi_region.cc
libs/ardour/midi_source.cc
libs/ardour/midi_state_tracker.cc
libs/ardour/midi_stretch.cc
libs/ardour/quantize.cc
libs/ardour/smf_source.cc
libs/ardour/tempo.cc
libs/ardour/test/framepos_minus_beats_test.cc
libs/ardour/test/framepos_plus_beats_test.cc
libs/ardour/transform.cc
libs/evoral/evoral/Beats.hpp [new file with mode: 0644]
libs/evoral/evoral/types.hpp
libs/evoral/src/Event.cpp
libs/evoral/src/MIDIEvent.cpp
libs/evoral/src/Note.cpp
libs/evoral/src/OldSMF.cpp
libs/evoral/src/Sequence.cpp
libs/evoral/src/TimeConverter.cpp
libs/evoral/src/types.cpp
libs/evoral/test/SMFTest.cpp
libs/evoral/test/SMFTest.hpp
libs/evoral/test/SequenceTest.cpp
libs/evoral/test/SequenceTest.hpp
libs/midi++2/midnam_patch.cc

index 5f8add9ffd9bd3adcdcceb649fa6a514dfb94b64..0568468d6338513a657040276db17c4eb5da2596 100644 (file)
@@ -116,8 +116,8 @@ EditNoteDialog::EditNoteDialog (MidiRegionView* rv, set<NoteBase*> n)
        int test_channel = (*_events.begin())->note()->channel ();
        int test_pitch = (*_events.begin())->note()->note ();
        int test_velocity = (*_events.begin())->note()->velocity ();
-       Evoral::MusicalTime test_time = (*_events.begin())->note()->time ();
-       Evoral::MusicalTime test_length = (*_events.begin())->note()->length ();
+       Evoral::Beats test_time = (*_events.begin())->note()->time ();
+       Evoral::Beats test_length = (*_events.begin())->note()->length ();
        
        for (set<NoteBase*>::iterator i = _events.begin(); i != _events.end(); ++i) {
                if ((*i)->note()->channel() != test_channel) {
@@ -193,7 +193,7 @@ EditNoteDialog::done (int r)
                }
        }
 
-       Evoral::MusicalTime const t = _region_view->source_relative_time_converter().from (_time_clock.current_time ());
+       Evoral::Beats const t = _region_view->source_relative_time_converter().from (_time_clock.current_time ());
 
        if (!_time_all.get_sensitive() || _time_all.get_active ()) {
                for (set<NoteBase*>::iterator i = _events.begin(); i != _events.end(); ++i) {
@@ -204,7 +204,7 @@ EditNoteDialog::done (int r)
                }
        }
 
-       Evoral::MusicalTime const d = _region_view->region_relative_time_converter().from (_length_clock.current_duration ());
+       Evoral::Beats const d = _region_view->region_relative_time_converter().from (_length_clock.current_duration ());
 
        if (!_length_all.get_sensitive() || _length_all.get_active ()) {
                for (set<NoteBase*>::iterator i = _events.begin(); i != _events.end(); ++i) {
index 019d2f91e8d60aff2c19115d781bc0d15a1c9b69..217d55bb9a6f825797a1aaaf7c69678baa1464be 100644 (file)
@@ -4001,71 +4001,71 @@ Editor::get_paste_offset (framepos_t pos, unsigned paste_count, framecnt_t durat
        return offset;
 }
 
-Evoral::MusicalTime
+Evoral::Beats
 Editor::get_grid_type_as_beats (bool& success, framepos_t position)
 {
        success = true;
 
        switch (_snap_type) {
        case SnapToBeat:
-               return Evoral::MusicalTime(1.0);
+               return Evoral::Beats(1.0);
                break;
 
        case SnapToBeatDiv128:
-               return Evoral::MusicalTime(1.0/128.0);
+               return Evoral::Beats(1.0/128.0);
                break;
        case SnapToBeatDiv64:
-               return Evoral::MusicalTime(1.0/64.0);
+               return Evoral::Beats(1.0/64.0);
                break;
        case SnapToBeatDiv32:
-               return Evoral::MusicalTime(1.0/32.0);
+               return Evoral::Beats(1.0/32.0);
                break;
        case SnapToBeatDiv28:
-               return Evoral::MusicalTime(1.0/28.0);
+               return Evoral::Beats(1.0/28.0);
                break;
        case SnapToBeatDiv24:
-               return Evoral::MusicalTime(1.0/24.0);
+               return Evoral::Beats(1.0/24.0);
                break;
        case SnapToBeatDiv20:
-               return Evoral::MusicalTime(1.0/20.0);
+               return Evoral::Beats(1.0/20.0);
                break;
        case SnapToBeatDiv16:
-               return Evoral::MusicalTime(1.0/16.0);
+               return Evoral::Beats(1.0/16.0);
                break;
        case SnapToBeatDiv14:
-               return Evoral::MusicalTime(1.0/14.0);
+               return Evoral::Beats(1.0/14.0);
                break;
        case SnapToBeatDiv12:
-               return Evoral::MusicalTime(1.0/12.0);
+               return Evoral::Beats(1.0/12.0);
                break;
        case SnapToBeatDiv10:
-               return Evoral::MusicalTime(1.0/10.0);
+               return Evoral::Beats(1.0/10.0);
                break;
        case SnapToBeatDiv8:
-               return Evoral::MusicalTime(1.0/8.0);
+               return Evoral::Beats(1.0/8.0);
                break;
        case SnapToBeatDiv7:
-               return Evoral::MusicalTime(1.0/7.0);
+               return Evoral::Beats(1.0/7.0);
                break;
        case SnapToBeatDiv6:
-               return Evoral::MusicalTime(1.0/6.0);
+               return Evoral::Beats(1.0/6.0);
                break;
        case SnapToBeatDiv5:
-               return Evoral::MusicalTime(1.0/5.0);
+               return Evoral::Beats(1.0/5.0);
                break;
        case SnapToBeatDiv4:
-               return Evoral::MusicalTime(1.0/4.0);
+               return Evoral::Beats(1.0/4.0);
                break;
        case SnapToBeatDiv3:
-               return Evoral::MusicalTime(1.0/3.0);
+               return Evoral::Beats(1.0/3.0);
                break;
        case SnapToBeatDiv2:
-               return Evoral::MusicalTime(1.0/2.0);
+               return Evoral::Beats(1.0/2.0);
                break;
 
        case SnapToBar:
                if (_session) {
-                       return Evoral::MusicalTime(_session->tempo_map().meter_at (position).divisions_per_bar());
+                       return Evoral::Beats(_session->tempo_map().meter_at (position).divisions_per_bar());
                }
                break;
 
@@ -4084,7 +4084,7 @@ Editor::get_grid_type_as_beats (bool& success, framepos_t position)
                break;
        }
 
-       return Evoral::MusicalTime();
+       return Evoral::Beats();
 }
 
 framecnt_t
index 655782e269476e1d6b1756bf68d91e2040121d3f..83b1a074e2868dc6de85106eec142c57676055a0 100644 (file)
@@ -315,7 +315,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
 
        framecnt_t get_nudge_distance (framepos_t pos, framecnt_t& next);
        framecnt_t get_paste_offset (framepos_t pos, unsigned paste_count, framecnt_t duration);
-       Evoral::MusicalTime get_grid_type_as_beats (bool& success, framepos_t position);
+       Evoral::Beats get_grid_type_as_beats (bool& success, framepos_t position);
 
        void nudge_forward (bool next, bool force_playhead);
        void nudge_backward (bool next, bool force_playhead);
@@ -1172,7 +1172,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
 
        void cut_copy (Editing::CutCopyOp);
        bool can_cut_copy () const;
-       void cut_copy_points (Editing::CutCopyOp, Evoral::MusicalTime earliest=Evoral::MusicalTime(), bool midi=false);
+       void cut_copy_points (Editing::CutCopyOp, Evoral::Beats earliest=Evoral::Beats(), bool midi=false);
        void cut_copy_regions (Editing::CutCopyOp, RegionSelection&);
        void cut_copy_ranges (Editing::CutCopyOp);
        void cut_copy_midi (Editing::CutCopyOp);
index 965092e65f2ad7da601f72fe81d6a68f56bb3baf..9cf0f05b60e1b0c39fa1e3efa5fd5f18d94e6a23 100644 (file)
@@ -5229,9 +5229,9 @@ framecnt_t
 NoteCreateDrag::grid_frames (framepos_t t) const
 {
        bool success;
-       Evoral::MusicalTime grid_beats = _editor->get_grid_type_as_beats (success, t);
+       Evoral::Beats grid_beats = _editor->get_grid_type_as_beats (success, t);
        if (!success) {
-               grid_beats = Evoral::MusicalTime(1);
+               grid_beats = Evoral::Beats(1);
        }
 
        return _region_view->region_beats_to_region_frames (grid_beats);
@@ -5288,13 +5288,13 @@ NoteCreateDrag::finished (GdkEvent*, bool had_movement)
        framecnt_t length = (framecnt_t) fabs ((double)(_note[0] - _note[1]));
 
        framecnt_t const g = grid_frames (start);
-       Evoral::MusicalTime const one_tick = Evoral::MusicalTime::ticks(1);
+       Evoral::Beats const one_tick = Evoral::Beats::ticks(1);
        
        if (_editor->snap_mode() == SnapNormal && length < g) {
                length = g;
        }
 
-       Evoral::MusicalTime length_beats = max (
+       Evoral::Beats length_beats = max (
                one_tick, _region_view->region_frames_to_region_beats (length) - one_tick);
 
        _region_view->create_note_at (start, _drag_rect->y0(), length_beats, false);
index 7c8d3efb73cca1282e20fca1b51547d1a1a96615..529a524d8c116b28f3c2f0a743553ed536fe214a 100644 (file)
@@ -3968,7 +3968,7 @@ struct AutomationRecord {
  *  @param op Operation (Cut, Copy or Clear)
  */
 void
-Editor::cut_copy_points (Editing::CutCopyOp op, Evoral::MusicalTime earliest, bool midi)
+Editor::cut_copy_points (Editing::CutCopyOp op, Evoral::Beats earliest, bool midi)
 {
        if (selection->points.empty ()) {
                return;
@@ -4010,7 +4010,7 @@ Editor::cut_copy_points (Editing::CutCopyOp op, Evoral::MusicalTime earliest, bo
                        lists[al].copy->fast_simple_add ((*j)->when, (*j)->value);
                        if (midi) {
                                /* Update earliest MIDI start time in beats */
-                               earliest = std::min(earliest,  Evoral::MusicalTime((*j)->when));
+                               earliest = std::min(earliest, Evoral::Beats((*j)->when));
                        } else {
                                /* Update earliest session start time in frames */
                                start = std::min(start, (*i)->line().session_position(j));
@@ -4019,8 +4019,8 @@ Editor::cut_copy_points (Editing::CutCopyOp op, Evoral::MusicalTime earliest, bo
 
                /* Snap start time backwards, so copy/paste is snap aligned. */
                if (midi) {
-                       if (earliest == Evoral::MusicalTime::max()) {
-                               earliest = Evoral::MusicalTime();  // Weird... don't offset
+                       if (earliest == Evoral::Beats::max()) {
+                               earliest = Evoral::Beats();  // Weird... don't offset
                        }
                        earliest.round_down_to_beat();
                } else {
@@ -4073,7 +4073,7 @@ Editor::cut_copy_points (Editing::CutCopyOp op, Evoral::MusicalTime earliest, bo
 void
 Editor::cut_copy_midi (CutCopyOp op)
 {
-       Evoral::MusicalTime earliest = Evoral::MusicalTime::max();
+       Evoral::Beats earliest = Evoral::Beats::max();
        for (MidiRegionSelection::iterator i = selection->midi_regions.begin(); i != selection->midi_regions.end(); ++i) {
                MidiRegionView* mrv = dynamic_cast<MidiRegionView*>(*i);
                if (mrv) {
@@ -4919,14 +4919,14 @@ Editor::strip_region_silence ()
 Command*
 Editor::apply_midi_note_edit_op_to_region (MidiOperator& op, MidiRegionView& mrv)
 {
-       Evoral::Sequence<Evoral::MusicalTime>::Notes selected;
+       Evoral::Sequence<Evoral::Beats>::Notes selected;
        mrv.selection_as_notelist (selected, true);
 
-       vector<Evoral::Sequence<Evoral::MusicalTime>::Notes> v;
+       vector<Evoral::Sequence<Evoral::Beats>::Notes> v;
        v.push_back (selected);
 
-       framepos_t          pos_frames = mrv.midi_region()->position() - mrv.midi_region()->start();
-       Evoral::MusicalTime pos_beats  = _session->tempo_map().framewalk_to_beats(0, pos_frames);
+       framepos_t    pos_frames = mrv.midi_region()->position() - mrv.midi_region()->start();
+       Evoral::Beats pos_beats  = _session->tempo_map().framewalk_to_beats(0, pos_frames);
 
        return op (mrv.midi_region()->model(), pos_beats, v);
 }
@@ -5093,7 +5093,7 @@ Editor::insert_patch_change (bool from_context)
        */
        MidiRegionView* first = dynamic_cast<MidiRegionView*> (rs.front ());
 
-       Evoral::PatchChange<Evoral::MusicalTime> empty (Evoral::MusicalTime(), 0, 0, 0);
+       Evoral::PatchChange<Evoral::Beats> empty (Evoral::Beats(), 0, 0, 0);
         PatchChangeDialog d (0, _session, empty, first->instrument_info(), Gtk::Stock::ADD);
 
        if (d.run() == RESPONSE_CANCEL) {
index c19bd49c37390956e332b55bd233972b81c1632f..ea3e91bf2da6e317fb077946c5a9ac3e49d0043f 100644 (file)
@@ -30,7 +30,7 @@ namespace ArdourCanvas {
 class Hit : public NoteBase
 {
 public:
-       typedef Evoral::Note<Evoral::MusicalTime> NoteType;
+       typedef Evoral::Note<Evoral::Beats> NoteType;
 
        Hit (MidiRegionView&                   region,
             ArdourCanvas::Item*               parent,
index 94a21ed830dca50e058fcba586b70c651be9250b..171eea823ed35d9b86a3f255ece402eab074c2b4 100644 (file)
@@ -21,7 +21,7 @@
 using namespace ARDOUR;
 
 MidiCutBuffer::MidiCutBuffer (Session* s)
-       : AutomatableSequence<Evoral::MusicalTime> (*s)
+       : AutomatableSequence<Evoral::Beats> (*s)
        , _origin (0)
 {
 
index bfd31fb2702416961820d2a7ebefdb867e46bab2..8c92b9a4424103663f365e673700517f47d47cef 100644 (file)
@@ -27,10 +27,10 @@ namespace ARDOUR {
        class Session;
 }
 
-class MidiCutBuffer : public ARDOUR::AutomatableSequence<Evoral::MusicalTime>
+class MidiCutBuffer : public ARDOUR::AutomatableSequence<Evoral::Beats>
 {
   public:
-       typedef Evoral::MusicalTime TimeType;
+       typedef Evoral::Beats TimeType;
 
        MidiCutBuffer (ARDOUR::Session*);
        ~MidiCutBuffer();
index ab282f2a235e19da284a5cf04239b7365d4efae6..4c7a30cdd93eb27c44f0446345b8f8cf36a37896 100644 (file)
@@ -292,7 +292,7 @@ MidiListEditor::scroll_event (GdkEventScroll* ev)
                                                if (note->time() + fdelta >= 0) {
                                                        cmd->change (note, prop, note->time() + fdelta);
                                                } else {
-                                                       cmd->change (note, prop, Evoral::MusicalTime());
+                                                       cmd->change (note, prop, Evoral::Beats());
                                                }
                                                break;
                                        case MidiModel::NoteDiffCommand::Velocity:
@@ -300,10 +300,10 @@ MidiListEditor::scroll_event (GdkEventScroll* ev)
                                                break;
                                        case MidiModel::NoteDiffCommand::Length:
                                                if (note->length().to_double() + fdelta >=
-                                                   Evoral::MusicalTime::tick().to_double()) {
+                                                   Evoral::Beats::tick().to_double()) {
                                                        cmd->change (note, prop, note->length() + fdelta);
                                                } else {
-                                                       cmd->change (note, prop, Evoral::MusicalTime::tick());
+                                                       cmd->change (note, prop, Evoral::Beats::tick());
                                                }
                                                break;
                                        case MidiModel::NoteDiffCommand::Channel:
@@ -335,7 +335,7 @@ MidiListEditor::scroll_event (GdkEventScroll* ev)
                                        if (note->time() + fdelta >= 0) {
                                                cmd->change (note, prop, note->time() + fdelta);
                                        } else {
-                                               cmd->change (note, prop, Evoral::MusicalTime());
+                                               cmd->change (note, prop, Evoral::Beats());
                                        }
                                        break;
                                case MidiModel::NoteDiffCommand::Velocity:
@@ -343,10 +343,10 @@ MidiListEditor::scroll_event (GdkEventScroll* ev)
                                        break;
                                case MidiModel::NoteDiffCommand::Length:
                                        if (note->length() + fdelta >=
-                                           Evoral::MusicalTime::tick().to_double()) {
+                                           Evoral::Beats::tick().to_double()) {
                                                cmd->change (note, prop, note->length() + fdelta);
                                        } else {
-                                               cmd->change (note, prop, Evoral::MusicalTime::tick());
+                                               cmd->change (note, prop, Evoral::Beats::tick());
                                        }
                                        break;
                                case MidiModel::NoteDiffCommand::Channel:
@@ -773,7 +773,7 @@ MidiListEditor::redisplay_model ()
                        row[columns.start] = ss.str();
 
                        bbt.bars = 0;
-                       const Evoral::MusicalTime dur = (*i)->end_time() - (*i)->time();
+                       const Evoral::Beats dur = (*i)->end_time() - (*i)->time();
                        bbt.beats = dur.get_beats ();
                        bbt.ticks = dur.get_ticks ();
                        
index f8d2ce9432cd630748d50950911137de0c98359f..9ff413946c49203c4b0038e882ef60f82cce83b2 100644 (file)
@@ -45,7 +45,7 @@ namespace ARDOUR {
 class MidiListEditor : public ArdourWindow
 {
   public:
-       typedef Evoral::Note<Evoral::MusicalTime> NoteType;
+       typedef Evoral::Note<Evoral::Beats> NoteType;
 
        MidiListEditor(ARDOUR::Session*, boost::shared_ptr<ARDOUR::MidiRegion>,
                       boost::shared_ptr<ARDOUR::MidiTrack>);
index 95f572072e91d51f4237549293cad65d485948a9..eedf67836e4aa330f3036b958fb0d7124fbeb8dd 100644 (file)
@@ -547,12 +547,12 @@ MidiRegionView::button_release (GdkEventButton* ev)
                                        event_y = ev->y;
                                        group->canvas_to_item (event_x, event_y);
 
-                                       Evoral::MusicalTime beats = get_grid_beats(editor.pixel_to_sample(event_x));
+                                       Evoral::Beats beats = get_grid_beats(editor.pixel_to_sample(event_x));
 
                                        /* Shorten the length by 1 tick so that we can add a new note at the next
                                           grid snap without it overlapping this one.
                                        */
-                                       beats -= Evoral::MusicalTime::tick();
+                                       beats -= Evoral::Beats::tick();
 
                                        create_note_at (editor.pixel_to_sample (event_x), event_y, beats, true);
                                }
@@ -561,12 +561,12 @@ MidiRegionView::button_release (GdkEventButton* ev)
                        }
                case MouseDraw:
                        {
-                               Evoral::MusicalTime beats = get_grid_beats(editor.pixel_to_sample(event_x));
+                               Evoral::Beats beats = get_grid_beats(editor.pixel_to_sample(event_x));
 
                                /* Shorten the length by 1 tick so that we can add a new note at the next
                                   grid snap without it overlapping this one.
                                */
-                               beats -= Evoral::MusicalTime::tick();
+                               beats -= Evoral::Beats::tick();
                                
                                create_note_at (editor.pixel_to_sample (event_x), event_y, beats, true);
 
@@ -732,7 +732,7 @@ MidiRegionView::key_press (GdkEventKey* ev)
                bool shorter = Keyboard::modifier_state_contains (ev->state, Keyboard::PrimaryModifier);
                bool fine = Keyboard::modifier_state_contains (ev->state, Keyboard::SecondaryModifier);
 
-               change_note_lengths (fine, shorter, Evoral::MusicalTime(), start, end);
+               change_note_lengths (fine, shorter, Evoral::Beats(), start, end);
 
                return true;
 
@@ -915,7 +915,7 @@ MidiRegionView::show_list_editor ()
  * \param snap_t true to snap t to the grid, otherwise false.
  */
 void
-MidiRegionView::create_note_at (framepos_t t, double y, Evoral::MusicalTime length, bool snap_t)
+MidiRegionView::create_note_at (framepos_t t, double y, Evoral::Beats length, bool snap_t)
 {
        if (length < 2 * DBL_EPSILON) {
                return;
@@ -1033,7 +1033,7 @@ MidiRegionView::note_diff_add_change (NoteBase* ev,
 void
 MidiRegionView::note_diff_add_change (NoteBase* ev,
                                       MidiModel::NoteDiffCommand::Property property,
-                                      Evoral::MusicalTime val)
+                                      Evoral::Beats val)
 {
        if (_note_diff_command) {
                _note_diff_command->change (ev->note(), property, val);
@@ -1101,7 +1101,7 @@ MidiRegionView::find_canvas_note (boost::shared_ptr<NoteType> note)
 }
 
 void
-MidiRegionView::get_events (Events& e, Evoral::Sequence<Evoral::MusicalTime>::NoteOperator op, uint8_t val, int chan_mask)
+MidiRegionView::get_events (Events& e, Evoral::Sequence<Evoral::Beats>::NoteOperator op, uint8_t val, int chan_mask)
 {
        MidiModel::Notes notes;
        _model->get_notes (notes, op, val, chan_mask);
@@ -1259,8 +1259,8 @@ MidiRegionView::display_sysexes()
        if (!ARDOUR_UI::config()->get_never_display_periodic_midi()) {
 
                for (MidiModel::SysExes::const_iterator i = _model->sysexes().begin(); i != _model->sysexes().end(); ++i) {
-                       const boost::shared_ptr<const Evoral::MIDIEvent<Evoral::MusicalTime> > mev = 
-                               boost::static_pointer_cast<const Evoral::MIDIEvent<Evoral::MusicalTime> > (*i);
+                       const boost::shared_ptr<const Evoral::MIDIEvent<Evoral::Beats> > mev = 
+                               boost::static_pointer_cast<const Evoral::MIDIEvent<Evoral::Beats> > (*i);
                        
                        if (mev) {
                                if (mev->is_spp() || mev->is_mtc_quarter() || mev->is_mtc_full()) {
@@ -1292,10 +1292,10 @@ MidiRegionView::display_sysexes()
 
        for (MidiModel::SysExes::const_iterator i = _model->sysexes().begin(); i != _model->sysexes().end(); ++i) {
 
-               const boost::shared_ptr<const Evoral::MIDIEvent<Evoral::MusicalTime> > mev = 
-                       boost::static_pointer_cast<const Evoral::MIDIEvent<Evoral::MusicalTime> > (*i);
+               const boost::shared_ptr<const Evoral::MIDIEvent<Evoral::Beats> > mev = 
+                       boost::static_pointer_cast<const Evoral::MIDIEvent<Evoral::Beats> > (*i);
 
-               Evoral::MusicalTime time = (*i)->time();
+               Evoral::Beats time = (*i)->time();
 
                if (mev) {
                        if (mev->is_spp() || mev->is_mtc_quarter() || mev->is_mtc_full()) {
@@ -1529,7 +1529,7 @@ MidiRegionView::end_write()
 /** Resolve an active MIDI note (while recording).
  */
 void
-MidiRegionView::resolve_note(uint8_t note, Evoral::MusicalTime end_time)
+MidiRegionView::resolve_note(uint8_t note, Evoral::Beats end_time)
 {
        if (midi_view()->note_mode() != Sustained) {
                return;
@@ -1797,7 +1797,7 @@ MidiRegionView::add_note(const boost::shared_ptr<NoteType> note, bool visible)
 
 void
 MidiRegionView::step_add_note (uint8_t channel, uint8_t number, uint8_t velocity,
-                               Evoral::MusicalTime pos, Evoral::MusicalTime len)
+                               Evoral::Beats pos, Evoral::Beats len)
 {
        boost::shared_ptr<NoteType> new_note (new NoteType (channel, pos, len, number, velocity));
 
@@ -1826,7 +1826,7 @@ MidiRegionView::step_add_note (uint8_t channel, uint8_t number, uint8_t velocity
 }
 
 void
-MidiRegionView::step_sustain (Evoral::MusicalTime beats)
+MidiRegionView::step_sustain (Evoral::Beats beats)
 {
        change_note_lengths (false, false, beats, false, true);
 }
@@ -1879,13 +1879,13 @@ MidiRegionView::patch_change_to_patch_key (MidiModel::PatchChangePtr p)
 
 /// Return true iff @p pc applies to the given time on the given channel.
 static bool
-patch_applies (const ARDOUR::MidiModel::constPatchChangePtr pc, Evoral::MusicalTime time, uint8_t channel)
+patch_applies (const ARDOUR::MidiModel::constPatchChangePtr pc, Evoral::Beats time, uint8_t channel)
 {
        return pc->time() <= time && pc->channel() == channel;
 }
        
 void 
-MidiRegionView::get_patch_key_at (Evoral::MusicalTime time, uint8_t channel, MIDI::Name::PatchPrimaryKey& key) const
+MidiRegionView::get_patch_key_at (Evoral::Beats time, uint8_t channel, MIDI::Name::PatchPrimaryKey& key) const
 {
        // The earliest event not before time
        MidiModel::PatchChanges::iterator i = _model->patch_change_lower_bound (time);
@@ -1927,7 +1927,7 @@ MidiRegionView::change_patch_change (PatchChange& pc, const MIDI::Name::PatchPri
 }
 
 void
-MidiRegionView::change_patch_change (MidiModel::PatchChangePtr old_change, const Evoral::PatchChange<Evoral::MusicalTime> & new_change)
+MidiRegionView::change_patch_change (MidiModel::PatchChangePtr old_change, const Evoral::PatchChange<Evoral::Beats> & new_change)
 {
        MidiModel::PatchChangeDiffCommand* c = _model->new_patch_change_diff_command (_("alter patch change"));
 
@@ -1959,13 +1959,13 @@ MidiRegionView::change_patch_change (MidiModel::PatchChangePtr old_change, const
  *  MidiTimeAxisView::get_channel_for_add())
  */
 void
-MidiRegionView::add_patch_change (framecnt_t t, Evoral::PatchChange<Evoral::MusicalTime> const & patch)
+MidiRegionView::add_patch_change (framecnt_t t, Evoral::PatchChange<Evoral::Beats> const & patch)
 {
        MidiTimeAxisView* const mtv = dynamic_cast<MidiTimeAxisView*>(&trackview);
 
        MidiModel::PatchChangeDiffCommand* c = _model->new_patch_change_diff_command (_("add patch change"));
        c->add (MidiModel::PatchChangePtr (
-                       new Evoral::PatchChange<Evoral::MusicalTime> (
+                       new Evoral::PatchChange<Evoral::Beats> (
                                absolute_frames_to_source_beats (_region->position() + t),
                                mtv->get_channel_for_add(), patch.program(), patch.bank()
                                )
@@ -1979,7 +1979,7 @@ MidiRegionView::add_patch_change (framecnt_t t, Evoral::PatchChange<Evoral::Musi
 }
 
 void
-MidiRegionView::move_patch_change (PatchChange& pc, Evoral::MusicalTime t)
+MidiRegionView::move_patch_change (PatchChange& pc, Evoral::Beats t)
 {
        MidiModel::PatchChangeDiffCommand* c = _model->new_patch_change_diff_command (_("move patch change"));
        c->change_time (pc.patch (), t);
@@ -2259,8 +2259,8 @@ MidiRegionView::note_selected (NoteBase* ev, bool add, bool extend)
        } else {
                /* find end of latest note selected, select all between that and the start of "ev" */
 
-               Evoral::MusicalTime earliest = Evoral::MaxMusicalTime;
-               Evoral::MusicalTime latest   = Evoral::MusicalTime();
+               Evoral::Beats earliest = Evoral::MaxBeats;
+               Evoral::Beats latest   = Evoral::Beats();
 
                for (Selection::iterator i = _selection.begin(); i != _selection.end(); ++i) {
                        if ((*i)->note()->end_time() > latest) {
@@ -2418,7 +2418,7 @@ MidiRegionView::move_selection(double dx, double dy, double cumulative_dy)
 {
        typedef vector<boost::shared_ptr<NoteType> > PossibleChord;
        PossibleChord to_play;
-       Evoral::MusicalTime earliest = Evoral::MaxMusicalTime;
+       Evoral::Beats earliest = Evoral::MaxBeats;
 
        for (Selection::iterator i = _selection.begin(); i != _selection.end(); ++i) {
                if ((*i)->note()->time() < earliest) {
@@ -2491,7 +2491,7 @@ MidiRegionView::note_dropped(NoteBase *, frameoffset_t dt, int8_t dnote)
        for (Selection::iterator i = _selection.begin(); i != _selection.end() ; ++i) {
                
                framepos_t new_frames = source_beats_to_absolute_frames ((*i)->note()->time()) + dt;
-               Evoral::MusicalTime new_time = absolute_frames_to_source_beats (new_frames);
+               Evoral::Beats new_time = absolute_frames_to_source_beats (new_frames);
 
                if (new_time < 0) {
                        continue;
@@ -2554,7 +2554,7 @@ MidiRegionView::get_end_position_pixels()
 }
 
 framepos_t
-MidiRegionView::source_beats_to_absolute_frames(Evoral::MusicalTime beats) const
+MidiRegionView::source_beats_to_absolute_frames(Evoral::Beats beats) const
 {
        /* the time converter will return the frame corresponding to `beats'
           relative to the start of the source. The start of the source
@@ -2564,7 +2564,7 @@ MidiRegionView::source_beats_to_absolute_frames(Evoral::MusicalTime beats) const
        return  source_start +  _source_relative_time_converter.to (beats);
 }
 
-Evoral::MusicalTime
+Evoral::Beats
 MidiRegionView::absolute_frames_to_source_beats(framepos_t frames) const
 {
        /* the `frames' argument needs to be converted into a frame count
@@ -2576,12 +2576,12 @@ MidiRegionView::absolute_frames_to_source_beats(framepos_t frames) const
 }
 
 framepos_t
-MidiRegionView::region_beats_to_region_frames(Evoral::MusicalTime beats) const
+MidiRegionView::region_beats_to_region_frames(Evoral::Beats beats) const
 {
        return _region_relative_time_converter.to(beats);
 }
 
-Evoral::MusicalTime
+Evoral::Beats
 MidiRegionView::region_frames_to_region_beats(framepos_t frames) const
 {
        return _region_relative_time_converter.from(frames);
@@ -2678,9 +2678,9 @@ MidiRegionView::update_resizing (NoteBase* primary, bool at_front, double delta_
                }
 
                if (!cursor_set) {
-                       const double        snapped_x = snap_pixel_to_sample (current_x);
-                       Evoral::MusicalTime beats     = region_frames_to_region_beats (snapped_x);
-                       Evoral::MusicalTime len       = Evoral::MusicalTime();
+                       const double  snapped_x = snap_pixel_to_sample (current_x);
+                       Evoral::Beats beats     = region_frames_to_region_beats (snapped_x);
+                       Evoral::Beats len       = Evoral::Beats();
 
                        if (at_front) {
                                if (beats < canvas_note->note()->end_time()) {
@@ -2747,12 +2747,12 @@ MidiRegionView::commit_resizing (NoteBase* primary, bool at_front, double delta_
                current_x = snap_pixel_to_sample (current_x) + _region->start ();
 
                /* and then to beats */
-               const Evoral::MusicalTime x_beats = region_frames_to_region_beats (current_x);
+               const Evoral::Beats x_beats = region_frames_to_region_beats (current_x);
 
                if (at_front && x_beats < canvas_note->note()->end_time()) {
                        note_diff_add_change (canvas_note, MidiModel::NoteDiffCommand::StartTime, x_beats);
 
-                       Evoral::MusicalTime len = canvas_note->note()->time() - x_beats;
+                       Evoral::Beats len = canvas_note->note()->time() - x_beats;
                        len += canvas_note->note()->length();
 
                        if (!!len) {
@@ -2761,7 +2761,7 @@ MidiRegionView::commit_resizing (NoteBase* primary, bool at_front, double delta_
                }
 
                if (!at_front) {
-                       const Evoral::MusicalTime len = x_beats - canvas_note->note()->time();
+                       const Evoral::Beats len = x_beats - canvas_note->note()->time();
 
                        if (!!len) {
                                /* XXX convert to beats */
@@ -2821,12 +2821,12 @@ MidiRegionView::change_note_note (NoteBase* event, int8_t note, bool relative)
 }
 
 void
-MidiRegionView::trim_note (NoteBase* event, Evoral::MusicalTime front_delta, Evoral::MusicalTime end_delta)
+MidiRegionView::trim_note (NoteBase* event, Evoral::Beats front_delta, Evoral::Beats end_delta)
 {
        bool change_start = false;
        bool change_length = false;
-       Evoral::MusicalTime new_start;
-       Evoral::MusicalTime new_length;
+       Evoral::Beats new_start;
+       Evoral::Beats new_length;
 
        /* NOTE: the semantics of the two delta arguments are slightly subtle:
 
@@ -2841,7 +2841,7 @@ MidiRegionView::trim_note (NoteBase* event, Evoral::MusicalTime front_delta, Evo
                if (front_delta < 0) {
 
                        if (event->note()->time() < -front_delta) {
-                               new_start = Evoral::MusicalTime();
+                               new_start = Evoral::Beats();
                        } else {
                                new_start = event->note()->time() + front_delta; // moves earlier
                        }
@@ -2856,7 +2856,7 @@ MidiRegionView::trim_note (NoteBase* event, Evoral::MusicalTime front_delta, Evo
 
                } else {
 
-                       Evoral::MusicalTime new_pos = event->note()->time() + front_delta;
+                       Evoral::Beats new_pos = event->note()->time() + front_delta;
 
                        if (new_pos < event->note()->end_time()) {
                                new_start = event->note()->time() + front_delta;
@@ -2915,14 +2915,14 @@ MidiRegionView::change_note_channel (NoteBase* event, int8_t chn, bool relative)
 }
 
 void
-MidiRegionView::change_note_time (NoteBase* event, Evoral::MusicalTime delta, bool relative)
+MidiRegionView::change_note_time (NoteBase* event, Evoral::Beats delta, bool relative)
 {
-       Evoral::MusicalTime new_time;
+       Evoral::Beats new_time;
 
        if (relative) {
                if (delta < 0.0) {
                        if (event->note()->time() < -delta) {
-                               new_time = Evoral::MusicalTime();
+                               new_time = Evoral::Beats();
                        } else {
                                new_time = event->note()->time() + delta;
                        }
@@ -2937,7 +2937,7 @@ MidiRegionView::change_note_time (NoteBase* event, Evoral::MusicalTime delta, bo
 }
 
 void
-MidiRegionView::change_note_length (NoteBase* event, Evoral::MusicalTime t)
+MidiRegionView::change_note_length (NoteBase* event, Evoral::Beats t)
 {
        note_diff_add_change (event, MidiModel::NoteDiffCommand::Length, t);
 }
@@ -3049,11 +3049,11 @@ MidiRegionView::transpose (bool up, bool fine, bool allow_smush)
 }
 
 void
-MidiRegionView::change_note_lengths (bool fine, bool shorter, Evoral::MusicalTime delta, bool start, bool end)
+MidiRegionView::change_note_lengths (bool fine, bool shorter, Evoral::Beats delta, bool start, bool end)
 {
        if (!delta) {
                if (fine) {
-                       delta = Evoral::MusicalTime(1.0/128.0);
+                       delta = Evoral::Beats(1.0/128.0);
                } else {
                        /* grab the current grid distance */
                        delta = get_grid_beats(_region->position());
@@ -3073,8 +3073,8 @@ MidiRegionView::change_note_lengths (bool fine, bool shorter, Evoral::MusicalTim
                /* note the negation of the delta for start */
 
                trim_note (*i,
-                          (start ? -delta : Evoral::MusicalTime()),
-                          (end   ? delta  : Evoral::MusicalTime()));
+                          (start ? -delta : Evoral::Beats()),
+                          (end   ? delta  : Evoral::Beats()));
                i = next;
        }
 
@@ -3094,13 +3094,13 @@ MidiRegionView::nudge_notes (bool forward, bool fine)
           into a vector and sort before using the first one.
        */
 
-       const framepos_t    ref_point = source_beats_to_absolute_frames ((*(_selection.begin()))->note()->time());
-       Evoral::MusicalTime delta;
+       const framepos_t ref_point = source_beats_to_absolute_frames ((*(_selection.begin()))->note()->time());
+       Evoral::Beats    delta;
 
        if (!fine) {
 
                /* non-fine, move by 1 bar regardless of snap */
-               delta = Evoral::MusicalTime(trackview.session()->tempo_map().meter_at(ref_point).divisions_per_bar());
+               delta = Evoral::Beats(trackview.session()->tempo_map().meter_at(ref_point).divisions_per_bar());
 
        } else if (trackview.editor().snap_mode() == Editing::SnapOff) {
 
@@ -3378,14 +3378,14 @@ MidiRegionView::paste_internal (framepos_t pos, unsigned paste_count, float time
 
        start_note_diff_command (_("paste"));
 
-       const Evoral::MusicalTime snap_beats    = get_grid_beats(pos);
-       const Evoral::MusicalTime first_time    = (*mcb.notes().begin())->time();
-       const Evoral::MusicalTime last_time     = (*mcb.notes().rbegin())->end_time();
-       const Evoral::MusicalTime duration      = last_time - first_time;
-       const Evoral::MusicalTime snap_duration = duration.snap_to(snap_beats);
-       const Evoral::MusicalTime paste_offset  = snap_duration * paste_count;
-       const Evoral::MusicalTime pos_beats     = absolute_frames_to_source_beats(pos) + paste_offset;
-       Evoral::MusicalTime       end_point     = Evoral::MusicalTime();
+       const Evoral::Beats snap_beats    = get_grid_beats(pos);
+       const Evoral::Beats first_time    = (*mcb.notes().begin())->time();
+       const Evoral::Beats last_time     = (*mcb.notes().rbegin())->end_time();
+       const Evoral::Beats duration      = last_time - first_time;
+       const Evoral::Beats snap_duration = duration.snap_to(snap_beats);
+       const Evoral::Beats paste_offset  = snap_duration * paste_count;
+       const Evoral::Beats pos_beats     = absolute_frames_to_source_beats(pos) + paste_offset;
+       Evoral::Beats       end_point     = Evoral::Beats();
 
        DEBUG_TRACE (DEBUG::CutNPaste, string_compose ("Paste data spans from %1 to %2 (%3) ; paste pos beats = %4 (based on %5 - %6)\n",
                                                       first_time,
@@ -3559,9 +3559,9 @@ MidiRegionView::update_ghost_note (double x, double y)
        framepos_t const f = snap_frame_to_grid_underneath (unsnapped_frame, grid_frames);
 
        /* calculate time in beats relative to start of source */
-       const Evoral::MusicalTime length = get_grid_beats(unsnapped_frame);
-       const Evoral::MusicalTime time   = std::max(
-               Evoral::MusicalTime(),
+       const Evoral::Beats length = get_grid_beats(unsnapped_frame);
+       const Evoral::Beats time   = std::max(
+               Evoral::Beats(),
                absolute_frames_to_source_beats (f + _region->position ()));
 
        _ghost_note->note()->set_time (time);
@@ -3630,9 +3630,9 @@ MidiRegionView::maybe_select_by_position (GdkEventButton* ev, double /*x*/, doub
        uint16_t chn_mask = mtv->midi_track()->get_playback_channel_mask();
 
        if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
-               get_events (e, Evoral::Sequence<Evoral::MusicalTime>::PitchGreaterThanOrEqual, (uint8_t) floor (note), chn_mask);
+               get_events (e, Evoral::Sequence<Evoral::Beats>::PitchGreaterThanOrEqual, (uint8_t) floor (note), chn_mask);
        } else if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
-               get_events (e, Evoral::Sequence<Evoral::MusicalTime>::PitchLessThanOrEqual, (uint8_t) floor (note), chn_mask);
+               get_events (e, Evoral::Sequence<Evoral::Beats>::PitchLessThanOrEqual, (uint8_t) floor (note), chn_mask);
        } else {
                return;
        }
@@ -3677,7 +3677,7 @@ MidiRegionView::enable_display (bool yn)
 }
 
 void
-MidiRegionView::show_step_edit_cursor (Evoral::MusicalTime pos)
+MidiRegionView::show_step_edit_cursor (Evoral::Beats pos)
 {
        if (_step_edit_cursor == 0) {
                ArdourCanvas::Item* const group = get_canvas_group();
@@ -3694,7 +3694,7 @@ MidiRegionView::show_step_edit_cursor (Evoral::MusicalTime pos)
 }
 
 void
-MidiRegionView::move_step_edit_cursor (Evoral::MusicalTime pos)
+MidiRegionView::move_step_edit_cursor (Evoral::Beats pos)
 {
        _step_edit_cursor_position = pos;
 
@@ -3714,7 +3714,7 @@ MidiRegionView::hide_step_edit_cursor ()
 }
 
 void
-MidiRegionView::set_step_edit_cursor_width (Evoral::MusicalTime beats)
+MidiRegionView::set_step_edit_cursor_width (Evoral::Beats beats)
 {
        _step_edit_cursor_width = beats;
 
@@ -3758,12 +3758,12 @@ MidiRegionView::data_recorded (boost::weak_ptr<MidiSource> w)
                }
 
                /* convert from session frames to source beats */
-               Evoral::MusicalTime const time_beats = _source_relative_time_converter.from(
+               Evoral::Beats const time_beats = _source_relative_time_converter.from(
                        ev.time() - src->timeline_position() + _region->start());
 
                if (ev.type() == MIDI_CMD_NOTE_ON) {
                        boost::shared_ptr<NoteType> note (
-                               new NoteType (ev.channel(), time_beats, Evoral::MusicalTime(), ev.note(), ev.velocity()));
+                               new NoteType (ev.channel(), time_beats, Evoral::Beats(), ev.note(), ev.velocity()));
 
                        add_note (note, true);
 
@@ -3916,7 +3916,7 @@ MidiRegionView::snap_frame_to_grid_underneath (framepos_t p, framecnt_t& grid_fr
 {
        PublicEditor& editor = trackview.editor ();
        
-       const Evoral::MusicalTime grid_beats = get_grid_beats(p);
+       const Evoral::Beats grid_beats = get_grid_beats(p);
 
        grid_frames = region_beats_to_region_frames (grid_beats);
 
@@ -3965,14 +3965,14 @@ MidiRegionView::get_selected_channels () const
 }
 
 
-Evoral::MusicalTime
+Evoral::Beats
 MidiRegionView::get_grid_beats(framepos_t pos) const
 {
-       PublicEditor&       editor  = trackview.editor();
-       bool                success = false;
-       Evoral::MusicalTime beats   = editor.get_grid_type_as_beats(success, pos);
+       PublicEditor& editor  = trackview.editor();
+       bool          success = false;
+       Evoral::Beats beats   = editor.get_grid_type_as_beats(success, pos);
        if (!success) {
-               beats = Evoral::MusicalTime(1);
+               beats = Evoral::Beats(1);
        }
        return beats;
 }
index 02d67e6d64c92f57d28cc8d3b2b50cc359a85d97..4f64e4410f2b3c0cfaaa41c5ca7e9ea97f361969 100644 (file)
@@ -66,8 +66,8 @@ class CursorContext;
 class MidiRegionView : public RegionView
 {
 public:
-       typedef Evoral::Note<Evoral::MusicalTime> NoteType;
-       typedef Evoral::Sequence<Evoral::MusicalTime>::Notes Notes;
+       typedef Evoral::Note<Evoral::Beats> NoteType;
+       typedef Evoral::Sequence<Evoral::Beats>::Notes Notes;
 
        MidiRegionView (ArdourCanvas::Container*              parent,
                        RouteTimeAxisView&                    tv,
@@ -100,8 +100,8 @@ public:
        { return midi_view()->midi_view(); }
 
        void step_add_note (uint8_t channel, uint8_t number, uint8_t velocity,
-                           Evoral::MusicalTime pos, Evoral::MusicalTime len);
-       void step_sustain (Evoral::MusicalTime beats);
+                           Evoral::Beats pos, Evoral::Beats len);
+       void step_sustain (Evoral::Beats beats);
        void set_height (double);
        void apply_note_range(uint8_t lowest, uint8_t highest, bool force=false);
 
@@ -110,17 +110,17 @@ public:
        uint32_t get_fill_color() const;
        void color_handler ();
 
-       void show_step_edit_cursor (Evoral::MusicalTime pos);
-       void move_step_edit_cursor (Evoral::MusicalTime pos);
+       void show_step_edit_cursor (Evoral::Beats pos);
+       void move_step_edit_cursor (Evoral::Beats pos);
        void hide_step_edit_cursor ();
-       void set_step_edit_cursor_width (Evoral::MusicalTime beats);
+       void set_step_edit_cursor_width (Evoral::Beats beats);
 
        void redisplay_model();
 
        GhostRegion* add_ghost (TimeAxisView&);
 
        void add_note(const boost::shared_ptr<NoteType> note, bool visible);
-       void resolve_note(uint8_t note_num, Evoral::MusicalTime end_time);
+       void resolve_note(uint8_t note_num, Evoral::Beats end_time);
 
        void cut_copy_clear (Editing::CutCopyOp);
        bool paste (framepos_t pos, const ::Selection& selection, PasteContext& ctx);
@@ -134,7 +134,7 @@ public:
         * @key a reference to an instance of MIDI::Name::PatchPrimaryKey whose fields will
         *        will be set according to the result of the lookup
         */
-       void get_patch_key_at (Evoral::MusicalTime time, uint8_t channel, MIDI::Name::PatchPrimaryKey& key) const;
+       void get_patch_key_at (Evoral::Beats time, uint8_t channel, MIDI::Name::PatchPrimaryKey& key) const;
 
        /** Convert a given PatchChange into a PatchPrimaryKey
         */
@@ -145,10 +145,10 @@ public:
         * @param new_patch new patch
         */
        void change_patch_change (PatchChange& old_patch, const MIDI::Name::PatchPrimaryKey& new_patch);
-       void change_patch_change (ARDOUR::MidiModel::PatchChangePtr, Evoral::PatchChange<Evoral::MusicalTime> const &);
+       void change_patch_change (ARDOUR::MidiModel::PatchChangePtr, Evoral::PatchChange<Evoral::Beats> const &);
 
-       void add_patch_change (framecnt_t, Evoral::PatchChange<Evoral::MusicalTime> const &);
-       void move_patch_change (PatchChange &, Evoral::MusicalTime);
+       void add_patch_change (framecnt_t, Evoral::PatchChange<Evoral::Beats> const &);
+       void move_patch_change (PatchChange &, Evoral::Beats);
        void delete_patch_change (PatchChange *);
        void edit_patch_change (PatchChange *);
 
@@ -176,7 +176,7 @@ public:
 
        void start_note_diff_command (std::string name = "midi edit");
        void note_diff_add_change (NoteBase* ev, ARDOUR::MidiModel::NoteDiffCommand::Property, uint8_t val);
-       void note_diff_add_change (NoteBase* ev, ARDOUR::MidiModel::NoteDiffCommand::Property, Evoral::MusicalTime val);
+       void note_diff_add_change (NoteBase* ev, ARDOUR::MidiModel::NoteDiffCommand::Property, Evoral::Beats val);
        void note_diff_add_note (const boost::shared_ptr<NoteType> note, bool selected, bool show_velocity = false);
        void note_diff_remove_note (NoteBase* ev);
 
@@ -263,22 +263,22 @@ public:
        framepos_t snap_pixel_to_sample(double x);
 
        /** Convert a timestamp in beats into frames (both relative to region position) */
-       framepos_t region_beats_to_region_frames(Evoral::MusicalTime beats) const;
+       framepos_t region_beats_to_region_frames(Evoral::Beats beats) const;
        /** Convert a timestamp in beats into absolute frames */
-       framepos_t region_beats_to_absolute_frames(Evoral::MusicalTime beats) const {
+       framepos_t region_beats_to_absolute_frames(Evoral::Beats beats) const {
                return _region->position() + region_beats_to_region_frames (beats);
        }
        /** Convert a timestamp in frames to beats (both relative to region position) */
-       Evoral::MusicalTime region_frames_to_region_beats(framepos_t) const;
+       Evoral::Beats region_frames_to_region_beats(framepos_t) const;
 
        /** Convert a timestamp in beats measured from source start into absolute frames */
-       framepos_t source_beats_to_absolute_frames(Evoral::MusicalTime beats) const;
+       framepos_t source_beats_to_absolute_frames(Evoral::Beats beats) const;
        /** Convert a timestamp in beats measured from source start into region-relative frames */
-       framepos_t source_beats_to_region_frames(Evoral::MusicalTime beats) const {
+       framepos_t source_beats_to_region_frames(Evoral::Beats beats) const {
                return source_beats_to_absolute_frames (beats) - _region->position();
        }
        /** Convert a timestamp in absolute frames to beats measured from source start*/
-       Evoral::MusicalTime absolute_frames_to_source_beats(framepos_t) const;
+       Evoral::Beats absolute_frames_to_source_beats(framepos_t) const;
 
        ARDOUR::BeatsFramesConverter const & region_relative_time_converter () const {
                return _region_relative_time_converter;
@@ -290,7 +290,7 @@ public:
 
        void goto_previous_note (bool add_to_selection);
        void goto_next_note (bool add_to_selection);
-       void change_note_lengths (bool, bool, Evoral::MusicalTime beats, bool start, bool end);
+       void change_note_lengths (bool, bool, Evoral::Beats beats, bool start, bool end);
         void change_velocities (bool up, bool fine, bool allow_smush, bool all_together);
        void transpose (bool up, bool fine, bool allow_smush);
        void nudge_notes (bool forward, bool fine);
@@ -320,7 +320,7 @@ public:
         * \param length duration of the note in beats
         * \param snap_t true to snap t to the grid, otherwise false.
         */
-       void create_note_at (framepos_t t, double y, Evoral::MusicalTime length, bool snap_t);
+       void create_note_at (framepos_t t, double y, Evoral::Beats length, bool snap_t);
 
        void clear_selection (bool signal = true) { clear_selection_except (0, signal); }
 
@@ -414,8 +414,8 @@ private:
        double                               _last_ghost_x;
        double                               _last_ghost_y;
        ArdourCanvas::Rectangle*             _step_edit_cursor;
-       Evoral::MusicalTime                  _step_edit_cursor_width;
-       Evoral::MusicalTime                  _step_edit_cursor_position;
+       Evoral::Beats                        _step_edit_cursor_width;
+       Evoral::Beats                        _step_edit_cursor_position;
        NoteBase*                            _channel_selection_scoped_note;
 
        /** A group used to temporarily reparent _note_group to during start trims, so
@@ -477,7 +477,7 @@ private:
 
        void drop_down_keys ();
        void maybe_select_by_position (GdkEventButton* ev, double x, double y);
-       void get_events (Events& e, Evoral::Sequence<Evoral::MusicalTime>::NoteOperator op, uint8_t val, int chan_mask = 0);
+       void get_events (Events& e, Evoral::Sequence<Evoral::Beats>::NoteOperator op, uint8_t val, int chan_mask = 0);
 
        void display_patch_changes_on_channel (uint8_t, bool);
 
@@ -485,7 +485,7 @@ private:
        void data_recorded (boost::weak_ptr<ARDOUR::MidiSource>);
 
        /** Get grid type as beats, or default to 1 if not snapped to beats. */
-       Evoral::MusicalTime get_grid_beats(framepos_t pos) const;
+       Evoral::Beats get_grid_beats(framepos_t pos) const;
 
        void remove_ghost_note ();
        void mouse_mode_changed ();
index 71faeb53fb6b43bec41d8ccb8f35e41df999fbc6..e763ea95f86bef6981ce340b70fe8d4d5e3403e8 100644 (file)
@@ -32,7 +32,7 @@ namespace ArdourCanvas {
 class Note : public NoteBase
 {
 public:
-       typedef Evoral::Note<Evoral::MusicalTime> NoteType;
+       typedef Evoral::Note<Evoral::Beats> NoteType;
 
        Note (MidiRegionView&                   region,
              ArdourCanvas::Item*               parent,
index 150837e193c25ba3031929dea734be38dbdfe10d..9a135e4d9c6b2433f16a699c4954f1bbdbbc1370 100644 (file)
@@ -54,7 +54,7 @@ namespace ArdourCanvas {
 class NoteBase : public sigc::trackable
 {
   public:
-       typedef Evoral::Note<Evoral::MusicalTime> NoteType;
+       typedef Evoral::Note<Evoral::Beats> NoteType;
 
        NoteBase (MidiRegionView& region, bool, const boost::shared_ptr<NoteType> note = boost::shared_ptr<NoteType>());
        virtual ~NoteBase ();
index 4a1df8c31986c20ed814fbecbbb7d06c9cd27b22..9127842732c898ebdeb827085dfd8454fcfbe92c 100644 (file)
@@ -31,7 +31,7 @@ namespace ARDOUR {
 
 class NotePlayer : public sigc::trackable {
 public:
-       typedef Evoral::Note<Evoral::MusicalTime> NoteType;
+       typedef Evoral::Note<Evoral::Beats> NoteType;
 
        NotePlayer (boost::shared_ptr<ARDOUR::MidiTrack>);
        ~NotePlayer ();
index 9072801c831aa29ff3a554c492572701ae51e9e0..05cbaab459a7c14bd4f3b46be763a7da5f0b86e3 100644 (file)
@@ -41,12 +41,12 @@ using namespace Gtkmm2ext;
 
 /** @param tc If non-0, a time converter for this patch change.  If 0, time control will be desensitized */
 PatchChangeDialog::PatchChangeDialog (
-       const ARDOUR::BeatsFramesConverter*              tc,
-       ARDOUR::Session*                                 session,
-       Evoral::PatchChange<Evoral::MusicalTime> const & patch,
-       ARDOUR::InstrumentInfo&                          info,
-       const Gtk::BuiltinStockID&                       ok,
-       bool                                             allow_delete)
+       const ARDOUR::BeatsFramesConverter*        tc,
+       ARDOUR::Session*                           session,
+       Evoral::PatchChange<Evoral::Beats> const & patch,
+       ARDOUR::InstrumentInfo&                    info,
+       const Gtk::BuiltinStockID&                 ok,
+       bool                                       allow_delete)
        : ArdourDialog (_("Patch Change"), true)
        , _time_converter (tc)
        , _info (info)
@@ -139,16 +139,16 @@ PatchChangeDialog::instrument_info_changed ()
        fill_patch_combo ();
 }
 
-Evoral::PatchChange<Evoral::MusicalTime>
+Evoral::PatchChange<Evoral::Beats>
 PatchChangeDialog::patch () const
 {
-       Evoral::MusicalTime t = Evoral::MusicalTime();
+       Evoral::Beats t = Evoral::Beats();
 
        if (_time_converter) {
                t = _time_converter->from (_time.current_time ());
        }
 
-       return Evoral::PatchChange<Evoral::MusicalTime> (
+       return Evoral::PatchChange<Evoral::Beats> (
                t,
                _channel.get_value_as_int() - 1,
                _program.get_value_as_int() - 1,
index ed0f49df34c173097f539e596f769225d7cdb339..d19234d2c47ae1536d183fe87722668cdb274d0d 100644 (file)
@@ -43,13 +43,13 @@ public:
        PatchChangeDialog (
                const ARDOUR::BeatsFramesConverter *,
                ARDOUR::Session *,
-               Evoral::PatchChange<Evoral::MusicalTime> const &,
+               Evoral::PatchChange<Evoral::Beats> const &,
                ARDOUR::InstrumentInfo&,
                const Gtk::BuiltinStockID &,
                bool allow_delete = false
                );
 
-       Evoral::PatchChange<Evoral::MusicalTime> patch () const;
+       Evoral::PatchChange<Evoral::Beats> patch () const;
 
 private:
        void fill_bank_combo ();
index c126c1bab953715896dce356bae36255ae8864b7..974799c8c061ba612780e487fe353139f6d7af2f 100644 (file)
@@ -289,7 +289,7 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulDestructible, publi
        virtual void add_to_idle_resize (TimeAxisView*, int32_t) = 0;
        virtual framecnt_t get_nudge_distance (framepos_t pos, framecnt_t& next) = 0;
        virtual framecnt_t get_paste_offset (framepos_t pos, unsigned paste_count, framecnt_t duration) = 0;
-       virtual Evoral::MusicalTime get_grid_type_as_beats (bool& success, framepos_t position) = 0;
+       virtual Evoral::Beats get_grid_type_as_beats (bool& success, framepos_t position) = 0;
        virtual void edit_notes (MidiRegionView*) = 0;
 
        virtual void queue_visual_videotimeline_update () = 0;
index 45a96e1fc3db50c7da8037e438b6b8e3488240d7..82e3a1abd57fedd8500a485d79a0b6f0a50652a1 100644 (file)
@@ -131,7 +131,7 @@ QuantizeDialog::grid_size_to_musical_time (const string& txt) const
        if (txt == "main grid") {
                bool success;
 
-               Evoral::MusicalTime b = editor.get_grid_type_as_beats (success, 0);
+               Evoral::Beats b = editor.get_grid_type_as_beats (success, 0);
                if (!success) {
                        return 1.0;
                }
index ec525b84ed71a019be92c5be7406459fc66b98e5..db34dcbf8497c55f58ad8fa086cd9999089b4ee3 100644 (file)
@@ -41,7 +41,7 @@ StepEditor::StepEditor (PublicEditor& e, boost::shared_ptr<MidiTrack> t, MidiTim
        step_edit_insert_position = 0;
         _step_edit_triplet_countdown = 0;
         _step_edit_within_chord = 0;
-        _step_edit_chord_duration = Evoral::MusicalTime();
+        _step_edit_chord_duration = Evoral::Beats();
         step_edit_region_view = 0;
 
         _track->PlaylistChanged.connect (*this, invalidator (*this),
@@ -60,11 +60,11 @@ StepEditor::start_step_editing ()
 {
         _step_edit_triplet_countdown = 0;
         _step_edit_within_chord = 0;
-        _step_edit_chord_duration = Evoral::MusicalTime();
+        _step_edit_chord_duration = Evoral::Beats();
         step_edit_region.reset ();
         step_edit_region_view = 0;
         last_added_pitch = -1;
-        last_added_end = Evoral::MusicalTime();
+        last_added_end = Evoral::Beats();
 
         resync_step_edit_position ();
         prepare_step_edit_region ();
@@ -198,7 +198,7 @@ StepEditor::check_step_edit ()
                incoming.read_contents (size, buf);
 
                if ((buf[0] & 0xf0) == MIDI_CMD_NOTE_ON) {
-                       step_add_note (buf[0] & 0xf, buf[1], buf[2], Evoral::MusicalTime());
+                       step_add_note (buf[0] & 0xf, buf[1], buf[2], Evoral::Beats());
                }
        }
 }
@@ -216,7 +216,7 @@ StepEditor::step_add_program_change (uint8_t /*channel*/, uint8_t /*program*/)
 }
 
 void
-StepEditor::step_edit_sustain (Evoral::MusicalTime beats)
+StepEditor::step_edit_sustain (Evoral::Beats beats)
 {
         if (step_edit_region_view) {
                 step_edit_region_view->step_sustain (beats);
@@ -224,7 +224,7 @@ StepEditor::step_edit_sustain (Evoral::MusicalTime beats)
 }
 
 void
-StepEditor::move_step_edit_beat_pos (Evoral::MusicalTime beats)
+StepEditor::move_step_edit_beat_pos (Evoral::Beats beats)
 {
         if (beats > 0.0) {
                 step_edit_beat_pos = min (step_edit_beat_pos + beats,
@@ -233,14 +233,14 @@ StepEditor::move_step_edit_beat_pos (Evoral::MusicalTime beats)
                 if (-beats < step_edit_beat_pos) {
                         step_edit_beat_pos += beats; // its negative, remember
                 } else {
-                        step_edit_beat_pos = Evoral::MusicalTime();
+                        step_edit_beat_pos = Evoral::Beats();
                 }
         }
         step_edit_region_view->move_step_edit_cursor (step_edit_beat_pos);
 }
 
 int
-StepEditor::step_add_note (uint8_t channel, uint8_t pitch, uint8_t velocity, Evoral::MusicalTime beat_duration)
+StepEditor::step_add_note (uint8_t channel, uint8_t pitch, uint8_t velocity, Evoral::Beats beat_duration)
 {
         /* do these things in case undo removed the step edit region
         */
@@ -283,8 +283,8 @@ StepEditor::step_add_note (uint8_t channel, uint8_t pitch, uint8_t velocity, Evo
                 _editor.reset_x_origin (fpos - (_editor.current_page_samples()/4));
         }
 
-        Evoral::MusicalTime at = step_edit_beat_pos;
-        Evoral::MusicalTime len = beat_duration;
+        Evoral::Beats at = step_edit_beat_pos;
+        Evoral::Beats len = beat_duration;
 
         if ((last_added_pitch >= 0) && (pitch == last_added_pitch) && (last_added_end == step_edit_beat_pos)) {
 
@@ -292,8 +292,8 @@ StepEditor::step_add_note (uint8_t channel, uint8_t pitch, uint8_t velocity, Evo
                    up by 1 tick from where the last note ended
                 */
 
-               at  += Evoral::MusicalTime::ticks(1);
-               len -= Evoral::MusicalTime::ticks(1);
+               at  += Evoral::Beats::ticks(1);
+               len -= Evoral::Beats::ticks(1);
         }
 
         step_edit_region_view->step_add_note (channel, pitch, velocity, at, len);
@@ -313,7 +313,7 @@ StepEditor::step_add_note (uint8_t channel, uint8_t pitch, uint8_t velocity, Evo
                 step_edit_beat_pos += beat_duration;
                 step_edit_region_view->move_step_edit_cursor (step_edit_beat_pos);
         } else {
-                step_edit_beat_pos += Evoral::MusicalTime::ticks(1); // tiny, but no longer overlapping
+                step_edit_beat_pos += Evoral::Beats::ticks(1); // tiny, but no longer overlapping
                 _step_edit_chord_duration = max (_step_edit_chord_duration, beat_duration);
         }
 
@@ -321,7 +321,7 @@ StepEditor::step_add_note (uint8_t channel, uint8_t pitch, uint8_t velocity, Evo
 }
 
 void
-StepEditor::set_step_edit_cursor_width (Evoral::MusicalTime beats)
+StepEditor::set_step_edit_cursor_width (Evoral::Beats beats)
 {
         if (step_edit_region_view) {
                 step_edit_region_view->set_step_edit_cursor_width (beats);
@@ -365,7 +365,7 @@ StepEditor::step_edit_toggle_chord ()
 }
 
 void
-StepEditor::step_edit_rest (Evoral::MusicalTime beats)
+StepEditor::step_edit_rest (Evoral::Beats beats)
 {
        bool success;
 
@@ -425,7 +425,7 @@ StepEditor::region_removed (boost::weak_ptr<Region> wr)
                 step_edit_region.reset();
                 step_edit_region_view = 0;
                 // force a recompute of the insert position
-                step_edit_beat_pos = Evoral::MusicalTime(-1);
+                step_edit_beat_pos = Evoral::Beats(-1);
         }
 }
 
index 82df7430170da25a8bbf4542d12e8ab381b45db0..299025d292d01b40f6f87b7c4d419ffd057e2878 100644 (file)
@@ -45,22 +45,22 @@ class StepEditor : public PBD::ScopedConnectionList, public sigc::trackable
         virtual ~StepEditor ();
 
        void check_step_edit ();
-       void step_edit_rest (Evoral::MusicalTime beats);
+       void step_edit_rest (Evoral::Beats beats);
         void step_edit_beat_sync ();
         void step_edit_bar_sync ();
         int  step_add_bank_change (uint8_t channel, uint8_t bank);
         int  step_add_program_change (uint8_t channel, uint8_t program);
         int  step_add_note (uint8_t channel, uint8_t pitch, uint8_t velocity,
-                            Evoral::MusicalTime beat_duration);
-        void step_edit_sustain (Evoral::MusicalTime beats);
+                            Evoral::Beats beat_duration);
+        void step_edit_sustain (Evoral::Beats beats);
         bool step_edit_within_triplet () const;
         void step_edit_toggle_triplet ();
         bool step_edit_within_chord () const;
         void step_edit_toggle_chord ();
         void reset_step_edit_beat_pos ();
         void resync_step_edit_to_edit_point ();
-        void move_step_edit_beat_pos (Evoral::MusicalTime beats);
-        void set_step_edit_cursor_width (Evoral::MusicalTime beats);
+        void move_step_edit_beat_pos (Evoral::Beats beats);
+        void set_step_edit_cursor_width (Evoral::Beats beats);
 
         std::string name() const;
 
@@ -69,19 +69,19 @@ class StepEditor : public PBD::ScopedConnectionList, public sigc::trackable
 
   private:
         ARDOUR::framepos_t                    step_edit_insert_position;
-       Evoral::MusicalTime                   step_edit_beat_pos;
+       Evoral::Beats                   step_edit_beat_pos;
        boost::shared_ptr<ARDOUR::MidiRegion> step_edit_region;
        MidiRegionView*                       step_edit_region_view;
         uint8_t                              _step_edit_triplet_countdown;
         bool                                 _step_edit_within_chord;
-        Evoral::MusicalTime                  _step_edit_chord_duration;
+        Evoral::Beats                  _step_edit_chord_duration;
         PBD::ScopedConnection                 step_edit_region_connection;
         PublicEditor&                        _editor;
         boost::shared_ptr<ARDOUR::MidiTrack> _track;
         StepEntry*                            step_editor;
         MidiTimeAxisView&                    _mtv;
         int8_t                                last_added_pitch;
-        Evoral::MusicalTime                   last_added_end;
+        Evoral::Beats                   last_added_end;
 
         void region_removed (boost::weak_ptr<ARDOUR::Region>);
         void playlist_changed ();
index d7b177949f2e00a0b158b1b5590c95f1b5e98c41..ace02c0c68d50678ba6e53fc278d701ab62c4ee9 100644 (file)
@@ -526,10 +526,10 @@ StepEntry::on_key_release_event (GdkEventKey* ev)
 void
 StepEntry::rest_event_handler ()
 {
-       se->step_edit_rest (Evoral::MusicalTime());
+       se->step_edit_rest (Evoral::Beats());
 }
 
-Evoral::MusicalTime
+Evoral::Beats
 StepEntry::note_length ()
 {
         double base_time = 4.0 / (double) length_divisor_adjustment.get_value();
@@ -549,7 +549,7 @@ StepEntry::note_length ()
                 base_time *= 1 + ((dots - 1.0)/dots);
         }
 
-        return Evoral::MusicalTime(base_time);
+        return Evoral::Beats(base_time);
 }
 
 uint8_t
@@ -795,7 +795,7 @@ StepEntry::insert_rest ()
 void
 StepEntry::insert_grid_rest ()
 {
-       se->step_edit_rest (Evoral::MusicalTime());
+       se->step_edit_rest (Evoral::Beats());
 }
 
 void
index 364be671148b972add9b37d9d2f729aec46e29dc..bd354f3f66dab68aab814b0606136d53d6d515e1 100644 (file)
@@ -41,14 +41,14 @@ class StepEntry : public ArdourWindow
         void note_off_event_handler (int note);
         void rest_event_handler ();
 
-        Evoral::MusicalTime note_length();
+        Evoral::Beats note_length();
         uint8_t note_velocity() const;
         uint8_t note_channel() const;
 
         int current_octave () const { return (int) floor (octave_adjustment.get_value()); }
 
   private:
-        Evoral::MusicalTime _current_note_length;
+        Evoral::Beats _current_note_length;
         uint8_t _current_note_velocity;
 
         Gtk::VBox packer;
index ada09b1179e933ebecc8c0a590ed983092282913..908dd1909e153b1086bf27edd7c49795f6082fe6 100644 (file)
@@ -37,15 +37,15 @@ class TempoMap;
  *  them to the opposite unit, taking tempo changes into account.
  */
 class LIBARDOUR_API BeatsFramesConverter
-       : public Evoral::TimeConverter<Evoral::MusicalTime,framepos_t> {
+       : public Evoral::TimeConverter<Evoral::Beats,framepos_t> {
 public:
        BeatsFramesConverter (TempoMap& tempo_map, framepos_t origin)
-               : Evoral::TimeConverter<Evoral::MusicalTime, framepos_t> (origin)
+               : Evoral::TimeConverter<Evoral::Beats, framepos_t> (origin)
                , _tempo_map(tempo_map)
        {}
 
-       framepos_t          to (Evoral::MusicalTime beats) const;
-       Evoral::MusicalTime from (framepos_t frames) const;
+       framepos_t    to (Evoral::Beats beats) const;
+       Evoral::Beats from (framepos_t frames) const;
 
 private:
        TempoMap& _tempo_map;
index 4a170e1a1c0f7eedf5f1650478b28a4903647e6f..78b384e1c72222b5e04ba1b8adbdab31c708ca66 100644 (file)
@@ -39,10 +39,10 @@ public:
        Legatize(bool shrink_only);
        ~Legatize();
 
-       typedef Evoral::Sequence<Evoral::MusicalTime>::Notes Notes;
+       typedef Evoral::Sequence<Evoral::Beats>::Notes Notes;
 
        Command* operator()(boost::shared_ptr<ARDOUR::MidiModel> model,
-                           Evoral::MusicalTime                  position,
+                           Evoral::Beats                        position,
                            std::vector<Notes>&                  seqs);
 
        std::string name() const { return std::string ("legatize"); }
index b86a7436bbb22617ebe08e5877a4e837f86ba2ae..42144312803fa2694bd8fe92433e47ca54a77efd 100644 (file)
@@ -52,9 +52,9 @@ class MidiSource;
  * Because of this MIDI controllers and automatable controllers/widgets/etc
  * are easily interchangeable.
  */
-class LIBARDOUR_API MidiModel : public AutomatableSequence<Evoral::MusicalTime> {
+class LIBARDOUR_API MidiModel : public AutomatableSequence<Evoral::Beats> {
 public:
-       typedef Evoral::MusicalTime TimeType;
+       typedef Evoral::Beats TimeType;
 
        MidiModel (boost::shared_ptr<MidiSource>);
 
@@ -259,8 +259,8 @@ public:
 
        bool write_section_to(boost::shared_ptr<MidiSource>     source,
                              const Glib::Threads::Mutex::Lock& source_lock,
-                             Evoral::MusicalTime               begin = Evoral::MinMusicalTime,
-                             Evoral::MusicalTime               end   = Evoral::MaxMusicalTime);
+                             Evoral::Beats                     begin = Evoral::MinBeats,
+                             Evoral::Beats                     end   = Evoral::MaxBeats);
 
        // MidiModel doesn't use the normal AutomationList serialisation code
        // since controller data is stored in the .mid
index 36e87b714b39b81dce74b16cff2b3a8b4a0d082c..b79544ed615566fb22962d01ce01ceb034d9f0a7 100644 (file)
@@ -38,8 +38,8 @@ class LIBARDOUR_API MidiOperator {
        virtual ~MidiOperator() {}
 
        virtual Command* operator() (boost::shared_ptr<ARDOUR::MidiModel>,
-                                    Evoral::MusicalTime,
-                                    std::vector<Evoral::Sequence<Evoral::MusicalTime>::Notes>&) = 0;
+                                    Evoral::Beats,
+                                    std::vector<Evoral::Sequence<Evoral::Beats>::Notes>&) = 0;
        virtual std::string name() const = 0;
 };
 
index f0645533426fbd4e880a30129f1ad91246bb0d11..6633be3c9ea041c415533e6bae96d3f273220e74 100644 (file)
@@ -45,7 +45,7 @@ public:
        XMLNode& get_state ();
        int set_state (const XMLNode&, int version);
 
-       void append_event_beats(const Glib::Threads::Mutex::Lock& lock, const Evoral::Event<Evoral::MusicalTime>& ev);
+       void append_event_beats(const Glib::Threads::Mutex::Lock& lock, const Evoral::Event<Evoral::Beats>& ev);
        void append_event_frames(const Glib::Threads::Mutex::Lock& lock, const Evoral::Event<framepos_t>& ev, framepos_t source_start);
        void load_model(const Glib::Threads::Mutex::Lock& lock, bool force_reload=false);
        void destroy_model(const Glib::Threads::Mutex::Lock& lock);
index 2a4e3a61909486e0255defd34d415bcafb24e512..ece23b65f0b3abc84e3ebfed089be5b1d4c28f3f 100644 (file)
@@ -37,8 +37,8 @@ namespace ARDOUR {
                   MidiModel used by the MidiRegion
                */
                LIBARDOUR_API extern PBD::PropertyDescriptor<void*> midi_data;
-               LIBARDOUR_API extern PBD::PropertyDescriptor<Evoral::MusicalTime> start_beats;
-               LIBARDOUR_API extern PBD::PropertyDescriptor<Evoral::MusicalTime> length_beats;
+               LIBARDOUR_API extern PBD::PropertyDescriptor<Evoral::Beats> start_beats;
+               LIBARDOUR_API extern PBD::PropertyDescriptor<Evoral::Beats> length_beats;
        }
 }
 
@@ -114,8 +114,8 @@ class LIBARDOUR_API MidiRegion : public Region
 
   private:
        friend class RegionFactory;
-       PBD::Property<Evoral::MusicalTime> _start_beats;
-       PBD::Property<Evoral::MusicalTime> _length_beats;
+       PBD::Property<Evoral::Beats> _start_beats;
+       PBD::Property<Evoral::Beats> _length_beats;
 
        MidiRegion (const SourceList&);
        MidiRegion (boost::shared_ptr<const MidiRegion>);
index 2b78230a00d328a9abe69cea335e79bede014e8f..8a0c13681d97661e06fa88c4939ddb5dfdf11aef 100644 (file)
@@ -43,7 +43,7 @@ template<typename T> class MidiRingBuffer;
 class LIBARDOUR_API MidiSource : virtual public Source, public boost::enable_shared_from_this<MidiSource>
 {
   public:
-       typedef Evoral::MusicalTime TimeType;
+       typedef Evoral::Beats TimeType;
 
        MidiSource (Session& session, std::string name, Source::Flag flags = Source::Flag(0));
        MidiSource (Session& session, const XMLNode&);
@@ -59,8 +59,8 @@ class LIBARDOUR_API MidiSource : virtual public Source, public boost::enable_sha
         */
        int write_to (const Lock&                   lock,
                      boost::shared_ptr<MidiSource> newsrc,
-                     Evoral::MusicalTime           begin = Evoral::MinMusicalTime,
-                     Evoral::MusicalTime           end   = Evoral::MaxMusicalTime);
+                     Evoral::Beats                 begin = Evoral::MinBeats,
+                     Evoral::Beats                 end   = Evoral::MaxBeats);
 
        /** Read the data in a given time range from the MIDI source.
         * All time stamps in parameters are in audio frames (even if the source has tempo time).
@@ -93,8 +93,8 @@ class LIBARDOUR_API MidiSource : virtual public Source, public boost::enable_sha
         *
         * Caller must ensure that the event is later than the last written event.
         */
-       virtual void append_event_beats(const Lock&                               lock,
-                                       const Evoral::Event<Evoral::MusicalTime>& ev) = 0;
+       virtual void append_event_beats(const Lock&                         lock,
+                                       const Evoral::Event<Evoral::Beats>& ev) = 0;
 
        /** Append a single event with a timestamp in frames.
         *
@@ -132,9 +132,9 @@ class LIBARDOUR_API MidiSource : virtual public Source, public boost::enable_sha
         * etc.
         */
        virtual void mark_midi_streaming_write_completed (
-               const Lock&                                            lock,
-               Evoral::Sequence<Evoral::MusicalTime>::StuckNoteOption stuck_option,
-               Evoral::MusicalTime                                    when = Evoral::MusicalTime());
+               const Lock&                                      lock,
+               Evoral::Sequence<Evoral::Beats>::StuckNoteOption stuck_option,
+               Evoral::Beats                                    when = Evoral::Beats());
 
        virtual void session_saved();
 
@@ -205,11 +205,11 @@ class LIBARDOUR_API MidiSource : virtual public Source, public boost::enable_sha
        boost::shared_ptr<MidiModel> _model;
        bool                         _writing;
 
-       mutable Evoral::Sequence<Evoral::MusicalTime>::const_iterator _model_iter;
-       mutable bool                                                  _model_iter_valid;
+       mutable Evoral::Sequence<Evoral::Beats>::const_iterator _model_iter;
+       mutable bool                                            _model_iter_valid;
 
-       mutable Evoral::MusicalTime _length_beats;
-       mutable framepos_t          _last_read_end;
+       mutable Evoral::Beats _length_beats;
+       mutable framepos_t    _last_read_end;
 
        /** The total duration of the current capture. */
        framepos_t _capture_length;
index 98611bc72249f8a9838fbdff6b4411a661816cf9..669093142227270ab7736ba1edd213b450b4d181 100644 (file)
@@ -46,7 +46,7 @@ public:
        void remove (uint8_t note, uint8_t chn);
        void resolve_notes (MidiBuffer& buffer, framepos_t time);
        void resolve_notes (Evoral::EventSink<framepos_t>& buffer, framepos_t time);
-       void resolve_notes (MidiSource& src, const Glib::Threads::Mutex::Lock& lock, Evoral::MusicalTime time);
+       void resolve_notes (MidiSource& src, const Glib::Threads::Mutex::Lock& lock, Evoral::Beats time);
        void dump (std::ostream&);
        void reset ();
        bool empty() const { return _on == 0; }
index 09ba5f2aa2ce17de6b791612b35ec67255cc5c64..639736b174668c97c0c2fae6daa84e7ad29dbcf4 100644 (file)
@@ -35,8 +35,8 @@ public:
        ~Quantize ();
 
        Command* operator() (boost::shared_ptr<ARDOUR::MidiModel>,
-                            Evoral::MusicalTime position,
-                            std::vector<Evoral::Sequence<Evoral::MusicalTime>::Notes>&);
+                            Evoral::Beats position,
+                            std::vector<Evoral::Sequence<Evoral::Beats>::Notes>&);
        std::string name() const { return std::string ("quantize"); }
 
 private:
index d93fdb8506322ed6a6bb53978b9526745af17192..29c640369446c74cdbf5f434e3697b5ac9215d1f 100644 (file)
@@ -51,14 +51,14 @@ public:
                return safe_midi_file_extension(path);
        }
 
-       void append_event_beats (const Lock& lock, const Evoral::Event<Evoral::MusicalTime>& ev);
+       void append_event_beats (const Lock& lock, const Evoral::Event<Evoral::Beats>& ev);
        void append_event_frames (const Lock& lock, const Evoral::Event<framepos_t>& ev, framepos_t source_start);
 
        void mark_streaming_midi_write_started (const Lock& lock, NoteMode mode);
        void mark_streaming_write_completed (const Lock& lock);
        void mark_midi_streaming_write_completed (const Lock& lock,
-                                                 Evoral::Sequence<Evoral::MusicalTime>::StuckNoteOption,
-                                                 Evoral::MusicalTime when = Evoral::MusicalTime());
+                                                 Evoral::Sequence<Evoral::Beats>::StuckNoteOption,
+                                                 Evoral::Beats when = Evoral::Beats());
 
        XMLNode& get_state ();
        int set_state (const XMLNode&, int version);
@@ -77,7 +77,7 @@ public:
 
   private:
        bool _open;
-       Evoral::MusicalTime _last_ev_time_beats;
+       Evoral::Beats       _last_ev_time_beats;
        framepos_t          _last_ev_time_frames;
        /** end time (start + duration) of last call to read_unlocked */
        mutable framepos_t _smf_last_read_end;
index 19fe5b0b1206af677608dc4348f95f2f82e2395b..f2d314651dee52686b1e49e1e9e8852a5aa0c20b 100644 (file)
@@ -276,9 +276,9 @@ class LIBARDOUR_API TempoMap : public PBD::StatefulDestructible
        */
 
        framepos_t framepos_plus_bbt (framepos_t pos, Timecode::BBT_Time b) const;
-       framepos_t framepos_plus_beats (framepos_t, Evoral::MusicalTime) const;
-       framepos_t framepos_minus_beats (framepos_t, Evoral::MusicalTime) const;
-       Evoral::MusicalTime framewalk_to_beats (framepos_t pos, framecnt_t distance) const;
+       framepos_t framepos_plus_beats (framepos_t, Evoral::Beats) const;
+       framepos_t framepos_minus_beats (framepos_t, Evoral::Beats) const;
+       Evoral::Beats framewalk_to_beats (framepos_t pos, framecnt_t distance) const;
 
        static const Tempo& default_tempo() { return _default_tempo; }
        static const Meter& default_meter() { return _default_meter; }
index 08e4a435215f0320b923b90bb93735631bf2d40f..df77244a17f796ed246364b0e5b5f458dd41448c 100644 (file)
@@ -50,9 +50,9 @@ namespace ARDOUR {
  */
 class LIBARDOUR_API Transform : public MidiOperator {
 public:
-       typedef Evoral::Sequence<Evoral::MusicalTime>::NotePtr NotePtr;
-       typedef Evoral::Sequence<Evoral::MusicalTime>::Notes   Notes;
-       typedef ARDOUR::MidiModel::NoteDiffCommand::Property   Property;
+       typedef Evoral::Sequence<Evoral::Beats>::NotePtr     NotePtr;
+       typedef Evoral::Sequence<Evoral::Beats>::Notes       Notes;
+       typedef ARDOUR::MidiModel::NoteDiffCommand::Property Property;
 
        /** Context while iterating over notes during transformation. */
        struct Context {
@@ -132,7 +132,7 @@ public:
        Transform(const Program& prog);
 
        Command* operator()(boost::shared_ptr<ARDOUR::MidiModel> model,
-                           Evoral::MusicalTime                  position,
+                           Evoral::Beats                        position,
                            std::vector<Notes>&                  seqs);
 
        std::string name() const { return std::string ("transform"); }
index 0402ffaa0b730a1de12eb433c1fa37e3dd25a43d..9ecadbfe6a97819cb5cbc7accddc377e508d6f4c 100644 (file)
@@ -57,7 +57,7 @@ public:
        explicit Variant(int32_t value) : _type(INT)     { _int    = value; }
        explicit Variant(int64_t value) : _type(LONG)    { _long   = value; }
 
-       explicit Variant(const Evoral::MusicalTime& beats)
+       explicit Variant(const Evoral::Beats& beats)
                : _type(BEATS)
                , _beats(beats)
        {}
@@ -94,7 +94,7 @@ public:
                                                        std::min(value, (double)INT64_MAX)));
                        break;
                case BEATS:
-                       _beats = Evoral::MusicalTime(value);
+                       _beats = Evoral::Beats(value);
                        break;
                default:
                        _type = NOTHING;
@@ -158,19 +158,19 @@ public:
                return false;
        }
 
-       bool operator==(const Evoral::MusicalTime& v) const {
+       bool operator==(const Evoral::Beats& v) const {
                return _type == BEATS && _beats == v;
        }
 
        bool operator!() const { return _type == NOTHING; }
 
-       Variant& operator=(Evoral::MusicalTime v) {
+       Variant& operator=(Evoral::Beats v) {
                _type  = BEATS;
                _beats = v;
                return *this;
        }
 
-       const Evoral::MusicalTime& get_beats() const {
+       const Evoral::Beats& get_beats() const {
                ensure_type(BEATS); return _beats;
        }
 
@@ -202,9 +202,9 @@ private:
                }
        }
 
-       Type                _type;    ///< Type tag
-       std::string         _string;  ///< PATH, STRING, URI
-       Evoral::MusicalTime _beats;   ///< BEATS
+       Type          _type;    ///< Type tag
+       std::string   _string;  ///< PATH, STRING, URI
+       Evoral::Beats _beats;   ///< BEATS
 
        // Union of all primitive numeric types
        union {
index b99edbf51ecd765d3c5b73f9960f79bdd60028cb..54db8008da2c4fcabacaba0d0da64963952da040 100644 (file)
@@ -31,9 +31,9 @@ namespace ARDOUR {
  *  taking tempo changes into account.
  */
 framepos_t
-BeatsFramesConverter::to (Evoral::MusicalTime beats) const
+BeatsFramesConverter::to (Evoral::Beats beats) const
 {
-       if (beats < Evoral::MusicalTime()) {
+       if (beats < Evoral::Beats()) {
                std::cerr << "negative beats passed to BFC: " << beats << std::endl;
                PBD::stacktrace (std::cerr, 30);
                return 0;
@@ -45,7 +45,7 @@ BeatsFramesConverter::to (Evoral::MusicalTime beats) const
  *  supplied to the constructor.  Returns the equivalent number of beats,
  *  taking tempo changes into account.
  */
-Evoral::MusicalTime
+Evoral::Beats
 BeatsFramesConverter::from (framepos_t frames) const
 {
        return _tempo_map.framewalk_to_beats (_origin_b, frames);
@@ -60,7 +60,7 @@ DoubleBeatsFramesConverter::to (double beats) const
                PBD::stacktrace (std::cerr, 30);
                return 0;
        }
-       return _tempo_map.framepos_plus_beats (_origin_b, Evoral::MusicalTime(beats)) - _origin_b;
+       return _tempo_map.framepos_plus_beats (_origin_b, Evoral::Beats(beats)) - _origin_b;
 }
 
 /** As above, but with beats in double instead (for GUI). */
index eb2ed769d1fe8b4f93117218ecddb76a540dcd90..3ed028ef918d2a09719a8953993d5cacb7efc550 100644 (file)
@@ -392,9 +392,9 @@ write_midi_data_to_new_files (Evoral::SMF* source, ImportStatus& status,
 
                                smfs->append_event_beats(
                                        source_lock,
-                                       Evoral::Event<Evoral::MusicalTime>(
+                                       Evoral::Event<Evoral::Beats>(
                                                0,
-                                               Evoral::MusicalTime::ticks_at_rate(t, source->ppqn()),
+                                               Evoral::Beats::ticks_at_rate(t, source->ppqn()),
                                                size,
                                                buf));
 
@@ -407,9 +407,9 @@ write_midi_data_to_new_files (Evoral::SMF* source, ImportStatus& status,
 
                                /* we wrote something */
 
-                               const framepos_t          pos = 0;
-                               const Evoral::MusicalTime length_beats = Evoral::MusicalTime::ticks_at_rate(t, source->ppqn());
-                               BeatsFramesConverter      converter(smfs->session().tempo_map(), pos);
+                               const framepos_t     pos          = 0;
+                               const Evoral::Beats  length_beats = Evoral::Beats::ticks_at_rate(t, source->ppqn());
+                               BeatsFramesConverter converter(smfs->session().tempo_map(), pos);
                                smfs->update_length(pos + converter.to(length_beats.round_up_to_beat()));
                                smfs->mark_streaming_write_completed (source_lock);
 
index c5506fe6c0d34490f50d6a71808e1a22df830bfa..0c118a6a48fcb136466bd14df1a2f4fd7fbd49eb 100644 (file)
@@ -31,7 +31,7 @@ Legatize::~Legatize ()
 
 Command*
 Legatize::operator()(boost::shared_ptr<ARDOUR::MidiModel> model,
-                     Evoral::MusicalTime                  position,
+                     Evoral::Beats                        position,
                      std::vector<Legatize::Notes>&        seqs)
 {
        MidiModel::NoteDiffCommand* cmd = new MidiModel::NoteDiffCommand(model, "legatize");
@@ -43,10 +43,10 @@ Legatize::operator()(boost::shared_ptr<ARDOUR::MidiModel> model,
                                break;
                        }
 
-                       const Evoral::MusicalTime new_end = (*next)->time() - Evoral::MusicalTime::tick();
+                       const Evoral::Beats new_end = (*next)->time() - Evoral::Beats::tick();
                        if ((*i)->end_time() > new_end ||
                            (!_shrink_only && (*i)->end_time() < new_end)) {
-                               const Evoral::MusicalTime new_length(new_end - (*i)->time());
+                               const Evoral::Beats new_length(new_end - (*i)->time());
                                cmd->change((*i), MidiModel::NoteDiffCommand::Length, new_length);
                        }
 
index e52a7c3ad7a9ffa6eb857153d07c7ab8839e568a..fed0dbc0ceba93cc27122a3ac2159f15e3b8ba93 100644 (file)
@@ -940,14 +940,14 @@ MidiDiskstream::transport_stopped_wallclock (struct tm& /*when*/, time_t /*twhen
                        /* set length in beats to entire capture length */
 
                        BeatsFramesConverter converter (_session.tempo_map(), capture_info.front()->start);
-                       const Evoral::MusicalTime total_capture_beats = converter.from (total_capture);
+                       const Evoral::Beats total_capture_beats = converter.from (total_capture);
                        _write_source->set_length_beats (total_capture_beats);
 
                        /* flush to disk: this step differs from the audio path,
                           where all the data is already on disk.
                        */
 
-                       _write_source->mark_midi_streaming_write_completed (source_lock, Evoral::Sequence<Evoral::MusicalTime>::ResolveStuckNotes, total_capture_beats);
+                       _write_source->mark_midi_streaming_write_completed (source_lock, Evoral::Sequence<Evoral::Beats>::ResolveStuckNotes, total_capture_beats);
 
                        /* we will want to be able to keep (over)writing the source
                           but we don't want it to be removable. this also differs
index 18378f53866d26a3b2964ae81ab71e3ec242797b..e3226e036f060efff5dd8113a0c5652d50be8c5b 100644 (file)
@@ -620,7 +620,7 @@ MidiModel::NoteDiffCommand::unmarshal_change (XMLNode *xml_change)
        if ((prop = xml_change->property ("old")) != 0) {
                istringstream old_str (prop->value());
                if (change.property == StartTime || change.property == Length) {
-                       Evoral::MusicalTime old_time;
+                       Evoral::Beats old_time;
                        old_str >> old_time;
                        change.old_value = old_time;
                } else {
@@ -636,7 +636,7 @@ MidiModel::NoteDiffCommand::unmarshal_change (XMLNode *xml_change)
        if ((prop = xml_change->property ("new")) != 0) {
                istringstream new_str (prop->value());
                if (change.property == StartTime || change.property == Length) {
-                       Evoral::MusicalTime new_time;
+                       Evoral::Beats new_time;
                        new_str >> new_time;
                        change.new_value = Variant(new_time);
                } else {
@@ -1237,7 +1237,7 @@ MidiModel::PatchChangeDiffCommand::unmarshal_patch_change (XMLNode* n)
 {
        XMLProperty* prop;
        Evoral::event_id_t id = 0;
-       Evoral::MusicalTime time = Evoral::MusicalTime();
+       Evoral::Beats time = Evoral::Beats();
        int channel = 0;
        int program = 0;
        int bank = 0;
@@ -1476,8 +1476,8 @@ MidiModel::sync_to_source (const Glib::Threads::Mutex::Lock& source_lock)
 bool
 MidiModel::write_section_to (boost::shared_ptr<MidiSource>     source,
                              const Glib::Threads::Mutex::Lock& source_lock,
-                             Evoral::MusicalTime               begin_time,
-                             Evoral::MusicalTime               end_time)
+                             Evoral::Beats                     begin_time,
+                             Evoral::Beats                     end_time)
 {
        ReadLock lock(read_lock());
        MidiStateTracker mst;
@@ -1489,12 +1489,12 @@ MidiModel::write_section_to (boost::shared_ptr<MidiSource>     source,
        source->mark_streaming_midi_write_started (source_lock, note_mode());
 
        for (Evoral::Sequence<TimeType>::const_iterator i = begin(TimeType(), true); i != end(); ++i) {
-               const Evoral::Event<Evoral::MusicalTime>& ev (*i);
+               const Evoral::Event<Evoral::Beats>& ev (*i);
 
                if (ev.time() >= begin_time && ev.time() < end_time) {
 
-                       const Evoral::MIDIEvent<Evoral::MusicalTime>* mev =
-                               static_cast<const Evoral::MIDIEvent<Evoral::MusicalTime>* > (&ev);
+                       const Evoral::MIDIEvent<Evoral::Beats>* mev =
+                               static_cast<const Evoral::MIDIEvent<Evoral::Beats>* > (&ev);
 
                        if (!mev) {
                                continue;
@@ -2026,7 +2026,7 @@ MidiModel::transpose (TimeType from, TimeType to, int semitones)
 void
 MidiModel::control_list_marked_dirty ()
 {
-       AutomatableSequence<Evoral::MusicalTime>::control_list_marked_dirty ();
+       AutomatableSequence<Evoral::Beats>::control_list_marked_dirty ();
        
        ContentsChanged (); /* EMIT SIGNAL */
 }
index 587bc7b12fe034419f7fe816bcb83d0f8a6f0d7a..4f474f711936c1547a6ca3948e3d5c57df1e600e 100644 (file)
@@ -149,7 +149,7 @@ MidiPlaylistSource::write_unlocked (const Lock&,
 }
 
 void
-MidiPlaylistSource::append_event_beats(const Glib::Threads::Mutex::Lock& /*lock*/, const Evoral::Event<Evoral::MusicalTime>& /*ev*/)
+MidiPlaylistSource::append_event_beats(const Glib::Threads::Mutex::Lock& /*lock*/, const Evoral::Event<Evoral::Beats>& /*ev*/)
 {
        fatal << string_compose (_("programming error: %1"), "MidiPlaylistSource::append_event_beats() called - should be impossible") << endmsg;
        abort(); /*NOTREACHED*/
index 62c642d57bfd7b4c6fb39cc322504de1ef892d92..c02caff470ef2a2bc38e222896f0e05885a2ca06 100644 (file)
@@ -53,9 +53,9 @@ using namespace PBD;
 
 namespace ARDOUR {
        namespace Properties {
-               PBD::PropertyDescriptor<void*>                midi_data;
-               PBD::PropertyDescriptor<Evoral::MusicalTime>  start_beats;
-               PBD::PropertyDescriptor<Evoral::MusicalTime>  length_beats;
+               PBD::PropertyDescriptor<void*>         midi_data;
+               PBD::PropertyDescriptor<Evoral::Beats> start_beats;
+               PBD::PropertyDescriptor<Evoral::Beats> length_beats;
        }
 }
 
@@ -80,7 +80,7 @@ MidiRegion::register_properties ()
 /* Basic MidiRegion constructor (many channels) */
 MidiRegion::MidiRegion (const SourceList& srcs)
        : Region (srcs)
-       , _start_beats (Properties::start_beats, Evoral::MusicalTime())
+       , _start_beats (Properties::start_beats, Evoral::Beats())
        , _length_beats (Properties::length_beats, midi_source(0)->length_beats())
 {
        register_properties ();
@@ -94,7 +94,7 @@ MidiRegion::MidiRegion (const SourceList& srcs)
 MidiRegion::MidiRegion (boost::shared_ptr<const MidiRegion> other)
        : Region (other)
        , _start_beats (Properties::start_beats, other->_start_beats)
-       , _length_beats (Properties::length_beats, Evoral::MusicalTime())
+       , _length_beats (Properties::length_beats, Evoral::Beats())
 {
        update_length_beats ();
        register_properties ();
@@ -107,11 +107,11 @@ MidiRegion::MidiRegion (boost::shared_ptr<const MidiRegion> other)
 /** Create a new MidiRegion that is part of an existing one */
 MidiRegion::MidiRegion (boost::shared_ptr<const MidiRegion> other, frameoffset_t offset)
        : Region (other, offset)
-       , _start_beats (Properties::start_beats, Evoral::MusicalTime())
-       , _length_beats (Properties::length_beats, Evoral::MusicalTime())
+       , _start_beats (Properties::start_beats, Evoral::Beats())
+       , _length_beats (Properties::length_beats, Evoral::Beats())
 {
        BeatsFramesConverter bfc (_session.tempo_map(), _position);
-       Evoral::MusicalTime const offset_beats = bfc.from (offset);
+       Evoral::Beats const offset_beats = bfc.from (offset);
 
        _start_beats  = other->_start_beats.val() + offset_beats;
        _length_beats = other->_length_beats.val() - offset_beats;
@@ -147,8 +147,8 @@ boost::shared_ptr<MidiRegion>
 MidiRegion::clone (boost::shared_ptr<MidiSource> newsrc) const
 {
        BeatsFramesConverter bfc (_session.tempo_map(), _position);
-       Evoral::MusicalTime const bbegin = bfc.from (_start);
-       Evoral::MusicalTime const bend = bfc.from (_start + _length);
+       Evoral::Beats const bbegin = bfc.from (_start);
+       Evoral::Beats const bend = bfc.from (_start + _length);
 
        {
                /* Lock our source since we'll be reading from it.  write_to() will
@@ -223,7 +223,7 @@ MidiRegion::set_position_internal (framepos_t pos, bool allow_bbt_recompute)
        /* zero length regions don't exist - so if _length_beats is zero, this object
           is under construction.
        */
-       if (_length_beats.val() == Evoral::MusicalTime()) {
+       if (_length_beats.val() == Evoral::Beats()) {
                /* leave _length_beats alone, and change _length to reflect the state of things
                   at the new position (tempo map may dictate a different number of frames
                */
@@ -462,7 +462,7 @@ MidiRegion::fix_negative_start ()
 
        model()->insert_silence_at_start (c.from (-_start));
        _start = 0;
-       _start_beats = Evoral::MusicalTime();
+       _start_beats = Evoral::Beats();
 }
 
 /** Transpose the notes in this region by a given number of semitones */
index 0c08adf4a56b2bd6392681aad80b074b246d88d1..8d3b1305945e88201158d5941dffe4d690245c0a 100644 (file)
@@ -200,7 +200,7 @@ MidiSource::midi_read (const Lock&                        lm,
 
        if (_model) {
                // Find appropriate model iterator
-               Evoral::Sequence<Evoral::MusicalTime>::const_iterator& i = _model_iter;
+               Evoral::Sequence<Evoral::Beats>::const_iterator& i = _model_iter;
                if (_last_read_end == 0 || start != _last_read_end || !_model_iter_valid) {
                        // Cached iterator is invalid, search for the first event past start
                        i                 = _model->begin(converter.from(start), false, filtered);
@@ -297,9 +297,9 @@ MidiSource::mark_streaming_write_started (const Lock& lock)
 }
 
 void
-MidiSource::mark_midi_streaming_write_completed (const Lock&                                            lock,
-                                                 Evoral::Sequence<Evoral::MusicalTime>::StuckNoteOption option,
-                                                 Evoral::MusicalTime                                    end)
+MidiSource::mark_midi_streaming_write_completed (const Lock&                                      lock,
+                                                 Evoral::Sequence<Evoral::Beats>::StuckNoteOption option,
+                                                 Evoral::Beats                                    end)
 {
        if (_model) {
                _model->end_write (option, end);
@@ -320,11 +320,11 @@ MidiSource::mark_midi_streaming_write_completed (const Lock&
 void
 MidiSource::mark_streaming_write_completed (const Lock& lock)
 {
-       mark_midi_streaming_write_completed (lock, Evoral::Sequence<Evoral::MusicalTime>::DeleteStuckNotes);
+       mark_midi_streaming_write_completed (lock, Evoral::Sequence<Evoral::Beats>::DeleteStuckNotes);
 }
 
 int
-MidiSource::write_to (const Lock& lock, boost::shared_ptr<MidiSource> newsrc, Evoral::MusicalTime begin, Evoral::MusicalTime end)
+MidiSource::write_to (const Lock& lock, boost::shared_ptr<MidiSource> newsrc, Evoral::Beats begin, Evoral::Beats end)
 {
        Lock newsrc_lock (newsrc->mutex ());
 
@@ -333,7 +333,7 @@ MidiSource::write_to (const Lock& lock, boost::shared_ptr<MidiSource> newsrc, Ev
        newsrc->copy_automation_state_from (this);
 
        if (_model) {
-               if (begin == Evoral::MinMusicalTime && end == Evoral::MaxMusicalTime) {
+               if (begin == Evoral::MinBeats && end == Evoral::MaxBeats) {
                        _model->write_to (newsrc, newsrc_lock);
                } else {
                        _model->write_section_to (newsrc, newsrc_lock, begin, end);
@@ -347,7 +347,7 @@ MidiSource::write_to (const Lock& lock, boost::shared_ptr<MidiSource> newsrc, Ev
 
        /* force a reload of the model if the range is partial */
 
-       if (begin != Evoral::MinMusicalTime || end != Evoral::MaxMusicalTime) {
+       if (begin != Evoral::MinBeats || end != Evoral::MaxBeats) {
                newsrc->load_model (newsrc_lock, true);
        } else {
                newsrc->set_model (newsrc_lock, _model);
index f919a02f355ecdb3907ea78c43d958eacfc8b457..9e96c4954f7b044cd0102215bca13103b2171d68 100644 (file)
@@ -168,7 +168,7 @@ MidiStateTracker::resolve_notes (Evoral::EventSink<framepos_t> &dst, framepos_t
 }
 
 void
-MidiStateTracker::resolve_notes (MidiSource& src, const MidiSource::Lock& lock, Evoral::MusicalTime time)
+MidiStateTracker::resolve_notes (MidiSource& src, const MidiSource::Lock& lock, Evoral::Beats time)
 {
        DEBUG_TRACE (PBD::DEBUG::MidiTrackers, string_compose ("%1 MS-resolve notes @ %2 on = %3\n", this, time, _on));
 
@@ -181,7 +181,7 @@ MidiStateTracker::resolve_notes (MidiSource& src, const MidiSource::Lock& lock,
        for (int channel = 0; channel < 16; ++channel) {
                for (int note = 0; note < 128; ++note) {
                        while (_active_notes[note + 128 * channel]) {
-                               Evoral::MIDIEvent<Evoral::MusicalTime> ev ((MIDI_CMD_NOTE_OFF|channel), time, 3, 0, true);
+                               Evoral::MIDIEvent<Evoral::Beats> ev ((MIDI_CMD_NOTE_OFF|channel), time, 3, 0, true);
                                ev.set_type (MIDI_CMD_NOTE_OFF);
                                ev.set_channel (channel);
                                ev.set_note (note);
@@ -191,7 +191,7 @@ MidiStateTracker::resolve_notes (MidiSource& src, const MidiSource::Lock& lock,
                                                                                       this, (int) note, (int) channel, time));
                                _active_notes[note + 128 * channel]--;
                                /* don't stack events up at the same time */
-                               time += Evoral::MusicalTime::tick();
+                               time += Evoral::Beats::tick();
                        }
                }
        }
index 05635600d7b19b9cb3f5d1ec85acf0b85ae28f6c..71ffcc21e111319f34f747a5c09b9eeeecd5579d 100644 (file)
@@ -108,7 +108,7 @@ MidiStretch::run (boost::shared_ptr<Region> r, Progress*)
                new_model->append(ev, Evoral::next_event_id());
        }
 
-       new_model->end_write (Evoral::Sequence<Evoral::MusicalTime>::DeleteStuckNotes);
+       new_model->end_write (Evoral::Sequence<Evoral::Beats>::DeleteStuckNotes);
        new_model->set_edited (true);
 
        new_src->copy_interpolation_from (src);
index dc1976e9ffd49ef812cc185a393c2fb07802f732..66044690077d3ad3fbc517188881a573768adeca 100644 (file)
@@ -54,8 +54,8 @@ Quantize::~Quantize ()
 
 Command*
 Quantize::operator () (boost::shared_ptr<MidiModel> model,
-                       Evoral::MusicalTime position,
-                       std::vector<Evoral::Sequence<Evoral::MusicalTime>::Notes>& seqs)
+                       Evoral::Beats position,
+                       std::vector<Evoral::Sequence<Evoral::Beats>::Notes>& seqs)
 {
        /* TODO: Rewrite this to be precise with fixed point? */
 
@@ -69,7 +69,7 @@ Quantize::operator () (boost::shared_ptr<MidiModel> model,
        bool even;
        MidiModel::NoteDiffCommand* cmd = new MidiModel::NoteDiffCommand (model, "quantize");
 
-       for (std::vector<Evoral::Sequence<Evoral::MusicalTime>::Notes>::iterator s = seqs.begin(); s != seqs.end(); ++s) {
+       for (std::vector<Evoral::Sequence<Evoral::Beats>::Notes>::iterator s = seqs.begin(); s != seqs.end(); ++s) {
 
                even = false;
 
@@ -119,10 +119,10 @@ Quantize::operator () (boost::shared_ptr<MidiModel> model,
                                delta = new_end - (*i)->end_time().to_double();
 
                                if (fabs (delta) >= _threshold) {
-                                       Evoral::MusicalTime new_dur(new_end - new_start);
+                                       Evoral::Beats new_dur(new_end - new_start);
 
                                        if (!new_dur) {
-                                               new_dur = Evoral::MusicalTime(_end_grid);
+                                               new_dur = Evoral::Beats(_end_grid);
                                        }
 
                                        cmd->change ((*i), MidiModel::NoteDiffCommand::Length, new_dur);
index d1a82eb685cd5ed794f7af34fc92842b9b4be466..7f5e8059c936c624b5d9a91bc29421bb740216ea 100644 (file)
@@ -278,7 +278,7 @@ SMFSource::read_unlocked (const Lock&                    lock,
                /* Note that we add on the source start time (in session frames) here so that ev_frame_time
                   is in session frames.
                */
-               const framepos_t ev_frame_time = converter.to(Evoral::MusicalTime::ticks_at_rate(time, ppqn())) + source_start;
+               const framepos_t ev_frame_time = converter.to(Evoral::Beats::ticks_at_rate(time, ppqn())) + source_start;
 
                if (ev_frame_time < start + duration) {
                        destination.write (ev_frame_time, ev_type, ev_size, ev_buffer);
@@ -380,8 +380,8 @@ SMFSource::write_unlocked (const Lock&                 lock,
 
 /** Append an event with a timestamp in beats */
 void
-SMFSource::append_event_beats (const Glib::Threads::Mutex::Lock&         lock,
-                               const Evoral::Event<Evoral::MusicalTime>& ev)
+SMFSource::append_event_beats (const Glib::Threads::Mutex::Lock&   lock,
+                               const Evoral::Event<Evoral::Beats>& ev)
 {
        if (!_writing || ev.size() == 0)  {
                return;
@@ -391,9 +391,9 @@ SMFSource::append_event_beats (const Glib::Threads::Mutex::Lock&         lock,
                name().c_str(), ev.id(), ev.time(), ev.size());
               for (size_t i = 0; i < ev.size(); ++i) printf("%X ", ev.buffer()[i]); printf("\n");*/
 
-       Evoral::MusicalTime time = ev.time();
+       Evoral::Beats time = ev.time();
        if (time < _last_ev_time_beats) {
-               const Evoral::MusicalTime difference = _last_ev_time_beats - time;
+               const Evoral::Beats difference = _last_ev_time_beats - time;
                if (difference.to_double() / (double)ppqn() < 1.0) {
                        /* Close enough.  This problem occurs because Sequence is not
                           actually ordered due to fuzzy time comparison.  I'm pretty sure
@@ -423,8 +423,8 @@ SMFSource::append_event_beats (const Glib::Threads::Mutex::Lock&         lock,
 
        _length_beats = max(_length_beats, time);
 
-       const Evoral::MusicalTime delta_time_beats = time - _last_ev_time_beats;
-       const uint32_t            delta_time_ticks = delta_time_beats.to_ticks(ppqn());
+       const Evoral::Beats delta_time_beats = time - _last_ev_time_beats;
+       const uint32_t      delta_time_ticks = delta_time_beats.to_ticks(ppqn());
 
        Evoral::SMF::append_event_delta(delta_time_ticks, ev.size(), ev.buffer(), event_id);
        _last_ev_time_beats = time;
@@ -452,9 +452,9 @@ SMFSource::append_event_frames (const Glib::Threads::Mutex::Lock& lock,
                return;
        }
 
-       BeatsFramesConverter      converter(_session.tempo_map(), position);
-       const Evoral::MusicalTime ev_time_beats = converter.from(ev.time());
-       Evoral::event_id_t        event_id;
+       BeatsFramesConverter converter(_session.tempo_map(), position);
+       const Evoral::Beats  ev_time_beats = converter.from(ev.time());
+       Evoral::event_id_t   event_id;
 
        if (ev.id() < 0) {
                event_id  = Evoral::next_event_id();
@@ -463,18 +463,18 @@ SMFSource::append_event_frames (const Glib::Threads::Mutex::Lock& lock,
        }
 
        if (_model) {
-               const Evoral::Event<Evoral::MusicalTime> beat_ev (ev.event_type(),
-                                                                 ev_time_beats,
-                                                                 ev.size(),
-                                                                 const_cast<uint8_t*>(ev.buffer()));
+               const Evoral::Event<Evoral::Beats> beat_ev (ev.event_type(),
+                                                           ev_time_beats,
+                                                           ev.size(),
+                                                           const_cast<uint8_t*>(ev.buffer()));
                _model->append (beat_ev, event_id);
        }
 
        _length_beats = max(_length_beats, ev_time_beats);
 
-       const Evoral::MusicalTime last_time_beats  = converter.from (_last_ev_time_frames);
-       const Evoral::MusicalTime delta_time_beats = ev_time_beats - last_time_beats;
-       const uint32_t            delta_time_ticks = delta_time_beats.to_ticks(ppqn());
+       const Evoral::Beats last_time_beats  = converter.from (_last_ev_time_frames);
+       const Evoral::Beats delta_time_beats = ev_time_beats - last_time_beats;
+       const uint32_t      delta_time_ticks = delta_time_beats.to_ticks(ppqn());
 
        Evoral::SMF::append_event_delta(delta_time_ticks, ev.size(), ev.buffer(), event_id);
        _last_ev_time_frames = ev.time();
@@ -518,18 +518,18 @@ SMFSource::mark_streaming_midi_write_started (const Lock& lock, NoteMode mode)
 
        MidiSource::mark_streaming_midi_write_started (lock, mode);
        Evoral::SMF::begin_write ();
-       _last_ev_time_beats  = Evoral::MusicalTime();
+       _last_ev_time_beats  = Evoral::Beats();
        _last_ev_time_frames = 0;
 }
 
 void
 SMFSource::mark_streaming_write_completed (const Lock& lock)
 {
-       mark_midi_streaming_write_completed (lock, Evoral::Sequence<Evoral::MusicalTime>::DeleteStuckNotes);
+       mark_midi_streaming_write_completed (lock, Evoral::Sequence<Evoral::Beats>::DeleteStuckNotes);
 }
 
 void
-SMFSource::mark_midi_streaming_write_completed (const Lock& lm, Evoral::Sequence<Evoral::MusicalTime>::StuckNoteOption stuck_notes_option, Evoral::MusicalTime when)
+SMFSource::mark_midi_streaming_write_completed (const Lock& lm, Evoral::Sequence<Evoral::Beats>::StuckNoteOption stuck_notes_option, Evoral::Beats when)
 {
        MidiSource::mark_midi_streaming_write_completed (lm, stuck_notes_option, when);
 
@@ -587,8 +587,8 @@ SMFSource::safe_midi_file_extension (const string& file)
 }
 
 static bool compare_eventlist (
-       const std::pair< Evoral::Event<Evoral::MusicalTime>*, gint >& a,
-       const std::pair< Evoral::Event<Evoral::MusicalTime>*, gint >& b) {
+       const std::pair< Evoral::Event<Evoral::Beats>*, gint >& a,
+       const std::pair< Evoral::Event<Evoral::Beats>*, gint >& b) {
        return ( a.first->time() < b.first->time() );
 }
 
@@ -619,7 +619,7 @@ SMFSource::load_model (const Glib::Threads::Mutex::Lock& lock, bool force_reload
        Evoral::SMF::seek_to_start();
 
        uint64_t time = 0; /* in SMF ticks */
-       Evoral::Event<Evoral::MusicalTime> ev;
+       Evoral::Event<Evoral::Beats> ev;
 
        uint32_t scratch_size = 0; // keep track of scratch and minimize reallocs
 
@@ -631,7 +631,7 @@ SMFSource::load_model (const Glib::Threads::Mutex::Lock& lock, bool force_reload
        bool have_event_id;
 
        // TODO simplify event allocation
-       std::list< std::pair< Evoral::Event<Evoral::MusicalTime>*, gint > > eventlist;
+       std::list< std::pair< Evoral::Event<Evoral::Beats>*, gint > > eventlist;
 
        for (unsigned i = 1; i <= num_tracks(); ++i) {
                if (seek_to_track(i)) continue;
@@ -658,7 +658,7 @@ SMFSource::load_model (const Glib::Threads::Mutex::Lock& lock, bool force_reload
                                        event_id = Evoral::next_event_id();
                                }
                                const uint32_t            event_type = midi_parameter_type(buf[0]);
-                               const Evoral::MusicalTime event_time = Evoral::MusicalTime::ticks_at_rate(time, ppqn());
+                               const Evoral::Beats event_time = Evoral::Beats::ticks_at_rate(time, ppqn());
 #ifndef NDEBUG
                                std::string ss;
 
@@ -673,7 +673,7 @@ SMFSource::load_model (const Glib::Threads::Mutex::Lock& lock, bool force_reload
 #endif
 
                                eventlist.push_back(make_pair (
-                                                       new Evoral::Event<Evoral::MusicalTime> (
+                                                       new Evoral::Event<Evoral::Beats> (
                                                                event_type, event_time,
                                                                size, buf, true)
                                                        , event_id));
@@ -692,13 +692,13 @@ SMFSource::load_model (const Glib::Threads::Mutex::Lock& lock, bool force_reload
 
        eventlist.sort(compare_eventlist);
 
-       std::list< std::pair< Evoral::Event<Evoral::MusicalTime>*, gint > >::iterator it;
+       std::list< std::pair< Evoral::Event<Evoral::Beats>*, gint > >::iterator it;
        for (it=eventlist.begin(); it!=eventlist.end(); ++it) {
                _model->append (*it->first, it->second);
                delete it->first;
        }
 
-       _model->end_write (Evoral::Sequence<Evoral::MusicalTime>::ResolveStuckNotes, _length_beats);
+       _model->end_write (Evoral::Sequence<Evoral::Beats>::ResolveStuckNotes, _length_beats);
        _model->set_edited (false);
        invalidate(lock);
 
index 486cbb0643d24b07b3a3225177b0cac6b0861d4a..dfcc264547b33ecac7b1ab6bfbb18420dd60f203 100644 (file)
@@ -1841,7 +1841,7 @@ TempoMap::insert_time (framepos_t where, framecnt_t amount)
  *  pos can be -ve, if required.
  */
 framepos_t
-TempoMap::framepos_plus_beats (framepos_t pos, Evoral::MusicalTime beats) const
+TempoMap::framepos_plus_beats (framepos_t pos, Evoral::Beats beats) const
 {
        Glib::Threads::RWLock::ReaderLock lm (lock);
        Metrics::const_iterator next_tempo;
@@ -1891,11 +1891,11 @@ TempoMap::framepos_plus_beats (framepos_t pos, Evoral::MusicalTime beats) const
                framecnt_t distance_frames = (next_tempo == metrics.end() ? max_framepos : ((*next_tempo)->frame() - pos));
 
                /* Distance to the end in beats */
-               Evoral::MusicalTime distance_beats = Evoral::MusicalTime::ticks_at_rate(
+               Evoral::Beats distance_beats = Evoral::Beats::ticks_at_rate(
                        distance_frames, tempo->frames_per_beat (_frame_rate));
 
                /* Amount to subtract this time */
-               Evoral::MusicalTime const delta = min (distance_beats, beats);
+               Evoral::Beats const delta = min (distance_beats, beats);
 
                DEBUG_TRACE (DEBUG::TempoMath, string_compose ("\tdistance to %1 = %2 (%3 beats)\n",
                                                               (next_tempo == metrics.end() ? max_framepos : (*next_tempo)->frame()),
@@ -1933,7 +1933,7 @@ TempoMap::framepos_plus_beats (framepos_t pos, Evoral::MusicalTime beats) const
 
 /** Subtract some (fractional) beats from a frame position, and return the result in frames */
 framepos_t
-TempoMap::framepos_minus_beats (framepos_t pos, Evoral::MusicalTime beats) const
+TempoMap::framepos_minus_beats (framepos_t pos, Evoral::Beats beats) const
 {
        Glib::Threads::RWLock::ReaderLock lm (lock);
        Metrics::const_reverse_iterator prev_tempo;
@@ -2000,11 +2000,11 @@ TempoMap::framepos_minus_beats (framepos_t pos, Evoral::MusicalTime beats) const
                framecnt_t distance_frames = (pos - tempo->frame());
 
                /* Distance to the start in beats */
-               Evoral::MusicalTime distance_beats = Evoral::MusicalTime::ticks_at_rate(
+               Evoral::Beats distance_beats = Evoral::Beats::ticks_at_rate(
                        distance_frames, tempo->frames_per_beat (_frame_rate));
 
                /* Amount to subtract this time */
-               Evoral::MusicalTime const sub = min (distance_beats, beats);
+               Evoral::Beats const sub = min (distance_beats, beats);
 
                DEBUG_TRACE (DEBUG::TempoMath, string_compose ("\tdistance to %1 = %2 (%3 beats)\n",
                                                               tempo->frame(), distance_frames, distance_beats));
@@ -2037,7 +2037,7 @@ TempoMap::framepos_minus_beats (framepos_t pos, Evoral::MusicalTime beats) const
                        }
                } else {
                        pos -= llrint (beats.to_double() * tempo->frames_per_beat (_frame_rate));
-                       beats = Evoral::MusicalTime();
+                       beats = Evoral::Beats();
                }
        }
 
@@ -2183,7 +2183,7 @@ TempoMap::framepos_plus_bbt (framepos_t pos, BBT_Time op) const
 /** Count the number of beats that are equivalent to distance when going forward,
     starting at pos.
 */
-Evoral::MusicalTime
+Evoral::Beats
 TempoMap::framewalk_to_beats (framepos_t pos, framecnt_t distance) const
 {
        Glib::Threads::RWLock::ReaderLock lm (lock);
@@ -2218,7 +2218,7 @@ TempoMap::framewalk_to_beats (framepos_t pos, framecnt_t distance) const
                     string_compose ("frame %1 walk by %2 frames, start with tempo = %3 @ %4\n",
                                     pos, distance, *((const Tempo*)tempo), tempo->frame()));
        
-       Evoral::MusicalTime beats = Evoral::MusicalTime();
+       Evoral::Beats beats = Evoral::Beats();
 
        while (distance) {
 
@@ -2246,7 +2246,7 @@ TempoMap::framewalk_to_beats (framepos_t pos, framecnt_t distance) const
                pos += sub;
                distance -= sub;
                assert (tempo);
-               beats += Evoral::MusicalTime::ticks_at_rate(sub, tempo->frames_per_beat (_frame_rate));
+               beats += Evoral::Beats::ticks_at_rate(sub, tempo->frames_per_beat (_frame_rate));
 
                DEBUG_TRACE (DEBUG::TempoMath, string_compose ("now at %1, beats = %2 distance left %3\n",
                                                               pos, beats, distance));
index e4c48441466d64870710a2f9eaba95c3144b8a19..cc6341fb0b670b09ceed10e57dfd48456f29fa0c 100644 (file)
@@ -26,11 +26,11 @@ FrameposMinusBeatsTest::singleTempoTest ()
        map.add_tempo (tempo, BBT_Time (1, 1, 0));
 
        /* Subtract 1 beat from beat 3 of the first bar */
-       framepos_t r = map.framepos_minus_beats (frames_per_beat * 2, MusicalTime(1));
+       framepos_t r = map.framepos_minus_beats (frames_per_beat * 2, Beats(1));
        CPPUNIT_ASSERT_EQUAL (r, framepos_t (frames_per_beat * 1));
 
        /* Subtract 4 beats from 3 beats in, to go beyond zero */
-       r = map.framepos_minus_beats (frames_per_beat * 3, MusicalTime(4));
+       r = map.framepos_minus_beats (frames_per_beat * 3, Beats(4));
        CPPUNIT_ASSERT_EQUAL (r, framepos_t (- frames_per_beat));
 }
 
@@ -70,15 +70,15 @@ FrameposMinusBeatsTest::doubleTempoTest ()
        /* Now some tests */
 
        /* Subtract 1 beat from 1|2 */
-       framepos_t r = map.framepos_minus_beats (24e3, MusicalTime(1));
+       framepos_t r = map.framepos_minus_beats (24e3, Beats(1));
        CPPUNIT_ASSERT_EQUAL (r, framepos_t (0));
 
        /* Subtract 2 beats from 4|2 (over the tempo change) */
-       r = map.framepos_minus_beats (288e3 + 12e3, MusicalTime(2));
+       r = map.framepos_minus_beats (288e3 + 12e3, Beats(2));
        CPPUNIT_ASSERT_EQUAL (r, framepos_t (288e3 - 24e3));
 
        /* Subtract 2.5 beats from 4|2 (over the tempo change) */
-       r = map.framepos_minus_beats (288e3 + 12e3, MusicalTime(2.5));
+       r = map.framepos_minus_beats (288e3 + 12e3, Beats(2.5));
        CPPUNIT_ASSERT_EQUAL (r, framepos_t (288e3 - 24e3 - 12e3));
 }
 
@@ -124,15 +124,15 @@ FrameposMinusBeatsTest::doubleTempoWithMeterTest ()
        /* Now some tests */
 
        /* Subtract 1 beat from 1|2 */
-       framepos_t r = map.framepos_minus_beats (24e3, MusicalTime(1));
+       framepos_t r = map.framepos_minus_beats (24e3, Beats(1));
        CPPUNIT_ASSERT_EQUAL (r, framepos_t (0));
 
        /* Subtract 2 beats from 4|2 (over the tempo change) */
-       r = map.framepos_minus_beats (288e3 + 12e3, MusicalTime(2));
+       r = map.framepos_minus_beats (288e3 + 12e3, Beats(2));
        CPPUNIT_ASSERT_EQUAL (r, framepos_t (288e3 - 24e3));
 
        /* Subtract 2.5 beats from 4|2 (over the tempo change) */
-       r = map.framepos_minus_beats (288e3 + 12e3, MusicalTime(2.5));
+       r = map.framepos_minus_beats (288e3 + 12e3, Beats(2.5));
        CPPUNIT_ASSERT_EQUAL (r, framepos_t (288e3 - 24e3 - 12e3));
 }
 
index abe1310f621b26c8573e80ec7e46c114daf7bf3f..efc57c58724261ddd7968920189f0a244c43e84d 100644 (file)
@@ -25,11 +25,11 @@ FrameposPlusBeatsTest::singleTempoTest ()
        map.add_tempo (tempo, BBT_Time (1, 1, 0));
 
        /* Add 1 beat to beat 3 of the first bar */
-       framepos_t r = map.framepos_plus_beats (frames_per_beat * 2, Evoral::MusicalTime(1));
+       framepos_t r = map.framepos_plus_beats (frames_per_beat * 2, Evoral::Beats(1));
        CPPUNIT_ASSERT_EQUAL (framepos_t (frames_per_beat * 3), r);
 
        /* Add 4 beats to a -ve frame of 1 beat before zero */
-       r = map.framepos_plus_beats (-frames_per_beat * 1, Evoral::MusicalTime(4));
+       r = map.framepos_plus_beats (-frames_per_beat * 1, Evoral::Beats(4));
        CPPUNIT_ASSERT_EQUAL (framepos_t (frames_per_beat * 3), r);
 }
 
@@ -69,15 +69,15 @@ FrameposPlusBeatsTest::doubleTempoTest ()
        /* Now some tests */
 
        /* Add 1 beat to 1|2 */
-       framepos_t r = map.framepos_plus_beats (24e3, Evoral::MusicalTime(1));
+       framepos_t r = map.framepos_plus_beats (24e3, Evoral::Beats(1));
        CPPUNIT_ASSERT_EQUAL (framepos_t (48e3), r);
 
        /* Add 2 beats to 3|4 (over the tempo change) */
-       r = map.framepos_plus_beats (264e3, Evoral::MusicalTime(2));
+       r = map.framepos_plus_beats (264e3, Evoral::Beats(2));
        CPPUNIT_ASSERT_EQUAL (framepos_t (264e3 + 24e3 + 12e3), r);
 
        /* Add 2.5 beats to 3|3|960 (over the tempo change) */
-       r = map.framepos_plus_beats (264e3 - 12e3, Evoral::MusicalTime(2.5));
+       r = map.framepos_plus_beats (264e3 - 12e3, Evoral::Beats(2.5));
        CPPUNIT_ASSERT_EQUAL (framepos_t (264e3 + 24e3 + 12e3), r);
 }
 
@@ -123,15 +123,15 @@ FrameposPlusBeatsTest::doubleTempoWithMeterTest ()
        /* Now some tests */
 
        /* Add 1 beat to 1|2 */
-       framepos_t r = map.framepos_plus_beats (24e3, Evoral::MusicalTime(1));
+       framepos_t r = map.framepos_plus_beats (24e3, Evoral::Beats(1));
        CPPUNIT_ASSERT_EQUAL (framepos_t (48e3), r);
 
        /* Add 2 beats to 3|4 (over the tempo change) */
-       r = map.framepos_plus_beats (264e3, Evoral::MusicalTime(2));
+       r = map.framepos_plus_beats (264e3, Evoral::Beats(2));
        CPPUNIT_ASSERT_EQUAL (framepos_t (264e3 + 24e3 + 12e3), r);
 
        /* Add 2.5 beats to 3|3|960 (over the tempo change) */
-       r = map.framepos_plus_beats (264e3 - 12e3, Evoral::MusicalTime(2.5));
+       r = map.framepos_plus_beats (264e3 - 12e3, Evoral::Beats(2.5));
        CPPUNIT_ASSERT_EQUAL (framepos_t (264e3 + 24e3 + 12e3), r);
 }
 
index 3b4f53c8605b5aa0b9f0d82a810a20e5c12f5e0d..9f029829deb4e4cd3044a33fadaeaeeb0cb605dd 100644 (file)
@@ -121,7 +121,7 @@ Transform::Operation::eval(Context& ctx) const
 
 Command*
 Transform::operator()(boost::shared_ptr<MidiModel> model,
-                      Evoral::MusicalTime          position,
+                      Evoral::Beats                position,
                       std::vector<Notes>&          seqs)
 {
        typedef MidiModel::NoteDiffCommand Command;
diff --git a/libs/evoral/evoral/Beats.hpp b/libs/evoral/evoral/Beats.hpp
new file mode 100644 (file)
index 0000000..e0277c4
--- /dev/null
@@ -0,0 +1,247 @@
+/* This file is part of Evoral.
+ * Copyright (C) 2008-2015 David Robillard <http://drobilla.net>
+ * Copyright (C) 2000-2008 Paul Davis
+ *
+ * Evoral is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU General Public License as published by the Free Software
+ * Foundation; either version 2 of the License, or (at your option) any later
+ * version.
+ *
+ * Evoral is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef EVORAL_BEATS_HPP
+#define EVORAL_BEATS_HPP
+
+#include <float.h>
+#include <math.h>
+#include <stdint.h>
+
+#include <iostream>
+#include <limits>
+
+#include "evoral/visibility.h"
+
+namespace Evoral {
+
+/** Musical time in beats. */
+class /*LIBEVORAL_API*/ Beats {
+public:
+       LIBEVORAL_API static const double PPQN;
+
+       Beats() : _time(0.0) {}
+
+       /** Create from a real number of beats. */
+       explicit Beats(double time) : _time(time) {}
+
+       /** Create from an integer number of beats. */
+       static Beats beats(int32_t beats) {
+               return Beats((double)beats);
+       }
+
+       /** Create from ticks at the standard PPQN. */
+       static Beats ticks(uint32_t ticks) {
+               return Beats(ticks / PPQN);
+       }
+
+       /** Create from ticks at a given rate.
+        *
+        * Note this can also be used to create from frames by setting ppqn to the
+        * number of samples per beat.
+        */
+       static Beats ticks_at_rate(uint64_t ticks, uint32_t ppqn) {
+               return Beats((double)ticks / (double)ppqn);
+       }
+
+       Beats& operator=(const Beats& other) {
+               _time = other._time;
+               return *this;
+       }
+
+       Beats round_up_to_beat() const {
+               return Evoral::Beats(ceil(_time));
+       }
+
+       Beats round_down_to_beat() const {
+               return Evoral::Beats(floor(_time));
+       }
+
+       Beats snap_to(const Evoral::Beats& snap) const {
+               return Beats(ceil(_time / snap._time) * snap._time);
+       }
+
+       inline bool operator==(const Beats& b) const {
+               /* Acceptable tolerance is 1 tick. */
+               return fabs(_time - b._time) <= (1.0 / PPQN);
+       }
+
+       inline bool operator==(double t) const {
+               /* Acceptable tolerance is 1 tick. */
+               return fabs(_time - t) <= (1.0 / PPQN);
+       }
+
+       inline bool operator==(int beats) const {
+               /* Acceptable tolerance is 1 tick. */
+               return fabs(_time - beats) <= (1.0 / PPQN);
+       }
+
+       inline bool operator!=(const Beats& b) const {
+               return !operator==(b);
+       }
+
+       inline bool operator<(const Beats& b) const {
+               /* Acceptable tolerance is 1 tick. */
+               if (fabs(_time - b._time) <= (1.0 / PPQN)) {
+                       return false;  /* Effectively identical. */
+               } else {
+                       return _time < b._time;
+               }
+       }
+
+       inline bool operator<=(const Beats& b) const {
+               return operator==(b) || operator<(b);
+       }
+
+       inline bool operator>(const Beats& b) const {
+               /* Acceptable tolerance is 1 tick. */
+               if (fabs(_time - b._time) <= (1.0 / PPQN)) {
+                       return false;  /* Effectively identical. */
+               } else {
+                       return _time > b._time;
+               }
+       }
+
+       inline bool operator>=(const Beats& b) const {
+               return operator==(b) || operator>(b);
+       }
+
+       inline bool operator<(double b) const {
+               /* Acceptable tolerance is 1 tick. */
+               if (fabs(_time - b) <= (1.0 / PPQN)) {
+                       return false;  /* Effectively identical. */
+               } else {
+                       return _time < b;
+               }
+       }
+
+       inline bool operator<=(double b) const {
+               return operator==(b) || operator<(b);
+       }
+
+       inline bool operator>(double b) const {
+               /* Acceptable tolerance is 1 tick. */
+               if (fabs(_time - b) <= (1.0 / PPQN)) {
+                       return false;  /* Effectively identical. */
+               } else {
+                       return _time > b;
+               }
+       }
+
+       inline bool operator>=(double b) const {
+               return operator==(b) || operator>(b);
+       }
+
+       Beats operator+(const Beats& b) const {
+               return Beats(_time + b._time);
+       }
+
+       Beats operator-(const Beats& b) const {
+               return Beats(_time - b._time);
+       }
+
+       Beats operator+(double d) const {
+               return Beats(_time + d);
+       }
+
+       Beats operator-(double d) const {
+               return Beats(_time - d);
+       }
+
+       Beats operator-() const {
+               return Beats(-_time);
+       }
+
+       template<typename Number>
+       Beats operator*(Number factor) const {
+               return Beats(_time * factor);
+       }
+
+       Beats& operator+=(const Beats& b) {
+               _time += b._time;
+               return *this;
+       }
+
+       Beats& operator-=(const Beats& b) {
+               _time -= b._time;
+               return *this;
+       }
+
+       double   to_double()              const { return _time; }
+       uint64_t to_ticks()               const { return lrint(_time * PPQN); }
+       uint64_t to_ticks(uint32_t ppqn)  const { return lrint(_time * ppqn); }
+
+       uint32_t get_beats() const { return floor(_time); }
+       uint32_t get_ticks() const { return (uint32_t)lrint(fmod(_time, 1.0) * PPQN); }
+
+       bool operator!() const { return _time == 0; }
+
+       static Beats min()  { return Beats(DBL_MIN); }
+       static Beats max()  { return Beats(DBL_MAX); }
+       static Beats tick() { return Beats(1.0 / PPQN); }
+
+private:
+       double _time;
+};
+
+extern LIBEVORAL_API const Beats MaxBeats;
+extern LIBEVORAL_API const Beats MinBeats;
+
+/*
+  TIL, several horrible hours later, that sometimes the compiler looks in the
+  namespace of a type (Evoral::Beats in this case) for an operator, and
+  does *NOT* look in the global namespace.
+
+  C++ is proof that hell exists and we are living in it.  In any case, move
+  these to the global namespace and PBD::Property's loopy
+  virtual-method-in-a-template will bite you.
+*/
+
+inline std::ostream&
+operator<<(std::ostream& os, const Beats& t)
+{
+       os << t.to_double();
+       return os;
+}
+
+inline std::istream&
+operator>>(std::istream& is, Beats& t)
+{
+       double beats;
+       is >> beats;
+       t = Beats(beats);
+       return is;
+}
+
+} // namespace Evoral
+
+namespace PBD {
+       namespace DEBUG {
+               LIBEVORAL_API extern uint64_t Beats;
+       }
+}
+
+namespace std {
+       template<>
+       struct numeric_limits<Evoral::Beats> {
+               static Evoral::Beats min() { return Evoral::Beats::min(); }
+               static Evoral::Beats max() { return Evoral::Beats::max(); }
+       };
+}
+
+#endif // EVORAL_BEATS_HPP
index 14ba36acdf2069cb712fa2ece75c6a75b241cbdb..1951fb8ba68b40983032eca90c66529e2fa6d08b 100644 (file)
@@ -27,6 +27,7 @@
 #include <limits>
 #include <list>
 
+#include "evoral/Beats.hpp"
 #include "evoral/visibility.h"
 
 #include "pbd/debug.h"
@@ -38,207 +39,9 @@ namespace Evoral {
 */
 typedef int32_t event_id_t;
 
-/** Musical time: beats relative to some defined origin */
-class /*LIBEVORAL_API*/ MusicalTime {
-public:
-       LIBEVORAL_API static const double PPQN;
-
-       MusicalTime() : _time(0.0) {}
-
-       /** Create from a real number of beats. */
-       explicit MusicalTime(double time) : _time(time) {}
-
-       /** Create from an integer number of beats. */
-       static MusicalTime beats(int32_t beats) {
-               return MusicalTime((double)beats);
-       }
-
-       /** Create from ticks at the standard PPQN. */
-       static MusicalTime ticks(uint32_t ticks) {
-               return MusicalTime(ticks / PPQN);
-       }
-
-       /** Create from ticks at a given rate.
-        *
-        * Note this can also be used to create from frames by setting ppqn to the
-        * number of samples per beat.
-        */
-       static MusicalTime ticks_at_rate(uint64_t ticks, uint32_t ppqn) {
-               return MusicalTime((double)ticks / (double)ppqn);
-       }
-
-       MusicalTime& operator=(const MusicalTime& other) {
-               _time = other._time;
-               return *this;
-       }
-
-       MusicalTime round_up_to_beat() const {
-               return Evoral::MusicalTime(ceil(_time));
-       }
-
-       MusicalTime round_down_to_beat() const {
-               return Evoral::MusicalTime(floor(_time));
-       }
-
-       MusicalTime snap_to(const Evoral::MusicalTime& snap) const {
-               return MusicalTime(ceil(_time / snap._time) * snap._time);
-       }
-
-       inline bool operator==(const MusicalTime& b) const {
-               /* Acceptable tolerance is 1 tick. */
-               return fabs(_time - b._time) <= (1.0 / PPQN);
-       }
-
-       inline bool operator==(double t) const {
-               /* Acceptable tolerance is 1 tick. */
-               return fabs(_time - t) <= (1.0 / PPQN);
-       }
-
-       inline bool operator==(int beats) const {
-               /* Acceptable tolerance is 1 tick. */
-               return fabs(_time - beats) <= (1.0 / PPQN);
-       }
-
-       inline bool operator!=(const MusicalTime& b) const {
-               return !operator==(b);
-       }
-
-       inline bool operator<(const MusicalTime& b) const {
-               /* Acceptable tolerance is 1 tick. */
-               if (fabs(_time - b._time) <= (1.0 / PPQN)) {
-                       return false;  /* Effectively identical. */
-               } else {
-                       return _time < b._time;
-               }
-       }
-
-       inline bool operator<=(const MusicalTime& b) const {
-               return operator==(b) || operator<(b);
-       }
-
-       inline bool operator>(const MusicalTime& b) const {
-               /* Acceptable tolerance is 1 tick. */
-               if (fabs(_time - b._time) <= (1.0 / PPQN)) {
-                       return false;  /* Effectively identical. */
-               } else {
-                       return _time > b._time;
-               }
-       }
-
-       inline bool operator>=(const MusicalTime& b) const {
-               return operator==(b) || operator>(b);
-       }
-
-       inline bool operator<(double b) const {
-               /* Acceptable tolerance is 1 tick. */
-               if (fabs(_time - b) <= (1.0 / PPQN)) {
-                       return false;  /* Effectively identical. */
-               } else {
-                       return _time < b;
-               }
-       }
-
-       inline bool operator<=(double b) const {
-               return operator==(b) || operator<(b);
-       }
-
-       inline bool operator>(double b) const {
-               /* Acceptable tolerance is 1 tick. */
-               if (fabs(_time - b) <= (1.0 / PPQN)) {
-                       return false;  /* Effectively identical. */
-               } else {
-                       return _time > b;
-               }
-       }
-
-       inline bool operator>=(double b) const {
-               return operator==(b) || operator>(b);
-       }
-
-       MusicalTime operator+(const MusicalTime& b) const {
-               return MusicalTime(_time + b._time);
-       }
-
-       MusicalTime operator-(const MusicalTime& b) const {
-               return MusicalTime(_time - b._time);
-       }
-
-       MusicalTime operator+(double d) const {
-               return MusicalTime(_time + d);
-       }
-
-       MusicalTime operator-(double d) const {
-               return MusicalTime(_time - d);
-       }
-
-       MusicalTime operator-() const {
-               return MusicalTime(-_time);
-       }
-
-       template<typename Number>
-       MusicalTime operator*(Number factor) const {
-               return MusicalTime(_time * factor);
-       }
-
-       MusicalTime& operator+=(const MusicalTime& b) {
-               _time += b._time;
-               return *this;
-       }
-
-       MusicalTime& operator-=(const MusicalTime& b) {
-               _time -= b._time;
-               return *this;
-       }
-
-       double   to_double()              const { return _time; }
-       uint64_t to_ticks()               const { return lrint(_time * PPQN); }
-       uint64_t to_ticks(uint32_t ppqn)  const { return lrint(_time * ppqn); }
-
-       uint32_t get_beats() const { return floor(_time); }
-       uint32_t get_ticks() const { return (uint32_t)lrint(fmod(_time, 1.0) * PPQN); }
-
-       bool operator!() const { return _time == 0; }
-
-       static MusicalTime min()  { return MusicalTime(DBL_MIN); }
-       static MusicalTime max()  { return MusicalTime(DBL_MAX); }
-       static MusicalTime tick() { return MusicalTime(1.0 / PPQN); }
-
-private:
-       double _time;
-};
-
-extern LIBEVORAL_API const MusicalTime MaxMusicalTime;
-extern LIBEVORAL_API const MusicalTime MinMusicalTime;
-
 /** Type of an event (opaque, mapped by application) */
 typedef uint32_t EventType;
 
-/*
-  TIL, several horrible hours later, that sometimes the compiler looks in the
-  namespace of a type (Evoral::MusicalTime in this case) for an operator, and
-  does *NOT* look in the global namespace.
-
-  C++ is proof that hell exists and we are living in it.  In any case, move
-  these to the global namespace and PBD::Property's loopy
-  virtual-method-in-a-template will bite you.
-*/
-
-inline std::ostream&
-operator<<(std::ostream& os, const MusicalTime& t)
-{
-       os << t.to_double();
-       return os;
-}
-
-inline std::istream&
-operator>>(std::istream& is, MusicalTime& t)
-{
-       double beats;
-       is >> beats;
-       t = MusicalTime(beats);
-       return is;
-}
-
 } // namespace Evoral
 
 namespace PBD {
@@ -246,16 +49,7 @@ namespace PBD {
                LIBEVORAL_API extern uint64_t Sequence;
                LIBEVORAL_API extern uint64_t Note;
                LIBEVORAL_API extern uint64_t ControlList;
-               LIBEVORAL_API extern uint64_t MusicalTime;
        }
 }
 
-namespace std {
-       template<>
-       struct numeric_limits<Evoral::MusicalTime> {
-               static Evoral::MusicalTime min() { return Evoral::MusicalTime::min(); }
-               static Evoral::MusicalTime max() { return Evoral::MusicalTime::max(); }
-       };
-}
-
 #endif // EVORAL_TYPES_HPP
index b874c37de42679c7fd17bc86f39c3c7171484100..66e45ab2ad706bfa5b31752f8aa903f2a1a0a842 100644 (file)
@@ -155,7 +155,7 @@ Event<Timestamp>::set_original_time (Timestamp t)
        
 #endif // EVORAL_EVENT_ALLOC
 
-template class Event<Evoral::MusicalTime>;
+template class Event<Evoral::Beats>;
 template class Event<double>;
 template class Event<int64_t>;
 
index 66a97f73e48b53ea54670b71b6c265602f7c2525..4985f66cf43f31be72570ab18f44226b3127ea95 100644 (file)
@@ -102,7 +102,7 @@ MIDIEvent<Time>::to_xml() const
 
 #endif // EVORAL_MIDI_XML
 
-template class MIDIEvent<Evoral::MusicalTime>;
+template class MIDIEvent<Evoral::Beats>;
 
 } // namespace Evoral
 
index 93c0a9047869a52c5049d3742e286bd427ba726c..7e4f58d73fb2ca929aebcadce1d54fcb93eea532 100644 (file)
@@ -108,7 +108,7 @@ Note<Time>::operator=(const Note<Time>& other)
        return *this;
 }
 
-template class Note<Evoral::MusicalTime>;
+template class Note<Evoral::Beats>;
 
 } // namespace Evoral
 
index 0cee749c9c56698e4b296fa75b5d7c9f7b5ccf73..eef61e332bc5500d2b557e50493c43523a747b77 100644 (file)
@@ -364,6 +364,6 @@ SMF<Time>::write_var_len(uint32_t value)
        return ret;
 }
 
-template class SMF<Evoral::MusicalTime>;
+template class SMF<Evoral::Beats>;
 
 } // namespace Evoral
index a77e3c94be5c3d76ffefdd35244b176df9d92fc6..10b7e31b79e0cab882f3fc7ae57933963c73bdb2 100644 (file)
@@ -1404,6 +1404,6 @@ Sequence<Time>::dump (ostream& str) const
        str << "--- dump\n";
 }
 
-template class Sequence<Evoral::MusicalTime>;
+template class Sequence<Evoral::Beats>;
 
 } // namespace Evoral
index 0d39087e7c22404404d35d4cd09307e8a924eef8..e1e4b8231fbd07248494cfe6c343104ef99f8020 100644 (file)
@@ -45,6 +45,6 @@ IdentityConverter<A,B>::from(B b) const
 
 template class IdentityConverter<double, framepos_t>;
 template class TimeConverter<double, framepos_t>;
-template class TimeConverter<Evoral::MusicalTime, framepos_t>;
+template class TimeConverter<Evoral::Beats, framepos_t>;
 
 } // namespace Evoral
index 80801dcdea08e7f180fb1dbd1ba8e32bdc73bfc4..50c2975d3d9b7446e41b78a5bb0d426271ef05fe 100644 (file)
@@ -22,8 +22,8 @@
 
 namespace Evoral {
 
-const double      MusicalTime::PPQN = 1920.0;
-const MusicalTime MaxMusicalTime    = Evoral::MusicalTime(DBL_MAX);
-const MusicalTime MinMusicalTime    = Evoral::MusicalTime(DBL_MIN);
+const double Beats::PPQN = 1920.0;
+const Beats  MaxBeats    = Evoral::Beats(DBL_MAX);
+const Beats  MinBeats    = Evoral::Beats(DBL_MIN);
 
 }
index 9bbe0219473c40ca4fb928ccc15db4c380d275c9..d42ee26dff2f707187147299fd87597c19454fe8 100644 (file)
@@ -45,25 +45,25 @@ SMFTest::takeFiveTest ()
        smf.seek_to_start();
 
        uint64_t time = 0; /* in SMF ticks */
-       Evoral::Event<Evoral::MusicalTime> ev;
+       Evoral::Event<Evoral::Beats> ev;
 
        uint32_t delta_t = 0;
        uint32_t size    = 0;
        uint8_t* buf     = NULL;
        int ret;
        while ((ret = smf.read_event(&delta_t, &size, &buf)) >= 0) {
-               ev.set(buf, size, Evoral::MusicalTime());
+               ev.set(buf, size, Evoral::Beats());
                time += delta_t;
 
                if (ret > 0) { // didn't skip (meta) event
                        //cerr << "read smf event type " << hex << int(buf[0]) << endl;
-                       ev.set_time(Evoral::MusicalTime::ticks_at_rate(time, smf.ppqn()));
+                       ev.set_time(Evoral::Beats::ticks_at_rate(time, smf.ppqn()));
                        ev.set_event_type(type_map->midi_event_type(buf[0]));
                        seq->append(ev, next_event_id ());
                }
        }
 
        seq->end_write (Sequence<Time>::Relax,
-                       Evoral::MusicalTime::ticks_at_rate(time, smf.ppqn()));
+                       Evoral::Beats::ticks_at_rate(time, smf.ppqn()));
        CPPUNIT_ASSERT(!seq->empty());
 }
index 6e42b6f7b30e7f07876398ff57374a0ce374c0ff..94172c62c89b4ffc861a1fe708dcb0c7279eac5a 100644 (file)
@@ -57,7 +57,7 @@ class SMFTest : public CppUnit::TestFixture
        CPPUNIT_TEST_SUITE_END();
 
 public:
-       typedef Evoral::MusicalTime Time;
+       typedef Evoral::Beats Time;
 
        void setUp() {
                type_map = new DummyTypeMap();
index f6a8363f4d3c882cd054883b24378e91a03b6152..39afcd30952df543c31cf8dea23659b8fb37433b 100644 (file)
@@ -75,7 +75,7 @@ SequenceTest::iteratorSeekTest ()
        }
 
        bool on = true;
-       for (Sequence<Time>::const_iterator i = seq->begin(Evoral::MusicalTime(600)); i != seq->end(); ++i) {
+       for (Sequence<Time>::const_iterator i = seq->begin(Evoral::Beats(600)); i != seq->end(); ++i) {
                if (on) {
                        CPPUNIT_ASSERT(((const MIDIEvent<Time>&)*i).is_note_on());
                        CPPUNIT_ASSERT_EQUAL(i->time(), Time((num_notes + 6) * 100));
index d8e04061002b3aba204e5f1cdd60ef407244de87..da1991efc8e2c95c4d289886b1e67df096db4458 100644 (file)
@@ -113,7 +113,7 @@ class SequenceTest : public CppUnit::TestFixture
        CPPUNIT_TEST_SUITE_END ();
 
 public:
-       typedef MusicalTime Time;
+       typedef Beats Time;
        typedef std::vector< boost::shared_ptr< Note<Time> > > Notes;
 
        void setUp () {
@@ -125,7 +125,7 @@ public:
                for (int i = 0; i < 12; i++) {
                        test_notes.push_back(
                                boost::shared_ptr<Note<Time> >(
-                                       new Note<Time>(0, MusicalTime(i * 100), MusicalTime(100), 64 + i, 64)));
+                                       new Note<Time>(0, Beats(i * 100), Beats(100), 64 + i, 64)));
                }
        }
 
index 55e7ac1898531a7c48c6f6134d7371ee09c2187e..e1b3007bd3fe06cc1ce177d8384280a82614a09e 100644 (file)
@@ -97,7 +97,7 @@ Patch::get_state (void)
        node->add_property("Name",   _name);
 
        /*
-       typedef std::list< boost::shared_ptr< Evoral::MIDIEvent<Evoral::MusicalTime> > > PatchMidiCommands;
+       typedef std::list< boost::shared_ptr< Evoral::MIDIEvent<Evoral::Beats> > > PatchMidiCommands;
        XMLNode* commands = node->add_child("PatchMIDICommands");
        for (PatchMidiCommands::const_iterator event = _patch_midi_commands.begin();
            event != _patch_midi_commands.end();