@local_tempo()
    @local_tempo(exe)

    @local_position()
    @local_position(exe)

    @logical_date()

    @seconds_in_beats_from_now(d:numeric)
    @seconds_in_beats_from_now(exe, d:numeric)

    @beats_in_seconds_from_now(d:numeric)
    @beats_in_seconds_from_now(exe, d:numeric)

These functions give information about the local timing in the current scope (for the version without the exe argument) or in the temporal scope of the exe given in the arguments (that is, local timing of a given execution of a compound action denoted by its exe).

These are impur functions: the retourned value depends of the scope of execution.

Notice that the value of the variables $RT_TEMPO and $RNOW corresponds to the value of [@local_tempo()] and @local_beat_position in the default top-level scope (which is the musician temporal scope).

@logical_date returns a logical date, a positive integer, which roughly corresponds to the number of logical instants handled so far. A logical instant correspond to the handling of events and action that occur simultaneously. This information is sometimes more precise than the date given by the $NOW variable: two events may be distinguished by their logical date but can share the same (wall clock) datation. Notice that two different events may still share the same logical date. Computations that share the same logical date are executed sequentially and atomically from the point of view of the access of variables.

Function @seconds_in_beats_from_now(d) converts in beat of the current temporal scope the duration d expressed in seconds.

Function @beats_in_seconds_from_now(d) converts in second the duration dexpressed in the relative time of the current temporal scope.

The version with an addition exe argument refer to the temporal scope of the exe argument.

Example: the execution of the following code

@fun_def pr($id)
{
  print \
      $id "now=" $NOW \
      "rnow=" $RNOW "lbp=" (@local_beat_position()) \
      "rt_tempo=" $RT_TEMPO "lt=" (@local_tempo())
}

Group G60
{
    @pr("a")
  1 @pr("b")
  1 @pr("c")
}


Group G120 @tempo := 120
{
    @pr("aa")
  1 @pr("bb")
  1 @pr("cc")
}

produces the trace:

    a  now= 0.0 rnow= 0.0 lbp= 0.0 rt_tempo= 60.0 lt= 60.0
    aa now= 0.0 rnow= 0.0 lbp= 0.0 rt_tempo= 60.0 lt= 120.0
    b  now= 1.0 rnow= 1.0 lbp= 1.0 rt_tempo= 60.0 lt= 60
    bb now= 0.5 rnow= 0.5 lbp= 1.0 rt_tempo= 60.0 lt= 120
    c  now= 2.0 rnow= 2.0 lbp= 2.0 rt_tempo= 60.0 lt= 60
    cc now= 1.0 rnow= 1.0 lbp= 2.0 rt_tempo= 60.0 lt= 120


See also System Related Functions: @active_mac_addresses    @arch_darwin    @arch_linux    @arch_windows    [@beat_in_seconds_from_now]    @callback_all_event    @callback_next_event    @callback_start_fastforward    @callback_start_logical_instant    @callback_stop    @callback_stop_fastforward    @callback_stop_logical_instant    @compilation    @configuration_arch    @configuration_audiosample    [@configuration_compiler_name]    [@configuration_compiler_version]    @configuration_debug    @configuration_faust    @configuration_host    [@configuration_odeint]    @configuration_release    @configuration_target_architecture    @current_load_directory    @directory_read    @exe_child_of    @exe_parent    @history_length    @host_date    @info    @is_fastforward    @is_following_on    @is_paused    @is_playing_on    @is_running    @is_stopped    @local_beat_position    @local_tempo    @logical_date    @max_absolute_path    @max_patch_path    @performance_data    @pwd    @seconds_in_beats_from_now    @send_message    @set_max_message_sent_instantaneously    @system    @Tracing    @time    @typecheck    @UnTracing    @usage_resident_memory_size    @usage_statistics    @usage_virtual_memory_size    @user_directory