Commit Graph

2254 Commits

Author SHA1 Message Date
Tobias Doerffel
dfae570700 MidiAlsaSeq: print error message if snd_seq_event_input() failed
Evaluate return value of snd_seq_event_input() and print an error
message if it failed.
2009-08-14 15:21:18 +02:00
Tobias Doerffel
27f5d20e05 ControllerConnectionDialog: improved auto detect feature for controllers
When opening up the ControllerConnectionDialog by default auto detect
is enabled and all MIDI input devices are selected. Upon the first
event all devices but the one the event came from get unchecked. This
eases the process of assigning MIDI controls to software controls.
2009-08-14 15:12:58 +02:00
Tobias Doerffel
5ec96a9483 MidiEvent: allow querying name of port which it came from
Added functionality to query the name of the source port of a MidiEvent
by calling MidiClient::sourcePortName( const MidiEvent & ).
2009-08-14 15:12:57 +02:00
Tobias Doerffel
2475cf982b RemotePlugin: added missing include + coding style fixes
The header cstdlib is required for NULL pointer definition. Additionally
some minor coding style fixes.
2009-08-14 15:12:57 +02:00
Tobias Doerffel
40c56de898 MidiWinMM: fixed typo that caused writablePorts() not being overloaded
The MidiClient::writablePorts() method was not overloaded properly in
MidiWinMM implementation due to a typo. This should fix list of output
devices being empty on win32.
2009-08-14 15:12:57 +02:00
Tobias Doerffel
bfe90a8ade MidiAlsaSeq: construction of port name in separate function
A port name is constructed from snd_seq_* structures at various places,
therefore separate it into a static helper function. This avoids
redundancy and eases maintainability.
2009-08-14 15:12:57 +02:00
Tobias Doerffel
9d811bf080 MidiAlsaSeq: improved MIDI event polling loop
Use poll() with a finite timeout so we can quit the thread properly
without manually writing stuff into the pipe.

Check for pending events at the beginning of the loop so we can't end up
in an endless loop.

Furthermore check return value of snd_seq_event_input() and get out of
loop if it indicates an error.
2009-08-14 15:12:56 +02:00
Tobias Doerffel
295b332650 MidiAlsaSeq: QString related fixups
Use QString::isEmpty() rather than comparing against an empty string.
Furthermore use QStrin::toUtf8() instead of QString::toAscii() for
retrieving name of a MidiPort.
2009-08-14 15:12:56 +02:00
Andrew Kelley
7d0c1ef6c2 vst_remote_plugin: add include directory
If libraries are being used from somewhere other than
/usr/include or /usr/local/include, building vst_remote would fail.
Now it checks CMAKE_INSTALL_PREFIX/include.
2009-08-13 05:30:25 -07:00
Andrew Kelley
a86ca968b7 BuildPlugin.cmake: add include directory
If libraries are being used from somewhere other than
/usr/include or /usr/local/include, building plugins would fail.
Now it checks CMAKE_INSTALL_PREFIX/include.
2009-08-13 04:25:07 -07:00
Andrew Kelley
1ee5b8a340 made FindFLAC.cmake more robust
FindFLAC.cmake now searches the cmake install prefix for
flac, fixing some configure problems in non-standard cases.
2009-08-13 02:50:53 -07:00
Tobias Doerffel
55337ad2be 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.
(cherry picked from commit b8ebfbd06a)
2009-08-13 01:46:49 +02:00
Andrew Kelley
fb733051bd added FLAC as an export format 2009-08-12 07:18:16 -07:00
Andrew Kelley
6cf2d83808 made CLI rendering smoother
Suppressed a message box that would pop up in command
line interface causing a crash and made lmms act properly
when a rendering plugin fails. Need to figure out how to
terminate program in project_renderer line 222.
2009-08-12 07:14:44 -07:00
Andrew Kelley
0ab12b4eb9 Merge branch 'master' of ssh://superjoe30@lmms.git.sourceforge.net/gitroot/lmms 2009-08-12 05:52:46 -07:00
Andrew Kelley
a55b134263 mp3 rendering: apply master gain to output
Apply master gain when rendering an mp3. Don't use hardcoded
number of channels.
Additionally replaced short int with Sint16 and printf with qWarning.
2009-08-12 05:44:20 -07:00
Andrew Kelley
1c118f1a46 sample_buffer: made MP3 decoder more robust
The mp3 decoder was using an uncomfortably large buffer,
laughably because of a negative overflow. Fixed this and
added a failsafe check to prevent buffer overflows.

