Commit graph

42 commits

Author SHA1 Message Date
James Thistlewood
522b3da83f add channel and polyphonic aftertouch support to fluid 2020-01-26 17:17:16 +00:00
James Thistlewood
7bcfe21269 switch to expressive patches based on sf name 2019-04-19 19:31:50 +01:00
anatoly-os
8d53466388 fix loading sf2, sf3 from extensions
The sf2, sf3 soundfonts didn't load/unload automatically when installing Extensions
FluidGUI didn't rebuild itself on installing/uninstalling extensions containing sf2/sf3 soundfonts
2019-04-09 17:42:22 +02:00
James Thistlewood
6521082292 follow up pr #4535: display patches in mixer in order of preset number rather than bank 2019-01-25 21:16:08 +00:00
James Thistlewood
b01a1cb583 fix #269939: order preset list to account for similar instruments on different banks 2019-01-05 08:30:14 +00:00
anatoly-os
ab9bf85bb5 fix #275544: popping noise
Use the copy of the `activeVoices` array for proper output audio processing.
2018-09-05 15:27:31 +02:00
anatoly-os
c5feea62ca lock synth mutex when closing MuseScore to prevent writing samples to deleted data structures
Optimize using raw pointer arrays - replace them with std::vector.
2018-08-30 20:44:07 +02:00
Andres Fernandez de Prado
33dff96a20 This commit contains changes required for MuseScore to compile under MSVC with no warnings.
This commit contains changes required for MuseScore to compile under MSVC with no warnings.

MuseScore is being compiled with the /W4 setting (warning level 4), which is similar to -wall -wextra on clang. This generates lots of warnings on MSVC, mainly for non-standard constructs and for constructs which might be bugs or might lead to bugs.

