Tuesday, August 19, 2008

V/Wave/TI Review on VSE Forum

The poster "23" has written a fine comparative review of the V-Synth, the Access Virus TI, and the Nord Wave, on the Vintage Synth Explorer's forum (which, BTW, has a snazzy new format).  The review lays out the advantages and disadvantages of each, bearing in mind that they aren't really targeted towards the same audiences.  There are also some good responses in the comments, of which two salient points:

  • One commenter thinks that the TI may be the end of the Virus line, it having evolved far from the original Virus A design.  What might Access (which has made its name in VA synthesis) follow it up with?  I wonder if DSP design has progressed to the point where they could build a new VA that does synthesis by running actual circuit simulations in real time (something that has been speculated on in the Synth-DIY mailing list), and bring it in at a reasonable price point.  
  • I tend to agree with the posters who can't figure out why the Nord Wave is so pricey.  I had thought from the name that it was a follow-on design to the famous PPG Wave keyboards, but it appears that it isn't quite that.

Tuesday, August 12, 2008

Whitney's pendulum waveform generator

In my August 8 post on the John Whitney Music Box, I mentioned a opto-mechanical device that Whitney used in the 1930s to generate waveforms which were imprinted on the optical soundtrack of some of his early experimental films. It is described, in the sources I've found, as consisting of 20 pendulums (presumably all swinging at different rates) connected in some fashion to an aperture or series of apertures which controlled light passing through to expose the film sound track. I mentioned in the post that I wanted to write a simulation of this, if I could figure out how it worked.

Since I was unable to find any further information, I made some guesses. My most significant guess is that the device was probably mechanically fairly simple. It would have had the ability to have additional pendulums added or subtracted (Whitney probably experiemented with it to come up with 20 as the optimum number for his purposes), which would seem to preclude any arrangement where all of the pendulums were linked to a single aperture -- it would be too difficult to add or remove pendulums. It probably had no power source other than the pendulums being hand started; since the experimental films in question were quite short, there was no need for the pendulums to run for hours or days on end. We know the pendulums cycled at sub-audio rates because the descriptions mentioned advancing the film very slowly during the imprinting process, so that the sound track would be shifted up into the audio range when the film was projected at normal speed. Also, that's reasonable considering that the fastest-beating pendulums found in mechanical clocks of the day cycled at about 3 Hz, and these were pendulums only a few inches long. (Most clocks had slower pendulums, because the larger mass and higher momentum kept better time and was easier to regulate; our old grandfather clock at home has a pendulum that takes about four seconds to complete one cycle.)

So my guess for the construction of the mechanism is something like this:



20 pendulums in a column file, front to back, with a light path running through them. Each pendulum has a shutter attached to its arm that blocks half of the path with the pendulum at rest; at one extreme the path is full open, and at the other the path is fully blocked. In an idealized form, one can see that the amount of light allowed through by any one pendulum is described by a sine wave (or more specifically, a cosine wave, assuming that all of the pendulums are started by being released from the full-open end of the swing). The light source is placed at one end of the file, and the camera which records the optical soundtrack at the other end. The pendulums all have different effective lengths, and will swing at different rates when released.

One big decision that I had to think about was the light source. Was it a simple light bulb, acting as a point source, or was it a focused beam? Not being able to decide, I resolved to try it both ways. With the setup I described above, it makes a considerable difference. Consider: A point source of light (this is true for sound too) can be visualized as a bunch of rays shooting out in all directions from the source. No two of the rays are parallel; there is always an angle (no matter how slight) between any two, and as you move further away from the source, the rays will spread further apart. If you place any solid obstacle with a cutout opening in front of the point souce, the rays that pass through the opening it will continue to spread out, and so at a sufficient distance, the opening will in turn look like a point source, just weaker. Another obstacle with an opening placed in front of that will, in turn, look like a still weaker point source. This is true even if the obstacles aren't all in a perfect line; some light will still get through. And the effect is enhanced if the light is contained by a reflective tube in between the obstacles.

