Commit Graph
46 Commits
Author SHA1 Message Date
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