Commit Graph

91 Commits

Author SHA1 Message Date
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
b1b5c56d0f Merge pull request #198 from softrabbit/stable-0.4
Check for TTY app before updating icons
2014-01-29 13:48:02 -08:00
Wong Cho Ching
997c2114f4 Merge remote-tracking branch 'origin/stable-0.4' into ghostPeakController 2014-01-29 19:02:49 +08:00
Wong Cho Ching
8d4b467ddc Fixed duplicate controllers issue 2014-01-29 18:44:52 +08:00
Raine M. Ekman
4c39f839ce song.cpp: Check for TTY app before calling engine::updatePlayPauseIcons() 2014-01-28 21:54:31 +02: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
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
Lukas W
2e7bfe17e6 Update code to use FileInfo instead of QFileInfo
Also removed all blocks similar to
```
#if QT_VERSION >= 0x040806
	filedialog.setOption( QFileDialog::DontUseCustomDirectoryIcons );
#endif
```
as this now takes place in the new subclass's constructor.
2014-01-24 15:37:41 +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
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
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
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
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
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
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
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
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
Alexandre Almeida
c60e7ba8d1 Song, SongEditor, BB-Editor, Piano-Roll: correction of play button problems
Initial implementation of corrected play buttons in individual editor
windows.
2012-05-20 18:25:28 +02:00
Tobias Doerffel
1cc77b72e3 Do not apply FX mixer effects twice when playing frozen pattern
We must not process the FX mixer if we notice that currently a pattern
is frozen. Furthermore renamed some state-reading messages of the
pattern class.

Closes #3316495.
2011-06-27 20:27:03 +02:00
Andrew Kelley
7b7dc0bfb2 don't change the current project when auto-saving
every time auto-save ran, it would change the current project to
"recover.mmp". Now it doesn't do this because Song has
guiSaveProject(), guiSaveProjectAs(), and saveProjectFile().
(the latter is used for auto-save)
(cherry picked from commit 953522f34a)
2011-01-12 17:09:45 +01:00
Tobias Doerffel
6be555d61a SongEditor: always bring up to front after loading a project
When just opening a song in order to listen to it, it's very annyoing to
manually bring up the song editor each time, therefore do it
automatically.
2011-01-05 11:53:56 +01:00
Tobias Doerffel
9cf0f4932a Song: reset global models in clearProject()
We have to reset global models such as tempo, master volume etc. before
clearing the global automation patterns attached to them. Fixes bug with
persistent automation on these controls when clearing project.

