Commit Graph

6311 Commits

Author SHA1 Message Date
Arash Partow
8dcf997872 General improvements and fixes (#3772)
Added fixes for a clean GCC 7.+ compile
2017-08-23 21:09:43 +02:00
Andrés
153ab375f9 "misc" view now shows the model state, of the track use of master pitch (#3753) 2017-08-16 01:35:04 +02:00
David CARLIER
9ae339c82b Fixes the OpenBSD build. (#3716) 2017-08-08 12:27:54 +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
Andrés
44028c8594 Midi sustain working when envelope is on (#3730)
* midi sustain working when envelope is on

* pressing sustain pedal again doesn't pause release
2017-08-02 07:20:09 +02:00
Tres Finocchiaro
0e88a27389 Add support for SDL2 (#3732) 2017-08-01 00:39:00 -04:00
Oskar Wallgren
4402ca95f2 Fixes to recover file system (#3722)
Don't auto-save while playing by default. On weaker machines (xp?) we
see glitches so better turn this on after need.

Remove the last of Limited Sessin which was removed in 290556e.

[cherry-picked from stable-1.2]
2017-07-30 14:33:30 +02:00
Michael Gregorius
1f257f8125 Fix another memory leak by returning the error messages on the stack
Change Song::errorSummary() to return the string with the error messages
on the stack to remove another memory leak.
2017-07-27 19:16:05 +02:00
Michael Gregorius
017fb4b089 Fix a memory leak in Song (dynamically allocated error list)
Make the member Song::m_errors a static member to prevent memory leaks.
The member was allocated dynamically when an instance of a Song was
created but was not deleted in the destructor.
2017-07-27 19:07:19 +02:00
Michael Gregorius
9d92ea2cca Show the names of patterns in their tool tip
Adjust PatternView::update to show the name of the pattern as the tool
tip (regardless of whether it is a beat and bassline or a melody
pattern).

Override the public slot TrackContentObjectView::update for
AutomationPatternView and BBTCOView. Implement it similar to
PatternView::update.
2017-07-27 17:26:13 +02:00
Michael Gregorius
379e1020ab Sample tracks: Show the file name of the loaded file in the label
Show the file name without the full path in the text label for sample
tracks. Show the file name with the full path in the tool tip.
2017-07-26 21:16:19 +02:00
Michael Gregorius
0a27bc180e Expose properties for note border color and fill color to style sheets
Expose properties to set the colors for note borders and note fills for
patterns to the style sheets. Both properties are exposed for the muted
and not muted case. Use these new properties during rendering.

Adjust the style sheets for the classic and default theme.
2017-07-26 20:39:50 +02:00
Michael Gregorius
5141dc5f3d Fix problem with Qt5 and move painting code in one block
Fix a problem with Qt5 by explicitly setting the pen width to 0 after
setting the transformation.

Reorder some of the other code to differentiate better between some
calculations that are in done in preparation for the painting and the
actual painting itself.
2017-07-26 20:39:50 +02:00
Michael Gregorius
ce0de8a3ff Paint notes as lines at small sizes and add a small border
Draw notes as lines in case the pattern size is smaller than 64 pixels.
Antialiasing is only used when the notes are drawn as rectangles.

Add a border of four pixels at the top and bottom of the area where the
notes are drawn so they don't get pushed under the pattern borders.

Set the transparency of the text label to 100.

Clean up of some other code:
* Remove an unnecessary assignment to a pixmap
* Move code closer to where it is needed
* Remove an unncessary call to QPainter::end()
2017-07-26 20:39:50 +02:00
Michael Gregorius
461cb2bb3c Improve the rendering of melody patterns (mapped to [0,1] x [0,1])
Compute the height of the potential text field before rendering the
melody pattern so that we can use that information later.

Transform the painter so that notes drawn into a [0,1] x [0,1]
coordinate system are drawn at the correct position on the pattern
widget. Add code that moves the pattern notes smoothly under the text
label in case there is not much space, i.e. for narrow patterns. Notes
are drawn as filled rectangles with a slightly darker border.

Always draw at least an octave of notes onto the pattern, so that
patterns with just a single note will not look strange, i.e. that they
are not filled completely with the note. If there is additional space to
fill it will be rather filled at the top of the pattern so that single
notes have a high chance of being drawn below the pattern text.

Simplify the drawing of the inner and outer border.

Use numeric_limits to initialize the minimum and maximum key.

Remove some redundant checks whether the pattern holds notes and
decrease the indentation depth by two tabs for most of the code.
2017-07-26 20:39:50 +02:00
Michael Gregorius
c1be21f478 First implementation to draw pattern notes as boxes
Still uses absolute positions without any transformations. Some
refactorings/changes to make the code better understandable and concise.
2017-07-26 20:39:50 +02:00
irrenhaus3
c8af34af2f Respect build options in export dialogs (#3714)
* Respect build options in ExportProjectDialog

* Use QItem user data instead of hard ordering to identify export format in ExportProjectDialog

* For compatibility with QVariant, ExportFileFormats is now explicitly an int.

* Don't break out of format identifier loop prematurely in Song export.
2017-07-26 19:48:25 +09:00
Andrés
2464a57f3c Fix recording of sustained midi notes (#3710) 2017-07-26 02:48:24 +02:00
Tres Finocchiaro
ebfdc0491a Sync zyn with repo version (#3715)
Sync zyn plugin with zyn repo fixes
2017-07-22 04:21:04 -04:00
tresf
fda557fd10 Sync zyn license with repo version 2017-07-21 16:26:50 -04:00
Michael Gregorius
17f1856c84 Add back the rendering of text shadows for pattern labels
Add back the rendering of text shadows for pattern labels. If some
design does not want shadows beneath the text it's always possible to
set the CSS property qproperty-textShadowColor to something completely
transparent.
2017-07-20 19:53:02 +02:00
Michael Gregorius
a81b14b6cf Handle cases where elided text becomes empty or "..."
Render the whole text if the elided text becomes empty or if it only
contains one character, i.e. if it becomes "…". Solved as implemented
because I was not able to check for "…" explicitly, i.e. the comparison
against "…" still failed.
2017-07-20 19:53:02 +02:00
Michael Gregorius
f15fe18360 Expose the background color of the text labels in the style sheet
Add a new property "textBackgroundColor" to TrackContentObjectView to
expose the property to the style sheets. Use this property in the code
that renders the text labels.

Adjust the two existing style sheets.
2017-07-20 19:53:02 +02:00
Michael Gregorius
a23e344886 Make text rendering consistent for TrackContentObjectViews
Add the method paintTextLabel to TrackContentObjectView. This methods
implements the painting of a given text on a given painter. The new
implementation does not draw any text label in case the trimmed text
becomes empty.

Use the method paintTextLabel to paint the text for automation patterns,
BB patterns and instrument patterns.

Adjust the style sheet of the classic and default theme by moving the
font definition from PatternView into TrackContentObjectView so that it
can be used by all inheriting classes.
2017-07-20 19:53:02 +02:00
Michael Gregorius
bcdb5ecb5a Fix a problem with the time display
Some changes made in commit e05c82758e
have broken the update of the time display. This commit fixes the problem
by introducing a second version of MidiTime::ticksToMilliseconds which
takes a double as an argument for the ticks. This new method is then
used by the call to ticksToMilliseconds in Song::processNextBuffer which
fixes the problem.
2017-07-20 18:23:10 +02:00
Oskar Wallgren
6f1b11f0ee Envelopes and LFO - Don't divide by 0 (#3381)
We perform division with some Envelope and LFO variables so they mustn't
be zero. They are given a minimum value of one frame ( f_cnt_t ).
Since #3687 we have a compile flag to turn on debugging of floating point
operations. This will currently not let you pass the Envelope/LFO
initiation and this is also fixed by this PR.
2017-07-20 02:33:31 +02:00
Karmo Rosental
dc829f48af Added support for wine-stable from WineHQ repositories. (#3708)
Added support for wine-stable from WineHQ repositories.
2017-07-19 15:46:27 -04:00
Michael Gregorius
e05c82758e Remove explicit time calculations by moving them into Song and MidiTime
Add a method to convert a MidiTime instance to milliseconds. Also add a
static method to MidiTime that computes the time in milliseconds for a
given number of ticks and a tempo.

Remove the method that sets the milliseconds explicitly from Song.
Replace it by a method that takes a MidiTime instance and one method
that takes an amount of ticks.

Remove several explicit time calculations from the implementation of
Song and TimeLineWidget. Instead use the new methods.
2017-07-18 21:26:15 +02:00
Michael Gregorius
ebc9137a0f Restore the track height when loading files
The track height is already stored for every file that is saved. Remove a
condition that prevents its retrieval from files.

The removed condition was added as a fix for an issue with the number
#3585927 but it was not possible anymore to find out what this issue was
about.
2017-07-16 11:58:13 +02:00
Michael Gregorius
b7b2204cbb Remove unnecessary assignments to pixmaps in TCOs
Simplify the code that reinitializes the pixmap that caches the
graphical representation of some TCO widgets.

See comment in issue #3699.
2017-07-15 15:27:11 +02:00
Hyunin Song
cc3822141e Merge branch 'stable-1.2' into master (@liushuyu) 2017-07-15 08:08:07 +09:00
Karmo Rosental
aaf09bb4db Updated Freeboy files from Game Music Emu 0.6.1. (#3618)
Uses upstream files to fix #326
2017-07-14 16:51:58 -04:00
Tres Finocchiaro
0abe0a51c3 Merge pull request #3664 from karmux/vestige_controls_icon
Fix for misaligned controls icon in VeSTige plugin.
2017-07-14 16:31:13 -04:00
Tres Finocchiaro
3dfda61491 Merge pull request #3676 from M374LX/stable-1.2
With this pull request, the user is able to cancel a track rename action by pressing the Escape key.

Also renamed rename_dlg to renameDlg in TrackLabelButton::rename() so it complies to the naming conventions.

Fixes #3675.
2017-07-14 16:17:50 -04:00
Half-Gray
98952636b5 Add tooltip for refresh button (#3643) 2017-07-14 04:14:29 +02:00
Michael Gregorius
51dd094403 Add CMake option to enable the debugging of floating point exceptions
Add a new CMake option WANT_DEBUG_FPE which adds the define
LMMS_DEBUG_FPE if activated. Extend lmmsconfig.h.in with regards to that
define. Include information about development options to the CMake
output.

Install a signal handler to trap floating point exceptions when starting
LMMS in case it is compiled using the option described above. The
current implementation of the signal handler prints a stack trace and
then exits the application.

Currently this option is only enabled for Linux builds due to
uncertainty with regards to which of the needed headers are supported by
Windows and Apple.
2017-07-12 21:51:48 +02:00
Michael Gregorius
a70d255418 Use font properties from CSS to draw the pattern labels
Use the font properties that are defined in the CSS to draw the pattern
labels. This provides flexibility with regards to the font properties
that are used (size, font family, etc.).

Adjust the CSS for the default theme and the classic theme.
2017-07-11 21:23:13 +02:00
Michael Gregorius
c0a4f67544 Render a black semitransparent rectangle beneath the elided pattern text
Make the pattern names better readable by rendering them on top of a
semitransparent black rectangle. Elide the text and make it render a bit
more to the right.
2017-07-11 21:23:13 +02:00
Alexandre Almeida
aa6d528c98 Cancel track rename with Escape key 2017-07-08 19:42:13 -03: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
1b24a0520d Move the search bar on top of the file browser for sidebar pages (#3657)
Move the search bar on top of the file browser for the following sidebar
windows:
* "My Projects"
* "My Samples"
* "My Presets"
* "My Home"
* "My Computer"

Add the greyed out text "Search" to the search text edit.
The text is only shown as long as no text is entered in the search field.

Also rename some variable names to something more meaningful. Rename the
member m_l of FileBrowser to m_fileBrowserTreeWidget. Rename the
following local variables in the constructor of FileBrowser:
* ops -> searchWidget
* opl -> searchWidgetLayout
2017-07-07 18:52:41 +02:00
Oskar Wallgren
d65e1a361a MIDI - Don't apply base velocity to all controller values. (#3678) 2017-07-07 00:15:59 +02:00
Hyunjin Song
c6c67b3c75 Fixes for project loading progress display (#3672)
Fix project loading progress jumping back.

Show the name of the track currently being loaded.
2017-07-06 20:47:01 +02:00
Tres Finocchiaro
94420d9d5c Merge pull request #3667 from zapashcanon/scripts
Fix scripts for shellcheck
2017-07-04 10:19:45 -04:00
zapashcanon
060c012b10 Clean code 2017-07-04 11:24:38 +02:00
zapashcanon
e90bc630fa Fix scripts 2017-07-04 11:12:21 +02:00
Hyunjin Song
494714bf44 Update classic/style.css with TabWidget, TrackView, PianoView and Fader colors (#3665)
* Add TabWidget color settings to classic/style.css

* update the classic theme

* Revert unnecessary formattings

* Fix style.css
2017-07-03 13:37:46 +02:00
Oskar Wallgren
13e65b7f56 Ensure midi port exists before removing 2017-07-03 04:52:37 +02:00
m4sk1n
996b1c4bfa Added Polish strings to LMMS.desktop (#3666) 2017-07-02 16:19:47 +02:00