Additionally changed printfs to qWarnings and fixed copyright
notice in audio_file_mp3.
2009-08-12 04:34:24 -07:00
Peter Nelson
1fe0c689b0 AudioJACK: removed incorret JACK transport code
The audio_jack driver currently treats the jack transport status as a
flag for whether or not to output audio. This is incorrect and
unintended usage of jack transport. The attached patch simply removes
all references to jack transport from the driver, so that LMMS will
always be able to produce audio.

Closes #2816029.
2009-08-12 11:47:35 +02:00
Tobias Doerffel
c3100e36d0 TODO list: properly assign items to versions, cleanups
Sorted items in TODO list a bit to match release goals of planned
versions. Items regarding 0.4.x series were moved over to TODO list
in stable-0.4 branch. Furthermore removed items that are out of date.
2009-08-11 14:49:22 +02:00
Andrew Kelley
24b1baf5fa Organized TODO list. Tentatively attached versions
Organized and polished TODO list. Tentatively attached each item
to a version to have it done by. This file needs to be looked over
by Tobias.
2009-08-11 03:02:43 -07:00
Tobias Doerffel
58023cf2cf MidiWinMM: added missing break directive after case-block
A break directive was missing in MidiWinMM::handleInputEvent(), leading
to inappropriate calls to qWarning() on pitch bend.
2009-08-10 13:51:09 +02:00
Tobias Doerffel
35ca0aab69 Added CALF LADSPA plugins
As per popular demand I added CALF LADSPA plugins to be shipped with
LMMS. After some minor modifications the plugins compile and work on
win32 platform too.
2009-08-10 13:42:09 +02:00
Tobias Doerffel
ee9d88e2d4 FlpImport: fixed crash on invalid notes
Added a range check for channel parameter when adding notes. This fixes
a crash when for example importing the project posted on lmms-devel
by Andew Kelley lately.
2009-08-09 11:10:10 +02:00
Tobias Doerffel
20eda9a756 FlpImport: changed most printf()s to qDebug()s and qWarning()s
This improves structure of messages when importing FLP files.
2009-08-09 11:09:12 +02:00
Paul Giblock
f1d60958f0 Rename all Controller-family classes to new style
Adjust capitialization on all Controller-related classes to new
standards and update all calling code
2009-08-08 13:05:22 -04:00
Paul Giblock
a9a3c796f7 Hotfix for resizable controller rack
Apparently I didn't compile the latest version of my changes and there
was a lurking error.  This has been fixed.
2009-08-08 12:04:15 -04:00
Paul Giblock
bb76ba5121 Make Controller-Rack resizable
Per request, make the Controller-rack vertically sizable.  This is also
part of our effort to slowly deprecate old fixed-positioning code in
favor of layouts.
2009-08-07 16:26:07 -04:00
Tobias Doerffel
d66c71ebf8 MainWindow: removed HQ mode button
Switching to HQ mode in standard workflow doesn't make much sense and
is likely to cause problems. Therefore remove the HQ mode button for
for time being. One can still export projects in high(er) quality.
2009-08-07 17:44:49 +02:00
Tobias Doerffel
94c5c5a46f MidiWinMM: use qWarning() rather than printf()
Using printf() is really old C-style, therefore changed all printf()s
to qWarning()s.
2009-08-06 13:16:22 +02:00
Tobias Doerffel
94ebcf30bc Win32Toolchain: define MINGW_PREFIX and QT_HEADERS_DIR
MINGW_PREFIX is a better variable name than CC_PREFIX (cross copmling
prefix), therefore rename it. Furthermore define QT_HEADERS_DIR due to
changed logic in CMake's FindQt4 module.
2009-08-06 13:14:11 +02:00
Tobias Doerffel
803fd68a56 ZynAddSubFX/FLTK: updated to SVN revision 6826
Updated FLTK to SVN revision 6841 of branch-1.3:

