Commit Graph

2357 Commits

Author SHA1 Message Date
Tobias Doerffel
a73e8636eb SongEditor: integrated new TimeDisplayWidget 2014-01-06 21:17:48 +01:00
Tobias Doerffel
8a4440936c TimeDisplayWidget: new widget for displaying current playback time
This new widget displays current playback times in LCD style. An initial
basic implementation has been provided by by Rubén Ibarra Pastor.
2014-01-06 21:15:28 +01:00
Tobias Doerffel
5cc2483958 Song: added functions to maintain playback time information
We now also maintain information about playback time in order to display
it later.

Most of the code provided by Rubén Ibarra Pastor <pastorrub/at/msn/dot/com>.
Further improvements by Raine M. Ekman <raine/at/iki/dot/fi>.
2014-01-06 20:46:46 +01:00
Tobias Doerffel
f568a81c7a LcdSpinBox: use LcdWidget as base class
We can now use the new LcdWidget class as base class for actually
displaying our model's values.
2014-01-06 20:40:28 +01:00
Tobias Doerffel
ec6c30549a LcdWidget: new class for displaying numbers in LCD style
Code based on LcdSpinBox implementation.
2014-01-06 20:39:50 +01:00
Tobias Doerffel
5c7b32cf51 AutomatableModelView: removed deprecated setValue() helper
The setValue() helper method dates back to when we introduced model/view
separation. It's not required anymore.
2014-01-06 20:38:24 +01:00
Tobias Doerffel
f17285581d EnvelopeAndLfoView: directly alter models instead of views
Do not make use of deprecated AutomatableModelView::setValue() method
anymore and alter the models directly instead.
2014-01-06 20:36:41 +01:00
Tobias Doerffel
87cf991c32 MidiAlsaSeq: protect concurrent sequencer accesses with mutex
The ALSA sequencer interface is not reentrant and thus we can't queue
MIDI events for output from different threads (which happens with multicore
rendering as processOutEvent() is being called by individual note play
handles). We therefore have to care that we don't call the ALSA sequencer
functions concurrently.

Thanks to Benjamin Kusch for providing a testcase.

Closes #531.
2013-11-20 23:54:31 +01:00
Tobias Doerffel
e4d18e76d5 Added Galician localization files
Thanks to Xosé <xosecalvo/at/gmail/dot/com> for the contribution!
2013-09-13 23:46:22 +02:00
Tobias Doerffel
03931e8b17 Added Progressive House preset and demo project
Preset and demo project provided as public domain by
Salehen Shovon Rahman <salehen/dot/rahman/at/gmail/dot/com>.
2013-09-13 23:07:36 +02:00
Raine M. Ekman
d43eb46d81 PianoRoll: fix crash when trying to mark octave chord 2013-09-13 22:43:20 +02:00
Tobias Doerffel
7633affa20 Use new QFileDialog::DontUseCustomDirectoryIcons flag for faster file dialogs
In Qt 4.8.6 there's a new option QFileDialog::DontUseCustomDirectoryIcons
promising much better performance when there are many folders.

Closes #511.
2013-09-13 21:29:53 +02:00
Tobias Doerffel
3fce2dd666 ZynAddSubFx: finalize controller connections in toggleUI()
As controller connections are not fully restored via
AutomatableModel::loadSettings(), a call to
ControllerConnection::finalizeConnections() is neccessary to do so.
Normally this function is called at the end when loading a project but
when the user just toggles ZASF's UI settings are saved/loaded without
finalizing connections which results in connected knobs which are not
reacting to the controller they are connected to.

Closes #544.
2013-07-25 22:22:43 +02:00
Tobias Doerffel
05f1b45ab7 Made 0.4.15 release
Bumped version number to 0.4.15 in CMakeLists.txt, README and lmms.rc.in.
v0.4.15
2013-06-11 17:46:42 +02:00
Tobias Doerffel
7eafca807b AudioFileWave: do not use UTF-8 filenames on Windows
As libsndfile does not seem to have an UTF8-compatible implementation
on Windows we have to pass the filename as local 8 bit encoding in order
to make the file written properly.

