[retrochallenge] Re: Would CrateSynth running on an AppleCrate qualify?

  • From: MJMahon@xxxxxxx
  • To: retrochallenge@xxxxxxxxxxxxx
  • Date: Sat, 2 Jul 2005 19:03:43 EDT

In a message dated 7/2/2005 3:06:48 PM Pacific Standard Time, 
cory5412@xxxxxxxxxxxxxxx writes:

> AppleCrate and NadaNet look excellently interesting! Are there actually 
> programs that have been developed with/for such things that can take 
> advantage of having an eight processor rigup like that? It would be 
> interesting to see also if it can take advantage of separate machines' 
> sound hardware for getting more sound oomph. (though, processing oomph 
> would be my major concern...)

I have a small suite of parallel demos that run effectively on AppleCrate,
and CrateSynth is, perhaps, the most spectacular to the observer.

Since the physical configuration of the AppleCrate does not have space
for any plug-in cards, that is not a possiblity.

It would, of course, be possible to use NadaNet to network together
an arbitrary number of packaged Apple II's with whatever peripheral
cards installed that you liked.

Since the number of processors increases as the number of machines,
if you are careful about scalability, there is no problem with processor
power.

Music synthesis is "embarassingly parallel", meaning that there is _no_
communication between the machines voicing the music after it starts.

In experiments, I have found that the native clock accuracy of the Apple II
is such that the eight machines in AppleCrate diverge in time by about
one millisecond every 40 seconds of execution.  Since the ear's threshold
for "caring about" musical instrument timing drift is more than 10 
milliseconds
(or ten feet of sound propagation), re-synchronization is a non-issue for any
song less than 6 minutes in duration.

> .... certainly some interesting uses for such a rigup. :D
> 
I agree.  ;-)

One of my favorite demos is a test Applesoft program that runs in parallel
on all the AppleCrate machines.  It receives input messages directed to
its queue on the Message Server machine (a "mailbox") and then sends
them on to another machine selected at random until each message has
been forwarded 255 times.

The message queue populations on the Message Server bounce wildly
as the demo runs, showing the random fluctuations in queue length for
each machine.

For 20-byte messages, the demo runs 134 seconds, with a total of 8960
messages passed, with each "passing" being a &PUTMSG to the
Message Server and a successful &GETMSG by its destination machine.
The rate of passing messages through the Message Server is therefore
about 67 messages per second.

Machines can also communicate directly, without the buffering of the
Message Server, using data transmissions up to 64KB.  The data
bandwidth of NadaNet is over 10KB/sec.

It is a surprisingly capable parallel platform.

-michael

Other related posts: