Silly question about let, or maybe seq

(defun a (s)
  (let (ti (seq s (s-rest 1.0)))
    (+ ti 0.0)))

(a (aref *TRACK* 0))

This produces an error, because ti is nil!
I expected this would give me the left channel of the track with (get-duration 1) seconds of silence appended.

(seq s (s-rest 1.0))

This code seems to return a sound, and work exactly as I expected.

Perhaps I’ve used the let-form incorrectly. It’s been a while since I’ve used any of this, perhaps I’ve really forgotten the syntax. I’m not seeing the mistake, however. What’s going on here?

You want:

(defun a (s)
  (let ((ti (seq s (s-rest 1.0))))
    (sum ti 0.0)))

(a (aref *TRACK* 0))

You were missing a pair of parentheses in the “let” line.
The “+” function only works with numbers. For sounds you need to use “sum”.
“(sum ti 0.0)” does nothing (it just adds zero to each sample in “ti”) so you could simplify the code as:

(defun add-silence (s)
  (seq s (s-rest 1.0)))

(add-silence (aref *TRACK* 0))

No you wont get “1 second” of silence added. “process” type effect stretch time so that one “unit” of time is the selection length. (See: Missing features - Audacity Support)
To add one second, try:

(defun add-silence (sig dur)
  (seq sig (s-rest (/ dur))))

(add-silence (aref *TRACK* 0) (get-duration 1))