Closes #530.
2013-06-11 16:29:58 +02:00
Tobias Doerffel
0aaed00cc1 AutomationPattern: initialize with current value of first object
When attaching a control object to an AutomationPattern initialize the
value at position 0 with the current value of the control object.

This is similiar to the behaviour found in LMMS < 0.4.14 and has been
reintroduced as requested by some users.

Closes #535.
2013-06-11 14:50:51 +02:00
Tobias Doerffel
f83b9b04a3 AutomationPattern: removed unused member variable
The variable m_hasAutomation is not required anymore and thus can be
dropped.
2013-06-11 14:50:27 +02:00
Tobias Doerffel
005f2dde50 InstrumentFunctions/ChordCreator: fixed major pentatonic
The last key of the major pentatonic chord was wrong and has been fixed.

Thanks to Mike804 for reporting the issue.

Closes #538.
2013-06-11 13:48:58 +02:00
Tobias Doerffel
d4478461a3 AudioFileOgg: test for properly opened output file
Do not pretend things gone right if output file could not be opened
for some reason.

Closes #539.
2013-06-11 13:38:07 +02:00
Tobias Doerffel
4bdc94c608 AudioFileWave: test for properly opened output file
Do not pretend things gone right if output file could not be opened
for some reason.

Closes #539.
2013-06-11 13:37:07 +02:00
Tobias Doerffel
44c37775a4 Sf2Player: preserve custom track name when loading settings
Commit a184bc039e introduced a regression
which causes a custom track name not being preserved when loading
setings.

Closes #534.
2013-06-11 13:25:18 +02:00
Raine M. Ekman
8e2ec9e48f AudioFileProcessor: Make AFP cursor configurable
Add possibility to turn off playback cursor in AFP. Might be good
for weaker systems.

Closes Patch #40.
2013-06-11 13:19:00 +02:00
Raine M. Ekman
0f3851d597 AudioFileProcessor: fix crash with reversed samples
AudioFileProcessorWaveView::slideSampleByFrames() gets called before the
knobs are created and/or after they are destroyed if the sample is
reversed. Added checks for nonexistant knobs.

Closes Patch #41 and Bug #525.
2013-06-11 13:18:05 +02:00
Tobias Doerffel
e29de773b3 InstrumentTrack: fix freeze when forwarding MIDI events to instrument
In commit a3abcdb2e0 we introduced
multitimbral MIDI support. However the new code path causes the mixer
not being unlocked at exit and thus causes a freeze of LMMS.

Thanks to nuio for pointing out this issue and providing a patch.

Closes #532.
2013-05-01 21:51:37 +02:00
Tobias Doerffel
92ce4ad3da Made 0.4.14 release
Bumped version number to 0.4.14 in CMakeLists.txt, README and lmms.rc.in.
v0.4.14
2013-02-27 22:29:42 +01:00
Tobias Doerffel
8bc7f8ce54 Updated chord and scale icon based on new note icons 2013-02-27 22:29:06 +01:00
Tobias Doerffel
fe35743ef0 Default theme: new graphics for note icons
Thanks to John Serafino <lzrblade/at/gmail/dot/com> for the creative work.
2013-02-27 22:13:52 +01:00
Tobias Doerffel
9268398626 AboutDialog: updated copyright year 2013-02-27 21:48:49 +01:00
NoiseByNorthwest
2375b7f0a0 Fixes #3604316: LMMS crashes using AudioFileProcessor
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2013-02-27 17:30:40 +01:00
Mike Choi
50c2242caa VST sync patch: compatibility fix for 64bit builds
It seems 64bit builds for some reason have problems with VST Sync feature on,
workaround seems to be converting VST sync patch from double to floats,
which does work both with 32 and 64bit builds. Double precision
seems to produce odd numbers with 64bit build. (tested on VirtualBox Linux
Mint 14.1 64 bit OS)
(cherry picked from commit 011f87e6e60cccd16f3783e9c4885e03d95c1e56)

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2013-02-27 17:29:00 +01:00
Mike Choi
0b39426953 VST Effects: Open each effect only once, when loaded from project file
Folowing change should ensure VST effect is opened just once, once
loaded from project file.

