EMUSIC-L Digest Volume 37, Issue 08 This issue's topics: Building a Digital Synth (12 messages) Wavetable modulation (was Re: Digital synth project) (3 messages) Your EMUSIC-L Digest moderator is Joe McMahon . You may subscribe to EMUSIC-L by sending mail to listserv@american.edu with the line "SUB EMUSIC-L your name" as the text. The EMUSIC-L archive is a service of SunSite (sunsite.unc.edu) at the University of North Carolina. ------------------------------------------------------------------------ Date: Wed, 19 Feb 1992 16:20:00 MST From: "JONATHAN SMITH" Subject: Building a Digital Synth Hello, I have a few questions for this list. I'm looking at building a digital synth. for a senior Cosc/EE project. What I'm mainly a fter is peoples ideas of what sort of things would be best/nice to include in such a thing. Don't worry about the cost to terribly much. Anything that you think ought to be included in a decent well-made digital syth., please include it. And if you also have re ferance's that you wanna tell me about relating to the subject that'll help to, though I have aquired a ratehr larg e base of materials already. It never hurts to have more. Most of what I have is oriented more towards the non-musical end of thin gs. Please e-mail to Udance@outlaw.uwyo.edu Thanks much for the help Jonathan Smith ------------------------------ Date: Thu, 20 Feb 1992 09:41:15 EST From: "Joseph D. McMahon" Subject: Building a Digital Synth > I have a few questions for this list. I'm looking at building a digital > synth. for a senior Cosc/EE project. What I'm mainly a > fter is peoples ideas of what sort of things would be best/nice to include in > such a thing. Don't worry about the cost to terribly > much. Anything that you think ought to be included in a decent well-made > digital syth., please include it. Okay, all together now: "RESONANT FILTERS!" :-) Ideally? I'd like to see as flexible a modulation routing scheme as possible. Perhaps something more like an old-style modular synth: a good-size number of LFOs and envelope generators, cross-modulatable oscillators, and maybe even modulatable wavetable scanning (like the Ensoniq "transwave" concept). A patch would use as few or as many of the available virtual components as required, with the rest being assignable to other voices. Say you have 16 LFO's; one patch could use 3, another 5, and a third 4, leaving 4 LFO's for another voice. Obviously, having more is better. Lessee, lag processors, sample-and-hold, maybe some more esoteric transformations (vocoder? yeah...) and perhaps some chaotic or automata-driven oscillators. Okay, so this isn't necessarily practical. I'm not an engineer. But the more flexible the modulation routings are, the better. I suppose part of what you should consider is what kind of musician you're aiming at, so to speak. You might find it valuable to check with the local music department to see if there are any students or professors who would be willing to give you a bit more insight into the musical end of things. Oh, and finally, the unser interface. I'd suggest that you might want to look at the possibility of having *no* interface on the box itself, but simply to have a very, very complete sys-ex spec that allows you to control everything from MIDI. You could then write a virtual front panel for this thing in Max, which could be as complex or simple as you'd like. --- Joe M. ------------------------------ Date: Thu, 20 Feb 1992 14:27:00 MST From: "JONATHAN SMITH" Subject: Digital synth This is in reply to Joe M.'s message since I couldn't find his e-mail address sorry for taking up bandwidth -> Okay a few questions. First off what exactly do you mean by modulatable wavetable scanning? (not sure quite what you mean by this) and would you ind terribly elaborating on your comments about the user interface? I would appreciate it. also to clarify I am planning this to be totaly digital up until the output DAC's. Mostly DSP driven. Thanks again for the Help! Jonathan Smith Udance@outlaw.uwyo.edu ------------------------------ Date: Thu, 20 Feb 1992 17:35:25 EST From: "Joseph D. McMahon" Subject: Re: Digital synth project Sure, no problem. Modulatable wavetable scanning (at least, in terms of the Ensoniq boxes) works something like this: Say you have a long sample made up of several hundred cycles. Now, if one makes each cycle slightly different (change the duty cycle on a pulse wave, distort a sine wave into a sawtooth, etc) and allows the cycle to be played back next to be chosen via an indexing scheme, that's wavetable scanning. On the VFX family, you can control position within the table with any of a number of modulators, including envelope generators, modultor such as pressure, velocity, and so on. This allows you to create a sound which evolves nicely in real time. Now let's say we had a wavetable which consisted of a lot of sinewave samples strung together at increasing frequencies. Modulate the lookup into this table with another waveform and voila, FM synthesis. Very powerful and a lot of possibilities here. Another wavetable-based synth is the Microwave, a descendant of the PPG synth. It lets you pick two wave in a table and then gradually moves from one to the other, interpolating the changes as it goes. Also a very powerful synthesis method. As far as the interface goes, to make this somewhat more practical, you might find it simpler to build a box that responds to special "virtual controller" messages which allow you to fiddle with the sound parameters. This will save processor power, since you won't have to add a second microprocessor to handle the display and buttons/levers/sliders on the front panel. The "front panel" could be a set of objects in MAX (a marvelous object-oriented music tool for the Mac). The objects could send out the appropriate virtual controller messages to change modulation routings, select waves, and so on. These can be linked to representations of buttons and sliders on the Mac's screen, which can be manipulated with the mouse or keyboard. If you implement a good system-exclusive standard, the user will be able to do everything from the Mac and won't *need* a front panel implemented in hardware. --- Joe M. ------------------------------ Date: Thu, 20 Feb 1992 19:07:00 MST From: "JONATHAN SMITH" Subject: RE: Re: Digital synth project Hrmm okay thanks for the clarification, and on that interface it also REQUIRES that the person have access to a mac. Not necessarly a good idea. :) But thanks again!. Jonathan Smith ------------------------------ Date: Mon, 24 Feb 1992 11:01:56 +0000 From: Nick Rothwell Subject: Re: Digital synth project >Sure, no problem. Modulatable wavetable scanning (at least, in terms of >the Ensoniq boxes) works something like this: ... >Another wavetable-based synth is the Microwave, a descendant of the PPG >synth. I believe that (i) PPG were there first (1981) and Ensoniq picked up the idea about two years after PPG folded. The technology is the same as far as I know - I don't see any sharp distinction between what VFX's do and what PPG's do. The PPG's have analogue filters and a very different sound quality. The Wavestation has a similar facility with user-definable wave sequences, but it dropped the ball in that each wave sequence carries with it its modulators, rather than the modulators being set in the enclosing patch, so you can't use the same sequence in different contexts. Nick. ------------------------------ Date: Mon, 24 Feb 1992 16:09:05 -0800 From: Phil Burk Subject: Jonathan Smiths digital synth. You asked for a wish list of what I would like in a digital synth. In a word: "FLEXIBILITY". I would love a rack mount synth with multiple DSP 56000s, A/D and D/A stereo, AES/EBU or other form of digital I/O, and a controlling processor like a 68000. This synth should support as many types of synthesis as possible by loading 56000 code via MIDI SYSEX. I would want FM, resonant filters, convolution, granular synthesis, wave guide synthesis, etc. etc. etc. In my case I would be writing 56000 code but others could get it on a card or buy it or get it off the nets and download it. Once the code is loaded there should be an easy way to tell the 68000 processor how to map MIDI inputs to 56000 parameters via some sort of table also loaded via SYSEX. Actually some of the new Peavey rack systems have the right hardware but do not open up the software enough to make them really useable. Has anybody hacked the Peavey ROMs to make them support custom code? -------------------------------------------------------------- | Phil Burk, Center for Contemporary Music at Mills College, | | Frog Peak Music, and Delta Research (HMSL and JForth) | | Email: phil@mills.edu Phone: (415) 461-1442 | -------------------------------------------------------------- ------------------------------ Date: Mon, 24 Feb 1992 17:54:00 MST From: "JONATHAN SMITH" Subject: RE: Jonathan Smiths digital synth. Well close to what I was thinking, why the 56000DSP though? I was looking as some floating point DSP's instead, and I still think ke yboard case type would be better. But I was planning on similiar things with the software. The more flexibility the better IMHO. That lets me change stuff later too. Also a query, how many voices/instruments should I include.. at about 3-4 oscillators per inst rument/voice. that is .72MFLOPS(orMOPS :) per voice/channel.. allowing the hardeware I'm thinking off to support up to 512+ voices with some computing space left over for overhead and so on (this is 32bit data). Is this reasonable? not enough? thanks again Jonathan Smith ------------------------------ Date: Mon, 24 Feb 1992 18:22:17 -0800 From: Phil Burk Subject: Jonathan Smith digital synth Re: 56000 versus floating point. FP seems like a good idea but can it calculate faster than the fixed point 56000? I imagine it is easier to write for since you don't have to worry about overflow as much but eventually you have to go out a fixed point DAC so the limit must be dealt with eventually. If the FP DSP is cheap enough, sure why not. I mentioned 56000 because there is lots of code out. (Is the 96000 code compatible? What chip were you planning on using?)) Yes I think 512+ voices is plenty. I suspect that the envelopes and slew rate limiters will eat more cycles than the oscillators unless they are run at a different rate. CSound and many other systems calculate control information at a different rate than audio to save time. I think the point where you cut off voices is when the cost of doubling the number of voices is more than twice the cost of the whole system. If it more expensive then let people buy two boxes to double the number of voices. If you are adding 512+ voices then maybe 32 bit floating point is a good idea. 24 bit fixed point seems adequate for 10 or so voices but at 512, each voice would be pushed down to a low resolution. Are you planning to support dynamic voice allocation to instruments ? This is a very nice feature that makes the voices you have go alot further. -------------------------------------------------------------- | Phil Burk, Center for Contemporary Music at Mills College, | | Frog Peak Music, and Delta Research (HMSL and JForth) | | Email: phil@mills.edu Phone: (415) 461-1442 | -------------------------------------------------------------- ------------------------------ Date: Mon, 24 Feb 1992 22:24:00 MST From: "JONATHAN SMITH" Subject: RE: Jonathan Smith digital synth Okay first off I was looking pretty hard at the ADSP-21020 DSP chips, does a 1k-Complex FFT im 0.77 msec as apposed to 1.025 for TMS 320c40 and 1.047 for the DSP96002. Yes I am planning on dynamic voice allocation, seems to be the best way to go for decent flexib ility. Any other suggestions that people care to forward will be looked at and appreciated. This project is looking to be quite in teeresting. Thanks again. Jonathan Smith ------------------------------ Date: Tue, 25 Feb 1992 09:15:47 EST From: "Joseph D. McMahon" Subject: Re: Jonathan Smith digital synth Jonathan, one more suggestion on dynamic voice allocation: if you have enough spare power to do it, consider allowing the performer to assign priorities to each voice. For example, in a heavy instrumental section, one could live with the cymbals dropping out once in a while, but losing the bass or lead would really leave a hole in the music (another good idea shamelessly purloined from the VFX architecture). --- Joe M> ------------------------------ Date: Fri, 28 Feb 1992 11:07:07 +0000 From: Nick Rothwell Subject: RE: Jonathan Smith digital synth >Yes I am planning on dynamic voice > allocation, seems to be the best way to go for decent flexib >ility. If you're intending multitimbral operation and dynamic voice allocation, be sure to implement a decent prioritising scheme (user-assignable priorities, decent voice-stealing schemes, and the like). There are various approaches to the latter, such as: note-gated voices have priority over sustain-pedal gated voices which have priority over envelope decay sections. User assignable priority is essential to override such a scheme for bass drones and the like. Nick. ------------------------------ Date: Sat, 22 Feb 1992 22:46:44 MST From: Adam Schabtach Subject: Wavetable modulation (was Re: Digital synth project) > Now let's say > we had a wavetable which consisted of a lot of sinewave samples strung > together at increasing frequencies. Modulate the lookup into this table > with another waveform and voila, FM synthesis. Not exactly, I don't think. Note that you have to put sine waves whose frequencies are integral multiples of the fundamental in the tables. If you don't do this, the waves won't be sine waves -- they'll have an extra chunk of the sine shape in each cycle. (Does that make sense? This would be *much* easier to explain if I could draw a picture.) Hence as you modulate the wave lookup, you'll play waves that have a lot of harmonic content that sine wave don't have. This won't necessarily sound bad, but it won't sound like a sine wave being modulated. > Another wavetable-based synth is the Microwave, a descendant of the PPG > synth. It lets you pick two wave in a table and then gradually moves from > one to the other, interpolating the changes as it goes. Also a very powerful > synthesis method. In fact, the MicroWave has a much more flexible architecture than this. It has "wave control tables" which are 60-entry arrays of pointers to waves. A pointer can point to one of several hundred waves in ROM or RAM, or point to NULL (more or less). If the pointer is NULL, the wave for that entry is interpolated from the waves to either side. So in a simple case you could have the first entry point to a sine wave, the last point to a square wave, and all the rest NULL. As the lookup position is modulated, you'd hear a wave that evolved from a sine to a square (or vice versa, or both, or whatever depending on what you're modulating with). In a more complex case, you'd have a number of pointers pointing at different waves throughout the table, so as you swept through the table you'd hear all sorts of timbral changes. It's just the same as the VFX architecture, except that the VFX doesn't let you change the wave control table. --Adam schabtac@stout.atd.ucar.edu ------------------------------ Date: Mon, 24 Feb 1992 08:01:00 EST From: wbf@CBEMA.ATT.COM Subject: > Date: Sat, 22 Feb 1992 22:46:44 MST > From: Adam Schabtach > Subject: Wavetable modulation (was Re: Digital synth project) > To: Multiple recipients of list EMUSIC-L > In-Reply-To: "Joseph D. McMahon" > > > Now let's say > > we had a wavetable which consisted of a lot of sinewave samples strung > > together at increasing frequencies. Modulate the lookup into this table > > with another waveform and voila, FM synthesis. > > Not exactly, I don't think. Note that you have to put sine waves whose > frequencies are integral multiples of the fundamental in the tables. If > > --Adam schabtac@stout.atd.ucar.edu I'm no FM modulation expert but I don't believe that there is any restriction on the frequency ratio between the carrier and modulator frequencies. If you care to generate a harmonic series, then you do need that ratio to be an integer. Otherwise you get a clangerous, harmonically unrelated series. That's what makes FM modulation so good at bell sounds. Bill Fox ------------------------------ Date: Mon, 24 Feb 1992 09:53:51 EST From: "Joseph D. McMahon" Subject: FM Synthesis - not quite Adam is quite correct, I hadn't made myself clear on the actual way I was thinkng about storing the waves in the table. I was thinking it might be useful to have varying-length samples, so a 20KHz wave would have far fewer bytes committed to it than would a 20 Hz wave. Practical? I doubt it. Theoretically interesting? Maybe. Perhaps one of our NeXTpersons can try something like this and see what kind of results they get. Sounds like a possible paper for the CMJ, anyway. --- Joe M. ------------------------------ End of the EMUSIC-L Digest ******************************