Because of recent theoretical developments in "Virtual Analog" and nonlinear physical modeling, many vintage analog effects can now be digitized and modeled efficiently inside a Wave Digital Filter (WDF) framework. Within my project, I intend to improve around the math behind the brand new WDF modeling schemes by analyzing the legendary Dunlop "Fuzz Face" distortion pedal via a WDF lens. My goals for that quarter are listed below:
1) Compensate for all the recent literary developments regarding WDFs.
2) Evaluate the specific stages and aspects of the initial analog "Kirchoff" domain circuit in SPICE.
3) Extract the important thing parameters in the analog components that lead towards the signature tone from the effect.
4) Convert the circuit right into a real-time, computable Binary Connection Tree (BCT) WDF model while using new nonlinear modeling techniques.
5) Simulate the WDF form of the circuit using MATLAB and rival the initial version.
6) (if at all possible) Make use of the alpha discharge of the C++ WDF Framework being coded in CCRMA to create a VST wordpress plugin from the filter.
I had been first brought to WDF’s this past year in JOS’s physical modeling course: MUSIC 420. I required now to appear within the WDF section in Physical Audio Signal Processing by Julius Orion Cruz III ()
Below are the primary takeaways:
1) Every delay aspect in a WDF could be construed physically as holding the present condition of the mass or spring (or capacitor or inductor).
2) WDFs are finite-difference schemes which have abnormally good statistical qualities
3) Voltages and currents (forces and velocities) are believed to be within the traveling wave domain rather from the Kirchoff domain.
4) Each circuit component (current sources, capacitors, resistors, inductors) includes a simple discrete time model within the wave domain. These elements are connected using "adaptors" (series or parallel) according to Wave Scattering Theory.
I expect to reviewing the examples in link provided above to refresh around the qualities of WDFs.
We have spent through some fundamental examples present in MUSIC 420, I arrived at to CCRMA’s own Ross Dunkel, who’s presently researching WDF applications perfectly into a digital type of the Fender Bassman amplifier. I understood that Ross ran a standardized C++ library to make WDF-based VST plugins with visiting scholar Maximilian Rest. Based on Ross, the framework is nearly ready for any local "Alpha" release. I discussed my curiosity about creating a WDF-based VST wordpress plugin/audio effect using the framework. Ross recommended the Dunlop Fuzz Face like a prime example to operate on.
After selecting my circuit, I requested Ross for many advice regarding how to incorporate nonlinear elements right into a WDF. All the examples I have covered only have worked with straight line circuit elements either in series or parallel connections.
Ross directed me towards Kurt Werner’s (CCRMA) research along with other pivotal references below:
-Werner DAFx 2015 RESOLVING WAVE DIGITAL FILTERS WITH MULTIPLE/MULTIPORT NONLINEARITIES
-Werner DAFx 2015 WAVE DIGITAL FILTER ADAPTORS FOR ARBITRARY TOPOLOGIES AND MULTIPORT Straight line ELEMENTS 
-Werner WASPAA 2015 
-de Sanctis and Sarti Virtual Analog 2010 
To be able to digitize the Fuzz Face, I reviewed all the stages from the analog circuit. Because of its characteristic tone and historic significance, there are lots of webpages dedicated to the research into the circuit. Fundamental essentials two most informative.
1) Electrosmash Fuzz Face Analysis 
The circuit is really a two stage amplifier having a feedback stage. The feedback network holds all the important characteristics.
Based on various sources (such as the ones linked above), the FuzzFace’s signature tone originates from its utilisation of the matched set of AC128 NPN Germanium Transistors. Generally recognized to make a smoother and fewer harsh tone compared to more reliable plastic counterparts, the AC128’s possess a shorter lifespan as well as their parameters can differ drastically from aspect of component. These transistors, however, are answer to experienceing this uneven clipping at medium gains, the most legendary tone from the FuzzFace (featured in lots of Jimi Hendrix guitar solos)
Ideally, I have to look for 2 AC128 transistors with particular current gains (Beta parameter) to offer the searched for-after old-fashioned tone. Known as "matched pair," it’s good to possess Q1 with Beta = 70-80 along with a Q2 with Beta = 110-130.
To obtain a sense of the FuzzFace circuit characteristics, it’s Electricity bias points, frequency response, etc, I made the decision to construct an earlier stage simulation in LTSPICE. The next link includes a screenshot from the SPICE schematic of the initial phase simulation
Here is a port-output graph (within the time domain and frequency domain) for sine tone at 440 Hz.
Here are a few of my takeaways in the first round of simulation
1) My simulation, although it did properly simulate the overdrive effect, the output waveform didn’t retain the asymmetrical clipping that we’re searching for using the FuzzFace.
2) The transistor model used is really a generic PNP transistor models included in SPICE. To get a precise simulation, I have to get hold of a matched set of AC128s making my very own custom SPICE model.
3) Rather of the potentiometer(s), I made use of 2 resistors dividing the entire resistance equally. LTSPICE doesn’t contain potentiometers in the standard library. Since I Have don’t have any experience building or installing third-party SPICE models, this can be a great beginning indicate find my way round the SPICE code base before I develop a custom transistor model.
After looking through numerous electronic vendors as well as other websites, I finally happened upon a completely independent vendor within the Czech Republic selling a matched set of AC128’s using the correct current gain values. I placed my order. Hopefully they arrive successfully at some point. I really hope to now learn on how to derive the required parameters for any transistor model in SPICE and obtain in to the Max Lab to complete my tests.
I have also done lots of paper studying now. It’s been suddenly formidable to get completely swept up with all the nonlinear modeling techniques using WDFs. I’m hopefully ending up in Kurt in a few days to work through some lingering questions, especially regarding how to make up the SPQR Graph he explains in the paper.
I am still waiting on the appearance of the transistors in the Czech Republic. This may be a significant extended wait because the standard shipping time is all about 2 days. Meanwhile, I met with Kurt to operate over some concepts which were still confusing me from his two papers pointed out above. We sitting lower, covered the paper all the way through, and labored on some applications toward the FuzzFace.
Kurt described much more about the idea behind placing all the nonlinearities inside a group at the bottom from the tree to make sure computability. For transistors, it’s customary to make use of the Ebers-Moll model in digital simulation. The important thing is based on while using R-Type Adaptor like a connector to link the incomputable nonlinearities to all of those other circuit. In graph theory, the R means a ‘Rigid’ connection that’s neither Series nor Parallel. The wave scattering parameters, while less generally used, are available utilizing a technique known as Modified Nodal Analysis.
The vector nonlinearities are put over the root R type adaptor, therefore the nonlinear elements are separated in the scattering. Within our meeting, we derived the adaptor structure for that FuzzFace analog circuit. A diagram is related below.
Since I’ve the WDF Graph, I still need learn to derive the Scattering Matricies while using Modified Nodal Analysis method described within the recent literature. Because so many nonlinearities are described within the Kirchoff domain, we require a conversion condition that transforms the Kirchoff domain vector nonlinearity in to the wave domain. Once converted, the signals are delivered to the scattering matrix. Regrettably, some delay free loops still remain. To eliminate these problems, the matrices are consolidated into Nonlinear Condition Space form (NLSS) along with a transformation is used towards the vector nonlinearity function. Refer to Werner DAFx 2015 RESOLVING WAVE DIGITAL FILTERS WITH MULTIPLE/MULTIPORT NONLINEARITIES for an entire mathematical description from the process. A hyperlink to some diagram in the paper is below:
Regrettably, I still do not need the alpha discharge of the C++ WDF Framework. It’s searching most unlikely which i can get for this step from the project this quarter.
The transistors have showed up (hopefully functional)! Now i plan to get involved with the lab to extract the parameters essential to build an LTSPICE model. As pointed out before, the circuit uses two potentiometers to manage a dark tone and the level of the output. Since LTSPICE doesn’t have a built-in potentiometer, I figured it might be helpful to learn to install third-party libraries and symbols within the program. This wound up not as straightforward as initially thought. I’ve come up with helpful information regarding how to install third-party LTSPICE libraries for Macosx users within the link below.
After wading through file systems, .lib files, and .asy files, I installed making some changes towards the "Standard Potentiometer" library in the "LTwiki." This ought to be very helpful lower the road simulating different volume and tone stages for future analog circuit projects.
I’ve built a brand new LTSPICE simulation such as the two potentiometers. The simulation precisely depicts the asymmetrical clipping and signature harmonic alterations from the FuzzFace.
Because the C++ Framework continues to be in development, I requested Kurt if he’d any MATLAB or other software programs will be able to use to simulate WDF’s. Kurt sent me a few MATLAB files along with a simulation of Diode Clipper to obtain my bearings within the library. I additionally visited the Max Lab with my AC128 to do parameter extraction. Using the extracted Gummel-Poon parameters, the output waveform is finally a precise simulation from the FuzzFace, demonstrating asymmetrical clipping with tone knob adjustments whilst not affecting the output waveform amplitude.
Week 10 and Presentation
This is a connect to the slides and results I presented for that final presentation day. Since I have extracted a suitable model that precisely simulates the transistors, I can not wait to place the WDF Formulation in to the alpha discharge of the framework if this becomes availiable.