Ensoniq Fizmo features talk - Page 2 - Gearslutz.com

Gearslutz.com

All Advertisers
Go Back   Gearslutz.com > The Forums > Electronic Music Instruments & Electronic Music Production


Ensoniq Fizmo features talk

New Reply New Reply Thread Tools Search this Thread
Old 10th January 2011   #31
Lives for gear
 
Joined: Apr 2009
Posts: 858

Send a message via AIM to systematika Send a message via MSN to systematika Send a message via Skype™ to systematika
Quote:
Originally Posted by acreil View Post
In all cases it boils down to a waveform partitioned into single-period segments. There are a number of design choices you can make here: you can have large or very small differences between adjacent waveforms. You can switch instantaneously between waveforms, switch when the waveform is at an endpoint (which should be a zero crossing), or smoothly interpolate between them. You can traverse the wavetable linearly or permit arbitrary jumps through a large bank of waveforms (like the Wavestation's wave sequences), or even use arbitrary modulation to allow waveshaping, FM, phase distortion, formant stretching or wave terrain synthesis. You can synthesize the wavetables additively or massage sampled sounds to permit "wavetable resynthesis".

There's a paper covering some of this: http://www.musicdsp.org/files/Wavetable-101.pdf

Thanks, nice paper! Explains everything I need to know about wavetables. As for the extra synthesis modes, that's the one of the main reasons why I'm exploring this method rather than just going out and buying an aging ensoniq synth. Shifting through different tables that have different partials of sine waves, or even mixed with psuedo-sine waves that are drawn by hand in an FM pair with a standard sine carrier wave or even another transwave could yield some interesting morphing results in the harmonic content.. Plus, all the other possibilites you mentioned are also good ways to use this method and that's why I'm attracted to it.

Quote:
I don't think Ensoniq's implementation contains any secret sauce, in particular. I suspect that rather than the paper's recommendations, the Ensoniq transwaves (at least the earlier ones) probably just did some simple loop crossfade for each "step" of the transwave (I mean non-real time, when making the ROM), and moved the loop points one cycle (i.e. switch to the next waveform) at the end points. With some effort you should be able to do the same thing with sampled sounds on an EPS 16+ or ASR10.
That's what I also figured, it likely did some sort of crossfade loop between the tables or directly at a zero crossing. I'll just have to try both methods and see which yields the best results.
__________________
I am the great mixoliooooo! I need PT for my bongo!
systematika is offline   Reply With Quote
Old 10th January 2011   #32
Lives for gear
 
Joined: Apr 2009
Posts: 858

Send a message via AIM to systematika Send a message via MSN to systematika Send a message via Skype™ to systematika
Got a crude version of a single oscillator "transwave" synth using buffer~ and wave~ and then using a knob to shift through the table with a setable offset for the end loop point.

Doesn't sound anything like a transwave synth because there's no hanning window patched in yet but it sounds totally brutal and abrasive from the loop points not being quite right and if you modulate the lookup table really hard with an LFO it becomes this crazy messed up disco beat. thumbsup
systematika is offline   Reply With Quote
Old 10th January 2011   #33
Lives for gear
 
acreil's Avatar
 
Joined: May 2010
Posts: 723

I have an Ensoniq EPS. I think it leaves out some of the things that made smooth transwaves reasonable in later models, but it still has some interesting capabilities. The loop point modulation doesn't have to have any relation to the loop length; it's possible to move the loop points by a small amount. Normally this isn't very useful, but using a bidirectional loop ensures that output won't have any discontinuities. This can turn any arbitrary sample into an "instant wavetable", but the resulting waveform doesn't necessarily resemble the original. It gets more interesting if you use, for example, a swept frequency sine wave. The result is similar to oscillator "soft sync" (where the wave's direction is reversed upon synchronization, rather than reset to zero).