Double opening seems to trace back to commit 184ddc4d1c
from 2006, when this VST effect save / load feature was introduced as new.

Anyway VST effect parameters seems to load corectly in
VstEffectControls::loadSettings, from project file even without double
VST effect opening.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2013-02-09 12:35:01 +01:00
Mike Choi
7084ec0be6 VST Effects: preserve effect name after LMMS project reload
This patch will set plugin name (information which is not stored with lmms
project file) according plugin file, without *.dll, when is LMMS project
loaded from the file.

Future verion could maybe use PluginBrowser or EffectSellectDialog for the
same.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2013-02-09 12:34:53 +01:00
Mike Choi
0ef2997ece VST to host sync
This patch should bring VST to host synchronization for LMMS.
 (e.g. for plugins like dBlue Glitch, TAL Filters).

Synchronization is done via shared memory, missing song time
positions are reccalculated and added to PPQ position sync values
(SHM - common input interface for sync of all VST plugins)
2013-02-09 12:33:22 +01:00
Tobias Doerffel
7682bc6ef9 Song: added h2song file extension to file import dialog
After we added the HydrogenImport plugin we should also change the
file import dialog such that the user can chose h2song files.
2013-02-09 12:29:45 +01:00
Frank Mather
0acfff036f Added HydrogenImport plugin
This is a new plugin that imports hydrogen drum machine songs.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2013-02-09 12:29:34 +01:00
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
Tobias Doerffel
edf93d04cb Midi: added new property fromMidiPort
This new property is going to signal whether a specific event comes from
a MIDI port is was generated internally.

Based on patch by nuio <numa_shsk/at/mail/dot/goo/dot/ne/dot/jp>, 2013-01-20
2013-01-23 23:08:03 +01:00
Mike Choi
c1a2c6b1fa VST effects: secure master channel freezing
Master channel keeps freezing, when VST effects are placed directly
into Master channels FxChain, on slower computers.

Provided solution prolongs VST initialisation phase, by waiting on two extra messages,
which usually follows initialisation and are possibly not yet implemented well.

IdSampleRateInformation,
IdBufferSizeInformation

This seems to prevent Master channel freezes e.g. on VST effects like Tiny-Q.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2013-01-23 22:46:16 +01:00
Mike Choi
32e9ddc6e4 VST effect control window re-design
New outlook for VST effect control window

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2013-01-23 22:45:20 +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
a184bc039e Sf2Player: update track name after loading file
For consistent behaviour with other plugins such as AudioFileProcessor
and ZynAddSubFX update the track name after loading a file.
2013-01-14 23:13:21 +01:00
Tobias Doerffel
071358bd98 PixmapButton: added parentheses to fix ambiguity
Fixes compiler warning.
2013-01-14 23:06:02 +01:00
Tobias Doerffel
d943182a6c ZynAddSubFX: increased polyphony to 128
It occured to me that ZASF reported polyphony overflows when using it
in combination with LMMS' arpeggio and chord functionality.
2013-01-13 19:07:12 +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
99efe8aef3 LocalZynAddSubFx: include/forward MIDI channel information
When sending MIDI events to the ZynAddSubFX engine do not statically
send them on channel 0 but on the MIDI channel which is set as output
MIDI channel of the instrument track. This adds some flexibility when
it comes to multipart ZynAddSubFX presets which are connected to
different MIDI channels.
2013-01-13 18:48:35 +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