Commit Graph

928 Commits

Author SHA1 Message Date
Tobias Doerffel
41c154dc95 Control play/pause buttons in slot of MainWindow via signal in Song class
The engine class as the component instance manager is the wrong place to
control the play/pause buttons. Instead emit a signal in the Song class
and update the buttons in a slot in MainWindow. This fixes problems with
GUI/pixmap operations happening outside the GUI thread when exporting a
project.

Closes #435.
2014-03-18 20:39:52 +01:00
Tobias Doerffel
b45c0c5f02 MainWindow: coding style improvements 2014-03-18 20:39:01 +01:00
Tobias Doerffel
5e2d299360 MidiPort: introduced internal base velocity property
In order to keep compatibility with projects created with LMMS < 1.0.0
we maintain a property specifying the base velocity (i.e. the velocity
sent to MIDI-based instruments at volume=100%). For new projects this
always will be 64 while compat code enforces a value of 127 for old
projects.

We can also think about hiding the new groupbox in order to hide
complexity from the user.

Closes #430.
2014-03-17 22:30:52 +01:00
Tobias Doerffel
f32c89bd13 InstrumentMidiIOView: coding style improvements 2014-03-17 21:25:50 +01:00
Tobias Doerffel
ab4cebeea0 MidiPort: remove unneccessary line breaks 2014-03-17 21:08:55 +01:00
Vesa
7dac1137bc Knob: add volumeRatio property to allow showing knobs with ratios other than 100 in dBV
Waveshaper, Dynamics processor: make input/output knobs respect the show in dBV setting
2014-03-15 10:45:55 +02:00
Raine M. Ekman
fab41306ac Export: check for end of export in ticks, not in tacts.
This works better with time signature changes.
2014-03-12 20:18:39 +02:00
Vesa
ba7e5e5f5c Highlight the currently selected instrument/automation patterns in the song editor 2014-03-12 07:14:29 +02:00
Tobias Doerffel
0674e1434c SongEditor: renamed class and file name to match current coding style 2014-03-09 23:25:38 +01:00
Tobias Doerffel
24a9ef01f9 PianoRoll: renamed class and file name to match current coding style 2014-03-09 23:19:46 +01:00
Tobias Doerffel
7c685bdd18 Merge pull request #421 from diizy/stable-0.4
More bug fixes: #419, #286
2014-03-08 19:42:32 +01:00
Tobias Doerffel
56ee27ed9b Midi: added MidiDefaultVelocity to be used for test notes etc. 2014-03-08 13:22:51 +01:00
Tobias Doerffel
b01f093e37 InstrumentTrack: hide sound shaping widgets for single-streamed instruments
We currently don't apply envelopes/LFOs and filters to single-streamed
instruments, therefore hide the GUI.
2014-03-08 13:17:55 +01:00
Tobias Doerffel
1c66bb9d66 Instrument: introduced flags to replace virtual property getters
There'll be more and more flags for instruments. Handling them using
virtual and overloaded getter functions doesn't scale well and adds
unneccessary overhead.
2014-03-08 12:47:42 +01:00
Tobias Doerffel
0ca3901ab8 Normalize volume 100% to MIDI velocity 63
Furthermore moved midiVelocity() to Note and removed global volumeToMidi()
helper method.

