Commit Graph

17 Commits

Author SHA1 Message Date
Tobias Doerffel
2591378818 LcdSpinBox: adopt naming style convention 2014-02-20 22:17:28 +01:00
Tobias Doerffel
8c06cb60f4 InstrumentTrack: always process silence at least one time
As of commit 1266278229 silent buffers
from InstrumentPlayHandle-driven instruments are ignored. This is a good
thing but can beak PeakController instances attached to e.g. ZynAddSubFX.

Fixes playback of unfa-Spoken.mmpz.
2014-02-06 23:40:50 +01:00
Tobias Doerffel
2e7733eaa1 DataFile: renamed from old multimediaProject class + coding style fixes 2014-02-03 21:21:36 +01:00
Tobias Doerffel
ca0e413fd3 Renamed PlayHandle classes and some functions with bool return values
Next big coding style update - this time all PlayHandle classes are
affected. Functions like done() and released() were renamed to
isFinished() and isReleased().
2014-01-29 23:54:47 +01:00
Tobias Doerffel
4b340f7d5f InstrumentTrack: manage MIDI note recording in NotePlayHandle
We must not record notes when receiving external MidiNoteOff events
as e.g. the sustain pedal still might be pressed. State tracking for
features like these is done inside NotePlayHandle so move the recording-
related signal emission from InstrumentTrack to NotePlayHandle.

Closes #168.
2014-01-26 16:48:35 +01:00
Tobias Doerffel
99ea20463e InstrumentTrack: fixed midiPitch() and added midiPitchRange() 2014-01-26 14:03:25 +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
ec45c381c3 Renamed instrument function classes and instances
Arpeggiator got InstrumentFunctionArpeggio and ChordCreator got
InstrumentFunctionNoteStacking. All related views and instances have
been renamed for better consistency.
2014-01-25 01:27:28 +01:00
Tobias Doerffel
3841e05427 InstrumentTrack: added pitch range spinbox 2014-01-18 13:40:40 +01:00
Tobias Doerffel
1f52feae8a InstrumentTrackView: manage general settings widget using layouts 2014-01-18 13:38:35 +01:00
Tobias Doerffel
f2590c24df Replaced [S/U]int[8/16/32] with types from stdint.h or plain integers 2014-01-18 02:56:38 +01:00
Tobias Doerffel
4e5507a30a TrackContainer, TrackContainerView: adopted coding style
Renamed file and class names.
2014-01-14 17:39:02 +01:00
Tobias Doerffel
c39512403b InstrumentTrack, NotePlayHandled: added initial sustain pedal support 2012-11-11 19:39:27 +01:00
Tobias Doerffel
a9717c0cc3 NotePlayHandle: send correct MidiNoteOff events if base note changed
When changing an InstrumentTrack's base note while NotePlayHandles are
active, they will send a wrong MidiNoteOff event due to the masterKey()
translation in InstrumentTrack::processOutEvent().

Therefore in NotePlayHandle remember the original base note value and
add the difference between original and current base note to the value
returned by NotePlayHandle::key(). Fixes hanging notes in MIDI-based
instruments such as ZynAddSubFX.

Furthermore some coding style improvements.

Closes #3146975.
2010-12-31 13:23:08 +01:00
Tobias Doerffel
60d302d09e InstrumentTrackView: use QMdiArea's window activation history
There's no need to implement an own (buggy) window activation history
for InstrumentTrackWindows. Use QMdiArea::subWindowList(...) instead.
Fixes buggy keyboard focus when switching between InstrumentTrackWindows.
(cherry picked from commit c05965117c)
2010-10-06 10:17:48 +02:00
Tobias Doerffel
3ae2b40eec InstrumentTrackView: added one-window-mode + global piano focus
Added a one-window-mode which allows to have only one instrument track
window open at a time. The content of this window is replaced each time
you open a different track.

Furthermore added global reception and forwarding of key events to the
piano widget of the top-most instrument track window. This for example
enables the user to play test sounds while tweaking some effects in a
different subwindow.
(cherry picked from commit 93681760d2)
2010-10-05 11:25:43 +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