- Fixed glibc 2.10 compiler problems (Fedora 11 and others)
  with scandir() and strchr() (STR #2222)
- Fl_Scroll mods for global scrollbar size control
- various other minor stuff (see SVN log)
2009-08-05 19:03:19 +02:00
Tobias Doerffel
9cdb6cca3b SampleBuffer: display different message if file was not found
Instead of displaying a message about failed decoding of a file,
properly indicate the actual problem if the file itself does not exist.
2009-08-05 18:19:04 +02:00
Tobias Doerffel
964c6532f2 Sf2Player: removed trailing spaces in code
There were some unsolicited trailing spaces in the code. Removed them.
2009-08-05 18:04:39 +02:00
Tobias Doerffel
144f0c6c80 Sf2Player: fixed crash and race conditions
Do not crash if no fluid_voice could be determined in
sf2Instrument::playNote() (which for example happens if no soundfont
is loaded). Furthermore protect the FluidSynth API calls in the
envelope and panning code with global synth mutex.
2009-08-05 18:00:04 +02:00
Tobias Doerffel
4baf459da2 Sf2Player: added panning and volume envelope support
Finally there's proper support for panning and volume envelopes. This
is achieved by changing parameters of individual voices (one voice is
being created for each note). The new code also replaces the old
panning hacks which played notes on different channels and changed
panning of individual channels.

Closes #2010818.
2009-08-05 12:37:02 +02:00
Tobias Doerffel
4cdcd1a670 PianoRoll: removed duplicate function call in testPlayNote()
There's no need to send a MidiNotePanning event twice in
PianoRoll::testPlayNote(). Removed the duplicate function call.
2009-08-05 12:28:36 +02:00
Tobias Doerffel
6e3e1513c7 Panning: fixed wrong type-conversion in panningToMidi()
Casting to panning_t in calculation in panningToMidi() leads to
integer overflows and thus to miscalculations. This resulted for
example in wrong panning during note preview when editing panning
of a note in PianoRoll. Casting to int instead fixes the issue.
2009-08-05 12:28:13 +02:00
Tobias Doerffel
0bb54199b0 Whole code base: various cleanups, removed SINGLE_SOURCE_COMPILE relicts
* cleaned up code and improved coding style
* removed old SINGLE_SOURCE_COMPILE macro relicts
* use QString::toUtf8() instead of QString::toAscii() wherever possible
2009-08-05 11:41:59 +02:00
Tobias Doerffel
afbaabed02 SampleBuffer: do not show messagebox if there's no GUI
Showing a messagebox if LMMS is running in console-mode only is bad and
makes it crash. Therefore check for engine::hasGUI() first.
2009-08-04 12:11:30 +02:00
Tobias Doerffel
bf8f823751 Mixer: fixed wrong macro logic leading to potential performance loss
The macro logic for defining the SPINLOCK_PAUSE macro tested against
LMMS_HOST_X86_64 twice instead of testing against LMMS_HOST_X86_64 and
LMMS_HOST_X86. This caused the SPINLOCK_PAUSE macro not being set on
x86.
2009-08-03 18:53:10 +02:00
Tobias Doerffel
e0df82056c CAPS: updated to version 0.4.3
Updated CAPS plugins to version 0.4.3 - changes:

  * basics.h cleanup / comments
  * minor Makefile cleanup
  * comment cosmetics
  * Eq and Eq2x2 per-band Q changed to 1.414 (= 1 octave)
  * Eq lowest band default value fixed to read 0
  * Niclas' fix for the bessel function implemented
  * uninitialised plugin states eliminated thanks to Damon
  * linker options for OSX added to the Makefile

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2009-08-03 17:55:57 +02:00
Tobias Doerffel
60eba2e4c3 CpuX86: added support for memory prefetching
Added macros PREFETCH_READ() and PREFETCH_WRITE() which insert proper
prefetch instructions. At least on my Intel Atom CPU this improves
performany slightly. Probably needs some further tuning.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2009-08-03 17:14:58 +02:00
Tobias Doerffel
89fa5c99e9 CPU: new framework for optimized CPU-specific routines
The new CPU framework replaces the old BasicOps framework. It is more
flexible and the build process isn't such a mess anymore (pre-compiled
assembler files etc.). It will hopefully see some improvements and
extensions soon.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2009-08-03 17:14:16 +02:00
Tobias Doerffel
27d9c17e3f ZynAddSubFX: fixed compilation error
Fixed compilation error introduced by commit
f3e13c4427.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2009-08-02 14:17:54 +02:00
Tobias Doerffel
f3e13c4427 RemotePlugin: added QSTR_TO_STDSTR macro and use it in LVSL/ZASF
QString::toStdString() is not aware of locale specific characters (it
just converts to ASCII). Therefore added new macro QSTR_TO_STDSTR which
converts a QString to std::string with UTF8 characters.

