Commit Graph

43 Commits

Author SHA1 Message Date
Raine M. Ekman
4136dbb744 SF2 Player, OpulenZ: addPlayHandle moved to end of constructor.
Should mean smaller risk of race conditions and less need for mutexes.
2015-03-25 21:16:55 +02:00
Raine M. Ekman
4cfed0434c ...and don't name the track after the name in the SBI file if it's empty. 2015-01-11 20:51:22 +02:00
Raine M. Ekman
63e23e0158 Added loading of SBI files.
(e.g. from http://cd.textfiles.com/soundsensations/SYNTH/SBINS/ )
2015-01-11 19:19:52 +02:00
Raine M. Ekman
925122545e Fix issue #1292, beautify code a bit,
and revert an initialization change I can't grasp the reason for.
2015-01-10 21:23:14 +02:00
Vesa
6f23ef7df2 Merge branch 'stable-1.1'
Conflicts:
	plugins/DualFilter/DualFilterControls.cpp
	src/gui/PluginBrowser.cpp
2014-12-16 23:12:02 +02:00
Vesa V
da6fd6ef5c Update opl2instrument.cpp 2014-12-16 23:00:14 +02:00
dave
2295545ac6 Remove whitespace from setHintText, change spaces to tabs 2014-12-08 23:48:44 +00:00
dave
4993eba3c1 Remove unused and unnessary +" " in all knob.setHintText calls 2014-12-08 10:57:21 +00:00
Lukas W
1bbf7455a4 Rename a lot… 2014-11-26 10:09:49 +01:00
Lukas W
968909c07c Rename engine to Engine 2014-11-26 00:49:55 +01:00
Vesa
857de8d2c8 Huge structural changes
Well, this commit got a bit out of hand, what with 26 files changed. Oh well.

Basically, we're using the buffermanager to dispense temporary buffers for playhandles and audioports to use.
This allows us to change the way playhandles work. Earlier, playhandles of the same track were waiting in line
to push their output to the audioport. This was of course inefficient, so now they just register themselves to the port,
then the port handles mixing the buffers.

Caveat: this is still a work in progress, the vol/pan knobs on instruments are temporarily non-functional - will be fixed in
the next commit, but I have to get some sleep now.
2014-11-18 13:58:39 +02: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
Vesa
06be5bba82 Make MIDI timing sample-accurate
- currently only affects Vestige
- no idea whether this can also be used for Zyn and OpulenZ, I'm not sure if Zyn has any kind of mechanism for communicating frame offset to the synth, as for OpulenZ, @softrabbit would know the answer better
- basically, I made it happen by simply adding an extra parameter in the processMidi{In|Out} functions, which is 0 by default, and made the necessary changes in instrumentTrack and nph to utilize it
- I based this against 1.1 because I didn't think it's a very big change, and I don't see much possibility for things going wrong here, since we're basically just using the existing functionality in Vestige (there already was a frame offset being communicated to the remote plugin, just that it was always set to 0). However, if @tobydox thinks this is better to bump up to 1.2, I can rebase it for master...
2014-06-04 04:23:16 +03:00
Tobias Doerffel
25204abdab Merge remote-tracking branch 'tresf/stable-1.0' into stable-1.0
Conflicts:
	plugins/opl2/fmopl.c
2014-05-08 21:53:03 +02:00
Tres Finocchiaro
7fb434c26d #ifdef indent corrections 2014-05-08 11:05:54 -07:00
Tres Finocchiaro
72620542c0 OpulenZ/opl2 build fixes (Apple)
- Cleaned up many non-bracketed sections for stricter compilers.
- Remove custom `INLINE` keyword when building on clang.
- Renable opl2 via plugins\CMakeLists.txts

https://cloud.githubusercontent.com/assets/6345473/2919394/c474d668-d6da-11e3-82db-778a7ce6014d.png
2014-05-08 14:01:27 -04:00
Raine M. Ekman
b9e33736de OpulenZ: changed some __inline functions to "static inline",
which is more in line with later C dialects
2014-03-31 20:54:48 +03:00
Vesa
e4340c630d Do the opl amplification smarter 2014-03-22 13:33:42 +02:00
Vesa
22cb12d066 Increase the volume of OpulenZ, because it is very very quiet and it's better to correct this now before 1.0.0 is released 2014-03-22 12:31:34 +02:00
Tobias Doerffel
b2c1a04df8 OPL2: fixed various CLANG compiler warnings 2014-03-21 11:12:17 +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
2591378818 LcdSpinBox: adopt naming style convention 2014-02-20 22:17:28 +01:00
Markus Elfring
95b0a4305e Bug #175: Completed quoting for parameters of some CMake commands
A Wiki article pointed out that whitespace will only be preserved for parameters
in CMake commands if passed strings will be appropriately quoted or escaped.
http://cmake.org/Wiki/CMake/Language_Syntax#CMake_splits_arguments_unless_you_use_quotation_marks_or_escapes.

Quoting was added so that more places should also handle file names correctly
which contain space characters eventually.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
2014-02-01 15:20:27 +01:00
Raine M. Ekman
a36f59ab35 Moved LGPL to OpulenZ source dir, added presets. 2014-01-28 20:39:03 +02:00
Raine M. Ekman
29f04d8056 OpulenZ: added pitch bend range MIDI message handling 2014-01-26 16:33:43 +02:00
Wong Cho Ching
b502ae9da4 Changed the placement of code 2014-01-26 14:23:32 +08:00
Wong Cho Ching
b15942d120 Amended initialize code 2014-01-26 14:19:33 +08:00
Wong Cho Ching
5816a2ae5d Fixed OpulenZ segfault bug when it is dropped on another instrument. 2014-01-26 13:29:52 +08:00
Tobias Doerffel
3a827f061f Reworked MIDI event handling in InstrumentTrack and renamed MIDI classes
The MIDI event handling in InstrumentTrack was complex and buggy. It has
been simplified now such that processInEvent() tries to handle note on,
note off and key pressure events. The actions taken should result in
equivalent calls to processOutEvent() by NotePlayHandle instances. The
processOutEvent() function sends according MIDI events to the attached
instruments. All unhandled MIDI events are directly forwarded to the
instrument in processInEvent().

It's possible that some corner-cases are not handled yet with the new code
and we have regressions now.

Furthermore renamed midiTime/midiEvent to MidiTime/MidiEvent to match
coding style.

Closes #72.
2014-01-26 00:08:12 +01:00
Raine M. Ekman
2116cf840b OpulenZ: Velocity works OK now. 2014-01-25 21:48:24 +02:00
Raine M. Ekman
67382654eb OpulenZ: added velocity & aftertouch, cleaned up some unneeded code 2014-01-24 22:37:36 +02:00
Raine M. Ekman
fc23839f6c Merge https://github.com/LMMS/lmms into stable-0.4 2014-01-24 17:49:03 +02:00
Raine M. Ekman
842d4ee74c Merge https://github.com/LMMS/lmms into stable-0.4
Conflicts:
	plugins/opl2/opl2instrument.cpp
2014-01-24 17:48:26 +02:00
Andrew Kelley
52d4f0fd3f fix all warnings and add -Werror 2014-01-22 22:09:36 -05:00
Tobias Doerffel
2dc02001b7 Instrument: also render sound for MIDI-based instruments when muted
In order to provide smooth muting functionality (i.e. immediate proper
sound when unmuting) always render audio buffers for MIDI-based
instruments. This is more important than potentially reduced CPU usage
while muted.

Closes #69.
2014-01-22 21:55:33 +01:00
Raine M. Ekman
9a9a867e7d Added pitch bend 2014-01-22 20:57:02 +02:00
Vesa
c894e0f68a LB302 artwork, OPL2 logo 2014-01-18 16:36:27 +02:00
Raine M. Ekman
ce6dc80c9e OpulenZ: new logo, some refactoring. 2014-01-17 23:21:54 +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
Raine M. Ekman
440da8ba15 OpulenZ: fixed export problems 2014-01-07 23:06:47 +01:00
Raine M. Ekman
8fa4866ff8 Added OpulenZ, an FM synth for LMMS
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2014-01-06 21:29:13 +01:00