Commit Graph

2528 Commits

Author SHA1 Message Date
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
Tom M e8963251be
Avoid unnecessary pipeline runs (#885)
Pipelines should not be triggered when other pipelines are modified. This saves many resources when messing around with a single pipeline, because other pipelines won't run.
2021-05-10 23:19:24 +02:00
Tom M 8ddf8fadb5
Move and rename Azure Pipelines (#884) 2021-05-10 22:18:43 +02:00
Tom M 6d78ebe154
Speed up Windows CI a bit (#883) 2021-05-10 22:00:03 +02:00
Tom M 90a6c52e1c
Rewrite Android CI Pipeline (#875) 2021-05-08 18:31:20 +02:00
derselbst 532c3e066f Bump to 2.2.1 2021-05-08 18:30:07 +02:00
Tom M e3957306e8
Update default value of audio.driver 2021-05-08 11:27:54 +02:00
Marcus Weseloh 6a67dff3a7 Make ALSA default audio driver on supported platforms
The jack driver has a potential side-effect of starting
a new server. ALSA does not have such side-effects
and therefore makes a better default audio driver.
2021-05-08 11:25:08 +02:00
Tom M 1525a6fc0b
Restore old behaviour of fluid_player_join() (#876)
This basically reverts #783 because it causes a deadlock in existing client code.
2021-05-07 22:50:09 +02:00
Christopher Snowhill 7068c13f71 Handle GM/GM2 mode on, GS reset, and XG reset, and reset the
synthesizer upon setting the mode.
2021-05-07 22:04:57 +02:00
Tom M 4231645fb8
Define _WIN32_WINNT during compilation (#871) 2021-05-07 09:45:17 +02:00
Carlo Bramini f88f27c0da
[WAVEOUT] Dynamic alloc of WAVEHDR (#873)
It seems that the addition of multichannel output has broken the WaveOut driver.
If you try to run FluidSynth with -a waveout, you will get this message:

fluidsynth: audio.periods 8 exceeds internal limit 4

Actually, the default value for period is set to 8, so it will never work unless you change that value before opening the driver. Rather than lowering the default period value or rising the limit of the number of buffers, in my opinion it would be better to free the driver from this limitation, by allocating the needed amount of memory for WAVEHDR too.
Attached patch fixes this bug.
2021-05-03 20:16:40 +02:00
derselbst 0ea101721a Make users aware of relative sequencer tick error 2021-05-01 15:16:39 +02:00
derselbst 0825e815a8 Elaborate some error messages 2021-05-01 10:00:34 +02:00
Carlo Bramini 10510e486b
[WINDOWS] Fix declaration of GUIDs (try 2). (#868)
Supersedes and closes #867.
2021-04-29 21:03:19 +02:00
Tom M 7b3c2b87f7
Address clang-tidy10 warnings (#860) 2021-04-27 20:28:32 +02:00
Tom M f69a47081a
Fix MinGW warnings (#861) 2021-04-27 20:27:56 +02:00
Tom M c8c3966586
Use CHECK_SYMBOL_EXISTS when probing for functions (#859) 2021-04-25 14:49:03 +02:00
Tom M 00806600b6
fluid_compare_func_t const correctness (#858)
fluid_compare_func_t should receive const args.
2021-04-25 13:44:40 +02:00
Carlo Bramini 883ea24960
Remove useless braces. (#855) 2021-04-20 19:40:25 +02:00
Carlo Bramini 52baa228db Remove useless braces.
It is not really clear to me the reason because braces are written into the initialization of channel_mask_speakers[], since their presence causes these messages from the compiler:

fluid_dsound.c:63:5: warning: braces around scalar initializer

In my opinion, it is better to remove them.
2021-04-20 19:40:08 +02:00
Tom M f55bc7990c
Merge pull request #848 from FluidSynth/crt-free
Make Windows CRT linkage user-selectable
2021-04-16 18:21:25 +02:00
Tom M 86e876f7a0
Merge pull request #849 from chirs241097/wasapi
A few fixes for the WASAPI driver
2021-04-16 18:20:00 +02:00
Chris Xiong 5eff4e592e wasapi: correctly render effects if no custom audio processing is used.
I couldn't find a conceivable use case for calling `new_fluid_audio_driver2`
with `fluid_synth_process` as its callback in client code... So I took the
lazy route.

If custom audio processing is indeed used, nothing would be changed by this
patch. It still gets no effects buffer (like the vast majority of other
drivers).
2021-04-16 18:34:11 +08:00
Chris Xiong 0d627c7c0b wasapi: use device period size in shared mode. 2021-04-16 18:21:36 +08:00
Pedro López-Cabanillas 03fb32c979
WASAPI driver reorganization (#839)
Avoid initializing COM in the caller's thread context.

See also: #833
2021-04-14 09:35:35 +02:00
derselbst 92de920274 Update Windows CI images to windows-2019 2021-04-13 21:29:20 +02:00
derselbst 5988bc6d1c Make sure WinXP builds use statically linked CRT 2021-04-13 21:28:36 +02:00
derselbst b990f765c2 Remove statically linked CRT workaround
Leave it to the user to override CMAKE_MSVC_RUNTIME_LIBRARY.
2021-04-13 21:12:25 +02:00
derselbst ab4eebaf5b Clarify API documentation of fluid_free() 2021-04-13 21:07:37 +02:00
jjceresa 149e08f181
Fix incomplete chorus reverb help strings (#845) 2021-04-12 10:10:03 +02:00