You can sort of do this if you use a triangle wave to read from the table, and add some kind of slowly varying offset to it. That's not a perfectly accurate emulation, since in the EPS the modulation affects only the loop points and not the playback rate, but it may be the closest you can expect to get in Max without significant headaches...

I've actually been working on something in Pure Data which is similarly wavetable inspired. I figured that additive-based wavetable synthesis is worthwhile and efficient, but it's a pain to actually generate the wavetables. High harmonics provide important detail, but it's no fun to deal with a large number of harmonics at very low amplitudes. So I thought instead that I could algorithmically create a wavetable by selecting a subset of the harmonics, applying some sort of filtering function to them, shifting them up or down, randomizing, or whatever. By doing it that way, I can automate or sequence the process however I want. I'm synthesizing the waveform relatively infrequently, and smoothly crossfading from the previous one, so the operations can be quite complex without significant performance penalty. And unlike wavetable synthesis, it's actually an unlimited stream of waveforms. It's also very cheap to get polyphony (1 phasor, 2 table reads and 2 multiplies for the crossfade), if you don't mind all voices "paraphonically" playing the same waveforms.

I've tried FM on this but wasn't impressed. It's too messy if the carrier has too many harmonics, and it's less usefully controllable than ordinary sine wave FM. And similarly some of the other possible variants may not be worthwhile. I'll note also that the additive/wavetable thing can be perfectly bandlimited, but FM and other things can't. So either oversample or enjoy the aliasing.
acreil is offline   Reply With Quote
Old 11th January 2011   #34
Moderator
 
Reptil's Avatar
 
Joined: Dec 2004
Location: in a low orbit
Posts: 19,383

nice! thanks
Reptil is offline   Reply With Quote
Old 17th January 2011   #35
Lives for gear
 
acreil's Avatar
 
Joined: May 2010
Posts: 723

I realize this is a little late, but here's an example of the wavetable stuff I was talking about.

The first is excerpted from something (full track in sig) so it sounds a little weird out of context. The second is in 19TET, so it probably sounds weirder.
Attached Files
File Type: mp3 wave1.mp3 (1.92 MB, 55 views)
File Type: mp3 wavetable.mp3 (5.74 MB, 43 views)
acreil is offline   Reply With Quote
Old 14th July 2011   #36
Moderator
 
Reptil's Avatar
 
Joined: Dec 2004
Location: in a low orbit
Posts: 19,383


Reptil is offline   Reply With Quote
Old 30th July 2011   #37
Lives for gear
 
Mr Arkadin's Avatar
 
Joined: Nov 2009
Posts: 803

Holy crap I just bought one one of these purple babies. I'm supposed to be asleep now as I'm on night shift, but sod it, I'm tweaking those knobs.

Mine has a slightly wobbly volume knob. I have seen at least one other advertised with this problem. Is it a problem? Can it be easily fixed?
Mr Arkadin is online now   Reply With Quote
Old 30th July 2011   #38
Gear nut
 
Crawling Wind's Avatar
 
Joined: Sep 2009
Location: Portland, OR
Posts: 92

I have a feeling most have that problem. Part of it's "charm".

Quote:
Originally Posted by Mr Arkadin View Post
Holy crap I just bought one one of these purple babies. I'm supposed to be asleep now as I'm on night shift, but sod it, I'm tweaking those knobs.

Mine has a slightly wobbly volume knob. I have seen at least one other advertised with this problem. Is it a problem? Can it be easily fixed?
Crawling Wind is offline   Reply With Quote
Old 30th July 2011   #39
Moderator
 
Reptil's Avatar
 
Joined: Dec 2004
Location: in a low orbit
Posts: 19,383

Quote:
Originally Posted by Mr Arkadin View Post
Holy crap I just bought one one of these purple babies. I'm supposed to be asleep now as I'm on night shift, but sod it, I'm tweaking those knobs.

Mine has a slightly wobbly volume knob. I have seen at least one other advertised with this problem. Is it a problem? Can it be easily fixed?
congratulations!

