My one-th lispy gopher show aired! It was scrappy and half
the time slot, and I was very slightly going to pieces the
hour before I just listened to it in com with everyone else
but it happened.
One challenge with my show is that I don't use high level
software, which bewilders usual advice about what software
is easy to use. Well, I'm still relying on ffmpeg but most
of that I can replace with my libsndfile lisp post, and the
rest should just be using libmp3lame to achieve the right
encoding. Here I will document what I worked with this time.
In order to make asyncronous shell calls, I used ecl's
#'ext:run-program which is like
The #'nth-value 2 is because the multiple returns of
#'ext:run-program are (values two-way-stream status-code
ext-process). The interesting thing is :wait nil, which is
like adding an & after a command in a shell.
So to asyncronously record from my mic, which is snd/1, I
can use openbsd aucat(1)
So I can end recording with (funcall *killer*) (and the same
for playing with aucat(1) -i). Similarly, system sound is
the same but my device is snd/mon (see some post I made
before).
That's about it technically. I put my pre-recorded show
together, and converted it to mp3 using ffmpeg, though I can
write this out:
For portability, ecl's #'ext:run-program should be replaced
with the compatibility package uiop's #'uiop:run-program,
though it's noticeably different.
Proximal goals: Figure out live icecast2 streaming so I can
sbr and have my hour live. 4-5 more songs to round out the
hour. Try and use my sound-playback and rec abilities to
form recognisable music. I think it could be fun to just try
to recreate small phrases from a track using my lispy
libsndfile.
Thank you to everyone on anonradio, com, gopher, DJs and
miscellaneous other damgud cyberchatters.