Commit Graph

1289 Commits

Author SHA1 Message Date
Tobias Doerffel
26625b137f InstrumentTrack: do not evaluate realOutputChannel() for the time being
When deciding whether to forward a MIDI event directly to the instrument
plugin do not evaluate realOutputChannel() for the time being as it is
ranged from 0 to 15 and has no don't-care-state like the input channel.

This is a workaround - we need a better solution here.
2013-01-23 23:26:23 +01:00
Tobias Doerffel
a3abcdb2e0 InstrumentTrack: directly forward MIDI events under special circumstances
In the special case that a MIDI event comes from a MIDI port, the
instrument is MIDI based (VST plugin, Sf2Player etc.) and the user did
not set dedicated MIDI output channel, directly forward the MIDI event
to the instrument plugin so properties such as MIDI channels are kept.

Based on patch by nuio <numa_shsk/at/mail/dot/goo/dot/ne/dot/jp>, 2013-01-20
2013-01-23 23:12:04 +01:00
Tobias Doerffel
2327581da7 MidiPort: coding style fixes 2013-01-23 23:11:47 +01:00
Tobias Doerffel
8a6aecfbdc MidiPort: set fromMidiPort-flag of MidiEvent instances
This completes the functionality introduced with commit
edf93d04cb.

Based on patch by nuio <numa_shsk/at/mail/dot/goo/dot/ne/dot/jp>, 2013-01-20
2013-01-23 23:10:13 +01:00
Mike Choi
1c9c76f399 VST GUI fixes, improvements
Various fixes improvements:

+ Added support for VST parameters control for windows.
+ New `Close` button for VST parameter controls.
+ Faster GUI for all instruments, effects-loading, not only VSTs,
  and both one-instrument track window mode and normal window
  mode should be supported.
+ Better integration for VST GUIs on Linux, e.g. plugin window
  should not stay always on top of other windows.
+ VST GUI overlook should remain same with different wine setups
  ( except for whole virtual desktops emulations ).
+ VST effect control window merged with VST effect editor window
  should be more easier to control.
+ Little corections at effectviews model updates of instrument
  tracks effect chains.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2013-01-16 23:52:04 +01:00
Tobias Doerffel
071358bd98 PixmapButton: added parentheses to fix ambiguity
Fixes compiler warning.
2013-01-14 23:06:02 +01:00
Mike Choi
b784d3daf0 VST Effects: fix for uncontrollable plugin window
Supposed fix for 3595560, see also
http://sourceforge.net/apps/phpbb/lmms/viewtopic.php?f=7&t=778
http://sourceforge.net/tracker/?func=detail&aid=3595560&group_id=105168&atid=640434

VST effects pluginWidget is not deleted, when we close General Settings of instrument track,
on which are directly attached VST effects, but only when we remove this VST effects or tracks itself.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2013-01-13 18:56:47 +01:00
Tobias Doerffel
6940ceca44 InstrumentFunctions: added natural minor scale
A natural minor scale was missing which lead to some irritations about
the harmonic and melodic minor scales. Had to add the new scale at the
end of the chord table in order to not break existing projects and
presets in which simple chord table indices are saved.

Closes #3594824.
2013-01-13 18:13:18 +01:00
Tobias Doerffel
4a1642abc7 InstrumentFunctions/ChordCreator: fixed wrong 6add9 chord
Various seventh chords were wrong and have been fixed.

Thanks to Mike804 for pointing out issues with some chords.

Closes #3600618.
2013-01-13 17:45:51 +01:00
Tobias Doerffel
1a981f50c8 InstrumentFunctions/ChordCreator: fixed wrong 6add9 chord
The 6add9 played a normal major chord which is wrong and has been fixed.

Thanks to Mike804 for reporting this bug.

Closes #3600618.
2013-01-13 16:57:35 +01:00
Tobias Doerffel
27e2b5e4ea BbTrack: fixed openInBBEditor() to reliably show the BB Editor
Use the function provided by MainWindow to reliably show the BB Editor.

Thanks to Tres Finocchiaro for pointing out this issue.
2013-01-07 22:07:52 +01:00
Tobias Doerffel
e3e2e48b71 MainWindow: pass optional parameter to toggleWindow() to force showing window
There are use cases where we want to force to show a certain window.
2013-01-07 22:06:37 +01:00
Raine M. Ekman
9ec7613678 InstrumentTrack: Add support for more MIDI commands
MIDI commands All Notes Off, All Sound Off and Omni/Mono/Poly mode will
now silence all playing notes, as they should.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2013-01-07 21:14:04 +01:00
Raine M. Ekman
174037c31a ExportProjectDialog: fix static file extension on multitrack export
When using the multitrack export feature the output files always had
the extension ".wav", even if exported as OGG. This patch fixes this
issue.

