A Sound Project

Aaron Lanterman lanterma at ece.gatech.edu
Sat Jan 31 17:06:26 UTC 2004

Greetings Squeakers,

I was introduced to Squeak by a rather roundabout route. Last semester I
sat in on Georgia Tech's CS1315, which Mark Guzdial was teaching. I'm a
professor in the ECE department here, and I often teach ECE2025, which is
our introductory EE class based on a "DSP First" curriculum. It has a
large MATLAB programming component, and I noticed our students programming
(particularly debugging skills) were rather weak, so I starting doing my
own poking around to see what College of Computing was up to. Mark put
together this gorgeous course for non-engineering majors, based on Python,
which I decided would be a better intro course for our majors than CS1321,
the intro course based on Scheme. (I adore Scheme, but students have a lot
of resistance to it.) This is all a moot point, since CoC put together a
new engineering intro course, CS1371, that's half MATLAB and half Java.

I was poking around Mark Guzdial's website and kept coming across this
thing called Squeak, and thought it was worth checking out.  When I found
out it was the next generation Smalltalk, I was intrigued - periodically
since I saw the Byte magazine special issued, I'd taken peeks at it, but
could never get over the unusual appearance of the syntax. It seemed worth
overcoming that, and Mark lent me his "white book," I downloaded Squeak,
and started playing.

Mark lent me the Squeakers video, which completely blew me away. I then
bought my own copy, which I as one of our DSP group seminars, and then
demoed a bit of Squeak live. People seemed intriguied and curious.

Anyway... there was a 2025 student who wanted to do an Undergrad Research
Project with me, and I showed her Squeak, and said I'd like her to make a
demo for my 2025 class in Squeak. She was skeptical at first - "oh,
Squeak, I've heard of that, I think that's the language all my friends in
CS complain about" - but after showing her the cool stuff it could do she
became interested. We have a two semester sequence for Undergrad Research
projects - the first semester is a 1 credit exploratory semester, and the
second semester is a 2 credit hour more detailed semester.

Right now, I just want her getting used to Squeak. She's run through the
Joe the Box demo in Mark's book, and is now reasonably comfortable playing
with the class browser. Her new task is to just read audio from the input
and pipe it in real time to the output. Once we know how to do that, we
can do cool stuff in the middle.

Long term, I'd like her to make a demo showing the modulation and
demodulation stages of an AM communication system that works in real time,
where I could speak into a microphone, and the students could hear the
sound at the various encoding and decoding stages.

Mark put me into contact with - I think it was John Maloney, I don't
recall the name for sure now - who told me about how we could go to Slang
if we needed speed, but that we should try it with straight Squeak first
since it might be fast enough.

My larger question for her is to investigate: "Is this Squeak just a weird
CS thing, or is it something we in ECE should seriously be investigating

Oh, I suppose I should get to my main question: where should be be looking
to get sound in and out in real time? I find the classes all rather
confusing - there doesn't seem to be much in the way of comments as to
what the various classes and methods are actually used for. Of course, if
there's maybe a Squeak sound tutorial or something like that you could
point us to, that would be ideal.

Also, I notice this is a developers list - is there another list I should
be posting to for more general non-development questions like this?

- Aaron


Dr. Aaron Lanterman, Asst. Prof.       Voice:  404-385-2548
School of Electrical and Comp. Eng.    Fax:    404-894-8363
Georgia Institute of Technology        E-mail: lanterma at ece.gatech.edu
Mail Code 0250                         Web:    users.ece.gatech.edu/~lanterma
Atlanta, GA 30332                      Office: GCATT 334B

More information about the Squeak-dev mailing list