Most warnings are in the following categories:
- Name hiding: a variable hides a variable with the same name on a larger scope (or a field, or a function parameter). This can easily lead to bugs, and it is a best practice to avoid hiding variable names (see recommendation ES.12 in the C++ Core Guidelines by Stroustrop & Sutter (http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-reuse : ES.12: Do not reuse names in nested scopes)
- Narrowing conversion: a numeric conversion results in loss of significant digits (for example, double -> float). The general recommendation is to use a cast to indicate this is designed behaviour.
- Unreachable code: in several instances, there is unreachable code. The unreachable code is commented out.
- (Potentially) uninitialized local variable. Just initialized the vars.
- foreach(,) -> for(:): this does not generate a warning per-se (only a few of these generate warnings due to name hiding), but changed in keeping with "MuseScore Coding Rules" (https://musescore.org/en/handbook/musescore-coding-rules#Loops), which tells explicitly "Use C++11's "for" instead of Qt's "foreach":" ... "If you happen to be fixing some code and see a "foreach", please change that loop into a "for"."

Most changes are in the categories indicated above. The next listing shows detailed changes for files which are *not* of the aforementioned types.

- all.h: Disable warning C4127 (conditional expression is constant - generated in Qt header file qvector.h)
- awl/aslider.h: unreachable code.
- awl/knob.cpp: name hiding
- awl/mslider.cpp: name hiding
- awl/slider.cpp: name hiding
- bww2mxml/parser.cpp: name hiding
- effects/compressor/compressor.cpp: narrowing conversion
- effects/zita1/zitagui.cpp: name hiding
- fluid/fluid.cpp: foreach replacement. Name hiding.
- fluid/mod.cpp: name hiding.
- fluid/sfont.cpp: foreach replacement. Name hiding. Initialize vars.
- fluid/voice.cpp: Name hiding.
- libmscore/accidental.cpp: Name hiding.
- libmscore/ambitus.cpp: Initialize vars.
- libmscore/barline.cpp: Name hiding. Unreachable code.
- libmscore/beam.cpp: Name hiding.
- libmscore/chordrest.cpp: Unreachable code.
- libmscore/scorefile.cpp: Name hiding.
- manual/genManual.cpp: Name hiding. foreach replacement.
- midi/midifile.cpp: Name hiding. Unreachable code.
- omr/importpdf.cpp: Name hiding. foreach replacement.
- omr/omr.cpp: Name hiding. foreach replacement.
- omr/omrpage.cpp: Name hiding. foreach replacement.
- omr/omrview.cpp: Name hiding. foreach replacement.
- synthesizer/event.cpp: Unreachable code.
- zerberus\channel.cpp: Narrowing conversion.
- zerberus\instrument.cpp: Name hiding.
- zerberus\sfz.cpp: Name hiding.
- zerberus\voice.h: Suppress warning C4201: "nonstandard extension used: nameless struct/union"
- zerberus\zerberus.cpp: Name hiding. Unreferenced parameter.
- zerberus\zerberusgui.cpp: Name hiding.
2018-08-03 09:15:42 +02:00
lasconic
94d5442272 fix #273032: Provide an easy way to install soundfont, templates, etc.
Add workspace support in extension.
Use constants instead of magic strings for extension directories
2018-07-09 18:59:08 +02:00
lasconic
f71c339094 fix #273032: Provide an easy way to install soundfont, templates and instruments.xml
Introduce extensions files aka .muxt. These files are archives with additional data to extend MuseScore with soundfonts, templates, custom workspaces, etc.

Update qzip to fix bug with symlink.
Add extensions management to resource manager.
2018-07-09 18:59:08 +02:00
lasconic
b92a6e0525 fix crash reported in #270748 2018-03-30 22:53:51 +02:00
lasconic
5f100af6c5 fix #269937: implement proper preset fallback when using instruments on banks > 0 2018-03-10 10:44:01 +01:00
Dag Henning Liodden Sørbø
2b6cb8b432 Change to new preferences model
The old Preferences struct holding all preferences are removed in favor of a
new Preferences class which acts as a proxy for QSettings. The settings stored
in QSettings are accessed directly through access methods like getBool(key),
getInt(key), etc. and changed with setPreference(key, value).

Since we are using QSettings directly the preferences are stored automatically
without the need for a custom write() and read() method like before.

The preferences.cpp/.h and prefdialog.cpp/h are refactored to have fewer
responsibilities than before. The Preferences class are all about storing and
retrieving preferences - it should not contain any code to handle any other
aspect of MuseScore.

Testing:
The Preferences class can be used in tests. All preferences are initialized with
default values in mtest. If a test requires that a preference has a specific
value it can be changed using setPreference() for that single test. In the tests
the preferences are stored in memory only.

The Preference class is supposed to be used as a singleton. In preferences.h an
'extern Preferences preferences' is set and it is defined in preferences.cpp. All
files which includes preferences.h have access to the 'preferences' singleton
and should use this to get and set preferences.
2018-02-08 16:59:10 +01:00
Eric Fontaine
4e4693003e fix #5163 Add PortAudio Midi Output 2017-05-26 08:36:37 -04:00
lasconic
fce99944db Don't look for soundfonts in hidden directories 2017-03-15 15:07:01 +01:00
Fyrult
0810805707 fix memory leaks 2016-07-19 01:00:57 -04:00
Eric Fontaine
ff749fd292 fix #99236 remove mscoreGlobalShare/sound from soundfont path
Preferences::sfPath is renamed "mySoundfontsPath", which adheres to same naming scheme for myPluginsPath and myTemplatesPath, and now only stores the user-specified soundfont folders (no longer stores mscoreGlobalShare/sound).  Any synthesizers loading soundfonts must make sure to look in mscoreGLobalShare/sound in addition to mySoundfontsPath.  Removing mscoreGlobalShare/sound from the stored path fixes a bug with portable AppImages, which use a different temporary directory for mscoreGlobalShare on every execution.
2016-02-25 05:28:43 -05:00
igevorse
78ad4bbc71 Export bends to midi 2015-06-03 20:34:09 +05:00
igevorse
ed6fe07d61 Feature: bend playback 2015-06-03 20:34:09 +05:00
lasconic
10a03445c0 implement fallback to default configuration in export audio if one of the soundfont cannot be loading 2015-04-15 19:19:16 +02:00
lasconic
c73eb49581 ignore absolute path when loading soundfont. Fix #55416 Fix #21592 Fix #34286 2015-04-11 17:34:22 +02:00
ws
2f31c341a7 fix #43481 Wrong instrument played when using multiple SF2 soundfonts 2015-02-10 19:54:22 +01:00
ws
5730db9c06 NewWizard: remove explicit template/from scratch choice 2014-12-11 12:01:51 +01:00
Jarrad Whitaker
d79ce4f287 Force full panning width for all soundfounts 2014-08-18 09:57:57 +10:00
ws
770b64b3ea fix for fluid mutex 2013-07-18 17:09:10 +02:00
ws
ef3be9a8e6 catch exceptions during loading of soundfont 2013-07-18 11:36:18 +02:00
ws
0d6f2984d4 fix grace notes in parts 2013-06-21 11:26:56 +02:00
ws
9559b2ce58 add c++ wrapper for sndfile, replace ogg routines in fluid with sndfile 2013-06-03 12:54:37 +02:00
ws
9ebabcc2e5 add namespace Ms 2013-05-13 19:43:59 +02:00
ws
c1b3182c00 fix name of initial sound font 2013-04-22 10:25:47 +02:00
ws
6398a01a85 fix fluid settings, remove old preferences for synthesizer, cleanups 2013-04-19 21:13:52 +02:00
lasconic
ff22ee5a49 default soundfonts are only filenames 2013-04-17 15:42:21 +02:00
lasconic
f9f8462d96 fix crash when deleting built-in soundfont from synth 2013-04-15 17:48:06 +02:00
ws
0be1d3f78e synthesizer/midi cleanups 2013-04-08 11:27:14 +02:00
ws
1899b4ac59 fix MidiPatch handling 2013-04-04 13:01:58 +02:00
lasconic
e19ccd36fc some fixes for windows and audio playback 2013-04-03 19:04:49 +02:00
ws
bc46048cd3 update synthesizer implementation 2013-04-03 12:50:21 +02:00
ws
220db94494 reorganize synthesizer; add zita1 reverb 2013-04-03 12:50:21 +02:00
ws
3a2c82900f fix regression: export audio 2013-03-27 20:10:40 +01:00
ws
8ffe7531d9 add new sfz sample player: zerberus 2013-03-26 20:00:19 +01:00
Werner Schweer
e65897b2cd move sparm into libmscore 2012-07-06 17:42:20 +02:00
Werner Schweer
412ca45401 Initial commit 2012-05-26 14:49:10 +02:00