A beam source behaves differently. In a focused beam, all of the rays (in theory) are parallel; there is no spreading. An obstacle placed in the beam, with an opening that is outside of the beam, will admit no light through. An obstacle with an opening that is in the beam will let some portion of the light through, in a shape that is described by the intersection of the shape of the beam and the shape of the obstacle. If a subsequent obstacle blocks out this part of the beam, then no light will get through at all even though the second obstacle might have an opening elsewhere. Only the light rays that have a straight path through all of the openings can pass. If no such path exists, no light gets through. (Ignoring edge diffraction effects.)

I decided to simulate the second case first. In doing so, in order to simply the math, I made one further assumption: that all of the pendulums had their shutters on the same side, and in the same shape. That is, there would be no case where one pendulum was blocking the left half of the beam and the other pendulum was blocking the right half; a "less closed" shutter would always pass all of the light admitted by any preceding "more closed" shutter. Doing so made the computation of the amount of light passed by all of the pendulums easy; it is simply the least amount of light passed by any individual pendulum, or:

min(pendulum1, pendulum2,pendulum3,...)

I simulated the motion of all of the pendulums as simple sine waves, ignoring nasty real-world unpleasantries such as friction, diffraction, unintentional coupling, etc. I ignored the bit about running all of the pendulums at subsonic rates and speeding them up; I reasoned that in the digital domain, that would have exactly the same result as running the pendulums at higher rates to begin with, so why bother? Instead, I just ran them at audio rates (or nearly) to start with. I figure that the difference in speeds between the slowest and fastest pendulums could not have been huge; probably the slowest pendulum would have cycled once per 5 seconds, and the fastest one at 3-4 Hz at most. And most likely the recording speed was no more than 1:20 of the playback speed; much slower and they would have run into problems with getting a reasonably linear exposure on the film (what the photographers call "reciprocity failure").

I wrote up the sim in Csound and ran it with six different sets of parameters for the pendulum rates. The audio result is here (it is an uncompressed AIFF file, 16-bit, 44.1, mono). There are six different sound samples in the file, each five seconds long, with a short amount of silence in between. The parameters for each sample are:

  1. Slowest pendulum at 10 Hz, with each additional one 10 Hz higher (20 Hz, 30 Hz, etc.).
  2. Slowest pendulum at 20 Hz, with each additional one 20 Hz higher.
  3. Slowest pendulum at 50 Hz, with each additional one 50 Hz higher.
  4. Slowest pendulum at 1 Hz, with each additional one 13 Hz higher.
  5. Slowest pendulum at 8 Hz, with each additional one 5 Hz higher.
  6. Slowest pendulum at 200 Hz, with each additional one 6.33 Hz higher.
I had suspected that the output would consist largely of short spikes with a large DC component, due to the fact that at any given time, there is a high probability of at least one aperture being completely closed. This turned out to be the case, and I made no attempt to filter out the DC offset in the simulation. (Most computer sound cards will filter it out in the analog domain.) Samples 1, 4, 5, and 6 produced the most interesting results. Below are some graphs of the waveforms. (Not that they are not all to the same scale.)

Sample 1:


Sample 4 (note the long-period amplitude variation):


Sample 5 (note the mirror-image symmetry of all of the pairs of spikes):


Sample 6 (again, note the mirror-image symmetry):


