Commit Graph

1496 Commits

Author SHA1 Message Date
Oskar Wallgren
1e98cb7b58 Envelope graph shooting over target 2014-01-30 03:44:37 +01:00
Oskar Wallgren
ba69e70bdb More envelope sustain respon fixes 2014-01-30 01:01:58 +01:00
Oskar Wallgren
4a1417821f Fixed envelope sustain response 2014-01-29 02:29:19 +01:00
Tobias Doerffel
b8149c1d88 EffectView: fix crash when removing dummy effect plugin
If a certain effect plugin fails to load a dummy plugin is inserted
instead which has no sub window and thus caused a crash in EffectView
destructor.
2014-01-28 00:26:29 +01:00
Tobias Doerffel
f2c4d144c8 FxMixerView: set minimum width for EffectRackView
The EffectRackView was a little bit too small in Win32 build, therefore
explicitely set minimum width.
2014-01-27 00:34:55 +01:00
Tobias Doerffel
6217201184 Added initial versions of new logo 2014-01-27 00:08:36 +01:00
Tobias Doerffel
d5113d0059 MidiWinMM: fixed MidiPort API calls 2014-01-26 23:45:29 +01:00
Tobias Doerffel
ef4f9b1b60 InstrumentTrack: partly revert ad27039b9b
Even though there are probably not many old projects out there, at least
old presets didn't load properly anymore as of ad27039b9b.
Fix this by reintroducing compat code.
2014-01-26 23:18:59 +01:00
Tobias Doerffel
db0570b130 InstrumentSoundShaping: more sanity checking 2014-01-26 23:14:59 +01:00
Tobias Doerffel
09395a2f3e NotePlayHandle: stop properly when arpeggio is played via MIDI
If a note is played via MIDI (e.g. with infinite frame count) and arpeggio
is enabled the NotePlayHandle never got deleted as framesLeft() always
returned a big value even after release.

Closes #169.
2014-01-26 19:09:11 +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
725ff59f0e NotePlayHandle: added property to track origin
Using the origin property we can track where a NotePlayHandle instance
originates from (Pattern, MIDI, ...) and build new functions around this.
2014-01-26 16:44:54 +01:00
Tobias Doerffel
7103bb31d6 InstrumentTrack: more coding style improvements 2014-01-26 16:02:35 +01:00
Tobias Doerffel
ad27039b9b InstrumentTrack: removed compat code for loading old projects
We should not need compat code for project files < 0.4.x anymore.
Anybody who wants to load project files made before 2008 is advised to
open them in LMMS 0.4.x first and save them so they get upgraded.
2014-01-26 15:56:10 +01:00
Tobias Doerffel
1fae0ce74a Merge pull request #166 from wongcc966422/fileDialogSegfaultFix
Fixes segfault when clearSelection() is called with a new instance of FileDialog
2014-01-26 06:49:41 -08:00
Tobias Doerffel
20700b1c71 InstrumentTrack: fixed range for pitch model 2014-01-26 14:22:41 +01:00
Tobias Doerffel
0a5665ae16 InstrumentTrack: send RPN update in updatePitchRange()
When changing the pitch range all we can do for MIDI is to update the
MIDI pitch bend sensitivity RPN even though this is only supported by
some MIDI instruments.

Closes #129.
2014-01-26 14:07:15 +01:00
Tobias Doerffel
52d2274e19 InstrumentTrack: coding style fixes 2014-01-26 14:07:06 +01:00
Tobias Doerffel
0e00fc6aa1 InstrumentTrack: replaced numbers by newly introduced constants 2014-01-26 14:06:46 +01:00
Tobias Doerffel
8c9778c945 AutomatableModel: do not change init value when adjusting range
This causes e.g. the default value of the pitch model to be changed
when changing the pitch range.
2014-01-26 14:05:22 +01:00
Wong Cho Ching
e4cca6a0b3 Added semi-colon to make it build 2014-01-26 20:45:34 +08:00
Wong Cho Ching
91d73bba2b Fixes segfault when clearSelection() is called with a new instance of FileDialog 2014-01-26 19:40:52 +08:00
Tobias Doerffel
f519bec995 MainWindow: remove undo/redo actions from edit menu for the time being
As undo/redo are not working properly at the moment, do not expose
according menu items to the user. This will be fixed in upcoming releases.

Closes #152.
2014-01-26 12:34:12 +01:00
Tobias Doerffel
4ba5edc32c InstrumentTrack: generally do not forward NoteOn/NoteOff/KeyPressure events
If we receive MidiNoteOn, MidiNoteOff or MidiKeyPressure events we always
kind of handle them in processInEvent() so do not forward them to the
instrument.

This fixes a freeze when loading VST plugins as PianoView::focusOutEvent()
tried to send MIDI events to the not yet completely loaded and thus locked
VST plugin.

