Commit Graph

38 Commits

Author SHA1 Message Date
Tobias Doerffel
7b8eaa6835 Merge remote-tracking branch 'origin/stable-0.4-undo-redo'
Conflicts:
	include/AutomatableModel.h
	include/MidiPort.h
	include/TrackContainerView.h
	include/surround_area.h
	include/track.h
	src/core/AutomatableModel.cpp
	src/core/TrackContainer.cpp
	src/core/note.cpp
	src/core/track.cpp
	src/gui/PianoRoll.cpp
	src/gui/TrackContainerView.cpp
	src/gui/widgets/LcdSpinBox.cpp
2014-03-24 19:37:26 +01:00
Tobias Doerffel
5e2d299360 MidiPort: introduced internal base velocity property
In order to keep compatibility with projects created with LMMS < 1.0.0
we maintain a property specifying the base velocity (i.e. the velocity
sent to MIDI-based instruments at volume=100%). For new projects this
always will be 64 while compat code enforces a value of 127 for old
projects.

We can also think about hiding the new groupbox in order to hide
complexity from the user.

Closes #430.
2014-03-17 22:30:52 +01:00
Tobias Doerffel
0ca3901ab8 Normalize volume 100% to MIDI velocity 63
Furthermore moved midiVelocity() to Note and removed global volumeToMidi()
helper method.

Closes #280.
2014-03-08 12:13:42 +01:00
Tobias Doerffel
9eafca3615 Note, NotePlayHandle: no default arguments for setVolume() and setPanning() 2014-02-25 00:27:11 +01:00
Tobias Doerffel
3a827f061f Reworked MIDI event handling in InstrumentTrack and renamed MIDI classes
The MIDI event handling in InstrumentTrack was complex and buggy. It has
been simplified now such that processInEvent() tries to handle note on,
note off and key pressure events. The actions taken should result in
equivalent calls to processOutEvent() by NotePlayHandle instances. The
processOutEvent() function sends according MIDI events to the attached
instruments. All unhandled MIDI events are directly forwarded to the
instrument in processInEvent().

It's possible that some corner-cases are not handled yet with the new code
and we have regressions now.

Furthermore renamed midiTime/midiEvent to MidiTime/MidiEvent to match
coding style.

Closes #72.
2014-01-26 00:08:12 +01:00
Tobias Doerffel
a5c3cf6a99 Revised journalling (undo/redo) to record full states instead of changes
Recording single changes of objects or their specific properties is
completely superfluous as we have full implemented state tracking in all
objects already. Therefore use SerializingObject::saveState() and
SerializingObject::restoreState() in order to implement the undo/redo
functionality.

This is just an initial commit and needs some further work (especially
regarding stability). However even things like undo/redo of
addition/removal of Tracks and TrackContentObjects do work already.
2014-01-07 23:48:09 +01:00
Tobias Doerffel
89eae05a16 Renamed all automation related files and classes to match new coding style
All automation-related files and classes have been renamed to match the
new coding style.
(cherry picked from commit 9b280ffb3e)
2010-08-16 23:40:33 +02:00
Tobias Doerffel
f4dbb2ff5c sed: s/( void )/(), s/FALSE/false/, s/TRUE/true
Replaced remaining occurences of old constants and superfluous "void"
on empty argument list of functions.
(cherry picked from commit 166701f9f3)
2009-08-25 01:42:20 +02:00
Tobias Doerffel
1d5cb23385 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.
(cherry picked from commit 8c9a9dd14c)
2009-08-25 01:30:41 +02:00
Tobias Doerffel
7a632277b8 Renamed type noteVector to NoteVector
Renamed type noteVector to NoteVector as well as ::iterator to
::Iterator and ::const_iterator to ::ConstIterator.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit e12476f79c)
2009-06-18 23:32:32 +02:00
Tobias Doerffel
ec07aef5ac 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++.
(cherry picked from commit 7449c4f731)
2009-03-15 21:50:38 +01:00
Tobias Doerffel
4c93249aae coding style fixes, improved handling of shared detuningHelper object (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@2049 0778d3d1-df1d-0410-868b-ea421aaaa00d
2009-02-19 13:40:24 +00:00
Tobias Doerffel
f62830c1ee added support for panning editing of notes (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1948 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-12-17 11:49:28 +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
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
459b13aad3 fixed inlineAutomation::hasAutomation()
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1251 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-06-30 21:48:21 +00:00
Tobias Doerffel
d6262bb556 use lmmsconfig.h rather than config.h and use prefixed macro-names
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1097 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-06-08 11:30:47 +00:00
Tobias Doerffel
d5ee064c3c splitted basic functionality of journallingObject into serializingObject so that creating note objects, notePlayHandles etc. does not have all the journalling-overhead (assigning/freeing ID etc.)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1084 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-06-06 11:42:02 +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
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
2862b60de0 added missing includes when compiling headers itself
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@826 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-04-01 00:31:08 +00:00
Tobias Doerffel
c31dbd6a09 merged note's tone and octave-property into one key-property which makes us save calculations in a lot of places and also shrinks sizes of XML-files, renamed various note-related constants and enums to match current coding-style
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@806 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-03-22 13:24:43 +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
Javier Serrano Polo
20f631bdca global clipboard, groupbox automation, volume vector, several segfaults
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@486 0778d3d1-df1d-0410-868b-ea421aaaa00d
2007-05-12 14:56:52 +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
16a61bf8fe static engine, chunked audio buffer, pat fix, MIME type
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@472 0778d3d1-df1d-0410-868b-ea421aaaa00d
2007-04-19 06:52:29 +00:00
Tobias Doerffel
f7009c3afd bugfixes and improvements
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@440 0778d3d1-df1d-0410-868b-ea421aaaa00d
2006-12-18 16:05:08 +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
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
dd3668dcd4 - added detuning knob
- added explicit constructor from another note


git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@226 0778d3d1-df1d-0410-868b-ea421aaaa00d
2006-07-14 20:07:43 +00:00
Javier Serrano Polo
3137d3303a moved quantized() to public
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@167 0778d3d1-df1d-0410-868b-ea421aaaa00d
2006-06-26 22:00:54 +00:00
Tobias Doerffel
b1887d62b8 lot of fixes
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@124 0778d3d1-df1d-0410-868b-ea421aaaa00d
2006-04-10 08:22:55 +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
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
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
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