Comments (7)
It's been a while since I looked at tbvcf, but from what I recall it was never really much of an "emulation" to begin with, more of an empirically tuned biquad filter with loose associations with the tb303 filter sound.
This is a filter I'd probably avoid and maybe even deprecate.
Soundpipe also has sp_diode, which is based off of Will Pirkle's diode ladder filter, which should be something closer to the TB-303 filter. At the very least, it'll sound better:
https://www.willpirkle.com/virtual-analog-diode-ladder-filter/
https://github.com/AudioKit/AudioKit/blob/b7b68ce544f5009e12ef439d56130187dedaec25/Sources/soundpipe/modules/diode.c
But honestly, if you're a purist looking for a real tb303 filter emulation, these may all fall short, as these are just generic filter topologies structures that are similar, and not a physical model of the actual 303 circuit.
The VCS3 code mentioned above uses JUCE-specific oversampling, which wouldn't be portable. But other than that, I don't see why you couldn't make a soundpipe version of that code. However, there is no license currently for that codebase. For that code to be ported to soundpipe, a license would needed to be added and it would need to be compatible with the MIT license that Soundpipe has.
from cookbook.
https://www.youtube.com/watch?v=WamlDmvT_20
from cookbook.
Somewhat ridiculously the Csound team prefers to add a new one rather than replacing that one or merging a pull request with an accurate emulation because “some projects may be based on that wrong emulation”.
I got to actually give it to them on this one ... I used to use some software with a totally borked implementation of a flanger, and it was so badass - unwieldy to control, hard to tame, and would blow up, but the sound was incredible. The developer eventually 'fixed' the flanger, and well, I didn't use that software anymore. Those sounds are now stuck in the ether of that time period.
I would love to still have that broken flanger around, so I can appreciate their response.
from cookbook.
After some testing and research, I found the same issue you mentioned. This video is a great explanation of how a ladder filter works which I used as a reference: ECE4450 Moog Ladder Filters Analyzed (Analog Circuits for Music Synthesis, Georgia Tech course). At 1:32 in the video, Dr. Lanterman mentions something called the "quadratic roots of unity." This subject seems to be the root cause of this issue. If you take a look at the diagram in the video at this point, there is a parameter, −ωc. This is the cutoff in terms of radians per second. Maybe the Soundpipe implementation on this filter has the parameter as **+ωc instead? I'm not saying this is the cause, but it's starting to make sense.
As you mentioned, the diode latter filter usually peaks when the cutoff frequency parameter is higher. I can confirm that observation by a video of a diode latter filter I found here Oakley Sound TB-303 Diode Ladder VCF. Here's an additional video with the original TB-303 Instrument too Roland TB-303 Bass Line In Action. You can tell when both of the demos turn the cutoff frequency up, the "scream" or "flutter"-- as some call it-- becomes apparent.
In addition to this, I think the resonance and distortion parameters start out really high in the Cookbook example. Therefore, as soon as you try to turn the cutoff frequency down, the system will oscillate out of control. Thankfully, something shuts off the audio to save my ears.
I think you are doing the right thing and looking in the right place with the Soundpipe code. That is where all the DSP code for the filter is. I'm not sure yet if adding more parameters would help, but I think I will dig deeper and look at it some more. That way, I can be sure I understand how everything works.
In the meantime, @aure (creator of AudioKit) and @PaulBatchelor (creator of Soundpipe) may be able to offer additional feedback on this issue.
from cookbook.
from cookbook.
@eljeff That is what versioning IS FOR. Haha. This is github. 21st century now.
Not saying swift 1-3 was excusable, but updates that fix huge mistakes are important to do. Typing this on an apple butterfly keyboard that doesn't type some keys properly (needs to go to an apple store) and that was an apple hardware engineering fail, and CERTAINLY hope apple has upgraded that design, regardless of people that like randomly functional keyboard keys.
from cookbook.
I'd say this is not a cookbook issue, so I'd rather have the discussion moved to SoundpipeAudioKit.
from cookbook.
Related Issues (20)
- Missing package product 'CookbookCommon' HOT 3
- Cookbook no longer runs xcode 14 HOT 1
- Tuner not producing output values HOT 1
- Recommend moving that "work in progress" roland filter emulation to the "work in progress" folder. Can also replace that with a VCS3 filter instead. HOT 1
- Could you Solve this problem?? We don't know Which is the problem of EXS file Or the problem of "SampleManager.cpp:440" ?? HOT 1
- CookBook package resolution does not work in Xcode 13 HOT 3
- ADD MIDI CONTROL OUT EXAMPLE HOT 4
- Does Audiokit provide any functionalites to play audio from NSData HOT 3
- Cookbook does not build in Xcode 15 beta 2 HOT 2
- Crash when going back from Mini App / Drum Sequencer without stopping
- Error in CompletionHandlerConductor file. HOT 2
- New addition HOT 1
- Mac Catalyst target build fails HOT 3
- Telephone Example: Text cannot be deleted. Uneven button layout.
- Engine stopped when going from Bluetooth audio route to Multi Segment Player
- Bluetooth headphone support
- Build failed due to 'Keyboard' package HOT 4
- Missing required module 'CAudioKitEX' in Previews HOT 1
- Piano doesn't sound as before HOT 4
- GraphicEqualizer example appears to be non-functional
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cookbook.