Skip to content

Commit 30082a7

Browse files
committed
Merge branch 'master' into cpu-opt
2 parents 8bf6152 + 83f73e5 commit 30082a7

File tree

6 files changed

+52
-7
lines changed

6 files changed

+52
-7
lines changed

fluidsynth.service.in

+4
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ Description=FluidSynth Daemon
33
Documentation=man:fluidsynth(1)
44
After=sound.target
55
After=pipewire.service
6+
# If you need more than one instance, use `systemctl edit` to override this:
7+
ConditionPathExists=!/run/lock/fluidsynth.lock
68

79
[Service]
810
# added automatically, for details please see
@@ -23,6 +25,8 @@ Environment=OTHER_OPTS= SOUND_FONT=
2325
EnvironmentFile=@FLUID_DAEMON_ENV_FILE@
2426
EnvironmentFile=-%h/.config/fluidsynth
2527
ExecStart=@CMAKE_INSTALL_FULL_BINDIR@/fluidsynth -is $OTHER_OPTS $SOUND_FONT
28+
ExecStartPre=touch /run/lock/fluidsynth.lock
29+
ExecStopPost=rm -f /run/lock/fluidsynth.lock
2630

2731
[Install]
2832
WantedBy=default.target

src/fluidsynth.c

+4
Original file line numberDiff line numberDiff line change
@@ -1137,6 +1137,10 @@ int main(int argc, char **argv)
11371137
#endif
11381138
delete_fluid_server(server);
11391139
}
1140+
else if(with_server)
1141+
{
1142+
result = 1;
1143+
}
11401144

11411145
#endif /* NETWORK_SUPPORT */
11421146

src/synth/fluid_synth.c

+12
Original file line numberDiff line numberDiff line change
@@ -2089,6 +2089,10 @@ fluid_synth_sysex(fluid_synth_t *synth, const char *data, int len,
20892089
fluid_synth_api_enter(synth);
20902090
synth->bank_select = FLUID_BANK_STYLE_GM;
20912091
result = fluid_synth_system_reset_LOCAL(synth);
2092+
if(synth->verbose)
2093+
{
2094+
FLUID_LOG(FLUID_INFO, "Processing SysEX GM / GM2 System ON message, bank selection mode is now gm.");
2095+
}
20922096
FLUID_API_RETURN(result);
20932097
}
20942098
return FLUID_OK;
@@ -2105,6 +2109,10 @@ fluid_synth_sysex(fluid_synth_t *synth, const char *data, int len,
21052109
result = fluid_synth_sysex_gs_dt1(synth, data, len, response,
21062110
response_len, avail_response,
21072111
handled, dryrun);
2112+
if(synth->verbose)
2113+
{
2114+
FLUID_LOG(FLUID_INFO, "Processing SysEX GS DT1 message, bank selection mode might have been changed.");
2115+
}
21082116
FLUID_API_RETURN(result);
21092117
}
21102118

@@ -2118,6 +2126,10 @@ fluid_synth_sysex(fluid_synth_t *synth, const char *data, int len,
21182126
result = fluid_synth_sysex_xg(synth, data, len, response,
21192127
response_len, avail_response,
21202128
handled, dryrun);
2129+
if(synth->verbose)
2130+
{
2131+
FLUID_LOG(FLUID_INFO, "Processing SysEX XG message, bank selection mode is now xg.");
2132+
}
21212133
FLUID_API_RETURN(result);
21222134
}
21232135

src/utils/fluid_sys.c

