Theo Verelst Synthesize CV Page

Basic Synthesis History

In the beginning of highschool (1978) I started to develop a working knowledge of digital and analog electronics and constructing working circuits on breadboards and printed circuit boards. At that time I was making all kinds of (mixed) circuits, including light based audio signal mixers and a 4 bit wide, 16 memory locations processor slice with alu (logical ops. and addition) and (one digit) display, it had 3 machine states, conditional jumps, and only a bit-wise stepped programming mode, and it worked, built using 74xx series ttl ic's, mainly simple gates because my allowance wouldn't allow me more expensive and exotic parts, except a 74189 (for those days extremely fast: 50nS!) 16 word power surging ttl memory. A year later I designed a 8080 based microprocessor board with IO and display facilities, of which I implemented on a printed circuit board (the type where you have to cut the copper bonds to make the right connections soldering pieces of flatcable) the shared memory/DMA seperated bus IO and independently multiplexed display and memory part. With 16 LED displays (of the 7 segment type) I figured out I could have the whole alphbeth, and a broken TI calculator provided a 40 key keyboard (26 letters, 0-9, space, return,, cursor...). The display unit has cmos parts in it (they happened to be cheap at the time), counters for the multiplexer, some gates for generator and bus control, a load of 3 state buffers, conventional parts to drive the display (even had illumination control). Funny enough the unit still works fine as a low-power autonomously multiplexing display unit with shared memory interface, albeit a bit slow (recently I think I squeezed 5MHz through the bus and io drivers).

a few years later, after some experience with smaller tries, I built my own keyboard/synthesizer, based on a 4 octave keyboard, top octave generator IC with a load of cmos dividers (4020's I think it was), a frequency modulatable (and tunable over a range of many octaves, analog and by switchable octave dividers, also experimented with PLL's.) master clock, a frequency adjustable sine generator (3 fold RC + transistor) as a modulation source, a FET-opamp (probably a noisy 741) based Voltage Controled Amplifier with integrated first order frequency controled filter, an envelope follower/trigger, an 4 stage (ADSR with combined DR control) envelope generator, some more (fixed) filters and buffers, LED meter, high quality (current driver) spring reverb, and limited patchability.

Due to limited funding, I even made my own silverwire based contacts and mixing rail (a la electronical organ), and couldn't add all I wanted. By the time I had more costly designs figured out (such as digital generators and better quality (although a FET's distortion curve makes a nice contribution compared the ota's (5517's) I later made VCA designs with), scanned keyboard, sample based tone generation, adding squares to generate sawtooths and triangles with per note filters and diode based volumne control to de real tone-bar synthesis) I had a chance to earn my first poly 800...

