Commit Graph

32 Commits

Author SHA1 Message Date
Hyunin Song
0a5d056bdb Merge branch 'stable-1.2'
# Conflicts:
        #       .travis/osx..install.sh
        #       .travis/osx..script.sh
        #       cmake/linux/package_linux.sh.in
        #       data/locale/en.ts
        #       src/core/CMakeLists.txt
        #       src/core/ProjectRenderer.cpp
        #       src/gui/FileBrowser.cpp
2018-03-07 23:54:28 +09:00
Hyunjin Song
926b6542ae Don't restore audio device during exporting (#4083)
Fixes deadlock on multi-track export with SDL
2018-03-02 13:28:56 +09:00
Hussam Eddin Alhomsi
548baa50a0 About dialog & export dialog improvements. (#3826)
* Improve appearance of about dialog, export dialog
* Cleanup code comments/formatting
2017-11-14 23:59:14 -05:00
Lukas W
68c85c8e05 Merge branch 'stable-1.2' 2017-10-30 11:07:05 +01:00
Lukas W
8d6cb120b9 Replace MemoryManager implementation with rpmalloc (#3873)
* Replace MemoryManager implementation with rpmalloc
    Fixes #3865
* Travis: Specify OSX image for Qt5 build
2017-10-18 17:02:40 +02:00
Levin Oehlmann
e9a4063119 Add FLAC export and related options (#3731)
* Add FLAC export, based on WAV renderer

* Depend on sndfile>=1.0.18 (previously >=1.0.11)

* Add compression option to FLAC export, if available.

The code related to compression is only generated if LMMS_HAVE_SF_COMPLEVEL is defined(libsndfile>=1.0.26).

* Save into the correct file extension upon single-export.

* Use unique_ptr in FLAC renderer and be more expressive about involved types.

* Use unique_ptr and remove manual memory management in ExportProjectDialog

* Add 'flac' format info to --help and manpage
2017-08-04 07:19:39 +09:00
Hyunjin Song
37f6032b4d Fix deadlock when exporting is finished, if the project has any Sample TCO(s). (#3742)
[cherry-picked from stable-1.2]
2017-08-02 09:14:52 +02:00
Hyunjin Song
08e64dc637 Fix deadlock when exporting is finished, if the project has any Sample TCO(s). (#3742) 2017-08-02 07:56:28 +02:00
Oskar Wallgren
020f1652bf Clean up after render in ProjectRenderer destructor
We need to wait with calling Mixer::restoreAudioDevice() and
Mixer::changeQuality() after render until all threads have stopped.
Moving these calls to ProjectRenderer::~ProjectRenderer() ensures
all render theads are done.
2017-07-07 21:33:15 +02:00
Michael Gregorius
c2f26a76d4 Implement MP3 encoding support
Implement MP3 encoding support
2017-06-12 13:57:08 -04:00
Hyunjin Song
4ff091fd6f Fix loop condition in project rendering (#3105, #2030) (#3576)
* Change loop condition in ProjectRenderer::run()

* Remove Song::isExportDone()
2017-05-29 18:40:05 +02:00
Michael Gregorius
d5fc38ebd9 Simplification of code and structure in the area of the file export
Pull the class OutputSettings out of the class ProjectRenderer so that
it can be used in other contexts as well. Also move the enum
ProjectRenderer::Depth into the new class OutputSettings and rename it
to BitDepth. Adjust all places that referenced
ProjectRenderer::OutputSettings accordingly.

Adjust the two places where an instance of OutputSettings is created:
the main function and ExportProjectDialog::startExport.

Store an instance of OutputSettings in AudioFileDevice and remove
several members and methods which are now replaced by this instance. Add
a getter for the OutputSettings to AudioFileDevice. Storing an instance
of OutputSettings in the base class AudioFileDevice enables the
simplification of the following constructors and general code in the
following classes:
* AudioFileDevice
* AudioFileOgg
* AudioFileWave

Because OutputSettings contains everything related to sample rate, bit
rate settings and bit depth these parameters could be removed from the
parameter list of the aforementioned constructors.

Simplify the signature of the factory method AudioFileDeviceInstantiaton
(defined in AudioFileDevice.h) and reorder the parameters by significance.

Move the logic of how the minimum and maximum bitrate is calculated
using the nominal bitrate into AudioFileOgg::minBitrate() and
AudioFileOgg::maxBitrate(). Previously this was defined in the
constructor of ProjectRenderer where it does not belong as it an
implementation detail of the OGG export.

Remove the code that converted the bit depth enum to an integer from
ProjectRenderer as it is now solely represented as an enum.

Remove class members for the minimum and maximum bit rate from
AudioFileOgg and adjust the code in the implementation to use the values
stored in OutputSettings.
2017-05-12 18:26:42 +02:00
Michael Gregorius
4196a30415 Implement 24 bit support for WAV export (#3021)
Add a new value of "24 Bit Float" to the "Depth" combo box in the
project export dialog.

Add a new enum value to ProjectRenderer::Depth and extend the evaluation
of the different enum values in ProjectRenderer.

Add the new case of a depth of 24 to AudioFileWave and remove some
repetition with regards to SF_FORMAT_WAV in the code. It's only set once
now and then the depth is "added" in a switch statement.
2017-05-12 18:26:42 +02:00
Lukas W
29f832034a Remove unused includes (#3429) 2017-03-16 11:35:18 +00:00
Oskar Wallgren
06e4033cb9 Don't count muted tracks in track length (#3390)
* Don't count muted tracks to length on render

* Don't count muted TCO's to length on render
2017-03-01 07:27:43 +01:00
grejppi
9e85d7c66e update all copyright headers to the proper url (#3326) 2017-02-06 02:41:15 +02:00
Javier Serrano Polo
b1d4ee1f97 Fixed crash on canceling the export 2016-07-21 19:39:55 +02:00
Ryan Roden-Corrent
ea838c428d Don't use old naming convention in new methods.
Remove the _ prefix from the parameters to the newly added
ProjectRenderer::getFileExtensionFromFormat.

This naming convention is being phased out.
2015-09-13 07:39:23 -04:00
Ryan Roden-Corrent
e863df7171 Add ProjectRenderer::getFileExtensionFromFormat.
Currently ProjectRenderer has a helper getFileFormatFromExtension, this adds a
similar helper getFileExtensionFromFormat.

This will, for example, return "ogg" for OggFile.
2015-09-13 07:28:22 -04:00
Colin Wallace
db820e5255 Remove double-underscore prefix from __fileEncodeDevices & make it a static member variable;
this helps to reduce pollution of the global namespace
2015-09-05 22:28:18 -07:00
Colin Wallace
ffba37c7f2 Export percentage calc now takes considers loop markers as necessary 2015-07-14 01:53:47 +00:00
Colin Wallace
335b1c1c75 const-correctness for Song::getPlayPos() 2015-06-22 00:15:30 +00:00
Alexandre Almeida
4ae194cd8b Update ProjectRenderer.cpp 2015-01-07 21:13:27 -02:00
dave
550d310a49 issue 1242
Skips first empty period,

  Engine::mixer()->nextBuffer(); is called in ProjectRenderer::run()
2014-11-29 20:44:34 +00:00
Lukas W
968909c07c Rename engine to Engine 2014-11-26 00:49:55 +01:00
Lukas W
7d0e3945e5 Rename song to Song 2014-11-26 00:44:41 +01:00
Lukas W
8e8879f735 Merge stable-1.1
Conflicts:
	include/ConfigManager.h
	include/MidiTime.h
	include/string_pair_drag.h
	src/gui/string_pair_drag.cpp
	src/gui/widgets/rubberband.cpp
2014-11-10 19:26:59 +01:00
Umcaruje
6fb923cba2 Correct the program name and site in the descriptions. 2014-11-04 22:56:50 +01:00
Tobias Doerffel
4cee046909 Added initial Qt5 support
LMMS now properly builds and runs with Qt5. Various deprecated functions
had to be replaced like QString::toAscii()/fromAscii(). Also occurences
of FALSE/TRUE have been replaced with false/true.

LmmsStyle now derives from QProxyStyle and sets a style instance as base
style (Plastique for Qt4, Fusion for Qt5).

MOC files are not included anymore but added as regular source files.

What's missing is support for embedding VST plugins into a subwindow
inside LMMS on Linux/X11 due to missing QX11EmbedContainer class in Qt5.

Build instructions can be found in INSTALL.Qt5

Minimum version requirement for Qt4 has been raised to 4.6.0 for best
API compatibility between Qt4 and Qt5.
2014-08-14 17:34:49 +02: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
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
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