Closes #3595157.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2013-01-07 20:28:15 +01:00
Tobias Doerffel
59300906d7 AutomationEditor: fixed drawing of empty automation patterns
Due to recent changes to AutomationPattern the inner draw loop needs
to be adjusted.
2013-01-07 00:36:43 +01:00
Tobias Doerffel
80106138c8 AutomationPattern: removed magic value at position zero
In automation patterns there always had to be a value at position zero
which also had a special semantic concerning the initial values of
connected objects. However that logic was buggy and confusing.
I therefore completely removed the neccessity for a value at position
zero (automated value will be 0 until the first set point).
2013-01-07 00:36:27 +01:00
Tobias Doerffel
99091e9ce3 AutomatableModelView: added context menu action for removing song-global automation
Up to now there was no possibility to remove song-global automation from
a control once created. Overcome this issue by adding an according action
in the context menu of all AutomatableModelView instances.
2013-01-06 23:42:33 +01:00
Tobias Doerffel
1612a25349 ExportProjectDialog: fixed broken cancel button
The cancel button functionality was lost during introduction of the
multi track export functionality.

Closes #3598342.
2013-01-06 23:13:59 +01:00
Mike Choi
3cc01560be VST Automation: lock prevention
src/core/RemotePlugin.cpp @ RemotePlugin::process

Above function should be now more thread safe, but functionality remains.
This prevent lmms locks, when automation is connected to lmms VST plugin wrappers controler / knob on Linux.
On win32 build whenever is lmms wrapper parameter controler / knob  amended.

plugins/vst_base/VstPlugin.cpp @ VstPlugin::setParam
plugins/vst_base/RemoteVstPlugin.cpp @ RemoteVstPlugin::processMessage

In above functions we dont wait for message confirmation when parameter setter function finish, and dont send such confirmations.
This workaround prevent locks on Linux, whenever there is automation connected and if you try to move with VST plugin
(not via lmms plugins wrapper, but with VSTs internal window) than it freezes, on win32 build it will freeze whenever you connect
automation and than if you move your mouse above this VST plugin window.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2013-01-06 22:57:45 +01:00
Tobias Doerffel
639763dbb2 FxMixerView: do not set size constraint on parent MDI window
As reported by Mikobuntu on 2012-12-06 there's a problem when minimizing
the FX mixer window. The problem disappears when not setting a size
constraint on the mixer's MDI window.
2012-12-09 17:29:14 +01:00
Tobias Doerffel
3bad03d56e RemotePlugin: improved management of shared memory keys 2012-12-03 00:06:25 +01:00
Tobias Doerffel
e864c8057a DrumSynth: removed unused variable 2012-12-02 19:04:45 +01:00
Tobias Doerffel
8a75c40fd6 Widgets/Fader: open input dialog on double click
There have been requests to have an input dialog when double clicking
the fader (like we have it for knobs for ages already).

Closes #3588157.
2012-11-28 00:10:11 +01:00
Tobias Doerffel
8db0d0b0fa Widgets/Fader: improved usability by not jumping to mouse click position
The previous behaviour was very annoying because starting to drag the
knob almost always resulted in a value change. This has been changed
by a rewritten logic for mouse click and move behaviour.

Closes #3588157.
2012-11-28 00:07:56 +01:00
Tobias Doerffel
3739ef82c6 Widgets/Fader: generic knob drawing code
Instead of hard-coding pixmap sizes, calculate everything dynamically.
2012-11-27 23:58:10 +01:00
Tobias Doerffel
3b72f1e9d9 Widgets/Fader: increment/decrement by 1 via scroll wheel
As per popular demand, incrementing/decrement fader value by 1 instead
of 5 when using the scroll wheel.
2012-11-27 23:36:42 +01:00
Tobias Doerffel
0dc2060ea2 ExportProjectDialog: fixed non-multi-track export once more
There was another bug causing LMMS to crash when using regular export
feature.

Thanks to Mikobuntu for reporting this bug.
2012-11-27 23:29:55 +01:00
Tobias Doerffel
533f086600 AutomatableModel: initialize m_value and m_initValue in constructor
Even though we call setInitValue() in AutomatableModel constructor,
initialize according class members before.
2012-11-26 19:48:37 +01:00
Kristi
59732b05ed ExportProjectDialog: added option for exporting song as loop (backport)
This patch adds the option to remove the extra silence at the end,
so that the exported song can be seamlessly looped.

This is a backport of commit 8f1657164a.

Closes #3588890.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2012-11-25 12:01:15 +01:00
Tobias Doerffel
9e08849d63 ExportProjectDialog: fixed crash when exporting whole project as one track
We have to use the new semantics of the ProjectRenderer management when
exporting the whole project as one track as well. Otherwise the program
crashed as it tried to utilize the ProjectRenderer instance twice.
2012-11-25 11:47:18 +01:00
Tobias Doerffel
4a962c58d9 ExportProjectDialog: coding style fixes 2012-11-25 11:46:40 +01:00
Tobias Doerffel
295dd63b0e SetupDialog: turn off auto save per default
Due to various bug reports, I think we should turn off auto save per
default. Users who want this feature can turn it on explicitely (and
live with problems when they have big projects).
2012-11-11 22:55:38 +01:00
Tobias Doerffel
3a1c117a37 CMakeLists: make fftw3 a requirement and not optional anymore
We have too many components in LMMS relying on FFTW3. Building LMMS
without them cripples LMMS' functionality substantially, so simply
make fftw3 a requirement.

