Commit Graph

1337 Commits

Author SHA1 Message Date
tobydox
7105c8ac90 Merge pull request #14 from diizy/fix32
SampleBuffer: fix import of 32-bit floating point samples
2014-01-14 00:30:39 -08:00
Vesa
79119149ef Fix import of 32-bit floating point samples 2014-01-14 03:32:33 +02:00
Tobias Doerffel
fc7cd1bd40 Song: use Kicker as default instrument in B+B-Editor
Using TripleOscillator as default instrument in B+B-Editor doesn't
make much sense so use Kicker instead.
2014-01-12 15:36:06 +01:00
Tobias Doerffel
e8190dc01e Merge remote-tracking branch 'ranft/notelabels-2' into stable-0.4 2014-01-09 23:23:34 +01:00
Tobias Doerffel
0ff1f91c1b Mixer: renamed class and file name
The mixer class is now named "Mixer" and accessible via engine::mixer().
2014-01-08 22:35:14 +01:00
Tobias Doerffel
40290117ff Song: fixed tracking of elapsed milliseconds
After merging play/pause button corrections there are a few other places
where we have to take care of m_elapsedMilliseconds.
2014-01-08 22:07:25 +01:00
Tobias Doerffel
9f35042e3e Mixer: use MixHelpers for mixing buffers of AudioPort 2014-01-08 22:01:33 +01:00
Tobias Doerffel
4a99b953b5 MixHelpers: helper functions for mixing buffers
Introduced central helper functions for mixing buffers in order to
reduce local loops all around LMMS.
2014-01-08 21:58:03 +01:00
Tobias Doerffel
6f7b6978bd FxMixerView: use LcdWidget for FX lines
We only need to display numbers in LCD style, therefore use new LcdWidget
class instead of LcdSpinBox.

Fixes display problems introduced in commit f568a81c7a.

Thanks to Vesa for pointing out this issue.
2014-01-08 00:27:50 +01:00
Tobias Doerffel
c9ea6a559d SongEditor: do not add extra spacing
In commit a73e8636eb we introduced an extra
spacing which is not neccessary and causes layout problems.

Thanks to Vesa for pointing out this issue.
2014-01-08 00:22:42 +01:00
Tobias Doerffel
3c1e3c17b4 TimeDisplayWidget: expand all LcdWidgets to 3 digits
Most songs have more than 99 bars and in some situations also more
than 99 ticks.

Thanks to Vesa for pointing out this issue.
2014-01-08 00:20:14 +01:00
Joel Muzzerall
6249b23f1f AutomationEditor: add option for smooth lines and curves
Besides discrete automation it's now possible to setup interpolation
modes such as linear and cubic-hermite.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2014-01-08 00:08:21 +01:00
Tobias Doerffel
ddad2da162 Merge remote-tracking branch 'origin/next' into stable-0.4 2014-01-07 23:24:26 +01:00
Tobias Doerffel
c0c10cf9d8 Merge remote-tracking branch 'origin/stable-0.4-test' into stable-0.4
Conflicts:
	include/song.h
	src/core/song.cpp
2014-01-07 23:04:21 +01:00
Tobias Doerffel
90024c3699 LcdWidget: decreased spacing between text label and LCD label 2014-01-06 21:18:20 +01:00
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
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
Ruediger Ranft
dc86474589 Added an option do en/disable the note labels. 2013-10-27 17:05:18 +01:00
Ruediger Ranft
11402b49b7 Refactoring: Calculate the size of the tab widget based on the number of items. 2013-10-27 16:41:18 +01:00
Ruediger Ranft
f63600b3fe Added the drawing of the note names. 2013-10-15 20:43:29 +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
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
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
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
Paul Giblock
bedba617f4 Merge branch 'upgrade-preset' into next 2013-02-27 17:34:49 -05:00
Paul Giblock
b6b7cc11f5 Merge branch 'stable-0.4' into next 2013-02-27 17:34:21 -05:00
Tobias Doerffel
9268398626 AboutDialog: updated copyright year 2013-02-27 21:48:49 +01:00
Paul Giblock
867b13691d Add support for upgrading to standard output
Useful for me to initially import LMMS presets for use in lmms-lv2.
2013-02-27 15:46:48 -05:00
Paul Giblock
8bbbdacfcb Add support for upgrading presets
This is in addition to songs.  Simply use multimediaProject.  Don't
screw around with Song().  Also, needed to move creation of xml
preamble (processing instruction) due to duplicate entry when
doing a load/save.

Conflicts:
	src/core/main.cpp
2013-02-27 15:36:12 -05:00
Paul Giblock
b2dc6375b9 Update copyright date to 2013 in usage
Conflicts:
	src/core/main.cpp
2013-02-27 15:36:12 -05:00
Paul Giblock
e5b3975b12 Initialize line-drawer in AutomationEditor
Possible endless loop if these two state variables are not intialized.
Now a line will have the origin of (0,0) if drawn (shift-click) without
previously clicking on a starting spot.  Perhaps not the best fix, but
it works. And I think allowing this first line (instead of blocking it)
is better for the enabling the user to accidently discover the feature.

Conflicts:
	src/gui/AutomationEditor.cpp
2013-02-27 15:36:12 -05: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
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
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