everything can be fixed. it's a lot of work that's all.

did you check the voltage regulator issue? this is critical!
it's as simple as putting the Fizmo on it's front, upside down (on a couch or matress of course) take out the screws of the backplate and have a look.
bad part: LM2940T
good part: L7805CV
see post 21 for a good explanation
some more on the same topic:
Fizmo
Sequence 15: Saving Private Fizmo


if you're doing that, you might as well fix the volume pot as well.

this website is up again http://www.ugoaudio.com/fizmo/
__________________

CONVERTERS FOR SALE HERE: link
Reptil is offline   Reply With Quote
Old 30th July 2011   #40
Lives for gear
 
Mr Arkadin's Avatar
 
Joined: Nov 2009
Posts: 803

Yeah I need to check that. The guy I bought it from hadn't had it long and had loads of other synths (a true slut - I wanted to stay in his studio for hours but he had a gig on) and didn't feel he had time to learn it so was selling it on.

Really good condition though, and the external PSU has been replaced for a heavy duty one, but he wasn't sure if it it had had the internal mod. I shall open her up sooner rather than later, nightshift be damned!
Mr Arkadin is online now   Reply With Quote
Old 30th July 2011   #41
Gear addict
 
worm's Avatar
 
Joined: Oct 2006
Location: lake district
Posts: 334

nothing of use to add here, but would just like to express my appreciation of ensoniq.

what a unique and awesome company they were.
worm is offline   Reply With Quote
Old 31st July 2011   #42
Lives for gear
 
ArcCirDude's Avatar
 
Joined: May 2005
Location: Nesna, Norway
Posts: 1,175

Quote:
Originally Posted by Reptil View Post
I'm going to bitch slap each and every Apple employee I come across, for abandoning Sounddiver.
Me, too. With the backside of my ugly, gnarly keyboard playing hands.
ArcCirDude is offline   Reply With Quote
Old 2nd August 2011   #43
Gear addict
 
bbow73's Avatar
 
Joined: Feb 2009
Location: Northern Virginia
Posts: 336

geez, I can't believe it's been three years since I picked up my FIZMO.
It still charms the pants off me.
__________________
"I Have Had It With These Monkey-Fighting Snakes on This Monday-Friday Plane"
bbow73 is offline   Reply With Quote
Old 11th August 2011   #44
Moderator
 
Reptil's Avatar
 
Joined: Dec 2004
Location: in a low orbit
Posts: 19,383

Looking for a TouchOSC template (iPad editor), unsucessfully, I stumbled across this:
Sequence 15: The ongoing Fizmo project
some info on the Fizmo's sysex..

and this (saved for prosperity in the gearslutz vault ):

Quote:
Sunday, January 11, 2009

A couple of more Fizmo NPRNs


I've worked out two more envelope parameters. Parameter 112 is some kind of linearity control for the attack phase for the amp envelope. A value of 127 makes it (hearing-wise) linear; the attack rises smoothly like you would expect. A value of 0 makes it highly exponential; the envelope barely rises until near the end of the attack time, where it "turns the corner" and rises very abruptly to the peak value; it's almost like having a delay followed by a very short attack. The default value is 127, which it returns to anytime you move either the attack knob or the decay knob on the panel.

Parameter 113 sets the amount of time the envelope holds at the attack peak before the decay phase begins. The range appears to be 0-99, with 0 being the minimum. It returns to 0 when you move the decay knob on the panel.

Posted by Dave Cornutt at 7:02 PM 0 comments








Thursday, January 1, 2009

Exploring the Fizmo NRPN set