Closes #3495736.
2012-11-11 22:42:04 +01:00
Tobias Doerffel
d3d6d65836 Track: do not load height information if greater than default height
This is a workaround for issue #3585927. Once we found the source of
this issue, we can revert this commit.
2012-11-11 22:17:11 +01:00
Tobias Doerffel
c9d5c1dd06 Track: coding style fixes 2012-11-11 22:11:49 +01:00
Tobias Doerffel
c39512403b InstrumentTrack, NotePlayHandled: added initial sustain pedal support 2012-11-11 19:39:27 +01:00
Raine M. Ekman
3aa03da5af InstrumentMidiIOView: added support for fixed output notes
It came to me that having LMMS output one fixed note from a track could
be useful for controlling drum machines or something like that, so here's
a new spinbox for the MIDI tab.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2012-11-10 12:50:56 +01:00
Tobias Doerffel
6f7572b949 PianoView: do not include Xlib.h header file anymore
This file is a relict from times when we evaluated X11 events for the
virtual keyboard functionality.
2012-11-10 12:28:36 +01:00
Raine M. Ekman
3a59fdea58 InstrumentMidiIOView: fix number of digits for MIDI channel spinboxes
MIDI channels are in range 1 to 16, so there's no need for 3 digits
here.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2012-11-10 12:17:28 +01:00
Tobias Doerffel
075b7b354a ExportProjectDialog: remove obsolete header
No need for iostream header in LMMS.
2012-11-03 19:38:50 +01:00
Tobias Doerffel
2c3e7483aa MainWindow: fixed ambiguous hotkey for export operations
The new export operation had the same hotkey as the classical one. This
is not a good idea and is now fixed.
2012-11-03 19:37:28 +01:00
devin
929b44f14b Added individual BB tracks to multi export
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2012-11-03 19:37:16 +01:00
Devin Venable
eb60d9e06e Added multiple track export feature.
Here is the patchset for my multiple track export feature. It works now
the way I originally envisioned.

For example, after I export tracks on my little song, I see this in the
directory I created:

devin@devin-studio:~/lmms/projects/fff$ ls
0_Defaultpreset.wav  3_Defaultpreset.wav      6_csidSouwav.wav
1_Defaultpreset.wav  4_spacenoiseswavwav.wav  7_HHOPENwav.wav
2_Defaultpreset.wav  5_csidkickwav.wav        8_HHOPENwav.wav

Each instrument or sample track is exported individually, regardless of
whether in its own song track or playing as part of a BB track. The
name is taken from either the song track name or from the BB track name.
My goal was to get the tracks individually exported, so that I could
combine them with other tracks in Ardour.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2012-11-03 19:28:40 +01:00
Raine M. Ekman
69947a624b Track: allow smaller height
Here's one way to cram more stuff onto small screens, or otherwise help
reducing visual clutter: Allow tracks to be shift-dragged all the way
down to 8 px height.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2012-11-01 21:36:31 +01:00
Tobias Doerffel
95e1ef1c78 InstrumentTrack: show FX mixer when double clicking FX line LCD spinbox
As proposed by Danil <baza-nsk@ya.ru> on 2012-03-12.
2012-10-27 22:50:16 +02:00
Tobias Doerffel
c1368ddb1a SetupDialog: added option for disabling auto save feature
As requested by various users, it should be configurable whether the
auto save feature is active or not.
2012-10-27 22:45:59 +02:00
NoiseByNorthwest
d448e6743d Ergonomic enhancements for AudioFileProcessor plugin (interactive wave view).
This patch includes:
* sampleBuffer::visualise(): add possibility to specified a range to visualize instead of the whole sample
* add sampleBuffer::sampleRate() and sampleBuffer::sampleLength() getters
* definition of AudioFileProcessorWaveView and AudioFileProcessorWaveView::knob classes for AudioFileProcessor plugin
* knob::getValue() specified “virtual” to allow redefinition in child class  AudioFileProcessorWaveView::knob
* delete audioFileKnob class (made obsolete by AudioFileProcessorWaveView::knob)
* add audioFileProcessor::isPlaying() signal, which is emitted in audioFileProcessor::playNote
* change type of AudioFileProcessorView::m_startKnob and AudioFileProcessorView::m_endKnob (AudioFileProcessorWaveView::knob instead of audioFileKnob)
* replace AudioFileProcessorView::m_graph (QPixmap) by AudioFileProcessorView::m_waveView (AudioFileProcessorWaveView)

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2012-10-27 22:32:09 +02:00
Tobias Doerffel
ad3af97798 MidiClientRaw: fixed parsing of MIDI events
A break was missing in the function where MIDI events are generated from
raw MIDI data. This always has been broken as of commit d188056683
but was not observed as the code for all switch-cases has been identical.
2012-10-27 22:22:23 +02:00
Jesse Dubay
4ba4d8b4e0 ControllerConnectionDialog: fix crash on autodetect when using raw MIDI client 2012-10-27 22:17:13 +02:00
Raine M. Ekman
04c1a0906f AutomationEditor: show tooltip with exact value
Added tooltip telling the exact value under the cursor when editing
automation.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2012-05-20 19:01:21 +02:00