Commit Graph

1247 Commits

Author SHA1 Message Date
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
Raine M. Ekman
69947a624b Track: allow smaller height
Here's one way to cram more stuff onto small screens, or otherwise help
reducing visual clutter: Allow tracks to be shift-dragged all the way
down to 8 px height.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2012-11-01 21:36:31 +01:00
Tobias Doerffel
95e1ef1c78 InstrumentTrack: show FX mixer when double clicking FX line LCD spinbox
As proposed by Danil <baza-nsk@ya.ru> on 2012-03-12.
2012-10-27 22:50:16 +02:00
Tobias Doerffel
c1368ddb1a SetupDialog: added option for disabling auto save feature
As requested by various users, it should be configurable whether the
auto save feature is active or not.
2012-10-27 22:45:59 +02:00
NoiseByNorthwest
d448e6743d Ergonomic enhancements for AudioFileProcessor plugin (interactive wave view).
This patch includes:
* sampleBuffer::visualise(): add possibility to specified a range to visualize instead of the whole sample
* add sampleBuffer::sampleRate() and sampleBuffer::sampleLength() getters
* definition of AudioFileProcessorWaveView and AudioFileProcessorWaveView::knob classes for AudioFileProcessor plugin
* knob::getValue() specified “virtual” to allow redefinition in child class  AudioFileProcessorWaveView::knob
* delete audioFileKnob class (made obsolete by AudioFileProcessorWaveView::knob)
* add audioFileProcessor::isPlaying() signal, which is emitted in audioFileProcessor::playNote
* change type of AudioFileProcessorView::m_startKnob and AudioFileProcessorView::m_endKnob (AudioFileProcessorWaveView::knob instead of audioFileKnob)
* replace AudioFileProcessorView::m_graph (QPixmap) by AudioFileProcessorView::m_waveView (AudioFileProcessorWaveView)

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2012-10-27 22:32:09 +02:00
Tobias Doerffel
ad3af97798 MidiClientRaw: fixed parsing of MIDI events
A break was missing in the function where MIDI events are generated from
raw MIDI data. This always has been broken as of commit d188056683
but was not observed as the code for all switch-cases has been identical.
2012-10-27 22:22:23 +02:00
Jesse Dubay
4ba4d8b4e0 ControllerConnectionDialog: fix crash on autodetect when using raw MIDI client 2012-10-27 22:17:13 +02:00
Raine M. Ekman
04c1a0906f AutomationEditor: show tooltip with exact value
Added tooltip telling the exact value under the cursor when editing
automation.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2012-05-20 19:01:21 +02:00
Raine M. Ekman
02db2fbd2f Piano roll: fix scale marking algorithm and improve rendering
A patch to fix the scale marking algorithm and possibly improve on the
looks

Closes #3493928.
2012-05-20 18:50:27 +02:00
NoiseByNorthwest
0b057ec5df Fixed bugs with magnetic knobs
The problem comes from AutomatableModel::m_initValue wich is not fitted
either in constructor or in setter. Idem for m_value in constructor, imo
this is not enough consistent.

I propose to:
- call fittedValue() in init value setter.
- always call setter to initialize current & init values.
2012-02-13 22:02:03 +01:00
Tobias Doerffel
edb540da52 AboutDialog: advanced copyright
We're living in 2012 now.
2012-02-02 20:55:19 +01:00
Tobias Doerffel
89078c09a2 3rdparty/libsamplerate: updated to version 0.1.8
Updated 3rdparty libsamplerate to version 0.1.8 and bumped requirement
to system's libsamplerate to version 0.1.8.
2012-02-02 20:45:02 +01:00
Tobias Doerffel
5662ef9d44 PianoRoll: fix minimum and initial width
The PR window always had a too small initial size. Fix this by setting
a proper minimum width and set initial width to this value as well.
2012-02-02 20:24:30 +01:00
Tobias Doerffel
50bb56da05 InstrumentFunction/Arpeggiator: fixed upper loop boundary
The upper loop boundary was wrong as the size of a single chord was
taken instead of the whole chord table.
2012-02-01 17:22:27 +01:00
Tobias Doerffel
39010a12a3 InstrumentFunctions/ChordCreator: fixed localization support for chords
Recent commits broke localization support for chord names. Static strings
to be used with tr() have to be marked as QT_TRANSLATE_NOOP.
2012-02-01 17:21:05 +01:00
NoiseByNorthwest
59242adadc Piano-roll: bypass fixed initial width of the window
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2012-02-01 16:58:24 +01:00
NoiseByNorthwest
a6ae31a08e Piano-roll: scale & arpeggio combobox + micro refactoring of ChordCreator::Chord
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2012-02-01 16:58:24 +01:00
Raine M. Ekman
14f41fe7b3 TrackViews: added compact mode
Added an option to shrink the track buttons horizontally, mainly by
moving the track name into a tooltip.

