12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- LB303 Bass Synth - Known bugs, issues, and missing features
- -----------------------------------------------------------
- 2007.02.03 - First release
- --------------------------
- Important note, in the current incarnation there are many behaviors,
- constants, and other items that will be changed. This will result
- in a change of the instrument's timbre and functionality. Therefore,
- it would be wise to not make any masterpieces with the synth at
- this point in time.
- BUG:
- Fix the awful clicking cause by adjacent notes. This problem seems
- to be caused by 'unexhausted buffers' That is, the problem manifests
- itself to a greater degree when the user "buffer size" configuration
- is increased to over 1024 frames or so. The problem is much less
- noticeable when the buffer size is set to 64 frames.
- BUG:
- The synth does not make accomodations for sampling rates other than
- 44100. This should be easy to fix, but I haven't gotten around to
- it; nor do I have the means to test it.
- BUG:
- I get segfaults now and then. Granted, I've rarely used LMMS
- without also using LB302, so I do not know if the problem is actually
- in the Bass Synth. I have gotten the backtraces a few times:
- ...
- mixer::renderNextBuffer()
- mixer::nextAudioBuffer()
- QOBject::activate_signal()
- ??()
- and
- ...
- instrumentTrack::play()
- notePlayHandle()
- instrumentTrack::processOutEvent()
- fadeButton::activate()
- QSingleShotTimer::start()
- qStartTimer()
- qKillTimer()
- QGList::insertAt()
- TODO:
- Add accent feature. This isn't as bad as it sounds, but will require
- some tweaking to get right.
- TODO:
- LB302 contains code for a short fixed-length default decay. If a
- released note is using a user-defined VCA from the instrument
- panel, then LB302 should not do anything special. However, if no
- envelope is specified, then LB302 should request enough release-frames
- in order to apply the built-in exponential decay.
- TODO:
- The original TB303's square wave is not 50% duty cycle. The peaks are
- supposed to slope down slightly. It would be nice to be able to
- configure this. In fact, each waveform could have a parameter knob to
- change some aspect of the wave. See lb302.cpp:643 for more info.
- TODO:
- Must decide on proper action to take when a slide note is interrupted
- by another slide note. Right now, the slide-from frequency is always
- replaced with the prior note. However, we may wish to maintain the
- current frequency in order to make the sound more continuous.
- TODO:
- The default filter's distortion could use some work.
- effectLib::distortion<> gets the job done, but the coefficients need
- to more closely match that of lb302Filter3Pole's tanh distortion.
- TODO:
- Slide decay needs a better knob mapping. sqrt()? lb302.cpp:588
- TODO:
- Consider making the slide trigger set the note to slide TO as opposed
- to the note to slide FROM. I originally did FROM in order to match
- the real 303. However, TO may be more intuitive.
- TODO:
- Various code refactoring, as well as precomputing some values.
- TODO:
- Remove one of the sawtooth waveforms in favor of the other?
|