Closes #280.
2014-03-08 12:13:42 +01:00
Vesa
0947bcf70f Song editor: fix jittery tracks bug (issue #286) 2014-03-08 11:43:05 +02:00
Vesa
b49f4e483e Pattern: Refactor getNoteAtStep -> noteAtStep 2014-03-05 10:39:08 +02:00
Tobias Doerffel
4fb81c1af7 Merge pull request #412 from diizy/stable-0.4
Pattern: fix beat pattern behaviour with different time signatures
2014-03-05 09:32:37 +01:00
Vesa
5d1e864417 Pattern: fix beat pattern behaviour with different time signatures 2014-03-05 05:28:46 +02:00
Raine M. Ekman
fed2c6b4ac Drumsynth: make rendering use the mixer samplerate instead of hard coded 44100. 2014-03-04 22:00:02 +02:00
Vesa
dd8fa5d80c Make LcdSpinBox double-clickable to enter value 2014-03-01 23:44:58 +02:00
Vesa
e7b097d255 Define all pattern colours in CSS and make them stylable
also coding style improvements (remove leading underscores from header guards)
2014-02-25 21:30:39 +02:00
Hannu Haahti
fcfcee1895 one hardcoded default colour less 2014-02-25 03:56:11 +02:00
Tobias Doerffel
9eafca3615 Note, NotePlayHandle: no default arguments for setVolume() and setPanning() 2014-02-25 00:27:11 +01:00
Tobias Doerffel
b5c713e0ea Removed traces of old SurroundArea implementation 2014-02-25 00:26:03 +01:00
Vesa
ab73c0c133 Updated knob code, now everything seems to work really smoothly regardless of knob type or range.
Also some graphics tweaks here and there.
2014-02-24 22:14:54 +02:00
Vesa
3e22c747d7 Coding style.. 2014-02-24 18:38:37 +02:00
Vesa
79edbf7f52 Knob behaviour fix 2014-02-24 18:33:16 +02:00
Vesa
3ccc0685b7 More updates to song editor graphics based on feedback and IRC discussions
also fixed the automation pattern rendering which had some slightly bad behaviour
2014-02-24 01:52:03 +02:00
Tobias Doerffel
3be2e89d37 DspEffectLibrary: renamed from effectLib 2014-02-23 14:41:23 +01:00
Tobias Doerffel
2591378818 LcdSpinBox: adopt naming style convention 2014-02-20 22:17:28 +01:00
Tobias Doerffel
e6883e7743 LcdSpinBox: check for mouse button in mouseReleaseEvent()
Otherwise we restore things that were never changed when releasing right
or middle mouse button.

Closes #358.
2014-02-20 21:53:48 +01:00
Tobias Doerffel
8b84526dc5 Pattern: removed freeze functionality
Since addition of automation, controllers etc. the freeze functionality
has been rather broken and thus adds no value anymore. In order to not
confuse users with broken functionality, remove it at all.

Closes #345.
2014-02-19 19:07:47 +01:00
Vesa
9265913b73 Waveshaper updates: added amplitude +/- buttons, toggle led to clip input to 0dB, more helpful gridlines in wavegraph
Mallets: artwork update by Bill Y.
New knob: knob_vintage32, currently only used in Mallets, can be used for other things in the future (maybe if we get some more vintage-style synths/effects?)
Graph widget: added new drawing mode (bar style graph) for future use, currently unused anywhere, have plans
2014-02-14 18:22:04 +02:00
Tobias Doerffel
7e680abf13 InstrumentTrack, NotePlayHandle: ignore volume of InstrumentTrack for MIDI events
The volume of an InstrumentTrack is applied separately when post-processing
the audio buffer and is not related to MIDI processing. It therefore should
not be included into MIDI velocity calculation.

Closes #301.
2014-02-13 01:35:49 +01:00
Tobias Doerffel
a87c206e31 volumeToMidi(): limit to MidiMaxVelocity 2014-02-13 01:35:38 +01:00
Vesa
cc1dea42bb Final fixes and tweaks: old bugs fixed in graph behaviour, more responsive and accurate now 2014-02-12 22:13:36 +02:00
Vesa
58e451925e Graph code improvements, graphics 2014-02-12 20:58:30 +02:00
Vesa
201fa1d89a Waveshaper: added bg image for graph, made graph larger
Graph widget: added new functionality - ability to draw straight lines with shift-click
2014-02-12 13:21:55 +02:00
Tobias Doerffel
c6a6feb588 Merge pull request #290 from M374LX/stable-0.4
Better way to update play button icons
2014-02-09 22:38:39 +01:00
Alexandre Almeida
def1154971 Update AutomationEditor.h 2014-02-09 19:04:34 -02:00
Alexandre Almeida
64e1c2080c Update bb_editor.h
A better way to update the play button icons, which requires less "if" checks and method calls in total.
2014-02-09 18:55:29 -02:00
Alexandre Almeida
2a1f4a61fa Update piano_roll.h
A better way to update the play button icons, which requires less "if" checks and method calls in total.
2014-02-09 18:54:23 -02:00
Alexandre Almeida
10b8990ac5 Update song_editor.h
A better way to update the play button icons, which requires less "if" checks and method calls in total.
2014-02-09 18:52:11 -02:00
Tobias Doerffel
3125a7a954 EffectChain: remove unused and broken isRunning()
isRunning() is neither used nor is it correct in terms of semantic, so
we can remove it safely.
2014-02-07 00:34:32 +01:00
Tobias Doerffel
8c06cb60f4 InstrumentTrack: always process silence at least one time
As of commit 1266278229 silent buffers
from InstrumentPlayHandle-driven instruments are ignored. This is a good
thing but can beak PeakController instances attached to e.g. ZynAddSubFX.

Fixes playback of unfa-Spoken.mmpz.
2014-02-06 23:40:50 +01:00
Tobias Doerffel
be5e17c29c MixHelpers: added isSilent()
A simple function for testing whether a given sample buffer is silent.
Maybe we have to adjust/lower the threshold.
2014-02-06 22:59:02 +01:00
Tobias Doerffel
f01c90b6a5 EffectChain: new argument hasInputNoise for processAudioBuffer()
Use the extra information to determine whether we need to process input
at all if plugin is not running anymore.

In FX mixer we now omit starting effects if no data has been mixed to
a certain FX channel. Instead let effects running until they finished.

First of multiple fixes for #267.
2014-02-06 22:20:23 +01:00
Tobias Doerffel
eccfc0c688 SongEditor: remove unused messing with engine's pointer to SongEditor
Back in time we obviously didn't manage to get construction dependencies
sorted so we needed to mess with the pointer to the SongEditor instance in
the engine class.

Thanks to Alexandre Almeida for pointing out this issue.

Closes #261.
2014-02-06 20:51:16 +01:00
Oskar Wallgren
c7e7748bc3 Added scales 2014-02-04 20:12:46 +01:00