Closes #3459241.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2012-01-29 23:49:16 +01:00
Tobias Doerffel
6899c8378c AudioFileWave: add "LMMS" as software metadata string
By Mikobuntu:

I have created a patch ( tested on stable) that adds a metadata entry
"Software" with the value "LMMS (libsndfile-1.0.21)" I'm not quite sure
what calls in the libsndfile entry as my only field entered was LMMS,
but i guess it does no harm anyway to know ;)

Closes #3374272.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2012-01-29 20:02:36 +01:00
Tobias Doerffel
67ca4d73f6 AutomationPattern: fixed loadSettings() when there's just one value
If the settings for an AutomationPattern contain just one value at
position 0, this value was not loaded properly. Thanks to raine for
pointing out this issue and providing a patch.

Closes #3448562.
2012-01-29 19:54:41 +01:00
NoiseByNorthwest
0fc20dffd3 Add tone marking feature
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2012-01-29 19:42:23 +01:00
Tobias Doerffel
e5bc77f4c3 Mixer, Pattern: fixed pattern freeze with MIDI-based instruments
When freezing patterns the freezer hung forever as it checked for any
running play handles in order to render echoes etc. after the last note.
However if there are MIDI-based instruments such as LB302, ZASF,
Sf2Player etc. there will always be play handles (InstrumentPlayHandles)
in the mixer's play handle array. Therefore explicitely check for
remaining NotePlayHandles when freezing pattern. Furthermore added a
counter variable for safety reasons so rendering note tails will never
exceed 2000 buffer periods.

Thanks to Mikobuntu for reporting this issue!

Closes #3109262.
2012-01-29 13:07:17 +01:00
Tobias Doerffel
60758172b0 Standard filters: added 24 dB versions of RC filters as well as a vocal format filter
Thanks to Stefan Fendt!

(cherry picked from commit f5057ce6d2)
2012-01-29 12:12:50 +01:00
Paul Giblock
4712804b28 Initial addition of Stefan Fendt's RC filters, updated and fixed code style.
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@2011 0778d3d1-df1d-0410-868b-ea421aaaa00d
(cherry picked from commit 46adbb2b34)
2012-01-29 12:07:17 +01:00
Tobias Doerffel
8c1019cdae MidiController: removed unused variable
The local "bytes" variable is never used and thus can be removed. Fixes
compiler warning.
2012-01-29 12:02:33 +01:00
Tobias Doerffel
3e4b824daf SampleTrack: set/update tooltip for samples when loading project
The tooltip for sample track object views was not restored properly
when loading projects. Thanks to Mikobuntu for pointing out this issue.
2012-01-29 12:01:21 +01:00
Tobias Doerffel
5977041b6e InstrumentTrack, NotePlayHandle: fixed note detuning processing
Note detuning did not work properly for patterns starting after the
first bar in the song editor. This has been fixed by introducing
additional information about parent's song-global offset to
NotePlayHandle objects.

Closes #3462555.
2012-01-29 11:36:24 +01:00
NoiseByNorthwest
132ab41e5d Replace static var by property, see "Add magnetic effect..." commit 2012-01-26 19:06:34 +01:00
NoiseByNorthwest
b3b290f6dd Piano-roll: preserve melody when resizing a note by holding shift 2012-01-26 19:06:34 +01:00
NoiseByNorthwest
7f63351ca6 Piano-roll: remove from selection feature (shift + left-click) 2012-01-26 19:06:34 +01:00
NoiseByNorthwest
9215800114 Add magnetic effect (for init value) on knobs 2012-01-26 19:06:34 +01:00
Tobias Doerffel
14cfe77804 InstrumentTrack: make sure m_runningMidiNotes[x] does not become negative
Even though there's no known code path for this event to happen we
should always make sure m_runningMidiNotes[x] does not become negative
as this might mess up future key events.
2011-07-02 14:41:17 +02:00
Tobias Doerffel
83daa2d8fb SampleBuffer: do not use UTF-8 filenames on Windows
As libogg, libsndfile & friends do 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 being read properly.

Closes #2952858.
2011-07-02 14:15:52 +02:00
Tobias Doerffel
1e83b1e23b Reset filename when recovering project after unexpected exit
We must not use "recover.mmp" as regular filename after we recovered
the sesion from it as this causes following save cycles to go into
the recovery file. Instead load the recovery file via
song::createNewProjectFromTemplate() so the used will be asked for
a filename when saving the recovered project the first time.