+5-5
Original file line numberDiff line numberDiff line change
@@ -1567,7 +1567,7 @@ static fluid_thread_return_t fluid_server_socket_run(void *data)
15671567
{
15681568
if(server_socket->cont)
15691569
{
1570-
FLUID_LOG(FLUID_ERR, "Failed to accept connection: %d", fluid_socket_get_error());
1570+
FLUID_LOG(FLUID_ERR, "Got error %d while trying to accept connection", fluid_socket_get_error());
15711571
}
15721572

15731573
server_socket->cont = 0;
@@ -1640,7 +1640,7 @@ new_fluid_server_socket(int port, fluid_server_func_t func, void *data)
16401640

16411641
if(sock == INVALID_SOCKET)
16421642
{
1643-
FLUID_LOG(FLUID_WARN, "Failed to create IPv6 server socket: %d (will try with IPv4)", fluid_socket_get_error());
1643+
FLUID_LOG(FLUID_WARN, "Got error %d while trying to create IPv6 server socket (will try with IPv4)", fluid_socket_get_error());
16441644

16451645
sock = socket(AF_INET, SOCK_STREAM, 0);
16461646
addr = (const struct sockaddr *) &addr4;
@@ -1655,22 +1655,22 @@ new_fluid_server_socket(int port, fluid_server_func_t func, void *data)
16551655

16561656
if(sock == INVALID_SOCKET)
16571657
{
1658-
FLUID_LOG(FLUID_ERR, "Failed to create server socket: %d", fluid_socket_get_error());
1658+
FLUID_LOG(FLUID_ERR, "Got error %d while trying to create server socket", fluid_socket_get_error());
16591659
fluid_socket_cleanup();
16601660
return NULL;
16611661
}
16621662

16631663
if(bind(sock, addr, (int) addr_size) == SOCKET_ERROR)
16641664
{
1665-
FLUID_LOG(FLUID_ERR, "Failed to bind server socket: %d", fluid_socket_get_error());
1665+
FLUID_LOG(FLUID_ERR, "Got error %d while trying to bind server socket", fluid_socket_get_error());
16661666
fluid_socket_close(sock);
16671667
fluid_socket_cleanup();
16681668
return NULL;
16691669
}
16701670

16711671
if(listen(sock, SOMAXCONN) == SOCKET_ERROR)
16721672
{
1673-
FLUID_LOG(FLUID_ERR, "Failed to listen on server socket: %d", fluid_socket_get_error());
1673+
FLUID_LOG(FLUID_ERR, "Got error %d while trying to listen on server socket", fluid_socket_get_error());
16741674
fluid_socket_close(sock);
16751675
fluid_socket_cleanup();
16761676
return NULL;

test/CMakeLists.txt

+26-1
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ else()
5959
set(EXCL_RENDER_DIR "${CMAKE_CURRENT_BINARY_DIR}/manual/exclusive_class")
6060
set(DSPINTERP_RENDER_DIR "${CMAKE_CURRENT_BINARY_DIR}/manual/dsp_interp")
6161
set(DYNSAM_RENDER_DIR "${CMAKE_CURRENT_BINARY_DIR}/manual/dynamic-sample-loading")
62+
set(STACKEDSF_RENDER_DIR "${CMAKE_CURRENT_BINARY_DIR}/manual/stacked_sf2")
6263

6364
if(LIBSNDFILE_SUPPORT)
6465
set(FEXT "wav")
@@ -70,7 +71,7 @@ else()
7071
add_custom_target(check_manual)
7172

7273
add_custom_target(create_iir_dir
73-
COMMAND ${CMAKE_COMMAND} -E make_directory ${IIR_FILTER_RENDER_DIR} ${AWE32_NRPN_RENDER_DIR} ${SFSPEC_RENDER_DIR} ${PORTAMENTO_RENDER_DIR} ${REVERB_RENDER_DIR} ${EXCL_RENDER_DIR} ${DSPINTERP_RENDER_DIR} ${DYNSAM_RENDER_DIR}
74+
COMMAND ${CMAKE_COMMAND} -E make_directory ${IIR_FILTER_RENDER_DIR} ${AWE32_NRPN_RENDER_DIR} ${SFSPEC_RENDER_DIR} ${PORTAMENTO_RENDER_DIR} ${REVERB_RENDER_DIR} ${EXCL_RENDER_DIR} ${DSPINTERP_RENDER_DIR} ${DYNSAM_RENDER_DIR} ${STACKEDSF_RENDER_DIR}
7475
VERBATIM)
7576

7677
add_custom_target(render1415
@@ -113,6 +114,13 @@ else()
113114
VERBATIM
114115
)
115116

117+
add_custom_target(render1481
118+
COMMAND fluidsynth -R 0 -C 0 -g 1.8 -F ${IIR_FILTER_RENDER_DIR}/1481_cutoff-resolution.${FEXT} "filter resolution test.mid" "filter resolution test.sf2"
119+
COMMENT "Rendering testfile of issue 1481"
120+
DEPENDS fluidsynth create_iir_dir
121+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/manual/iir_filter/1481_cutoff-resolution/
122+
VERBATIM
123+
)
116124

117125
add_custom_target(renderAltitude
118126
COMMAND fluidsynth -R 1 -C 1 -f fluidsynth.cfg -o synth.default-soundfont="../../sf2/synthgs-sf2_04-compat.sf2" -F ${AWE32_NRPN_RENDER_DIR}/Altitude.${FEXT} Altitude.mid
@@ -237,6 +245,21 @@ else()
237245
VERBATIM
238246
)
239247

248+
if ( LIBINSTPATCH_SUPPORT )
249+
add_custom_target(renderStreetwise
250+
COMMAND fluidsynth -R 0 -C 0 -g 0.6 -F "${STACKEDSF_RENDER_DIR}/Streetwise.${FEXT}" "Streetwise.mid" ${GENERAL_USER_GS2} "Streetwise.dls"
251+
COMMENT "Rendering testcase for stacked soundfonts"
252+
DEPENDS fluidsynth create_iir_dir
253+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/manual/stacked_sf2/Streetwise/
254+
VERBATIM
255+
)
256+
else ( LIBINSTPATCH_SUPPORT )
257+
add_custom_target(renderStreetwise
258+
COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --red "Cannot render Streetwise, no DLS support!"
259+
COMMENT "Rendering testcase for stacked soundfonts"
260+
)
261+
endif (LIBINSTPATCH_SUPPORT )
262+
240263
# Add a dependency so that rendering targets depends on check_manual
241264
add_dependencies(check_manual render1415)
242265
add_dependencies(check_manual render1417)
@@ -255,5 +278,7 @@ else()
255278
add_dependencies(check_manual renderdspInterp)
256279
add_dependencies(check_manual render1484)
257280
add_dependencies(check_manual renderRealtimeIIR)
281+
add_dependencies(check_manual render1481)
282+
add_dependencies(check_manual renderStreetwise)
258283

259284
endif()

0 commit comments

Comments
 (0)