After not being able to find any reliable documentation on the NRPN values that the Fizmo uses for patch editing (no, it's not the same as the MR/ZR series), I've started a series of experiments to determine how the NRPN numbers map to parameters, and find all of the "hidden" parameters that you can't edit from the panel. I've already had a bit of luck on that score. Before I get into it, here's:

A Quick Tutorial on NRPNs


Those who know some MIDI already know that the number of available continuous controller #'s is limited, and most of them are already assigned. Some are assigned to specific performance controls (mod wheel, which is controller #1, being the best known). Some are reserved for sending the low bytes for 14-bit controller values. The real-time messages eat up some numbers, and General MIDI consumes a few more each time the spec is updated. So there aren't enough unassigned ones to assign one to each parameter that is editable on a typical synth. So some manufacturers resort to sysex for parameter editing.


However, the continuous controller definitions themselves contain the mechanism for extending the available set of numbers: The RPN/NRPN mechanism. The way it works involves four controller messages: two to select the parameter to be edited, and two to send the value. Registered Parameter Numbers, or RPNs, are defined in the MIDI standard; the two most commonly used RPNs allow master tuning and pitch bend range to be altered via MIDI. However, Non-Registered Parameter Numbers, or NRPNs, are reserved in the MIDI standard for manufacturers to define how they wish.


To send an NRPN value, first you send messages to select the desired parameter. Continuous controller 99 is used to send the most significant byte (MSB), and controller 98 is used to send the least significant byte (LSB). If the receiver has fewer than 128 parameters, the MSB message need not be used. For example, to select parameter 131 (whatever that parameter happens to be on a given synth), you would send a controller 99 message with a value of 1, and a controller 98 message with a value of 3. (The value of the controller 99 message is multiplied by 128, and added to the value of the controller 98 message.) Having selected the parameter, you then send two more messages to specify the value of the selected parameter: controller 8 sends the MSB of the value, and controller 38 sends the LSB. (If the parameter is limited to the range 0-127, the MSB message need not be sent.) If we wanted to set the selected parameter to a value of 286, we send the controller 8 message with a value of 2 (2*128=256), and the controller 38 message with a value of 30.


Here's what I've found out so far about the Fizmo's NRPN implementation:

Basic Structure of the NRPN numbering


Each parameter within each sound and oscillator has its own NRPN parameter number. (Recall that each patch on the Fizmo has four sounds, or layers, and two oscillators per sound.) It is possible to edit multiple sounds and oscillators at once from the panel; if you do this, the Fizmo will send out a separate set of NRPN messages for each individual parameter which has been changed. In order to make the Fizmo send editing NRPN messages, you have to go into the system edit mode; press the MIDI button multiple times until "nRPn" appears in the display. Then, press the "yes" button to turn it on. If you then hit the save button, it will save this to flash and become the power-up setting.
The high byte of the parameter number is used to specify which sound and oscillator is being accessed. The values go like this:
  • Sound 1, oscillator 1: 2
  • Sound 1, oscillator 2: 4
  • Sound 2, oscillator 1: 6
  • Sound 2, oscillator 2: 8
  • Sound 3, oscillator 1: 10
  • Sound 3, oscillator 2: 12
  • Sound 4, oscillator 1: 14
  • Sound 4, oscillator 2: 16
Because there are more than 128 parameters in each oscillator, a few parameters will have the MSB value one higher than noted above. Parameters which are not specific to an oscillator (such as the dry/effect mix) have an MSB value of 1.


The LSB then specifies the individual parameter. Here are some that I've found so far (the MSB values shown here as an example are for sound 4, oscillator 1):


Control NRPN (99/98)

Effect Mix 1 34
Pitch Tune 14 14
Pitch Fine 14 15
Pitch Mod button 14 26
Pitch Mod Amount 14 27
Glide Time 14 18
Mono Button 14 16
Attack (Pitch) 14 79
*sent initially 14 80
Attack (Filter) 14 95
Attack (Env) 14 111
*sent initially 14 112
Decay (Pitch) 14 85
*sent initially 14 81 14 83 14 82 14 84
Decay (Filter) 14 101
*sent initially 14 97 14 99 14 98
Decay (Env) 14 117
*sent initially 14 113 14 115 14 112
Sustain (Pitch) 14 86
Sustain (Filter) 14 102
Sustain (Env) 14 118
Release (Pitch) 14 87
Release (Filter) 14 103
Release (Env) 14 119
Envelope Mode button 14 123
Velocity button 14 120
*sent initially 14 125
Amp Level 14 12
Pan 14 13
Effect Bus Select button 14 20
Wave Select 14 52
*sent initially 14 51
Wave Modulation button 14 57
Wave Mod Amount 14 58
Filter Cutoff 14 32
Filter Resonance 14 33
Filter Envelope Amount 14 34
*sent initially 14 119
Filter Mod Amount 14 36
Filter Kybd Track button 14 37
*"on" also sends 14 39
Amp Noise Mod Amount 14 70
Amp LFO Mod Amount 15 0
Amp LFO Shape button 14 126



The ones that say "sent initially" are clues to some of the hidden parameters. Many of these get set to default values when you move a panel control that is associated with those parameters. The big win here, if I can sort it out, is the envelope parameters. The Fizmo envelopes are actually multi-segment envelopes, but only ADSR-type controls are provided on the panel, and when you move one of them, the "extra" segments get set to defaults. (Sometimes.) That's what the "sent initially" means; it sends those the first time the control is moved because that action resets them, and then they aren't sent again because you can't change them from the panel. Here, for example, is a dump from MIDI Monitor from moving the Decay knob (the dump shown is for sound 4, oscillator 2), with the Amp envelope selected:


22:35:46.206 From MIDI Express XT #2 Port 8 Control 3 99 16
22:35:46.206 From MIDI Express XT #2 Port 8 Control 3 98 117
22:35:46.207 From MIDI Express XT #2 Port 8 Control 3 6 0
22:35:46.208 From MIDI Express XT #2 Port 8 Control 3 38 1
22:35:46.208 From MIDI Express XT #2 Port 8 Control 3 99 16
22:35:46.209 From MIDI Express XT #2 Port 8 Control 3 98 113
22:35:46.209 From MIDI Express XT #2 Port 8 Control 3 6 0
22:35:46.210 From MIDI Express XT #2 Port 8 Control 3 38 0
22:35:46.211 From MIDI Express XT #2 Port 8 Control 3 99 16
22:35:46.211 From MIDI Express XT #2 Port 8 Control 3 98 115
22:35:46.212 From MIDI Express XT #2 Port 8 Control 3 6 0
22:35:46.213 From MIDI Express XT #2 Port 8 Control 3 38 0
22:35:46.213 From MIDI Express XT #2 Port 8 Control 3 99 16
22:35:46.214 From MIDI Express XT #2 Port 8 Control 3 98 114
22:35:46.215 From MIDI Express XT #2 Port 8 Control 3 6 0
22:35:46.215 From MIDI Express XT #2 Port 8 Control 3 38 127
22:35:46.216 From MIDI Express XT #2 Port 8 Control 3 99 16
22:35:46.216 From MIDI Express XT #2 Port 8 Control 3 98 116
22:35:46.217 From MIDI Express XT #2 Port 8 Control 3 6 0
22:35:46.218 From MIDI Express XT #2 Port 8 Control 3 38 127
22:35:46.265 From MIDI Express XT #2 Port 8 Control 3 99 16
22:35:46.265 From MIDI Express XT #2 Port 8 Control 3 98 117
22:35:46.266 From MIDI Express XT #2 Port 8 Control 3 6 0
22:35:46.267 From MIDI Express XT #2 Port 8 Control 3 38 2
22:35:46.313 From MIDI Express XT #2 Port 8 Control 3 99 16
22:35:46.313 From MIDI Express XT #2 Port 8 Control 3 98 117
22:35:46.314 From MIDI Express XT #2 Port 8 Control 3 6 0
22:35:46.315 From MIDI Express XT #2 Port 8 Control 3 38 3
22:35:46.385 From MIDI Express XT #2 Port 8 Control 3 99 16
22:35:46.386 From MIDI Express XT #2 Port 8 Control 3 98 117
22:35:46.386 From MIDI Express XT #2 Port 8 Control 3 6 0
22:35:46.387 From MIDI Express XT #2 Port 8 Control 3 38 4

Note all the parameters that changed at first, and then that only parameter 117 continued to change as the knob kept moving. Clearly, parameter 117 corresponds to the sustain knob on the panel. The other parameters are associated with additional envelope segment levels and/or times, not accessible from the panel, that were set to default values by the movement of the sustain knob.


I've only managed to sort out a few of these parameters so far. There is one "extra" parameter associated with the Attack knob, in addition to the attack time itself. When I started experimenting with this, I expected it to be an attack peak level setting, but it wasn't. What it turned out to be instead is a time scaling parameter that makes the attack faster or slower, depending on the note-on velocity. The resulting attack time is proportional to:


attack time * scaling parameter * (128 - velocity)


If this parameter is set to its max value (which appears to be 99), and attack time is at its max value, and a note is struck with minimum velocity, a veeeerrrrry long attack (about a minute) results. With these same settings, a max-velocity note results in an attack time of about five seconds. If the scaling parameter is set to 0, attack is instantaneous regardless of what the attack time is set to.


For the pitch envelope, the attack time is parameter #79 and the scaling parameter is #80. For the filter envelope, the corresponding parameters are #95 and 96, and for the amp envelope, #111 and 112.


Another finding: The Fizmo manual gives one the impression that velocity scaling on envelope levels is an on-off parameter, selected by the Velocity button. Not so. It's actually a variable parameter. To set it, using the amp envelope as the example, you must send the desired value to both parameters #120 and 125. The #120 corresponds to the value that is actually active; the #125 is a "holding" register. When you turn off velocity response with the Velocity button, parameter #120 goes to zero. When you turn it back on, it resets #120 to #125's value. The interesting thing is that there does not appear to be any way to set parameter #125 to a default value from the panel. Without editing software or some other way of sending NRPNs, you could get really frustrated if you were editing a patch with parameter #125 set to a minimal value; the Velocity button would appear to have no effect. I've seen that some of the factory patches have different values of this parameter, so be careful about using a factory patch as a starting point for one of your own patches.


I'm going to keep working on this, in part because Sounddiver for OSX is apparently a dead item now, and there doesn't seem to be any other way of computer editing a Fizmo on a Mac without resorting to OS9. To send NRPN sequences, I'm using the event editor in Metro; to observe NRPNs coming back from the Fizmo, I'm using MIDI Monitor.
Reptil is offline   Reply With Quote
New Reply New Reply Submit Thread to Facebook Facebook  Submit Thread to Twitter Twitter  Submit Thread to LinkedIn LinkedIn 



Thread Tools Search this Thread
Search this Thread:

Advanced Search

Similar Threads
Thread Thread starter Forum Replies Last Post
another FIZMO Rack on the bay Venji Electronic Music Instruments & Electronic Music Production 17 2nd February 2009 06:51 PM
Fizmo rack on the bay supersuper Electronic Music Instruments & Electronic Music Production 28 24th November 2008 04:08 PM
Ensoniq Fizmo jbuehler Electronic Music Instruments & Electronic Music Production 19 25th March 2008 12:23 AM


All times are GMT +1. The time now is 04:27 PM.

Home - Search Forum - Contact Us - Terms Of Use - Advertise on Gearslutz - All Advertisers - Archive - Top
 
 
Powered by vBulletin®
Gearslutz.com LTD - UK Company Number 7597610.
Registered Office - 35 Ballards Lane, London, N3 1XW.
Hosted by Nimbus Hosting.

SEO by vBSEO ©2010, Crawlability, Inc.