Closes #160.
2014-01-26 10:17:10 +01:00
Tobias Doerffel
80a58df124 MidiPort: coding style improvements 2014-01-26 10:01:54 +01:00
Tobias Doerffel
c5ab13e5c5 InstrumentTrack: check for instrument instance in processOutEvent()
There are situations where processOutEvent() is being called while
loading instrument track settings e.g. when loading the pitch model
whose dataChanged() signal is connected to InstrumentTrack::updatePitch()
which in turn calls processOutEvent(). At this time we do not have an
instrument instance and therefore have to skip processing.

Closes #164.
2014-01-26 09:48:15 +01:00
Andrew Kelley
31c0f77248 fix incorrect type; makes smooth knobs actually smooth 2014-01-25 23:04:05 -05:00
Tobias Doerffel
52270aebc1 MidiWinMM: adapted MIDI changes
Fixes build failure after recent API changes.
2014-01-26 01:49:33 +01:00
Tobias Doerffel
519a29e608 SampleBuffer: define OV_EXCLUDE_STATIC_CALLBACKS
Define OV_EXCLUDE_STATIC_CALLBACKS in order to suppress compiler warnings
about unused static instances when building Win32 version.
2014-01-26 01:18:19 +01:00
Tobias Doerffel
049951438a Do not pass default time to processInEvent()
We introduced default parameters for MidiTime parameters so there's no
need to construct them manually.
2014-01-26 01:15:43 +01:00
Tobias Doerffel
5808c8b786 NotePlayHandle: fixed minor auto replace typo 2014-01-26 00:59:12 +01:00
Tobias Doerffel
d2aab11130 InstrumentTrack: work with transposed MIDI event and key in processOutEvent()
In processOutEvent() initialize and use a MidiEvent object with transposed
key as well as the key variable.
2014-01-26 00:38:23 +01:00
Tobias Doerffel
b6e4860fdb InstrumentTrack: do not set state of piano in processInEvent()
As processInEvent() is responsible for starting/stopping notes, we do
not have to set the state of the piano. This is done in processOutEvents()
already.
2014-01-26 00:33:51 +01:00
Tobias Doerffel
1fddc81c04 InstrumentTrack: removed option for disabling activity indicators
Probably never used by anyone and just makes code unneccessarily complex.
2014-01-26 00:25:32 +01:00
Tobias Doerffel
7d395c00fa InstrumentTrack: removed option for disabling PianoView visual feedback
Probably never used by anyone and just makes code unneccessarily complex.
2014-01-26 00:19:16 +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
1f35143927 Fader: fixed drawing of peaks
As the fader background graphics recently have changed, the code for
drawing the peaks had to be fixed as well.
2014-01-25 20:49:02 +01:00
Tobias Doerffel
628ec62ee8 Merge pull request #149 from diizy/stable-0.4
Final UI updates
2014-01-25 11:17:03 -08:00
Tobias Doerffel
8b4e2fc216 Merge pull request #145 from wongcc966422/ghostPeakController
Fixes Ghost Peak Controller Bug
2014-01-25 11:13:13 -08:00
Vesa
8a508eff27 Graphics tweaks here and there. Lots of palette adjustments, rest of the most important icons done. CPULoad widget fix to allow transparent background without glitching. 2014-01-25 17:40:21 +02:00
Vesa
84926cae4c Oscilloscope, tripleosc gfx fix 2014-01-25 17:40:21 +02:00
Wong Cho Ching
6cda610f48 Fixes build issue 2014-01-25 22:49:41 +08:00
Lukas W
4d306c3855 Fix mismatched delete
delete was called on memory allocated with malloc() which results in
undefined behaviour. Fixed by using free() instead of delete.
2014-01-25 14:40:09 +01:00
Tobias Doerffel
e95d32ed67 Merge pull request #137 from Lukas-W/stable-0.4-iss130
Issue #130: Controllers Naming: Prevent duplicate names
2014-01-24 16:34:45 -08: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
c6b7ccd9f7 InstrumentFunctionViews: manage widgets using layouts 2014-01-25 01:10:47 +01:00
Tobias Doerffel
ddf63cb924 ComboBox: added sizeHint() + coding style 2014-01-25 01:10:09 +01:00
Tobias Doerffel
c12afd53d5 FileDialog: added music folder and working directory to sidebar 2014-01-25 00:05:16 +01:00
Tobias Doerffel
7b4aaa6dfa Merge pull request #98 from Lukas-W/stable-0.4-iss90
Update file open/save dialogs
2014-01-24 14:56:23 -08:00
Tobias Doerffel
84b3c5b8df Merge pull request #127 from wongcc966422/LFOBitinvaderVibedCustomWaveforms
Make LFO controller, Bit Invader and Vibed accept custom waveforms
2014-01-24 14:56:04 -08:00