Meanwhile, I programmed and constructed various music related projects on a trs-80 clone (the "video genie", a 1.8 MHz Z80 machine with 16 and later 48 K of memory, starting with casette interface, later with disk drives). After I designed a set of IO ports, and implemented a AD converter (8 KHz max sample rate as I remember, we're talking 1981 or so here) and various other analog circuits, DA, triggers, etc., I programmes various signal processing tasks on it, of course in highly improvised Z80 assembly, to make digital delay lines, samples, and a sample player integrated with a sequencer, which could even play duophonic sample lines of fourier synthesised samples in real time (with some filtering to cover up for the slow sampling rate this worked quite well for organ type of sounds), based on a sequencer type of linked datastructure and a timed machine code routine with heavy use of the double register set in the Z80, which would do fractional incremental pointer update by using mixed 16 and 8 bit instructions on processor registers. A Basic program could generate samples from a number of harmonics, played by the machine code routine.

I managed to write a polyphonic graphical score editor as well (unfortunately the machine has only 128 x 48 graphical dots), with full harmonic and rithmic graphical note editing. As soon as I had the Korg Poly 800 synth, I set out to check what midi was all about, and even reverse engineered the data tranfer protocol (I couldn't get my hands on that, it was even pre-BBS) using a borrowed oscilloscope and a lot of patient waveform checking, and used that to design a midi interface (using ttl shift registers, counters and random logic), which coupled with the above made up for my limited fluency of score-reading to tightly in beat play some Bach pieces on the Poly 800, at about the time I went to university.

Before that, I built various mixed analog digital designs as well, including drum generators with vca and filtered noise sources, exponetially and adr decaying non-linearized sine oscilators, video generators, and a ocsilloscope based charactor generator. The oscilloscope I had access to had z-modulation, and enough to generate 16 alphnumerical characters on screen, using counters, handwired multi level DA converters, the only memeory circuits I could afford at the time (a 2101 1k times 1 bit and a 74189 16 x 4bit)and sufficient random logic. Gave a nice, flicker free, 4 time 8 pixel hexadecimal representation of the content of the 16 word memory on oscilloscope screen.
I tried to use the oscilloscope as a bigger display, but soon fouhnd the intensity of the beam isn;t enough to power large areas, so I started to look at video signals to generate a more elaborate IO device. Eventually I built a complete black and white video generator using counters and monoflops, random logic and a memory allowing a 32 time 32 bit patters to appear on screen, with a analogly controlled sizeable cursor that could either be used to write the memory to create a maze, or in detection mode to navigate trough it using a 2 potmeter cursor control. Must have been around 1984.

At some point I also built a computer based pitch follower/sample generator (on the same 2 MHz Z80 TRS80-clone...), I did a professionally cased (only about 20x10x7 cm) BDD based lesley/chorus unit (later I fitted it with a onw design compander), to enhance a Casio keyboards organ sounds.

Around that time I had access to a Tascam 244 DBX 4 track mixer and cassette tape deck, after I had for some years used the above and a few old Sony 19 inch reel to reel taperecorders to ping pong and multitrack on (luckily equiped with 19cm/sec, but I at did double the use of the compander to silence them a bit).

Third year in university I could afford an Atari ST, and apart from the program mentioned furhter on, I programmed several projects in 68000 (8 MHz) machine code on it, after adding some IO facilities and a DA converter, amoung which a higher sample rate and polyphony capable version of the fractionally incremented pointer based sample player, and a lot more memory. I also added a midi interface routine, which efectively yielded a midi keyboard steered sampler, but at reasonably high sample rates, the timer circuitry in the atari doesn't allow an interupt structure that gives clean output, when midi (active) signals or keyboard events ask processor time. Around that point I started programming frequency modulated sample generators, and could afford a Yamaha DX7, so I didn't bother reprogramming the midi and keyboard processors in the Atari and possibly rewiring the interupt cicuitry to make it a better sampler and started to learn more of the fundamentals of Unix and C. Some networking experiments as well, the old midi interface I built for the trs80 clone double nicely as a file transfer network between the two machines after writing some networking core.

From primary school on I started to do projects with analog circuitry, I used the Philips 2003 experimenters kit, and built pretty much all of the projects succesfully, and started to experiment with passive and active elements. somewhere at the end of primary school I figured out that bi- or multi-stable multivibrators can be built with just two transistors (in a Radio Shack 1 cm pitch experimentor board), and work as staorage elements, and I knew transisors could amplify and that 50Hz is omnipresent, so adding a few transistors in the base circuitry could act on touch sensors touched by a finger, and with a few buffer transistors I produced a low power touch controlled light switch. I started to experiment with audio signals, and designed and tried various mixer circuits, because I wanted to be able to DJ with my cassette player, radio, pickup, very old tape recorder and old tube amp.

I didn't realize that the first circuitry I produced with resitor coupled buffered signal worked with very low distortion, because I tought the circuits would influence eachother and become non-linear (oplthough I didn't know the term), and at some point tried to solve that by making transisor buffers drive LEDS in an AM fashion, and gather up the signals in a phototransistor with amplifier to have a high quality mixer. Pitty 100 Hz is quite audible, but its fun to wirelessly transfer music of reasonable quality over maybe op to half a meter or more with some lenses. Alternatively, I experimented with (and added to) a "measurement" 3meter FM transmitter kit as well, which at some point I could get to produce fairly high quality hifi transmission by using a tuner in an audio feedback loop (1980 or so). Increase the loop amplification to some point before oscilation and voila, a high quality broadcast station. Of incredibly low power, but enough to somewhat later copy and make simultaneous two way audio connections with a friend a block away with.
After the abovementioned audio experiments, it was pointed out to me that collector coupled transistors act as current sources and effectively mix signals with high quality. Some books tought me the basic tricks of transistor emittor followers or voltage amplifiers, and I used that to design and implement a high quality, 4 channel, low noise stereo mixer with channel wise gain control, professional sliders, tone control and a high output buffer and fairly high quality microphone amp. A wooden case (all I could affors) with multiplex but slick front plate and removable chassis construction for quick repair (never needed) and additions finished the product which I still use today in a fairly good audio setup as sort of a luxury channel selector, it also had a nice compbination of just about all the audio plugs that exist on various group switchable inputs.
Before that, I think it was about second grade highschool, I developed a module based (sigar box metal and carton board with silver wire shielding) powered mixer which featured a four channel mono mixer with sliders, a backlit circuit diagram display, tone control, switch unit, 6 watt power amp (own design puch-pull, with a 2n3055-2901 non-matched pair that I though should be able to deliver a lot more power, but later on I understood that the supply voltage I had available simply wouldn't allow that, in fact I even powered by batteries to demo it), and an output power peak hold VU meter). First I built it by just wiring all the parts together, unshielded, and without very articulate grounding and supply voltage rules, and the thing oscillated and hummed like hell. Being rigorous, I built these little shielded modules, with just the necessary connections coming out as solder pads, which I nicely rowed up in a dual level tilted output VU top front plate case out of hard board with color tape, star wired the supply, and seperated and filtered the various supply stages. Some aluminium bent as cool plates on the back and a lot of nicely spaced 6.5 mm holes on top (te biggest ones I could drill with my hand drill) made it work satisfactory. Satisfactory because I wanted it to blow a lot more power to act as a discopowered mixer, it worked well, pitty I later partly took it apart to reuse the parts (those power transistors where expensive for me).
Of course I made my own speaker cabinets as well, with the wood and speakers I could lay hands on. Somewhere around 1980 I started building a set of 18mm wood, fairly high quality philips woofer and tweeters, unfortunately placing 4 tweeters (to get the appr. 45 watt per channel continuous power ratings I wanted) in the four corners, thinking that would give a nice spread of the high frequency range without realizing that the interference patterns thus generated are quite undesirable. Few years later I solved this by trying some dome tweeters. Also unfortunately, I placed the woofer in the middle, which is amplifies standing waves in two directions, but effectively the pressure box design worked quite well, and is still in use today. The closed cabinet design, perfected by kit in all corners to the point of making the cone slush back when displayed over a seconds interval, and good damping material, gives a nice, tightly sounding base end unto 40 Hz or so, and the design was solid enough to serve as PA speakers in various school projects.

For that and other purposes at that thime I also built a twice 70W power amp, designed and built a preamp for it, and later also fitted this in a fairly compact, non-forced cooled wooden case with fairly OK looking multiplex front plate, fitting the aforementioned mixer and a tuner-casette player built from appended to ca radio parts with backlit tuner indicator. All this with all kinds of re-wiring options for multi-tracking, audi tower use, experimental setup (e.g. a multi casete deck copy centrale) and PA use.

I started also to use professional equipment for PA and band-amplification at school, managing the technology project group of various years, ending with the comlete overview of a stage production for hundreds of viewers with wireless intercom system between light and audio groups, multi channel PA system for actor amplification (without the resources for wireless mikes), copying of the recordings of it, managing the light mixing and spot control, almost completely rewiring the 3 phase stage light system to work again after many years, including the fixing of 2kW power dimmers by 5 dollar brush contacts, and taking care the who system works hum free with the available equipment. At that point I did the sound on school bands regularly, but didn't play in them yet (only for myself on the grand piano, about the time I learned to play on my home-made synth mentioned above).

Other Relevant Experience

My other cv pages (also via my homepage) can give more information before I fill I this section.

Education: Masters degree Electrical Engineering at Delft University of Technology, the Netherlands
Contentwise worked towards a PhD in EE at network theory section, same university, interupted due to extraordinary personal and professional circumstances at that point unsuspected by me, and not under my control (see some other pages) Main targets of PhD-related work were:
Design and implemenation of a system for fast photorealistic computer graphics rendering
Keywords overview: parallel system of custom and DSP dedicated processors connected to a (set of) workstation(s), ray tracing processing core, integral database management, efficient programmers interface for radiosity related computations, graphical environment, scene design and database tools (object oriented managing of various types of representations (text, linked ascii segments, binary representations, inter object structures and linearized lists (in shared memory) large datastructures for graphics scenes and (intermediate) rendering results.
Conceive and start to implement a formal design methodology and design environment for efficient non-regular event driven digital systems Parallel systems and simulation, distributed processing programming theory (Communicating Sequential Processes, CCS, ) and languages (Isis, pvm experience). KHOROS and AVS graphical block based experience (both block based high level progams as block programming and interaction script language).
Own proposal and prototype: multithreading with socket-type inter thread communication, Inter Process Communication via a Connection Server to provide run time namespace resolving, reconnection when killing and starting processes involved in the process pool by retaining one-ended socket pairs, easy run time recompilation of program units y use of very small interface library, full socket speed connections, distributed processing by efficient machine boundary stubs, without need for restarting of intermachine links on process restart.
Small library for name based Shared Memory IPC-lib, no need for common parent process to pass IDs.
Fully transparent inter-thread, inter-proces, inter-host parallel and distributed operation, full run-time reconfigurability (including recomopile of parts and checkpointing). Graphical interface to built communication interface C code. Shell-type ascii connections possible with any interactively steerable package, such as AVS, unix shells, database systems, Geomview 3D graphical editor. Tcl/tk based communication monitor for two way communication monitoring and issueing commands with graphical feedback. Real time graphical display of current actual communication structure, based on the underlying Unix process/network state (not a artificial recreation of it).
Fundaments of a Tcl/Tk based 2D graphical editor with capabilities for net-editing, including of graphical representations and menus, even complete subgraphs, saving of graphical model as fully portable tcl/tk code (even between PC's and workstations), including true color images, real time editing and interactions, such as structure or blockwise updates based on
Real time public domain 3D editor based on Geomview package, real time linkable over above commumication structures with various other environments

Word Experience:

Graphics project at Delft University

Project at Dutch National Telecom company (PTT) to design, implement and test a fully automated system for measuring the relevant (CCITT recommendations based) transmission properties of business telephone exchange units. Fully operative and successfull end result in only a few moths, based on PC with HP-IB bus (parallel network) connections to spectrum analiser, audio generator, analog matrix switch boards, and other measurement related devices, graphical and shell-wise interaction shell on top of measurement programs, automated laser printer graphical output of all desired measurements.

Started company (2 persons).
Commercial software product PULS, database system for (primarily) DX7 sound library. Keywords: database guaranteed to contain unique sounds (by sound parameters not names), fast automated building of database (minutes for thousands of sounds, simply by pointing at directory with sound banks). Very efficient seach algorithms for sound names (with wildcards), user definable categories, similar sounds (using hamming distances of sound parameters), etc., in seconds for thousands of sounds (on a 8 MHz Atari ST 68000). Midi sound transfer with added real time midi capabilities (thru function with channel merge, graphically edited velocity mapping, midi request handling). Full GEM (Atari windows avant la lettre, macIntosh clone) graphical windows interface, including midi-driven ('remote control') window events. Library compression, unique program copy protection system. Sold to professional users who gave high recommendations, good test in computer magazine. I chose to not further commercially persue this product in favor of my EE graduation.
Gave Unix courses.

Main Current Interests

I've recently taken some time to take up on Physically based Modeling with a working (100 MHz Pentium tested) program. See these links for theory and prototype (including PC example source code and executable).

I took an (unfinished) fresh look around in the world of electronics parts, see here and here . (graphical programming) , (java) , opengl, Latest Cern datamining package: ROOT), Cygwin Unix-like, C(++) environment for windows 95, tcl/tk based html server , graphical hebrew/greek editor and html generator in tcl/tk, (beta incl. brain, and translation).