Closes #3046039.
(cherry picked from commit 2614474246)
2010-08-16 23:40:48 +02:00
Tobias Doerffel
89eae05a16 Renamed all automation related files and classes to match new coding style
All automation-related files and classes have been renamed to match the
new coding style.
(cherry picked from commit 9b280ffb3e)
2010-08-16 23:40:33 +02:00
Tobias Doerffel
908a917021 EnvelopeAndLfoParameters: moved global instances management into helper class
It's a bad style to manage global instances of an object in the object
itself. Therefore introduced a nested helper class which manages all
instances of EnvelopeAndLfoParameters globally. It is now responsible
for global reset/triggers of LFOs. In contrast to previous state, this
is now done thread-safe. Fixes crashes for example while importing
MIDI files.
(cherry picked from commit 5f6c42f19c)
2010-05-21 14:14:00 +02:00
Tobias Doerffel
7c16094811 Fixed spelling errors
Fixed some spelling errors found by Lintian while checking the Debian
package of LMMS. Thanks to Patrick Winnertz for pointing out this issue.
(cherry picked from commit 9fd3dacb67)
2010-01-25 23:27:43 +01:00
Paul Giblock
2b714fd686 Rename "All Files" to "All file types" release QM
Translations didn't work because I didn't "release" within Linguist.  I
wonder how to update the *.ts files with missing strings...
(cherry picked from commit 49c2f6bad1)
2009-10-24 17:41:05 +02:00
Paul Giblock
340be43acd Proper File import extensions and translations
Previously, the extensions were stored in the translations, this i18n
more difficult, additionally, there was a preprocessor statement that
would cause the translated phrase to change! Hence, no translations if
you didn't have ZIP file support.  The text is now split into seperate
translations and I added "All Files".
(cherry picked from commit beb92563f1)
2009-10-24 17:37:26 +02:00
Paul Giblock
e959af4ec2 Increase import filter for *.midi and *.riff
Fix song.cpp and translations so the somewhat common *.midi extension is
recognized.
(cherry picked from commit c504bc84d4)
2009-10-24 17:35:16 +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
Tobias Doerffel
b8ebfbd06a Renamed MIDI and audio related classes/files to match new style
Renamed all MIDI and audio related classes/files to match new style.
Additionally various cleanups.
2009-08-13 00:52:21 +02:00
Paul Giblock
5138ed6722 Rename all Controller-family classes to new style
Adjust capitialization on all Controller-related classes to new
standards and update all calling code
(cherry picked from commit f1d60958f0)
2009-08-09 00:29:16 +02:00
Tobias Doerffel
621512a7b7 Song: reset window title after creating new project from template
Reset window title when creating new project from template (after
actually loading template file). Furthermore do not reset window title
at the beginning of load process anymore.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit cf0a91637b)
2009-06-18 23:07:22 +02:00
Tobias Doerffel
0faaab4521 PlayHandle: use QList instead of QVector for PlayHandle array
Use QList instead of QVector when using a set of PlayHandle's. QList
has faster insert/remove operations and in most cases we iterate through
the array using iterators so there's no performance drop.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit 2cc49b8010)
2009-06-17 10:43:51 +02:00
Tobias Doerffel
99807eeb98 SongEditor: fixed horizontal scrollbar with Qt 4.5
Due to optimizations in the graphics subsystem of Qt 4.5
songEditor::paintEvent() didn't get called regularly anymore and thus
the range of the horizontal scrollbar didn't get updated at all.

This commit makes the GUI track all changes related to the length of
the song.
(cherry picked from commit ff010da5ee)
2009-04-06 00:10:39 +02:00
Tobias Doerffel
ec07aef5ac Fixed various types to be suffixed with "_t".
This commit ensures that all defined data types in include/lmms_basics.h are
suffxed with "_t" to keep consistency as well as to fix issues on systems
with older STL/libstdc++.
(cherry picked from commit 7449c4f731)
2009-03-15 21:50:38 +01:00
Tobias Doerffel
b3154b813d lock mixer while adjusting lengths of notePlayHandles after tempo change
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1741 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-10-04 23:21:39 +00:00
Tobias Doerffel
fce25dc625 fixed a bunch warnings and remarks issued by Intel Compiler
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1722 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-10-02 11:48:59 +00:00
Tobias Doerffel
28ace82fad fixed file-dialog for choosing export filename
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1691 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-09-22 22:44:01 +00:00
Paul Giblock
c4c13399bf Improve default PAPU settings. Add file-type filters to import screen
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1654 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-09-21 03:03:26 +00:00
Tobias Doerffel
408ab3fea5 display message if project is empty and user tries to export it (closes #2091056)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1571 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-09-07 12:54:23 +00:00
Tobias Doerffel
aa12ee5082 * fixed freeze after adding BB-tracks (closes #2089337)
* replaced bad cast for calling projectNotes::save/restoreState by proper C++ construct



git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1570 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-09-07 12:33:56 +00:00
Tobias Doerffel
3372309f73 properly save and restore position, size, visibility and state of MDI-subwindows
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1569 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-09-07 12:09:02 +00:00
Paul Giblock
fe7d269c80 Add locking to trackContainer::m_tracks
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1527 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-09-02 03:09:12 +00:00
Csaba Hruska
da6eef0ec1 added some implementation for record buttons
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1526 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-09-01 23:29:40 +00:00
Tobias Doerffel
d9a5b78f6b do not reset window title twice when creating new project
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1425 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-08-01 21:08:16 +00:00
Tobias Doerffel
7eac6423b6 make sure all TCOs are shown after loading project (closes #2016741)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1391 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-07-28 08:04:41 +00:00