Commit graph

2508 commits

Author SHA1 Message Date
Ghabry
475f902584 Fix emscripten: Append CMAKE_MODULE_PATH instead of overwriting it
Emscripten adds a custom CMAKE_MODULE_PATH in the toolchain file.
Without these modules TestBigEndian fails.
2021-07-19 00:27:34 +02:00
Atsushi Eno
4240d31e51
Implement Android Oboe audio error recovery mode. (#940)
Context: https://github.com/FluidSynth/fluidsynth/discussions/931

There is a new settings "audio.oboe.error-recovery-mode" which has
string value of "Reconnect" (default) or "Stop".

Under `Reconnect` mode, it automatically recreate AudioStream for the
same audio device ID (which is the default = valid device, unless a
specific ID is specified). The behavior is the same as OpenSLES.

In the future Fluidsynth might want to provide consistent error handling
mode for audio device unplugged state, but so far this change makes apps
behave not too weird.
2021-07-15 21:40:07 +02:00
Tom M
fc21d284dc
Fix Fluidsynth.pc doesn't include static libraries (#933) 2021-07-11 17:37:54 +02:00
Tom M
a0ec2c5932
Merge pull request #939 from luzpaz/typos
Fix source comment typos
2021-07-10 17:24:52 +02:00
luz paz
e4c8ef080c Fix source comment typos
Found via `codespell -q 3 -S ChangeLog -L bloc,blocs,capela,parms,readd,seh`
2021-07-10 08:44:35 -04:00
derselbst
aa2561d091 Bump to 2.2.2 2021-07-09 21:56:04 +02:00
Curtis "Fjord" Hawthorne
346331020b
Update license header (#937) 2021-07-09 20:32:47 +02:00
Bill Peterson
be79856caa
Only send all_notes_off when stopping player (#934) 2021-07-06 11:04:59 +02:00
Tamás Korodi
e096919477
Select soundfont samples by frequency instead of midi note numbers (#932)
For detuned channels it might be better to use another key for Soundfont sample selection
giving better approximations for the pitch than the original key.
Example: play key 60 on 6370 Hz => use tuned key 64 for sample selection

This feature is only enabled for melodic channels.
For drum channels we always select Soundfont samples by key numbers.
2021-07-05 00:47:47 +02:00
Pedro López-Cabanillas
7ff164d8ab
wasapi: increase initialization timeout to 2 seconds, same as shutdown timeout (#929)
The 2 seconds timeout was chosen for consistency, but the reason to increase the initialization timeout is that one of my test devices (Asus T101HA, Windows 10) fails to initialize the wasapi driver with a timeout error most of the times.
2021-07-02 17:09:44 +02:00
Bill Peterson
bfca737a7c
autoconnect all available effects ports (#927)
Step through all available effects outputs and connect them to jack inputs, and wrap around if there are fewer input ports than effects outputs.
2021-06-30 18:44:14 +02:00
Tom M
92089e0a0f
Make audio.jack.autoconnect connect all available ports (#923) 2021-06-27 11:45:52 +02:00
Tom M
95e3693779
Fix linkage of openMP for XCode 12.5 (#919) 2021-06-22 09:23:19 +02:00
Tom M
15bd824af0
Merge pull request #913 from atsushieno/android-testing-rebased
Add Android testing setup
2021-06-14 08:53:55 +02:00
atsushieno
9eb855a96d Add flexibility on abiFilters.
context: https://github.com/FluidSynth/fluidsynth/pull/913#issuecomment-860195788

Run with `./gradlew -PcustomAbiFilters=x86` etc.
2021-06-14 03:18:15 +09:00
derselbst
0ef0c703b6 minor fixes during Android testing 2021-06-13 13:14:50 +02:00
Pedro López-Cabanillas
6b7fc061eb
fix for bug#915 fluidsynth.exe short option '-Q' not working when compiled with getopt (#916) 2021-06-13 10:46:47 +02:00
atsushieno
e36d1438df [test-android] disable tests by the converter. And it is fully documented now. 2021-06-12 19:05:52 +09:00
atsushieno
7dd8f0118c [test-android] Tests are now runnable as ./gradlew connectedCheck 2021-06-12 19:05:52 +09:00
atsushieno
f176cd8e7b [test-android] disable failing tests in run_all_tests.c.
... not in CMakeLists.txt.
2021-06-12 19:05:52 +09:00
atsushieno
c232274d6a [test-android] fix java package names. 2021-06-12 19:05:52 +09:00
atsushieno
ecdae699da [test-android] those converted tests are now loaded and run (and fail hard). 2021-06-12 19:05:52 +09:00
atsushieno
12cc9ed74b Convert ctests into another test sources that can be compiled in Android test.
The existing ctests cannot be simply used in Android tests because
everything is compiled as standalone executable with `main()` function.
Since Android 11+ does not support standalone executables, those test
`main()` functions are converted as unique functions and then picked up
in this test's native-lib CMakeLists.txt.

Since those tests depend on libfluidsynth internals, we cannot simply
link with libfluidsynth.so. We instead compile the library with OBJ files.
2021-06-12 19:05:52 +09:00
atsushieno
962a544d15 Revert "[test-android] another build script fix for host/target was needed."
This reverts commit f5144c011ef58b901dc5b1153d59ee61fa32a900.
2021-06-12 19:05:52 +09:00
atsushieno
ed555f076b [test-android] another build script fix for host/target was needed. 2021-06-12 19:05:52 +09:00
atsushieno
0635766f85 [test-android] fix gettext build in build.sh by distinct --host and --target.
gettext is known as cause of problem for running host tool in target ABI
in our builds, and the latest script still had the issue.
https://github.com/atsushieno/aap-lv2-fluidsynth/actions/runs/914453645

This fixes the problem by explicitly specifying that the build host is
x86_64 linux.
If you want to reuse the script on other platforms, you have to edit it.
2021-06-12 19:05:52 +09:00
atsushieno
ea2a824383 [android] make $NDK optional in the build script. 2021-06-12 19:05:51 +09:00
atsushieno
e4ef966630 [test-android] really fix build scripts.
Changes are from https://github.com/FluidSynth/fluidsynth/issues/897#issuecomment-854896563
2021-06-12 19:05:51 +09:00
atsushieno
6e23e82a29 update build script, still broken. 2021-06-12 19:05:51 +09:00
atsushieno
fc4dcd709e [test-android] some followups on README. 2021-06-12 19:05:51 +09:00
atsushieno
e6b3ce8a6b Add Android test app.
As described on README, it does not really run tests yet.
But it asserts that libfluidsynth.so is loadable at least.
2021-06-12 19:05:51 +09:00
Tom M
f81caf37f1
Fix multiplication result may overflow 'int' before it is converted to 'size_t'. (#911) 2021-06-12 09:59:30 +02:00
Tom M
d709339ab5
Fix ordering of NoteOn Vel=0 events (#908) 2021-06-11 22:57:54 +02:00
Tom M
2321868124
Few fixes for Android CI Pipeline (#906) 2021-06-11 22:56:22 +02:00
jjceresa
de478947bf
When playing the same note more than once the (#905)
When playing the same note more than once the previous note is forced in release stage except if pedaling (sostenuto or sustain) is active. This makes it sound more like a real piano. See https://lists.nongnu.org/archive/html/fluid-dev/2021-06/msg00001.html
2021-06-11 22:40:17 +02:00
Tom M
bf574c6f03
Create codeql-analysis.yml (#910) 2021-06-11 22:27:14 +02:00
Tom M
17b6e44a3f Add schedule trigger to vcpkg pipeline 2021-06-10 09:39:10 +02:00
Tom M
9380e27009
Fix vcpkg pipeline (#909) 2021-06-10 09:26:43 +02:00
Paul
768fa225db
fix typo (#902) 2021-05-30 23:04:40 +02:00
Paul
20e09bb76d
fix some type conversion warnings in MSVC (#903) 2021-05-30 23:04:23 +02:00
Tom M
17fb48def5
Include header files in Android Artifacts (#896) 2021-05-26 18:26:40 +02:00
Tom M
148cec6c03
Do not stringify cmake variable in if clause (#895) 2021-05-26 14:19:25 +02:00
Tom M
aba9485a9c
Fix import library naming clash (#893) 2021-05-26 14:18:19 +02:00
jjceresa
eda2fb21b0
Fix bad router behaviour. (#891)
Each input event has values (chan, par1, par2) that could be changed by a rule.
After a rule had been applied on any value and the value is out of range, the event
can be ignored or the value can be clamped depending of the type of the event:
- To get full benefice of the rule the value is clamped and the event
  passed to the output.
- To avoid MIDI messages conflicts at the output, the event is ignored
  (i.e not passed to the output).

chan value: event is ignored regardless of the event type
par1: event is ignored for PROG_CHANGE or CONTROL_CHANGE type, par1 is clamped otherwise.
par2: par2 is clamped regardless of the event type.
2021-05-24 16:26:56 +02:00
Tom M
bf884758cb
Update vcpkg based Windows CI Pipeline (#892) 2021-05-23 13:02:04 +02:00
Tom M
a28a5e6d20
Improve OGG/Vorbis detection (#888)
Previously, cmake only tested for a specific version of libsndfile and then assumed, it has OGG/Vorbis support. However, libsndfile may still be compiled without OGG/Vorbis support. If this is the case, fluidsynth should refuse to load SF3 files. Otherwise the attempt to load SF3 files would fail with a bunch of error messages.

The solution of this PR proposes to lookup the private libs listed in sndfile.pc and see whether it includes "vorbis".
2021-05-12 21:09:33 +02:00
Tom M
cd393d863a
Fix broken SF3 support for Android binaries (#890)
Libsndfile was unintentionally compiled without OGG/Vorbis support. That's because libopus was missing. When compiling libsndfile with autotools [you get a nice warning](9349a566e2/configure.ac (L381-L386)). When using CMake you don't...

Solution: Compile libopus before compiling libsndfile. Now it reports

```
-- The following features have been enabled:

 * ENABLE_EXTERNAL_LIBS, enable FLAC, Vorbis, and Opus codecs
```
2021-05-12 17:43:35 +02:00
Tom M
8446023255
Add more test cases for UTF8 filenames (#889) 2021-05-12 17:41:55 +02:00
Tom M
fbd9d139ec
Fix test suite on big endian architectures (#887)
Make sure to use correct amount for 16-bit generators.
2021-05-12 17:40:52 +02:00
Tom M
ba99ed36dc
Remove MinGW x86 CI Job (#886)
The unit tests keep failing when compiling with MinGW x86 on x64 Windows10. This is related to the change introduced in #629. The exact reason for the failure is unknown. I assume it's a broken MinGW implementation of the function `fgetpos()` or `_fseeki64()`, as the tests run fine for WindowsXP x86. However, I have little interest in further investigation, as I don't consider using MinGWx86 on x64 to be a valid use-case.
2021-05-12 17:40:03 +02:00