(I was mildly amused to note, when I imported the files, that all of the waveforms are inverted. I don't know if Csound generated them that way, or if they got that way somehow in the process of importing them into Metro so I could look at the graphs.)

For the second run, I change the simulation from a beam-source light to a point source. In this simulation, each pendulum shutter cuts off a certain percentage of the light, the next one cuts off a percentage of the light that passed through the first one, and so on. If all of the percent-open values are expressed in the range 0-1, as they are in the sim, then the computation becomes:

pendulum1 * pendulum2 * pendulum3 * ...

It's interesting to note that the communativity of multiplication implies that the order of the pendulums does not matter. That seems counterintuitive somehow, yet the math demands that it must be the case. In any case, the results weren't nearly as interesting. I ran it with the same set of parameters as for the first run. Here is the audio file. Nearly all of them came out looking and sounding like the graph below, which is from sample 6:



I'm not sure why these seem so much "orderly" than the samples in the first run; I had halfway expected the opposite. Still interesting, but not quite as much as the first set. Either, though, would have been an absolutely startling thing to hear coming out of a movie projector in 1938! Keep in mind as you listen to these that only a handful of people in the world had been exposed to any kind of electronic music at this point in history.

I plan to do some more work on this. One thing I want to explore: adding friction to the pendulums, in some fashion, to make them "run down". Currently, the pendulums have perpetual motion; they cycle at the exact same amplitude indefinitely. Recall from your high school physics that a pendulum's period depends only on its center of mass; as it loses energy, the cycle rate remains the same, with only the amplitude -- how far it swings to the sides -- decreasing. Having them all run down together, at the same rate per unit of real time, probably wouldn't be very interesting; the overall amplitude would just decrease. However, real pendulums won't do that anway. They will run down according to the number of cycles they have made, or the (angular) distance they have traveled, which means that faster ones run down sooner than slower ones. I want to add that to the sim and see what I get.

I also want to play with some different shutter sizes and shapes. For example, the shutter could be constructed such that the light is totally blocked at the center and open at either end of the swing. Or, it could be cut such that the pattern of variation as the pendulum swings is something other than a sine wave.

Below is the source code for the Csound orchestra (the .orc file). Instrument 101 was used to produce the first run, and Instrument 102 was used to produce the second run. Watch out for line wrap.






; Simulates pendulums with individual aperatures, beam light source
; Assumes aperature is full open with pendulum at 0 deg, full close at 180 deg

instr 101

; Assign initial parameters
ifreq = p4 ; Base frequency
iinc = p5 ; Frequency increment
iscale = p6 ; Output scaling, 0-1
; Table names
itsine = 1


; Compute the phase for each of the pendulums
aph1 phasor ifreq
aph2 phasor ifreq+iinc
aph3 phasor ifreq+(iinc*2)
aph4 phasor ifreq+(iinc*3)
aph5 phasor ifreq+(iinc*4)
aph6 phasor ifreq+(iinc*5)
aph7 phasor ifreq+(iinc*6)
aph8 phasor ifreq+(iinc*7)
aph9 phasor ifreq+(iinc*8)
aph10 phasor ifreq+(iinc*9)
aph11 phasor ifreq+(iinc*10)
aph12 phasor ifreq+(iinc*11)
aph13 phasor ifreq+(iinc*12)
aph14 phasor ifreq+(iinc*13)
aph15 phasor ifreq+(iinc*14)
aph16 phasor ifreq+(iinc*15)
aph17 phasor ifreq+(iinc*16)
aph18 phasor ifreq+(iinc*17)
aph19 phasor ifreq+(iinc*18)
aph20 phasor ifreq+(iinc*19)

; Extract the waveform samples
asine1 tablei aph1, itsine, 1, 0, 1
asine2 tablei aph2, itsine, 1, 0, 1
asine3 tablei aph3, itsine, 1, 0, 1
asine4 tablei aph4, itsine, 1, 0, 1
asine5 tablei aph5, itsine, 1, 0, 1
asine6 tablei aph6, itsine, 1, 0, 1
asine7 tablei aph7, itsine, 1, 0, 1
asine8 tablei aph8, itsine, 1, 0, 1
asine9 tablei aph9, itsine, 1, 0, 1
asine10 tablei aph10, itsine, 1, 0, 1
asine11 tablei aph11, itsine, 1, 0, 1
asine12 tablei aph12, itsine, 1, 0, 1
asine13 tablei aph13, itsine, 1, 0, 1
asine14 tablei aph14, itsine, 1, 0, 1
asine15 tablei aph15, itsine, 1, 0, 1
asine16 tablei aph16, itsine, 1, 0, 1
asine17 tablei aph17, itsine, 1, 0, 1
asine18 tablei aph18, itsine, 1, 0, 1
asine19 tablei aph19, itsine, 1, 0, 1
asine20 tablei aph20, itsine, 1, 0, 1


; Do the min function on all the samples
aout min asine1, asine2, asine3, asine4, asine5, asine6, asine7, asine8, asine9, asine10, asine11, asine12, asine13, asine14, asine15, asine16, asine17, asine18, asine19, asine20

; Output
aout = aout*iscale*20000
out aout
; display aout, .01
endin






; Same as above except the light source is a point source.
; Assumes aperature is full open with pendulum at 0 deg, full close at 180 deg

instr 102

; Assign initial parameters
ifreq = p4 ; Base frequency
iinc = p5 ; Frequency increment
iscale = p6 ; Output scaling, 0-1
; Table names
itsine = 1


; Compute the phase for each of the pendulums
aph1 phasor ifreq
aph2 phasor ifreq+iinc
aph3 phasor ifreq+(iinc*2)
aph4 phasor ifreq+(iinc*3)
aph5 phasor ifreq+(iinc*4)
aph6 phasor ifreq+(iinc*5)
aph7 phasor ifreq+(iinc*6)
aph8 phasor ifreq+(iinc*7)
aph9 phasor ifreq+(iinc*8)
aph10 phasor ifreq+(iinc*9)
aph11 phasor ifreq+(iinc*10)
aph12 phasor ifreq+(iinc*11)
aph13 phasor ifreq+(iinc*12)
aph14 phasor ifreq+(iinc*13)
aph15 phasor ifreq+(iinc*14)
aph16 phasor ifreq+(iinc*15)
aph17 phasor ifreq+(iinc*16)
aph18 phasor ifreq+(iinc*17)
aph19 phasor ifreq+(iinc*18)
aph20 phasor ifreq+(iinc*19)

; Extract the waveform samples
asine1 tablei aph1, itsine, 1, 0, 1
asine2 tablei aph2, itsine, 1, 0, 1
asine3 tablei aph3, itsine, 1, 0, 1
asine4 tablei aph4, itsine, 1, 0, 1
asine5 tablei aph5, itsine, 1, 0, 1
asine6 tablei aph6, itsine, 1, 0, 1
asine7 tablei aph7, itsine, 1, 0, 1
asine8 tablei aph8, itsine, 1, 0, 1
asine9 tablei aph9, itsine, 1, 0, 1
asine10 tablei aph10, itsine, 1, 0, 1
asine11 tablei aph11, itsine, 1, 0, 1
asine12 tablei aph12, itsine, 1, 0, 1
asine13 tablei aph13, itsine, 1, 0, 1
asine14 tablei aph14, itsine, 1, 0, 1
asine15 tablei aph15, itsine, 1, 0, 1
asine16 tablei aph16, itsine, 1, 0, 1
asine17 tablei aph17, itsine, 1, 0, 1
asine18 tablei aph18, itsine, 1, 0, 1
asine19 tablei aph19, itsine, 1, 0, 1
asine20 tablei aph20, itsine, 1, 0, 1


; Do the min function on all the samples
aout = asine1*asine2*asine3*asine4*asine5*asine6*asine7*asine8*asine9*asine10*asine11*asine12*asine13*asine14*asine15*asine16*asine17*asine18*asine19*asine20

; Output
aout = aout*iscale*20000
out aout
display aout, .01
endin








Below is the score file (the .sco file). It is set up for the second run; to change it to do the first run, change all of the instrument numbers from 102 to 101.








; Function tables
; Cosine
f 1 0 16385 9 1 1 90

; base incr ampl
; inst start duration freq ment
i 102 0 5 10 10 1
i 102 5.5 5 20 20 1
i 102 11 5 50 50 0.8
i 102 16.5 5 1 13 1
i 102 22 5 8 5 1
i 102 27.5 5 200 6.33 1

Friday, August 8, 2008

The John Whitney Music Box

John Whitney is best known as a pioneer in experimental film and computer graphics, but he also did some work in experimental sound and sound synthesis. Jim Bumgardner has written a fun toy based on one of Whitney's ideas called the John Whitney Music Box, a screen shot of which is presented below:





Each of the little dots revolves in its own orbit. The period of any given orbit is exactly half of the period of the orbit outside of it. Whenever a dot crosses the positive X-axis, it triggers a synthesized sound at a certain pitch. The revolving pattern produces a fascinating patterns of sounds, repeating about once every five minutes, as the dots orbit about. There are 20 variations, with sounds ranging from plucked strings to chimes to sine-wave harmonics of a given fundemental. The visuals are based on an idea Whitney developed in 1981 (and which was all but unrealizable using the computers of the day); the idea to tie the visuals to the specific sounds and scales is Bumgardner's.

As for Whitney's experiments in sound, I'm aware of two specific things he did. Some years ago, I wrote a very short and silly story about a musician who "recorded" an LP (this was back in the vinyl days) by taking a needle to an acetate master disk and hand-engraving a groove in it. The result was what I called a pseudo-recording: a medium which "plays back" something that was never actually recorded. Not until the first time it is played back is the pseudo-recording ever actually heard, and it is entirely possible that the pseudo-recording's creator has little or no idea what it will sound like until that first playback.

Well, it turns out that Whitney and some other film experimenters actually did something like this. Back in the day, the sound on many movies was encoded directly onto the film in the form of an optical soundtrack, occupying a narrow stripe of the film in between the picture frames and the sprocket holes There were several systems, but usually this was printed on the film negative by a mirror, which reflected a light source onto the soundtrack stripe, and was modulated by a voice coil driven by an audio amplifier, as in a loudspeaker. Whitney, however, produced some experimental animated films where he not only drew the animations, but he also drew the soundtrack. Unfortunately, I haven't yet found any examples of these early animations on the Web. Another idea Whitney had was to produce the soundtrack using an aperture mechanically linked to an array of 20 pendulums, swinging with different periods. Some Web quotes I've found describe the results as sounding highly electronic. I have some ideas about how such a device might have worked, and I'm going to do some experiments to see if I can duplicate the result with Csound.

Returning to Bumgardner for a moment, he synthesized some of the sounds used in the Music Box using a softsynth of his own creation called Syd (as in Barrett, I presume). It looks interesting; its capabilities are, according to the author, based loosely on those of the Buchla 200 modular synth. Unfortunately, it doesn't appear that he is actively maintaining it at this time. Perhaps another enterprising synthesist would be interesting in picking up that baton. (Don't look at me; I've got too many projects going as it is...)

Thursday, August 7, 2008

A studio being born

We've finally finished the basement, and the studio is moving to its permanent home downstairs.  A few pics from last weekend:


The mixer and the old keyboard stand are positioned where they are going to go.  I've ordered another keyboard stand.


The old keyboard stand.  The table in front of it is holding the shelf that goes on the top tier of the stand.  The brown case contains the Kramer bass.  The box in  front of the table is the EML 101.


New keyboard stand will go where the bass pedals are.


Rolands patiently awaiting their assignments.  Front to back: JD800, V-Synth, Juno 106.  The box in the foreground with the big orange knob is a Boss DR-202 drum machine.



The lounge area.


Sunset at Chez Cornutt.



Some more pics, from today:



The new keyboard stand has arrived.  It's an On-Stage Z stand.  Two tiers, as you can see.



Top tier holds the V-Synth, which cannot have anything above it due to the D-Beam.  The JD-800 is on the bottom tier.  Underneath, Studiologic FP-113 bass pedals.  The rack to the left contains a Mackie 16-channel mixer, and underneath, the Matrix-6R.



The old keyboard stand.  The Juno-106 resides on the bottom tier for now; when my Solaris comes in, it will take the JD800's place on the new stand, and the JD800 will move to the bottom tier of this stand.  (Only the bottom tier is deep enough to hold it.)  The Juno will move up to the second tier, which is not deployed in this photo.  The top tier will hold the drum machine, and the remote control and monitor for the sampler.  To the left is my long-suffering homemade 19" rack, which barely survived its perilous journey down the driveway to the basement.  



I originally built this table to straddle the legs of the old keyboard stand when I needed a fourth tier to hold a bunch of stuff.  Now, it will serve a new purpose as the home of the EML.  For the moment, it's also holding the S-750 sampler, the JD-990, and some other rack gear.  Eventually, I'm going to get another half rack to go with the mixer half rack, and all that stuff will move over there.



Hammond goes here!  As soon as I find some strong friends to help me move it in from the garage.



Lovely hi-tech producer's chair.  Doubles as a step-ladder for painting ceilings.