Cool idea. I dunno if it's necessarily a good idea, but it's still pretty cool.

Here's my first thoughts on how to make it cleaner:

Code:
; timer-signal.mrc

; aliases
alias ts_start {
  .timerTS -o 0 1 ts_exec
  %ts_start = $ctime
}

alias ts_exec {
  var %elapse = $calc($ctime - %ts_start)
  if (%elapse < 0) { ts_start | halt }
  scid -a .signal ts_1
  if (!$calc(%elapse % 2)) { scid -a .signal ts_2 }
  if (!$calc(%elapse % 3)) { scid -a .signal ts_3 }
  if (!$calc(%elapse % 4)) { scid -a .signal ts_4 }
  if (!$calc(%elapse % 5)) { scid -a .signal ts_5 }
}

; events
on *:START:ts_start

; test
on *:SIGNAL:ts_1:echo -a timer-signal: 1
on *:SIGNAL:ts_2:echo -a timer-signal: 2
on *:SIGNAL:ts_3:echo -a timer-signal: 3
on *:SIGNAL:ts_4:echo -a timer-signal: 4
on *:SIGNAL:ts_5:echo -a timer-signal: 5


-chris