Use this new macro in LMMS VST Support Layer and ZynAddSubFX plugin.
This fixes for example VST plugins not being loaded when the path to
the DLL contains non-ASCII (e.g. cyrillic) characters.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2009-07-29 17:05:57 +02:00
Tobias Doerffel
ab0160f9fc LameLibrary: fixed copyright notice
Removed myself from list of copyright holders as I didn't help out
with LAME support at all.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2009-07-28 23:18:20 +02:00
Tobias Doerffel
e115124075 WebResourcesProvider: support for HTTP forwardings + cleanups
Properly handle HTTP status code 302 which indicates a moved site,
i.e. try to fetch data from the new location. This finally makes
WebResources work again with LSP being moved to http://lmms.info.

Furthermore cleaned up code a bit. There's no need for a global
QHttp object or a global QBuffer object. Instead allocate them on
the stack in the according methods.

Furthermore removed unused/incomplete support for non-blocking download.
We should introduce support for a ProgressDialog solution (also allowing
to cancel operations) later.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2009-07-17 11:49:51 +02:00
Andrew Kelley
1a19b60e97 TripleOscillator presets - fixed empty.wav
Translated userwave0="samples/empty.wav" to userwave0="" and such.
Additionally updated references - if they included "samples/" I
took that out since now they reference from samples already.
2009-07-16 17:16:21 -07:00
Andrew Kelley
d85d8b73d0 ConfigManager - add #ifdef LMMS_HAVE_FLUIDSYNTH
Fixed compliation bug for those who don't have
fluidsynth installed
2009-07-16 11:21:00 -07:00
Andrew Kelley
2b660e3756 automationPattern - deleted glitchy code
<superjoe> why is that code even there?
<pgib> until the next mixer-period, then the model's value is reset
to the actual automation track
<pgib> I have no idea. I think it should be removed honestly. again,
there is no comment explainign the true intent
* superjoe experiments
<pgib> it was probably a poor attempt to make it so when you adjust
the only automation point for a track, that the value of the model
will change immediately'
<pgib> I think it is safe to move the newTime==0 chunk
<pgib> if we want to make the automationEditor immediately change the
value, there needs to be more logic
<pgib> and it would belong in automationEditor -- not automationPattern

<pgib> but this fixes the superAutomation why-in-the-hell bug
2009-07-16 10:07:56 -07:00