This project, completed during my technical internship at Maynooth University, Ireland, focuses on the design, simulation, and analysis of analog filters used in synthesizers. By creating digital models of famous analog filters, this project tends to help musicians and engineers explore new sound designs and analyze existing ones using simulation tools like MATLAB, LTspice, and LiveSPICE.
Throughout the project, three types of filters were studied:
- Linear Filters: Filters with a linear frequency response, such as low-pass, high-pass, and bandpass filters.
- Non-linear Filters: Filters that introduce non-linearities, such as the Moog Ladder Filter and Buchla Lowpass Gate.
- State-variable Filters: Filters that can simultaneously control multiple filter types (low-pass, high-pass, and bandpass) with a single circuit.
- Create digital models of famous analog synthesizer filters.
- Compare these models with real hardware versions to validate the digital simulations.
- Use simulation tools like MATLAB, LTspice, and LiveSPICE to analyze and improve existing analog filter designs.
- Develop new hybrid filter designs and simulate them before physically constructing them with hardware components.
- Make these filter models available for the global music and research communities.
MATLAB is a high-level programming language used for numerical computations. It was used for initial simulations of analog filters, particularly for basic designs like low-pass filters and various resonant circuits. MATLAB was particularly useful for the following filter types:
- Bandpass filters (4th and 8th order)
- Chebyshev inverse filters
- High-pass filters
- Bessel filters (6th order)
- Moog Ladder Filters (4th order)
LTspice is a powerful simulation tool based on SPICE, widely used in the electronics industry for circuit simulation. LTspice was used for more complex analog filter simulations, including:
- Low-pass, high-pass, and bandpass filters (various orders)
- Sallen-Key filters
- Moog and Buchla low-pass filters
- Biquad filters
- State-variable filters
LiveSPICE is a real-time simulation tool for audio circuits, specifically designed for SPICE-based simulations. It was used to simulate and test state-variable filters, including the development of new hybrid designs that could be further tested for real-world applications.
Element is a modular VST host application used to test the audio effects created with LiveSPICE. It integrates with LiveSPICE's VST plugin and was essential for testing the audio response of the filters in real-time.
To set up the necessary environment for using the filter models in this project, follow these steps:
- MATLAB (for filter design and basic simulation)
- LTspice (for detailed analog filter simulation)
- LiveSPICE (for real-time audio simulation)
- Kushview Element (for VST hosting and audio testing)
-
Install MATLAB:
- Ensure you have a valid license for MATLAB.
- Download and install MATLAB from the official MathWorks website: MathWorks - MATLAB.
-
Install LTspice:
- Download LTspice from the official Analog Devices website: LTspice Download.
-
Install LiveSPICE:
- Download LiveSPICE from the official website: LiveSPICE.
-
Install Kushview Element:
- Download Element from the Kushview website: Kushview Element.
-
Clone the GitHub Repository:
- Clone this repository to your local machine:
git clone https://github.com/Joliaus/analog-filter-models.git
- This will create a local copy of the repository on your computer.
- Clone this repository to your local machine:
-
Set Up Filters:
- Place the filter design files in the appropriate directories as specified in the documentation of each tool (MATLAB, LTspice, and LiveSPICE).
- Navigate to the MATLAB script directory.
- Open MATLAB and run the provided
.m
scripts to simulate the filters. - Adjust the filter parameters such as frequency cutoff and resonance to explore different filter characteristics.
- Open LTspice and load the
.asc
schematic files for the desired filter. - Run the simulation and analyze the frequency response.
- Use the LTspice built-in tools for further analysis.
- Open LiveSPICE and load the state-variable filter models.
- Use the VST plugin for real-time simulation and connect it to an audio input source (e.g., guitar or synthesizer).
- Use Kushview Element to host the VST plugin and process the audio in real time.
This project is licensed under the MIT License - see the LICENSE file for details.