Tobias Doerffel
20589f19e4
Mixer: rewrote processing chain of rendered audio buffers
...
Until now, Mixer not only was responsible for rendering audio buffers
but also managed writing them to audio backend (through a FIFO) and
handled various quality related parameters.
All this functionality has been moved into the new AudioOutputContext
class. It glues together AudioBackend (formerly called AudioDevice),
global quality settings and the Mixer.
The AudioOutputContext class creates a FifoWriter which calls
Mixer::renderNextBuffer() and writes the output into the BufferFifo of
the AudioOutputContext it belongs to. The BufferFifo is read by the
according AudioBackend which belongs to the AudioOutputContext as well.
The AudioOutputContext also handles resampling in case the AudioBackend
wants the buffers in a different samplerate.
During this rewrite the Mixer class and the according source files have
been renamed from "mixer" to "Mixer". This results in small changes
all over LMMS' code base.
2009-11-29 01:46:23 +01:00
Tobias Doerffel
d7365e4cf3
Fixed mistakes made by sed-mass-replaces
...
Some variables got renamed the way the shouldn't. Doesn't have any
functional impact but fix it for the sake of cosmetics.
2009-08-26 00:50:41 +02:00
Tobias Doerffel
8c9a9dd14c
File and class renames part 1
...
Most files and most of the core classes and their methods have been
renamed to match new coding style conventions:
391 files changed, 25400 insertions(+), 25598 deletions(-)
Furthermore splitted some files where model and view classes were
declared or implemented together in the same file.
Should be tested thoroughly as I might have missed renaming some virtual
methods or SIGNAL/SLOT parameters.
2009-08-24 17:59:28 +02:00
Tobias Doerffel
08ea133aa2
NotePlayHandle: cleanups, header dependency reductions etc.
...
* do not include instrument_track.h in note_play_handle.h by making
two functions non-inline
* renamed notePlayHandleVector / constNotePlayHandleVector to
NotePlayHandleList / ConstNotePlayHandleList and changed typedef
to QList (which has faster insert- and remove-operations).
* removed unused method willFinishThisPeriod()
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com >
2009-06-15 14:41:55 +02:00
Tobias Doerffel
7449c4f731
Fixed various types to be suffixed with "_t".
...
This commit ensures that all defined data types in include/lmms_basics.h are
suffxed with "_t" to keep consistency as well as to fix issues on systems
with older STL/libstdc++.
2009-03-15 16:28:13 +01:00
Tobias Doerffel
d0163430f2
reverted previous API changes as they can be implemented in a generic manner
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1945 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-12-16 16:51:18 +00:00
Andrew Kelley
7fe4f1e60c
experimental support for note panning in SF2 player (I'm not sure what m_maxChannels should be or how to find it out. I just picked what worked for my setup.)
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1941 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-12-16 11:24:05 +00:00
Tobias Doerffel
fce25dc625
fixed a bunch warnings and remarks issued by Intel Compiler
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1722 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-10-02 11:48:59 +00:00
Tobias Doerffel
adf8aed93c
removed obsolete instrument-parallelization support as this is handled much better by worker threads and adds unneccessary complexity
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1718 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-09-30 11:14:32 +00:00
Tobias Doerffel
880c322cf6
* replaced instrument::notePlayHandleBased() with instrument::isMidiBased()
...
* renamed bendable() to isBendable()
* if the instrument is MIDI based and instrument-track's volume is below 100, adjust velocity of MIDI events and scaling factor when mixing sound
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1715 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-09-29 19:29:04 +00:00
Tobias Doerffel
884b9ca671
* improved the way, MIDI-events are internally sent and handled
...
* fixed names of various member methods of notePlayHandle class
* full MIDI velocity when pressing key on test piano
* send volume changes of a notePlayHandle as MidiKeyPressure events
* send pitch changes of instrument track as MidiPitchBend events
* added detection for running MIDI notes
* correct calculation of MIDI key - makes remotePlugins respect base note settings
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1562 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-09-06 22:04:03 +00:00
Tobias Doerffel
98a984b94d
* additionally provide frequency without pitch-wheel
...
* added instrumentTrack::midiPitch()
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1292 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-07-07 08:34:02 +00:00
Tobias Doerffel
581dc9074c
made m_released volatile
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1279 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-07-05 23:25:28 +00:00
Tobias Doerffel
88971109d0
made note-detuning-automation work by making automationPatterns also work without a parent-track and writing a generic inlineAutomation-class
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1185 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-06-28 10:06:54 +00:00
Tobias Doerffel
bdeac9eafe
* fixed wrong config.h-inclusion and deprecated macro-names from config.h/lmmsconfig.h at various places - makes Vibed plugin work again
...
* fixed plugin-instantiation for BitInvader and Vibed
* use int instead of Uint32 in graphModel
* various coding-style fixes
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1170 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-06-24 22:21:31 +00:00
Tobias Doerffel
15134568f1
* removed volumeKnob-class and added volumeKnob-property to knob-class instead
...
* reduced header-dependencies and various cleanups
* removed obsolete settings
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1158 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-06-20 22:44:49 +00:00
Tobias Doerffel
599d515791
removed obsolete FASTCALL-attributes
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1072 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-06-05 12:48:25 +00:00
Tobias Doerffel
a3aa3f9a4d
renamed muted() to isMuted() and other coding-style fixes
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1067 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-06-03 16:03:59 +00:00
Tobias Doerffel
d3516cd5c5
made LMMS build for win32, coding-style fixes
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1038 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-06-01 22:35:02 +00:00
Tobias Doerffel
d5701ac014
reworked automatableModel (not template-based anymore), removed levelObject, splitted comboBox/comboBoxModel-source-files, began to unify context-menu-creation for controls
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1031 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-05-28 11:47:45 +00:00
Tobias Doerffel
c8c5382b35
made rendering happen with one global working-buffer per thread - hopefully improves L1/L2-cache-efficiency
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@890 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-04-05 19:06:32 +00:00
Tobias Doerffel
e24f094c62
dropped Qt3-support and improved Qt4-support
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@547 0778d3d1-df1d-0410-868b-ea421aaaa00d
2007-08-26 19:02:51 +00:00
Tobias Doerffel
e02ac19e6d
cleanups
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@517 0778d3d1-df1d-0410-868b-ea421aaaa00d
2007-08-06 13:28:28 +00:00
Tobias Doerffel
6243edf1ec
introduced offset-property in playHandles-base-class, re-ordered mixing-procedure, improved handling of monophonic instruments
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@504 0778d3d1-df1d-0410-868b-ea421aaaa00d
2007-08-04 01:21:35 +00:00
Tobias Doerffel
b6b10ddc36
fixed several bugs responsible for clicks and pops
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@488 0778d3d1-df1d-0410-868b-ea421aaaa00d
2007-07-16 19:33:25 +00:00
Javier Serrano Polo
e7f5fb8977
mutex, detuning helpers, GUI updates, play handles, many many changes... (2)
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@480 0778d3d1-df1d-0410-868b-ea421aaaa00d
2007-05-07 19:11:23 +00:00
Javier Serrano Polo
52d9ca470b
dynamic tempo, online help, filter directories
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@469 0778d3d1-df1d-0410-868b-ea421aaaa00d
2007-03-28 02:54:25 +00:00
Javier Serrano Polo
18af38266a
polyb302 instrument, detuning without signals
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@466 0778d3d1-df1d-0410-868b-ea421aaaa00d
2007-03-25 21:58:17 +00:00
Javier Serrano Polo
56eead9a65
added singerbot plugin
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@452 0778d3d1-df1d-0410-868b-ea421aaaa00d
2007-01-20 14:24:27 +00:00
Tobias Doerffel
d8b005b0d4
new distortion-class and other improvements
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@445 0778d3d1-df1d-0410-868b-ea421aaaa00d
2006-12-20 23:35:36 +00:00
Javier Serrano Polo
933a295ebd
detuning display, automation time, journalling and some improvements
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@433 0778d3d1-df1d-0410-868b-ea421aaaa00d
2006-12-06 00:36:30 +00:00
Tobias Doerffel
5a96f63533
parallelizing-support for SMP-systems
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@403 0778d3d1-df1d-0410-868b-ea421aaaa00d
2006-09-18 12:35:10 +00:00
Javier Serrano Polo
474cb5f6cc
updated FSF address
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@380 0778d3d1-df1d-0410-868b-ea421aaaa00d
2006-08-27 23:24:31 +00:00
Javier Serrano Polo
db45d0709f
added bbTrack reference to check whether it's muted
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@288 0778d3d1-df1d-0410-868b-ea421aaaa00d
2006-08-07 20:32:08 +00:00
Javier Serrano Polo
184b53a089
handle detuning automation
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@227 0778d3d1-df1d-0410-868b-ea421aaaa00d
2006-07-14 20:08:32 +00:00
Javier Serrano Polo
5034c4f4d5
update note frequency when changing base note in instrument track
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@146 0778d3d1-df1d-0410-868b-ea421aaaa00d
2006-06-05 18:28:49 +00:00
Tobias Doerffel
462c48d012
bugfixes, new plugin "Vibed" and more
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@111 0778d3d1-df1d-0410-868b-ea421aaaa00d
2006-03-27 12:19:04 +00:00
Tobias Doerffel
fe9dc8c391
improved undo/redo-system
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@109 0778d3d1-df1d-0410-868b-ea421aaaa00d
2006-03-21 13:42:28 +00:00
Tobias Doerffel
023844e908
added basic envelope for all notes to avoid clicks
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@91 0778d3d1-df1d-0410-868b-ea421aaaa00d
2006-02-27 09:01:13 +00:00
Tobias Doerffel
1ef530bde2
bugfixes and some small new features
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@89 0778d3d1-df1d-0410-868b-ea421aaaa00d
2006-02-23 11:14:15 +00:00
Tobias Doerffel
5fd05b16e4
introduced engine-technology
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@81 0778d3d1-df1d-0410-868b-ea421aaaa00d
2006-02-10 10:48:27 +00:00
Tobias Doerffel
4804108a1d
bugfixes and some small new features
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@45 0778d3d1-df1d-0410-868b-ea421aaaa00d
2006-01-09 10:31:28 +00:00
Tobias Doerffel
052224c8e2
lot of bugfixes, especially in VST-support-layer and some nice new features
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@44 0778d3d1-df1d-0410-868b-ea421aaaa00d
2006-01-03 13:15:42 +00:00
Tobias Doerffel
ab719618f7
new audio-mixing system and new VST-support-framework
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@25 0778d3d1-df1d-0410-868b-ea421aaaa00d
2005-11-30 10:19:11 +00:00
Tobias Doerffel
22de18909a
added ALSA-sequencer support
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@23 0778d3d1-df1d-0410-868b-ea421aaaa00d
2005-11-07 13:44:52 +00:00
Tobias Doerffel
4c7832a975
Initial revision
...
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@3 0778d3d1-df1d-0410-868b-ea421aaaa00d
2005-09-22 13:49:52 +00:00