Lua bindings for TempoMap::get_grid
This commit is contained in:
parent
fd6d88583f
commit
72522dd05d
@ -794,6 +794,24 @@ LuaBindings::common (lua_State* L)
|
|||||||
.addCast<Temporal::Point> ("to_point")
|
.addCast<Temporal::Point> ("to_point")
|
||||||
.endClass ()
|
.endClass ()
|
||||||
|
|
||||||
|
.beginClass <Temporal::TempoMetric> ("TempoMetric")
|
||||||
|
.addFunction ("tempo", &Temporal::TempoMetric::tempo)
|
||||||
|
.addFunction ("meter", &Temporal::TempoMetric::meter)
|
||||||
|
.addFunction ("sample_at", &Temporal::TempoMetric::sample_at)
|
||||||
|
.addFunction ("quarters_at", &Temporal::TempoMetric::quarters_at)
|
||||||
|
.addFunction ("note_type", &Temporal::TempoMetric::note_type)
|
||||||
|
.addFunction ("note_value", &Temporal::TempoMetric::note_value)
|
||||||
|
.addFunction ("divisions_per_bar", &Temporal::TempoMetric::divisions_per_bar)
|
||||||
|
.endClass ()
|
||||||
|
|
||||||
|
.deriveClass <Temporal::TempoMapPoint, Temporal::Point> ("TempoMapPoint")
|
||||||
|
.addCast<Temporal::TempoMetric> ("to_tempometric")
|
||||||
|
.addFunction ("time", &Temporal::TempoMapPoint::time)
|
||||||
|
.endClass ()
|
||||||
|
|
||||||
|
.beginStdList <Temporal::TempoMapPoint> ("TempoMapPoints")
|
||||||
|
.endClass ()
|
||||||
|
|
||||||
.beginWSPtrClass <Temporal::TempoMap> ("TempoMap")
|
.beginWSPtrClass <Temporal::TempoMap> ("TempoMap")
|
||||||
/* we cannot use ::fetch or ::use because LuaBridge cannot overload
|
/* we cannot use ::fetch or ::use because LuaBridge cannot overload
|
||||||
* shared_ptr<const T> and shared_ptr<T> in the same class.
|
* shared_ptr<const T> and shared_ptr<T> in the same class.
|
||||||
@ -841,6 +859,9 @@ LuaBindings::common (lua_State* L)
|
|||||||
.addFunction ("convert_duration", &Temporal::TempoMap::convert_duration)
|
.addFunction ("convert_duration", &Temporal::TempoMap::convert_duration)
|
||||||
.addFunction ("bbt_walk", &Temporal::TempoMap::bbt_walk)
|
.addFunction ("bbt_walk", &Temporal::TempoMap::bbt_walk)
|
||||||
.addFunction ("count_bars", &Temporal::TempoMap::count_bars)
|
.addFunction ("count_bars", &Temporal::TempoMap::count_bars)
|
||||||
|
#ifdef WITH_SUPERCLOCK_BINDINGS
|
||||||
|
.addRefFunction ("get_grid", &Temporal::TempoMap::get_grid)
|
||||||
|
#endif
|
||||||
|
|
||||||
.addFunction ("quarters_per_minute_at", &Temporal::TempoMap::quarters_per_minute_at)
|
.addFunction ("quarters_per_minute_at", &Temporal::TempoMap::quarters_per_minute_at)
|
||||||
.addFunction ("round_to_bar", &Temporal::TempoMap::round_to_bar)
|
.addFunction ("round_to_bar", &Temporal::TempoMap::round_to_bar)
|
||||||
|
@ -27,4 +27,17 @@ function factory () return function ()
|
|||||||
Temporal.TempoMap.write_copy()
|
Temporal.TempoMap.write_copy()
|
||||||
Temporal.TempoMap.abort_update()
|
Temporal.TempoMap.abort_update()
|
||||||
|
|
||||||
|
-- get grid -- currently only available in debug-builds
|
||||||
|
-- Temporal.superclock_ticks_per_second = 282240000
|
||||||
|
tm = Temporal.TempoMap.read ()
|
||||||
|
local grid = tm:get_grid (Temporal.TempoMapPoints(), 0, Temporal.superclock_ticks_per_second (), 0, 1)
|
||||||
|
for t in grid[1]:iter () do
|
||||||
|
-- each t is-a TempoMapPoint
|
||||||
|
local metric = t:to_tempometric ()
|
||||||
|
local tempo_point = metric:tempo ()
|
||||||
|
local meter_point = metric:meter()
|
||||||
|
print (t:time(), tempo_point:to_tempo():quarter_notes_per_minute(), meter_point:note_value())
|
||||||
|
end
|
||||||
|
tm = nil
|
||||||
|
|
||||||
end end
|
end end
|
||||||
|
Loading…
Reference in New Issue
Block a user