Closes #3294122.
2011-07-02 13:52:44 +02:00
Tobias Doerffel
4d473a36fb ConfigMgr: properly write configuration file if it contains non-ASCII chars
There has been a problem UTF-8 characters in the configuration file
since 2006 (!), as the length of the data to be written was mis-
calculated. We can omit the specification of the data length at all
when just passing a QByteArray object to QFile::write().

Fixes setup dialog appearing each start if one of the configured paths
in the setup dialog contains non-ASCII characters.

Closes #3348920, #3017409, #2812054.
2011-07-02 13:37:36 +02:00
Tobias Doerffel
7b31be67ac ConfigMgr: do not silently fail to parse configuration file
Instead of failing silently when parsing configuration file show a
messagebox with helpful debugging information.
2011-07-02 13:28:02 +02:00
Tobias Doerffel
e338b34faf Widgets classes: use "WindowTitle" property instead of "AccessibleName"
As the interface for the "AccessibleName" property might not be available
when Qt was built without accessibility support, use the "WindowTitle"
property instead where appropriate.

Closes #3300101.
2011-06-27 20:43:09 +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
Tobias Doerffel
d4684f3ab1 Faders in FX mixer: added peak value indicator
Based on the patch by Thorsten Müller provided at #3307037, I continued
the work to display nice indicators for the peak value of the last 1500
ms.

Closes #3307037.
2011-06-23 10:53:39 +02:00
Thorsten Müller
ee0f6ccd10 Add tooltips to fxmixer faders
Added tooltips to show the actual value when moving the fader handle.
This works mostly like the same feature we already have for the volume
knobs. Depending on settings the value is shown in a range between
0% to 200% or -inf/-34dBV to 6.02 dBV. Again that's the same as for the
volume knob. Value range could be adjusted easily if necessary.

Closes #3305914.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2011-06-23 10:16:45 +02:00
Tobias Doerffel
8f9d90df5d LadspaManager: really only load shared library on Linux
Testing the last two characters of the filename against "so" is
insufficient as this might cover e.g. ISO files as well. Therefore
explicitely check for ".so".

Thanks to Mikobuntu for the contribution.

Closes #3289932.
2011-06-23 09:56:56 +02:00
Tobias Doerffel
66d36b3071 MainWindow: skip autosave while playing or exporting
It's a very bad idea to autosave while playing as this causes severe
underrun problems. Therefore instead of autosaving, trigger a re-try
timer for 10 seconds.

Closes #3317776.
2011-06-22 11:15:20 +02:00
Tobias Doerffel
babf3edff8 Ask whether to recover session after unexpected exit
Instead of always loading the last auto-saved session (which might end
up in an endless cycle if recover.mmp is faulty or causes a crash) ask
the user whether to do so.
2011-04-06 18:35:20 +02:00
Tobias Doerffel
a90ffed0a8 SongEditor: made smoooth scrolling an optional feature
As smooth scrolling seems to cause problems for some users it now has
to be enabled explicitely in the settings dialog.

Closes #3194891.
2011-03-17 09:23:38 +01:00
Tobias Doerffel
dd9ba4b2ad AudioPulseAudio: do not initialize volume
Instead of passing an initialized pa_cvolume structure, pass NULL as
recommended by the documentation for pa_stream_connect_playback(). This
fixes the volume erroneously being set to 100% at startup.

Thanks to Thomas Moschny for forwarding the bug report.
2011-01-26 22:08:49 +01:00
Tobias Doerffel
f67e8e0af7 ControllerRackView: fixed widget size issues after closing
There were some issues with the ControllerRackView when closing it
with recent Qt versions. Issue seems to be fixed by not setting a
size constraint policy for the QMdiSubWindow.

Partially closes #3149779.
2011-01-23 23:54:06 +01:00
Tobias Doerffel
b8ad5bf025 ControllerView: fixed minor artifacts at widget drop shadow
We must not set the Qt::WA_OpaquePaintEvent attribute when painting
semi-transparent a drop shadow for the ControllerView.
2011-01-23 23:52:59 +01:00
Tobias Doerffel
4cad9517aa Add BB track when adding track to empty BB editor
When there's no BB track but a track is added to the BB editor,
automatically create a BB track so that the user doesn't get confused
by new empty track (not even showing clickable beats).

Partially closes #3149779.
2011-01-23 23:10:04 +01:00
Tobias Doerffel
4851839327 LadspaManager: print error string when failing to load LADSPA library
In order to ease debugging of problems with the LADSPA library loader
print QLibrary::errorString() if loading a library fails.
2011-01-16 18:50:01 +01: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