From 3a1bc2a7ae9d818ad25b3de6ecc051068b9640cb Mon Sep 17 00:00:00 2001 From: Tres Finocchiaro Date: Fri, 9 May 2014 08:41:07 -0700 Subject: [PATCH 01/12] Fix "Use of undeclared identifier 'getpid'" Troubleshooting RemoteZynAddSubFX. --- include/RemotePlugin.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/RemotePlugin.h b/include/RemotePlugin.h index edf09efbe..80a30af3e 100644 --- a/include/RemotePlugin.h +++ b/include/RemotePlugin.h @@ -42,7 +42,9 @@ #endif #ifdef LMMS_BUILD_APPLE +#include #define USE_QT_SEMAPHORES +#define USE_QT_SHMEM #endif From 5aa6779108254af03f34b21d2830438a19bd4ea9 Mon Sep 17 00:00:00 2001 From: Tres Finocchiaro Date: Fri, 9 May 2014 08:45:10 -0700 Subject: [PATCH 02/12] Fix incorrect path to libZynAddSubFxCore.dylib --- data/scripts/create_apple_bundle.sh.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/scripts/create_apple_bundle.sh.in b/data/scripts/create_apple_bundle.sh.in index 8b335cb0d..b9364693d 100644 --- a/data/scripts/create_apple_bundle.sh.in +++ b/data/scripts/create_apple_bundle.sh.in @@ -90,7 +90,7 @@ install_name_tool -change libZynAddSubFxCore.dylib \ ${APP}/Contents/lib/lmms/libzynaddsubfx.so install_name_tool -change ${CMAKE_BUILD}/plugins/zynaddsubfx/libZynAddSubFxCore.dylib \ - @loader_path/../../Frameworks/libZynAddSubFxCore.dylib \ + @loader_path/../Frameworks/libZynAddSubFxCore.dylib \ ${APP}/Contents/MacOS/RemoteZynAddSubFx # Build a list of shared objects in target/lib/lmms From 9abfbd6c9448c11c56aed8a13ed44ab1737c789c Mon Sep 17 00:00:00 2001 From: Tres Finocchiaro Date: Mon, 12 May 2014 21:37:01 -0700 Subject: [PATCH 03/12] #527 --- data/themes/default/style.css | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/data/themes/default/style.css b/data/themes/default/style.css index 3d6fd84a2..4b4bfc103 100644 --- a/data/themes/default/style.css +++ b/data/themes/default/style.css @@ -1,7 +1,9 @@ /******************** * LMMS style sheet * ********************/ -QLabel { + +/* most foreground text items */ +QLabel, QTreeWidget, QListWidget, QGroupBox { color: #e0e0e0; } From 5bb5ffc152e43db9dcb3b54c36794c2dc658b826 Mon Sep 17 00:00:00 2001 From: Tres Finocchiaro Date: Mon, 12 May 2014 22:06:44 -0700 Subject: [PATCH 04/12] Revert changes --- include/RemotePlugin.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/include/RemotePlugin.h b/include/RemotePlugin.h index 80a30af3e..edf09efbe 100644 --- a/include/RemotePlugin.h +++ b/include/RemotePlugin.h @@ -42,9 +42,7 @@ #endif #ifdef LMMS_BUILD_APPLE -#include #define USE_QT_SEMAPHORES -#define USE_QT_SHMEM #endif From 959db3d7ac1a54cfcf1d05801ce91413060d4c30 Mon Sep 17 00:00:00 2001 From: Tres Finocchiaro Date: Mon, 12 May 2014 22:08:34 -0700 Subject: [PATCH 05/12] Revert changes --- data/scripts/create_apple_bundle.sh.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/scripts/create_apple_bundle.sh.in b/data/scripts/create_apple_bundle.sh.in index b9364693d..b799cf12d 100644 --- a/data/scripts/create_apple_bundle.sh.in +++ b/data/scripts/create_apple_bundle.sh.in @@ -86,7 +86,7 @@ mv ${APP}/Contents/lib/lmms/RemoteZynAddSubFx \ # Fix more Zyn Linking issues install_name_tool -change libZynAddSubFxCore.dylib \ - @loader_path/../../Frameworks/libZynAddSubFxCore.dylib \ + @loader_path/../Frameworks/libZynAddSubFxCore.dylib \ ${APP}/Contents/lib/lmms/libzynaddsubfx.so install_name_tool -change ${CMAKE_BUILD}/plugins/zynaddsubfx/libZynAddSubFxCore.dylib \ From e401ac5c9d3376cb176511f718061aa3c4077e80 Mon Sep 17 00:00:00 2001 From: Tres Finocchiaro Date: Mon, 12 May 2014 22:09:47 -0700 Subject: [PATCH 06/12] Revert changes --- data/scripts/create_apple_bundle.sh.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/scripts/create_apple_bundle.sh.in b/data/scripts/create_apple_bundle.sh.in index b799cf12d..b9364693d 100644 --- a/data/scripts/create_apple_bundle.sh.in +++ b/data/scripts/create_apple_bundle.sh.in @@ -86,7 +86,7 @@ mv ${APP}/Contents/lib/lmms/RemoteZynAddSubFx \ # Fix more Zyn Linking issues install_name_tool -change libZynAddSubFxCore.dylib \ - @loader_path/../Frameworks/libZynAddSubFxCore.dylib \ + @loader_path/../../Frameworks/libZynAddSubFxCore.dylib \ ${APP}/Contents/lib/lmms/libzynaddsubfx.so install_name_tool -change ${CMAKE_BUILD}/plugins/zynaddsubfx/libZynAddSubFxCore.dylib \ From 7404eef34ad658dbf0f334da9decbc3d3b9b8202 Mon Sep 17 00:00:00 2001 From: Tres Finocchiaro Date: Mon, 12 May 2014 22:10:28 -0700 Subject: [PATCH 07/12] Revert changes --- data/scripts/create_apple_bundle.sh.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/scripts/create_apple_bundle.sh.in b/data/scripts/create_apple_bundle.sh.in index b9364693d..8b335cb0d 100644 --- a/data/scripts/create_apple_bundle.sh.in +++ b/data/scripts/create_apple_bundle.sh.in @@ -90,7 +90,7 @@ install_name_tool -change libZynAddSubFxCore.dylib \ ${APP}/Contents/lib/lmms/libzynaddsubfx.so install_name_tool -change ${CMAKE_BUILD}/plugins/zynaddsubfx/libZynAddSubFxCore.dylib \ - @loader_path/../Frameworks/libZynAddSubFxCore.dylib \ + @loader_path/../../Frameworks/libZynAddSubFxCore.dylib \ ${APP}/Contents/MacOS/RemoteZynAddSubFx # Build a list of shared objects in target/lib/lmms From 313977ebfdfa9c5be2e3d49670dda73975fd08d9 Mon Sep 17 00:00:00 2001 From: Tres Finocchiaro Date: Fri, 16 May 2014 13:11:26 -0400 Subject: [PATCH 08/12] swh plugins: Fix SWH destructors The constructors had been fixed with commit #83c2019, but I had missed the destructors. This corrects the `_fini()` destructors as well. --- plugins/LadspaEffect/swh/alias_1407.c | 2 +- plugins/LadspaEffect/swh/allpass_1895.c | 2 +- plugins/LadspaEffect/swh/am_pitchshift_1433.c | 2 +- plugins/LadspaEffect/swh/amp_1181.c | 2 +- plugins/LadspaEffect/swh/bandpass_a_iir_1893.c | 2 +- plugins/LadspaEffect/swh/bandpass_iir_1892.c | 2 +- plugins/LadspaEffect/swh/bode_shifter_1431.c | 2 +- plugins/LadspaEffect/swh/bode_shifter_cv_1432.c | 2 +- plugins/LadspaEffect/swh/butterworth_1902.c | 2 +- plugins/LadspaEffect/swh/chebstortion_1430.c | 2 +- plugins/LadspaEffect/swh/comb_1190.c | 2 +- plugins/LadspaEffect/swh/comb_1887.c | 2 +- plugins/LadspaEffect/swh/comb_splitter_1411.c | 2 +- plugins/LadspaEffect/swh/const_1909.c | 2 +- plugins/LadspaEffect/swh/crossover_dist_1404.c | 2 +- plugins/LadspaEffect/swh/dc_remove_1207.c | 2 +- plugins/LadspaEffect/swh/decay_1886.c | 2 +- plugins/LadspaEffect/swh/decimator_1202.c | 2 +- plugins/LadspaEffect/swh/declip_1195.c | 2 +- plugins/LadspaEffect/swh/delay_1898.c | 2 +- plugins/LadspaEffect/swh/delayorama_1402.c | 2 +- plugins/LadspaEffect/swh/diode_1185.c | 2 +- plugins/LadspaEffect/swh/divider_1186.c | 2 +- plugins/LadspaEffect/swh/dj_eq_1901.c | 2 +- plugins/LadspaEffect/swh/dj_flanger_1438.c | 2 +- plugins/LadspaEffect/swh/dyson_compress_1403.c | 2 +- plugins/LadspaEffect/swh/fad_delay_1192.c | 2 +- plugins/LadspaEffect/swh/fast_lookahead_limiter_1913.c | 2 +- plugins/LadspaEffect/swh/flanger_1191.c | 2 +- plugins/LadspaEffect/swh/foldover_1213.c | 2 +- plugins/LadspaEffect/swh/foverdrive_1196.c | 2 +- plugins/LadspaEffect/swh/freq_tracker_1418.c | 2 +- plugins/LadspaEffect/swh/gate_1410.c | 2 +- plugins/LadspaEffect/swh/giant_flange_1437.c | 2 +- plugins/LadspaEffect/swh/gong_1424.c | 2 +- plugins/LadspaEffect/swh/gong_beater_1439.c | 2 +- plugins/LadspaEffect/swh/gsm_1215.c | 2 +- plugins/LadspaEffect/swh/gverb_1216.c | 2 +- plugins/LadspaEffect/swh/hard_limiter_1413.c | 2 +- plugins/LadspaEffect/swh/harmonic_gen_1220.c | 2 +- plugins/LadspaEffect/swh/hermes_filter_1200.c | 2 +- plugins/LadspaEffect/swh/highpass_iir_1890.c | 2 +- plugins/LadspaEffect/swh/hilbert_1440.c | 2 +- plugins/LadspaEffect/swh/imp_1199.c | 2 +- plugins/LadspaEffect/swh/impulse_1885.c | 2 +- plugins/LadspaEffect/swh/inv_1429.c | 2 +- plugins/LadspaEffect/swh/karaoke_1409.c | 2 +- plugins/LadspaEffect/swh/latency_1914.c | 2 +- plugins/LadspaEffect/swh/lcr_delay_1436.c | 2 +- plugins/LadspaEffect/swh/lowpass_iir_1891.c | 2 +- plugins/LadspaEffect/swh/ls_filter_1908.c | 2 +- plugins/LadspaEffect/swh/matrix_ms_st_1421.c | 2 +- plugins/LadspaEffect/swh/matrix_spatialiser_1422.c | 2 +- plugins/LadspaEffect/swh/matrix_st_ms_1420.c | 2 +- plugins/LadspaEffect/swh/mbeq_1197.c | 2 +- plugins/LadspaEffect/swh/mod_delay_1419.c | 2 +- plugins/LadspaEffect/swh/multivoice_chorus_1201.c | 2 +- plugins/LadspaEffect/swh/notch_iir_1894.c | 2 +- plugins/LadspaEffect/swh/phasers_1217.c | 2 +- plugins/LadspaEffect/swh/pitch_scale_1193.c | 2 +- plugins/LadspaEffect/swh/pitch_scale_1194.c | 2 +- plugins/LadspaEffect/swh/plate_1423.c | 2 +- plugins/LadspaEffect/swh/pointer_cast_1910.c | 2 +- plugins/LadspaEffect/swh/rate_shifter_1417.c | 2 +- plugins/LadspaEffect/swh/retro_flange_1208.c | 2 +- plugins/LadspaEffect/swh/revdelay_1605.c | 2 +- plugins/LadspaEffect/swh/ringmod_1188.c | 2 +- plugins/LadspaEffect/swh/satan_maximiser_1408.c | 2 +- plugins/LadspaEffect/swh/sc1_1425.c | 2 +- plugins/LadspaEffect/swh/sc2_1426.c | 2 +- plugins/LadspaEffect/swh/sc3_1427.c | 2 +- plugins/LadspaEffect/swh/sc4_1882.c | 2 +- plugins/LadspaEffect/swh/sc4m_1916.c | 2 +- plugins/LadspaEffect/swh/se4_1883.c | 2 +- plugins/LadspaEffect/swh/shaper_1187.c | 2 +- plugins/LadspaEffect/swh/sifter_1210.c | 2 +- plugins/LadspaEffect/swh/sin_cos_1881.c | 2 +- plugins/LadspaEffect/swh/single_para_1203.c | 2 +- plugins/LadspaEffect/swh/sinus_wavewrapper_1198.c | 2 +- plugins/LadspaEffect/swh/smooth_decimate_1414.c | 2 +- plugins/LadspaEffect/swh/split_1406.c | 2 +- plugins/LadspaEffect/swh/step_muxer_1212.c | 2 +- plugins/LadspaEffect/swh/surround_encoder_1401.c | 2 +- plugins/LadspaEffect/swh/svf_1214.c | 2 +- plugins/LadspaEffect/swh/tape_delay_1211.c | 2 +- plugins/LadspaEffect/swh/transient_1206.c | 2 +- plugins/LadspaEffect/swh/triple_para_1204.c | 2 +- plugins/LadspaEffect/swh/valve_1209.c | 2 +- plugins/LadspaEffect/swh/valve_rect_1405.c | 2 +- plugins/LadspaEffect/swh/vocoder_1337.c | 4 ++-- plugins/LadspaEffect/swh/vynil_1905.c | 2 +- plugins/LadspaEffect/swh/wave_terrain_1412.c | 2 +- plugins/LadspaEffect/swh/xfade_1915.c | 2 +- plugins/LadspaEffect/swh/zm1_1428.c | 2 +- 94 files changed, 95 insertions(+), 95 deletions(-) diff --git a/plugins/LadspaEffect/swh/alias_1407.c b/plugins/LadspaEffect/swh/alias_1407.c index 444d9ed28..c3190e36c 100644 --- a/plugins/LadspaEffect/swh/alias_1407.c +++ b/plugins/LadspaEffect/swh/alias_1407.c @@ -240,7 +240,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (aliasDescriptor) { free((LADSPA_PortDescriptor *)aliasDescriptor->PortDescriptors); free((char **)aliasDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/allpass_1895.c b/plugins/LadspaEffect/swh/allpass_1895.c index 062f4e32f..8bbf534b0 100644 --- a/plugins/LadspaEffect/swh/allpass_1895.c +++ b/plugins/LadspaEffect/swh/allpass_1895.c @@ -1346,7 +1346,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (allpass_nDescriptor) { free((LADSPA_PortDescriptor *)allpass_nDescriptor->PortDescriptors); free((char **)allpass_nDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/am_pitchshift_1433.c b/plugins/LadspaEffect/swh/am_pitchshift_1433.c index adc5f3029..65130c6df 100644 --- a/plugins/LadspaEffect/swh/am_pitchshift_1433.c +++ b/plugins/LadspaEffect/swh/am_pitchshift_1433.c @@ -455,7 +455,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (amPitchshiftDescriptor) { free((LADSPA_PortDescriptor *)amPitchshiftDescriptor->PortDescriptors); free((char **)amPitchshiftDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/amp_1181.c b/plugins/LadspaEffect/swh/amp_1181.c index 2bf8dd3d8..30e870538 100644 --- a/plugins/LadspaEffect/swh/amp_1181.c +++ b/plugins/LadspaEffect/swh/amp_1181.c @@ -233,7 +233,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (ampDescriptor) { free((LADSPA_PortDescriptor *)ampDescriptor->PortDescriptors); free((char **)ampDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/bandpass_a_iir_1893.c b/plugins/LadspaEffect/swh/bandpass_a_iir_1893.c index c477a4b88..e46f06511 100644 --- a/plugins/LadspaEffect/swh/bandpass_a_iir_1893.c +++ b/plugins/LadspaEffect/swh/bandpass_a_iir_1893.c @@ -277,7 +277,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (bandpass_a_iirDescriptor) { free((LADSPA_PortDescriptor *)bandpass_a_iirDescriptor->PortDescriptors); free((char **)bandpass_a_iirDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/bandpass_iir_1892.c b/plugins/LadspaEffect/swh/bandpass_iir_1892.c index 4f160c4f0..b723b8717 100644 --- a/plugins/LadspaEffect/swh/bandpass_iir_1892.c +++ b/plugins/LadspaEffect/swh/bandpass_iir_1892.c @@ -343,7 +343,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (bandpass_iirDescriptor) { free((LADSPA_PortDescriptor *)bandpass_iirDescriptor->PortDescriptors); free((char **)bandpass_iirDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/bode_shifter_1431.c b/plugins/LadspaEffect/swh/bode_shifter_1431.c index 597864a18..4c48355c6 100644 --- a/plugins/LadspaEffect/swh/bode_shifter_1431.c +++ b/plugins/LadspaEffect/swh/bode_shifter_1431.c @@ -458,7 +458,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (bodeShifterDescriptor) { free((LADSPA_PortDescriptor *)bodeShifterDescriptor->PortDescriptors); free((char **)bodeShifterDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/bode_shifter_cv_1432.c b/plugins/LadspaEffect/swh/bode_shifter_cv_1432.c index 067e17c21..41fb4f043 100644 --- a/plugins/LadspaEffect/swh/bode_shifter_cv_1432.c +++ b/plugins/LadspaEffect/swh/bode_shifter_cv_1432.c @@ -523,7 +523,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (bodeShifterCVDescriptor) { free((LADSPA_PortDescriptor *)bodeShifterCVDescriptor->PortDescriptors); free((char **)bodeShifterCVDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/butterworth_1902.c b/plugins/LadspaEffect/swh/butterworth_1902.c index 74bd6d489..0e218babe 100644 --- a/plugins/LadspaEffect/swh/butterworth_1902.c +++ b/plugins/LadspaEffect/swh/butterworth_1902.c @@ -741,7 +741,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (bwxover_iirDescriptor) { free((LADSPA_PortDescriptor *)bwxover_iirDescriptor->PortDescriptors); free((char **)bwxover_iirDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/chebstortion_1430.c b/plugins/LadspaEffect/swh/chebstortion_1430.c index baa5d9694..d7b71afa7 100644 --- a/plugins/LadspaEffect/swh/chebstortion_1430.c +++ b/plugins/LadspaEffect/swh/chebstortion_1430.c @@ -399,7 +399,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (chebstortionDescriptor) { free((LADSPA_PortDescriptor *)chebstortionDescriptor->PortDescriptors); free((char **)chebstortionDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/comb_1190.c b/plugins/LadspaEffect/swh/comb_1190.c index 7f72b8cd7..1e01570ae 100644 --- a/plugins/LadspaEffect/swh/comb_1190.c +++ b/plugins/LadspaEffect/swh/comb_1190.c @@ -340,7 +340,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (combDescriptor) { free((LADSPA_PortDescriptor *)combDescriptor->PortDescriptors); free((char **)combDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/comb_1887.c b/plugins/LadspaEffect/swh/comb_1887.c index 81a7268bd..23dc53400 100644 --- a/plugins/LadspaEffect/swh/comb_1887.c +++ b/plugins/LadspaEffect/swh/comb_1887.c @@ -1352,7 +1352,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (comb_nDescriptor) { free((LADSPA_PortDescriptor *)comb_nDescriptor->PortDescriptors); free((char **)comb_nDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/comb_splitter_1411.c b/plugins/LadspaEffect/swh/comb_splitter_1411.c index 1ffb152d7..70d78e726 100644 --- a/plugins/LadspaEffect/swh/comb_splitter_1411.c +++ b/plugins/LadspaEffect/swh/comb_splitter_1411.c @@ -341,7 +341,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (combSplitterDescriptor) { free((LADSPA_PortDescriptor *)combSplitterDescriptor->PortDescriptors); free((char **)combSplitterDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/const_1909.c b/plugins/LadspaEffect/swh/const_1909.c index 3bfc221ef..31633b276 100644 --- a/plugins/LadspaEffect/swh/const_1909.c +++ b/plugins/LadspaEffect/swh/const_1909.c @@ -250,7 +250,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (constDescriptor) { free((LADSPA_PortDescriptor *)constDescriptor->PortDescriptors); free((char **)constDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/crossover_dist_1404.c b/plugins/LadspaEffect/swh/crossover_dist_1404.c index fdffacf68..7ad6c4d3b 100644 --- a/plugins/LadspaEffect/swh/crossover_dist_1404.c +++ b/plugins/LadspaEffect/swh/crossover_dist_1404.c @@ -276,7 +276,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (crossoverDistDescriptor) { free((LADSPA_PortDescriptor *)crossoverDistDescriptor->PortDescriptors); free((char **)crossoverDistDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/dc_remove_1207.c b/plugins/LadspaEffect/swh/dc_remove_1207.c index 76593f8ca..ff795118f 100644 --- a/plugins/LadspaEffect/swh/dc_remove_1207.c +++ b/plugins/LadspaEffect/swh/dc_remove_1207.c @@ -235,7 +235,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (dcRemoveDescriptor) { free((LADSPA_PortDescriptor *)dcRemoveDescriptor->PortDescriptors); free((char **)dcRemoveDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/decay_1886.c b/plugins/LadspaEffect/swh/decay_1886.c index da878478b..eab8570d3 100644 --- a/plugins/LadspaEffect/swh/decay_1886.c +++ b/plugins/LadspaEffect/swh/decay_1886.c @@ -325,7 +325,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (decayDescriptor) { free((LADSPA_PortDescriptor *)decayDescriptor->PortDescriptors); free((char **)decayDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/decimator_1202.c b/plugins/LadspaEffect/swh/decimator_1202.c index 2975605bd..6765d350e 100644 --- a/plugins/LadspaEffect/swh/decimator_1202.c +++ b/plugins/LadspaEffect/swh/decimator_1202.c @@ -335,7 +335,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (decimatorDescriptor) { free((LADSPA_PortDescriptor *)decimatorDescriptor->PortDescriptors); free((char **)decimatorDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/declip_1195.c b/plugins/LadspaEffect/swh/declip_1195.c index f25417976..bc3db16c2 100644 --- a/plugins/LadspaEffect/swh/declip_1195.c +++ b/plugins/LadspaEffect/swh/declip_1195.c @@ -235,7 +235,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (declipDescriptor) { free((LADSPA_PortDescriptor *)declipDescriptor->PortDescriptors); free((char **)declipDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/delay_1898.c b/plugins/LadspaEffect/swh/delay_1898.c index 998c1bbbd..57c8f0195 100644 --- a/plugins/LadspaEffect/swh/delay_1898.c +++ b/plugins/LadspaEffect/swh/delay_1898.c @@ -1093,7 +1093,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (delay_nDescriptor) { free((LADSPA_PortDescriptor *)delay_nDescriptor->PortDescriptors); free((char **)delay_nDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/delayorama_1402.c b/plugins/LadspaEffect/swh/delayorama_1402.c index a0cb2a861..a5d1bcce8 100644 --- a/plugins/LadspaEffect/swh/delayorama_1402.c +++ b/plugins/LadspaEffect/swh/delayorama_1402.c @@ -847,7 +847,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (delayoramaDescriptor) { free((LADSPA_PortDescriptor *)delayoramaDescriptor->PortDescriptors); free((char **)delayoramaDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/diode_1185.c b/plugins/LadspaEffect/swh/diode_1185.c index cfc2d22d4..bce602ae4 100644 --- a/plugins/LadspaEffect/swh/diode_1185.c +++ b/plugins/LadspaEffect/swh/diode_1185.c @@ -264,7 +264,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (diodeDescriptor) { free((LADSPA_PortDescriptor *)diodeDescriptor->PortDescriptors); free((char **)diodeDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/divider_1186.c b/plugins/LadspaEffect/swh/divider_1186.c index cf9fad685..6c7de0170 100644 --- a/plugins/LadspaEffect/swh/divider_1186.c +++ b/plugins/LadspaEffect/swh/divider_1186.c @@ -331,7 +331,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (dividerDescriptor) { free((LADSPA_PortDescriptor *)dividerDescriptor->PortDescriptors); free((char **)dividerDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/dj_eq_1901.c b/plugins/LadspaEffect/swh/dj_eq_1901.c index 950eedad4..a4baa9602 100644 --- a/plugins/LadspaEffect/swh/dj_eq_1901.c +++ b/plugins/LadspaEffect/swh/dj_eq_1901.c @@ -674,7 +674,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (dj_eq_monoDescriptor) { free((LADSPA_PortDescriptor *)dj_eq_monoDescriptor->PortDescriptors); free((char **)dj_eq_monoDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/dj_flanger_1438.c b/plugins/LadspaEffect/swh/dj_flanger_1438.c index b970886a9..1c7a9ce2d 100644 --- a/plugins/LadspaEffect/swh/dj_flanger_1438.c +++ b/plugins/LadspaEffect/swh/dj_flanger_1438.c @@ -472,7 +472,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (djFlangerDescriptor) { free((LADSPA_PortDescriptor *)djFlangerDescriptor->PortDescriptors); free((char **)djFlangerDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/dyson_compress_1403.c b/plugins/LadspaEffect/swh/dyson_compress_1403.c index 22cc0fa94..552edb7b0 100644 --- a/plugins/LadspaEffect/swh/dyson_compress_1403.c +++ b/plugins/LadspaEffect/swh/dyson_compress_1403.c @@ -885,7 +885,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (dysonCompressDescriptor) { free((LADSPA_PortDescriptor *)dysonCompressDescriptor->PortDescriptors); free((char **)dysonCompressDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/fad_delay_1192.c b/plugins/LadspaEffect/swh/fad_delay_1192.c index 85d0c3dee..9d4ec77b3 100644 --- a/plugins/LadspaEffect/swh/fad_delay_1192.c +++ b/plugins/LadspaEffect/swh/fad_delay_1192.c @@ -388,7 +388,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (fadDelayDescriptor) { free((LADSPA_PortDescriptor *)fadDelayDescriptor->PortDescriptors); free((char **)fadDelayDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/fast_lookahead_limiter_1913.c b/plugins/LadspaEffect/swh/fast_lookahead_limiter_1913.c index 8295e2298..8589caf3a 100644 --- a/plugins/LadspaEffect/swh/fast_lookahead_limiter_1913.c +++ b/plugins/LadspaEffect/swh/fast_lookahead_limiter_1913.c @@ -703,7 +703,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (fastLookaheadLimiterDescriptor) { free((LADSPA_PortDescriptor *)fastLookaheadLimiterDescriptor->PortDescriptors); free((char **)fastLookaheadLimiterDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/flanger_1191.c b/plugins/LadspaEffect/swh/flanger_1191.c index e542316fd..e5741f2e5 100644 --- a/plugins/LadspaEffect/swh/flanger_1191.c +++ b/plugins/LadspaEffect/swh/flanger_1191.c @@ -544,7 +544,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (flangerDescriptor) { free((LADSPA_PortDescriptor *)flangerDescriptor->PortDescriptors); free((char **)flangerDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/foldover_1213.c b/plugins/LadspaEffect/swh/foldover_1213.c index 8f2ad857e..5f4884476 100644 --- a/plugins/LadspaEffect/swh/foldover_1213.c +++ b/plugins/LadspaEffect/swh/foldover_1213.c @@ -255,7 +255,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (foldoverDescriptor) { free((LADSPA_PortDescriptor *)foldoverDescriptor->PortDescriptors); free((char **)foldoverDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/foverdrive_1196.c b/plugins/LadspaEffect/swh/foverdrive_1196.c index 94306d01e..f608e3ade 100644 --- a/plugins/LadspaEffect/swh/foverdrive_1196.c +++ b/plugins/LadspaEffect/swh/foverdrive_1196.c @@ -234,7 +234,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (foverdriveDescriptor) { free((LADSPA_PortDescriptor *)foverdriveDescriptor->PortDescriptors); free((char **)foverdriveDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/freq_tracker_1418.c b/plugins/LadspaEffect/swh/freq_tracker_1418.c index 831c6de15..73a7111ea 100644 --- a/plugins/LadspaEffect/swh/freq_tracker_1418.c +++ b/plugins/LadspaEffect/swh/freq_tracker_1418.c @@ -319,7 +319,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (freqTrackerDescriptor) { free((LADSPA_PortDescriptor *)freqTrackerDescriptor->PortDescriptors); free((char **)freqTrackerDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/gate_1410.c b/plugins/LadspaEffect/swh/gate_1410.c index d6fdf7da8..71527ace2 100644 --- a/plugins/LadspaEffect/swh/gate_1410.c +++ b/plugins/LadspaEffect/swh/gate_1410.c @@ -582,7 +582,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (gateDescriptor) { free((LADSPA_PortDescriptor *)gateDescriptor->PortDescriptors); free((char **)gateDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/giant_flange_1437.c b/plugins/LadspaEffect/swh/giant_flange_1437.c index dd2031806..fd022d7b1 100644 --- a/plugins/LadspaEffect/swh/giant_flange_1437.c +++ b/plugins/LadspaEffect/swh/giant_flange_1437.c @@ -637,7 +637,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (giantFlangeDescriptor) { free((LADSPA_PortDescriptor *)giantFlangeDescriptor->PortDescriptors); free((char **)giantFlangeDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/gong_1424.c b/plugins/LadspaEffect/swh/gong_1424.c index ea2f4161d..b7e0656b2 100644 --- a/plugins/LadspaEffect/swh/gong_1424.c +++ b/plugins/LadspaEffect/swh/gong_1424.c @@ -947,7 +947,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (gongDescriptor) { free((LADSPA_PortDescriptor *)gongDescriptor->PortDescriptors); free((char **)gongDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/gong_beater_1439.c b/plugins/LadspaEffect/swh/gong_beater_1439.c index 26f967a11..b80e164d3 100644 --- a/plugins/LadspaEffect/swh/gong_beater_1439.c +++ b/plugins/LadspaEffect/swh/gong_beater_1439.c @@ -400,7 +400,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (gongBeaterDescriptor) { free((LADSPA_PortDescriptor *)gongBeaterDescriptor->PortDescriptors); free((char **)gongBeaterDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/gsm_1215.c b/plugins/LadspaEffect/swh/gsm_1215.c index 279e2b1c1..55c0f2628 100644 --- a/plugins/LadspaEffect/swh/gsm_1215.c +++ b/plugins/LadspaEffect/swh/gsm_1215.c @@ -493,7 +493,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (gsmDescriptor) { free((LADSPA_PortDescriptor *)gsmDescriptor->PortDescriptors); free((char **)gsmDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/gverb_1216.c b/plugins/LadspaEffect/swh/gverb_1216.c index d7e5a9214..e9bdac87d 100644 --- a/plugins/LadspaEffect/swh/gverb_1216.c +++ b/plugins/LadspaEffect/swh/gverb_1216.c @@ -429,7 +429,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (gverbDescriptor) { free((LADSPA_PortDescriptor *)gverbDescriptor->PortDescriptors); free((char **)gverbDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/hard_limiter_1413.c b/plugins/LadspaEffect/swh/hard_limiter_1413.c index ab1ab0f62..bf41e6acd 100644 --- a/plugins/LadspaEffect/swh/hard_limiter_1413.c +++ b/plugins/LadspaEffect/swh/hard_limiter_1413.c @@ -286,7 +286,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (hardLimiterDescriptor) { free((LADSPA_PortDescriptor *)hardLimiterDescriptor->PortDescriptors); free((char **)hardLimiterDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/harmonic_gen_1220.c b/plugins/LadspaEffect/swh/harmonic_gen_1220.c index 26c19630f..bbd2324c7 100644 --- a/plugins/LadspaEffect/swh/harmonic_gen_1220.c +++ b/plugins/LadspaEffect/swh/harmonic_gen_1220.c @@ -542,7 +542,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (harmonicGenDescriptor) { free((LADSPA_PortDescriptor *)harmonicGenDescriptor->PortDescriptors); free((char **)harmonicGenDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/hermes_filter_1200.c b/plugins/LadspaEffect/swh/hermes_filter_1200.c index a15d7c9e8..d313d376e 100644 --- a/plugins/LadspaEffect/swh/hermes_filter_1200.c +++ b/plugins/LadspaEffect/swh/hermes_filter_1200.c @@ -1998,7 +1998,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (hermesFilterDescriptor) { free((LADSPA_PortDescriptor *)hermesFilterDescriptor->PortDescriptors); free((char **)hermesFilterDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/highpass_iir_1890.c b/plugins/LadspaEffect/swh/highpass_iir_1890.c index e0bca2a14..d00ddd159 100644 --- a/plugins/LadspaEffect/swh/highpass_iir_1890.c +++ b/plugins/LadspaEffect/swh/highpass_iir_1890.c @@ -278,7 +278,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (highpass_iirDescriptor) { free((LADSPA_PortDescriptor *)highpass_iirDescriptor->PortDescriptors); free((char **)highpass_iirDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/hilbert_1440.c b/plugins/LadspaEffect/swh/hilbert_1440.c index 4a6546b27..a52b21390 100644 --- a/plugins/LadspaEffect/swh/hilbert_1440.c +++ b/plugins/LadspaEffect/swh/hilbert_1440.c @@ -316,7 +316,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (hilbertDescriptor) { free((LADSPA_PortDescriptor *)hilbertDescriptor->PortDescriptors); free((char **)hilbertDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/imp_1199.c b/plugins/LadspaEffect/swh/imp_1199.c index 62c2deff3..ec1b35028 100644 --- a/plugins/LadspaEffect/swh/imp_1199.c +++ b/plugins/LadspaEffect/swh/imp_1199.c @@ -628,7 +628,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (impDescriptor) { free((LADSPA_PortDescriptor *)impDescriptor->PortDescriptors); free((char **)impDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/impulse_1885.c b/plugins/LadspaEffect/swh/impulse_1885.c index e4ebd2d41..cc53506b7 100644 --- a/plugins/LadspaEffect/swh/impulse_1885.c +++ b/plugins/LadspaEffect/swh/impulse_1885.c @@ -257,7 +257,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (impulse_fcDescriptor) { free((LADSPA_PortDescriptor *)impulse_fcDescriptor->PortDescriptors); free((char **)impulse_fcDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/inv_1429.c b/plugins/LadspaEffect/swh/inv_1429.c index 1a38faff6..e0a6f7715 100644 --- a/plugins/LadspaEffect/swh/inv_1429.c +++ b/plugins/LadspaEffect/swh/inv_1429.c @@ -207,7 +207,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (invDescriptor) { free((LADSPA_PortDescriptor *)invDescriptor->PortDescriptors); free((char **)invDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/karaoke_1409.c b/plugins/LadspaEffect/swh/karaoke_1409.c index 4c3091f77..9dd09c336 100644 --- a/plugins/LadspaEffect/swh/karaoke_1409.c +++ b/plugins/LadspaEffect/swh/karaoke_1409.c @@ -274,7 +274,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (karaokeDescriptor) { free((LADSPA_PortDescriptor *)karaokeDescriptor->PortDescriptors); free((char **)karaokeDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/latency_1914.c b/plugins/LadspaEffect/swh/latency_1914.c index 5744a2086..202b65baa 100644 --- a/plugins/LadspaEffect/swh/latency_1914.c +++ b/plugins/LadspaEffect/swh/latency_1914.c @@ -259,7 +259,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (artificialLatencyDescriptor) { free((LADSPA_PortDescriptor *)artificialLatencyDescriptor->PortDescriptors); free((char **)artificialLatencyDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/lcr_delay_1436.c b/plugins/LadspaEffect/swh/lcr_delay_1436.c index 5ae8db3bc..f9d4df7b6 100644 --- a/plugins/LadspaEffect/swh/lcr_delay_1436.c +++ b/plugins/LadspaEffect/swh/lcr_delay_1436.c @@ -733,7 +733,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (lcrDelayDescriptor) { free((LADSPA_PortDescriptor *)lcrDelayDescriptor->PortDescriptors); free((char **)lcrDelayDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/lowpass_iir_1891.c b/plugins/LadspaEffect/swh/lowpass_iir_1891.c index be1c806c1..a8ecb9ad4 100644 --- a/plugins/LadspaEffect/swh/lowpass_iir_1891.c +++ b/plugins/LadspaEffect/swh/lowpass_iir_1891.c @@ -280,7 +280,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (lowpass_iirDescriptor) { free((LADSPA_PortDescriptor *)lowpass_iirDescriptor->PortDescriptors); free((char **)lowpass_iirDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/ls_filter_1908.c b/plugins/LadspaEffect/swh/ls_filter_1908.c index 97c366a40..e67177bcd 100644 --- a/plugins/LadspaEffect/swh/ls_filter_1908.c +++ b/plugins/LadspaEffect/swh/ls_filter_1908.c @@ -308,7 +308,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (lsFilterDescriptor) { free((LADSPA_PortDescriptor *)lsFilterDescriptor->PortDescriptors); free((char **)lsFilterDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/matrix_ms_st_1421.c b/plugins/LadspaEffect/swh/matrix_ms_st_1421.c index 2fddf9311..e1c81d8d2 100644 --- a/plugins/LadspaEffect/swh/matrix_ms_st_1421.c +++ b/plugins/LadspaEffect/swh/matrix_ms_st_1421.c @@ -266,7 +266,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (matrixMSStDescriptor) { free((LADSPA_PortDescriptor *)matrixMSStDescriptor->PortDescriptors); free((char **)matrixMSStDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/matrix_spatialiser_1422.c b/plugins/LadspaEffect/swh/matrix_spatialiser_1422.c index 7812ddfff..74b3f1cfd 100644 --- a/plugins/LadspaEffect/swh/matrix_spatialiser_1422.c +++ b/plugins/LadspaEffect/swh/matrix_spatialiser_1422.c @@ -424,7 +424,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (matrixSpatialiserDescriptor) { free((LADSPA_PortDescriptor *)matrixSpatialiserDescriptor->PortDescriptors); free((char **)matrixSpatialiserDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/matrix_st_ms_1420.c b/plugins/LadspaEffect/swh/matrix_st_ms_1420.c index 8c97c7cb9..0d18f98b2 100644 --- a/plugins/LadspaEffect/swh/matrix_st_ms_1420.c +++ b/plugins/LadspaEffect/swh/matrix_st_ms_1420.c @@ -245,7 +245,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (matrixStMSDescriptor) { free((LADSPA_PortDescriptor *)matrixStMSDescriptor->PortDescriptors); free((char **)matrixStMSDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/mbeq_1197.c b/plugins/LadspaEffect/swh/mbeq_1197.c index a9bea01fe..e1c88d33e 100644 --- a/plugins/LadspaEffect/swh/mbeq_1197.c +++ b/plugins/LadspaEffect/swh/mbeq_1197.c @@ -885,7 +885,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (mbeqDescriptor) { free((LADSPA_PortDescriptor *)mbeqDescriptor->PortDescriptors); free((char **)mbeqDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/mod_delay_1419.c b/plugins/LadspaEffect/swh/mod_delay_1419.c index b27a7612e..30ae3e553 100644 --- a/plugins/LadspaEffect/swh/mod_delay_1419.c +++ b/plugins/LadspaEffect/swh/mod_delay_1419.c @@ -318,7 +318,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (modDelayDescriptor) { free((LADSPA_PortDescriptor *)modDelayDescriptor->PortDescriptors); free((char **)modDelayDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/multivoice_chorus_1201.c b/plugins/LadspaEffect/swh/multivoice_chorus_1201.c index 5f69bf04e..24c100dd4 100644 --- a/plugins/LadspaEffect/swh/multivoice_chorus_1201.c +++ b/plugins/LadspaEffect/swh/multivoice_chorus_1201.c @@ -656,7 +656,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (multivoiceChorusDescriptor) { free((LADSPA_PortDescriptor *)multivoiceChorusDescriptor->PortDescriptors); free((char **)multivoiceChorusDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/notch_iir_1894.c b/plugins/LadspaEffect/swh/notch_iir_1894.c index 396e44fa2..69009967b 100644 --- a/plugins/LadspaEffect/swh/notch_iir_1894.c +++ b/plugins/LadspaEffect/swh/notch_iir_1894.c @@ -343,7 +343,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (notch_iirDescriptor) { free((LADSPA_PortDescriptor *)notch_iirDescriptor->PortDescriptors); free((char **)notch_iirDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/phasers_1217.c b/plugins/LadspaEffect/swh/phasers_1217.c index 14673e360..da50e11e8 100644 --- a/plugins/LadspaEffect/swh/phasers_1217.c +++ b/plugins/LadspaEffect/swh/phasers_1217.c @@ -1377,7 +1377,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (lfoPhaserDescriptor) { free((LADSPA_PortDescriptor *)lfoPhaserDescriptor->PortDescriptors); free((char **)lfoPhaserDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/pitch_scale_1193.c b/plugins/LadspaEffect/swh/pitch_scale_1193.c index c811a84bc..ce3f81163 100644 --- a/plugins/LadspaEffect/swh/pitch_scale_1193.c +++ b/plugins/LadspaEffect/swh/pitch_scale_1193.c @@ -327,7 +327,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (pitchScaleDescriptor) { free((LADSPA_PortDescriptor *)pitchScaleDescriptor->PortDescriptors); free((char **)pitchScaleDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/pitch_scale_1194.c b/plugins/LadspaEffect/swh/pitch_scale_1194.c index 747c16ea6..62d6be129 100644 --- a/plugins/LadspaEffect/swh/pitch_scale_1194.c +++ b/plugins/LadspaEffect/swh/pitch_scale_1194.c @@ -311,7 +311,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (pitchScaleHQDescriptor) { free((LADSPA_PortDescriptor *)pitchScaleHQDescriptor->PortDescriptors); free((char **)pitchScaleHQDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/plate_1423.c b/plugins/LadspaEffect/swh/plate_1423.c index 0127bb6f0..f73e8f138 100644 --- a/plugins/LadspaEffect/swh/plate_1423.c +++ b/plugins/LadspaEffect/swh/plate_1423.c @@ -401,7 +401,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (plateDescriptor) { free((LADSPA_PortDescriptor *)plateDescriptor->PortDescriptors); free((char **)plateDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/pointer_cast_1910.c b/plugins/LadspaEffect/swh/pointer_cast_1910.c index 464fb1b64..7465bd145 100644 --- a/plugins/LadspaEffect/swh/pointer_cast_1910.c +++ b/plugins/LadspaEffect/swh/pointer_cast_1910.c @@ -310,7 +310,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (pointerCastDistortionDescriptor) { free((LADSPA_PortDescriptor *)pointerCastDistortionDescriptor->PortDescriptors); free((char **)pointerCastDistortionDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/rate_shifter_1417.c b/plugins/LadspaEffect/swh/rate_shifter_1417.c index 750f82972..21e03cbc3 100644 --- a/plugins/LadspaEffect/swh/rate_shifter_1417.c +++ b/plugins/LadspaEffect/swh/rate_shifter_1417.c @@ -314,7 +314,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (rateShifterDescriptor) { free((LADSPA_PortDescriptor *)rateShifterDescriptor->PortDescriptors); free((char **)rateShifterDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/retro_flange_1208.c b/plugins/LadspaEffect/swh/retro_flange_1208.c index 5df5cc338..c96dff58e 100644 --- a/plugins/LadspaEffect/swh/retro_flange_1208.c +++ b/plugins/LadspaEffect/swh/retro_flange_1208.c @@ -581,7 +581,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (retroFlangeDescriptor) { free((LADSPA_PortDescriptor *)retroFlangeDescriptor->PortDescriptors); free((char **)retroFlangeDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/revdelay_1605.c b/plugins/LadspaEffect/swh/revdelay_1605.c index 1b014b902..e714ee5e2 100644 --- a/plugins/LadspaEffect/swh/revdelay_1605.c +++ b/plugins/LadspaEffect/swh/revdelay_1605.c @@ -540,7 +540,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (revdelayDescriptor) { free((LADSPA_PortDescriptor *)revdelayDescriptor->PortDescriptors); free((char **)revdelayDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/ringmod_1188.c b/plugins/LadspaEffect/swh/ringmod_1188.c index 5c4c16b39..393ad86b2 100644 --- a/plugins/LadspaEffect/swh/ringmod_1188.c +++ b/plugins/LadspaEffect/swh/ringmod_1188.c @@ -632,7 +632,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (ringmod_2i1oDescriptor) { free((LADSPA_PortDescriptor *)ringmod_2i1oDescriptor->PortDescriptors); free((char **)ringmod_2i1oDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/satan_maximiser_1408.c b/plugins/LadspaEffect/swh/satan_maximiser_1408.c index 913711574..acf99ac3c 100644 --- a/plugins/LadspaEffect/swh/satan_maximiser_1408.c +++ b/plugins/LadspaEffect/swh/satan_maximiser_1408.c @@ -344,7 +344,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (satanMaximiserDescriptor) { free((LADSPA_PortDescriptor *)satanMaximiserDescriptor->PortDescriptors); free((char **)satanMaximiserDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/sc1_1425.c b/plugins/LadspaEffect/swh/sc1_1425.c index 8a5e143ef..4b2ce94f1 100644 --- a/plugins/LadspaEffect/swh/sc1_1425.c +++ b/plugins/LadspaEffect/swh/sc1_1425.c @@ -473,7 +473,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (sc1Descriptor) { free((LADSPA_PortDescriptor *)sc1Descriptor->PortDescriptors); free((char **)sc1Descriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/sc2_1426.c b/plugins/LadspaEffect/swh/sc2_1426.c index a95abd777..dcad834bc 100644 --- a/plugins/LadspaEffect/swh/sc2_1426.c +++ b/plugins/LadspaEffect/swh/sc2_1426.c @@ -491,7 +491,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (sc2Descriptor) { free((LADSPA_PortDescriptor *)sc2Descriptor->PortDescriptors); free((char **)sc2Descriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/sc3_1427.c b/plugins/LadspaEffect/swh/sc3_1427.c index e89609bf5..27edde705 100644 --- a/plugins/LadspaEffect/swh/sc3_1427.c +++ b/plugins/LadspaEffect/swh/sc3_1427.c @@ -562,7 +562,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (sc3Descriptor) { free((LADSPA_PortDescriptor *)sc3Descriptor->PortDescriptors); free((char **)sc3Descriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/sc4_1882.c b/plugins/LadspaEffect/swh/sc4_1882.c index 5ac873302..3ff1fd002 100644 --- a/plugins/LadspaEffect/swh/sc4_1882.c +++ b/plugins/LadspaEffect/swh/sc4_1882.c @@ -618,7 +618,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (sc4Descriptor) { free((LADSPA_PortDescriptor *)sc4Descriptor->PortDescriptors); free((char **)sc4Descriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/sc4m_1916.c b/plugins/LadspaEffect/swh/sc4m_1916.c index ee9a952a5..4d92a213e 100644 --- a/plugins/LadspaEffect/swh/sc4m_1916.c +++ b/plugins/LadspaEffect/swh/sc4m_1916.c @@ -568,7 +568,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (sc4mDescriptor) { free((LADSPA_PortDescriptor *)sc4mDescriptor->PortDescriptors); free((char **)sc4mDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/se4_1883.c b/plugins/LadspaEffect/swh/se4_1883.c index 585d474e0..2c1ddce6e 100644 --- a/plugins/LadspaEffect/swh/se4_1883.c +++ b/plugins/LadspaEffect/swh/se4_1883.c @@ -614,7 +614,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (se4Descriptor) { free((LADSPA_PortDescriptor *)se4Descriptor->PortDescriptors); free((char **)se4Descriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/shaper_1187.c b/plugins/LadspaEffect/swh/shaper_1187.c index f036a57fb..89fc699b4 100644 --- a/plugins/LadspaEffect/swh/shaper_1187.c +++ b/plugins/LadspaEffect/swh/shaper_1187.c @@ -260,7 +260,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (shaperDescriptor) { free((LADSPA_PortDescriptor *)shaperDescriptor->PortDescriptors); free((char **)shaperDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/sifter_1210.c b/plugins/LadspaEffect/swh/sifter_1210.c index 8adcdbd27..1c05217b8 100644 --- a/plugins/LadspaEffect/swh/sifter_1210.c +++ b/plugins/LadspaEffect/swh/sifter_1210.c @@ -438,7 +438,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (sifterDescriptor) { free((LADSPA_PortDescriptor *)sifterDescriptor->PortDescriptors); free((char **)sifterDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/sin_cos_1881.c b/plugins/LadspaEffect/swh/sin_cos_1881.c index 500b6808b..d12977141 100644 --- a/plugins/LadspaEffect/swh/sin_cos_1881.c +++ b/plugins/LadspaEffect/swh/sin_cos_1881.c @@ -296,7 +296,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (sinCosDescriptor) { free((LADSPA_PortDescriptor *)sinCosDescriptor->PortDescriptors); free((char **)sinCosDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/single_para_1203.c b/plugins/LadspaEffect/swh/single_para_1203.c index d189c2682..ef322fe36 100644 --- a/plugins/LadspaEffect/swh/single_para_1203.c +++ b/plugins/LadspaEffect/swh/single_para_1203.c @@ -312,7 +312,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (singleParaDescriptor) { free((LADSPA_PortDescriptor *)singleParaDescriptor->PortDescriptors); free((char **)singleParaDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/sinus_wavewrapper_1198.c b/plugins/LadspaEffect/swh/sinus_wavewrapper_1198.c index 02be6d68a..d8dc7b2cc 100644 --- a/plugins/LadspaEffect/swh/sinus_wavewrapper_1198.c +++ b/plugins/LadspaEffect/swh/sinus_wavewrapper_1198.c @@ -244,7 +244,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (sinusWavewrapperDescriptor) { free((LADSPA_PortDescriptor *)sinusWavewrapperDescriptor->PortDescriptors); free((char **)sinusWavewrapperDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/smooth_decimate_1414.c b/plugins/LadspaEffect/swh/smooth_decimate_1414.c index 532b84b0a..c63e6ce6f 100644 --- a/plugins/LadspaEffect/swh/smooth_decimate_1414.c +++ b/plugins/LadspaEffect/swh/smooth_decimate_1414.c @@ -329,7 +329,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (smoothDecimateDescriptor) { free((LADSPA_PortDescriptor *)smoothDecimateDescriptor->PortDescriptors); free((char **)smoothDecimateDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/split_1406.c b/plugins/LadspaEffect/swh/split_1406.c index 48c9f7117..2fa1bee7b 100644 --- a/plugins/LadspaEffect/swh/split_1406.c +++ b/plugins/LadspaEffect/swh/split_1406.c @@ -240,7 +240,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (splitDescriptor) { free((LADSPA_PortDescriptor *)splitDescriptor->PortDescriptors); free((char **)splitDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/step_muxer_1212.c b/plugins/LadspaEffect/swh/step_muxer_1212.c index 94dc51e73..9c27b84e1 100644 --- a/plugins/LadspaEffect/swh/step_muxer_1212.c +++ b/plugins/LadspaEffect/swh/step_muxer_1212.c @@ -532,7 +532,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (stepMuxerDescriptor) { free((LADSPA_PortDescriptor *)stepMuxerDescriptor->PortDescriptors); free((char **)stepMuxerDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/surround_encoder_1401.c b/plugins/LadspaEffect/swh/surround_encoder_1401.c index c0f970e7e..d4b6ace01 100644 --- a/plugins/LadspaEffect/swh/surround_encoder_1401.c +++ b/plugins/LadspaEffect/swh/surround_encoder_1401.c @@ -414,7 +414,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (surroundEncoderDescriptor) { free((LADSPA_PortDescriptor *)surroundEncoderDescriptor->PortDescriptors); free((char **)surroundEncoderDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/svf_1214.c b/plugins/LadspaEffect/swh/svf_1214.c index 24117d757..c1a74aa0b 100644 --- a/plugins/LadspaEffect/swh/svf_1214.c +++ b/plugins/LadspaEffect/swh/svf_1214.c @@ -408,7 +408,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (svfDescriptor) { free((LADSPA_PortDescriptor *)svfDescriptor->PortDescriptors); free((char **)svfDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/tape_delay_1211.c b/plugins/LadspaEffect/swh/tape_delay_1211.c index 5338dadfa..0b680ccf2 100644 --- a/plugins/LadspaEffect/swh/tape_delay_1211.c +++ b/plugins/LadspaEffect/swh/tape_delay_1211.c @@ -645,7 +645,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (tapeDelayDescriptor) { free((LADSPA_PortDescriptor *)tapeDelayDescriptor->PortDescriptors); free((char **)tapeDelayDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/transient_1206.c b/plugins/LadspaEffect/swh/transient_1206.c index 6e63fd526..782593e5e 100644 --- a/plugins/LadspaEffect/swh/transient_1206.c +++ b/plugins/LadspaEffect/swh/transient_1206.c @@ -465,7 +465,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (transientDescriptor) { free((LADSPA_PortDescriptor *)transientDescriptor->PortDescriptors); free((char **)transientDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/triple_para_1204.c b/plugins/LadspaEffect/swh/triple_para_1204.c index 8d3e63f3f..ef7a26b7c 100644 --- a/plugins/LadspaEffect/swh/triple_para_1204.c +++ b/plugins/LadspaEffect/swh/triple_para_1204.c @@ -593,7 +593,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (tripleParaDescriptor) { free((LADSPA_PortDescriptor *)tripleParaDescriptor->PortDescriptors); free((char **)tripleParaDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/valve_1209.c b/plugins/LadspaEffect/swh/valve_1209.c index 2ab03dd17..8f10428a0 100644 --- a/plugins/LadspaEffect/swh/valve_1209.c +++ b/plugins/LadspaEffect/swh/valve_1209.c @@ -332,7 +332,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (valveDescriptor) { free((LADSPA_PortDescriptor *)valveDescriptor->PortDescriptors); free((char **)valveDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/valve_rect_1405.c b/plugins/LadspaEffect/swh/valve_rect_1405.c index 9a87af2fa..a4191a4fd 100644 --- a/plugins/LadspaEffect/swh/valve_rect_1405.c +++ b/plugins/LadspaEffect/swh/valve_rect_1405.c @@ -401,7 +401,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (valveRectDescriptor) { free((LADSPA_PortDescriptor *)valveRectDescriptor->PortDescriptors); free((char **)valveRectDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/vocoder_1337.c b/plugins/LadspaEffect/swh/vocoder_1337.c index 0fb51688a..1ac1048df 100644 --- a/plugins/LadspaEffect/swh/vocoder_1337.c +++ b/plugins/LadspaEffect/swh/vocoder_1337.c @@ -420,9 +420,9 @@ void __attribute__((constructor)) swh_init() { /*****************************************************************************/ -/* _fini() is called automatically when the library is unloaded. */ +/* __attribute__((destructor)) swh_fini() is called automatically when the library is unloaded. */ void -_fini() { + __attribute__((destructor)) swh_fini() { long lIndex; if (g_psDescriptor) { free((char *)g_psDescriptor->Label); diff --git a/plugins/LadspaEffect/swh/vynil_1905.c b/plugins/LadspaEffect/swh/vynil_1905.c index 03112ac8e..187aa0f8f 100644 --- a/plugins/LadspaEffect/swh/vynil_1905.c +++ b/plugins/LadspaEffect/swh/vynil_1905.c @@ -712,7 +712,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (vynilDescriptor) { free((LADSPA_PortDescriptor *)vynilDescriptor->PortDescriptors); free((char **)vynilDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/wave_terrain_1412.c b/plugins/LadspaEffect/swh/wave_terrain_1412.c index 46791bdc1..bb77bd825 100644 --- a/plugins/LadspaEffect/swh/wave_terrain_1412.c +++ b/plugins/LadspaEffect/swh/wave_terrain_1412.c @@ -231,7 +231,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (waveTerrainDescriptor) { free((LADSPA_PortDescriptor *)waveTerrainDescriptor->PortDescriptors); free((char **)waveTerrainDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/xfade_1915.c b/plugins/LadspaEffect/swh/xfade_1915.c index 3d0d01d01..3a4ca2345 100644 --- a/plugins/LadspaEffect/swh/xfade_1915.c +++ b/plugins/LadspaEffect/swh/xfade_1915.c @@ -598,7 +598,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (xfadeDescriptor) { free((LADSPA_PortDescriptor *)xfadeDescriptor->PortDescriptors); free((char **)xfadeDescriptor->PortNames); diff --git a/plugins/LadspaEffect/swh/zm1_1428.c b/plugins/LadspaEffect/swh/zm1_1428.c index 5c3c19b5d..baf063bfc 100644 --- a/plugins/LadspaEffect/swh/zm1_1428.c +++ b/plugins/LadspaEffect/swh/zm1_1428.c @@ -232,7 +232,7 @@ void __attribute__((constructor)) swh_init() { } } -void _fini() { +void __attribute__((destructor)) swh_fini() { if (zm1Descriptor) { free((LADSPA_PortDescriptor *)zm1Descriptor->PortDescriptors); free((char **)zm1Descriptor->PortNames); From 6a5e7b18de0de1949c21d2bdf43f70801e8d75f7 Mon Sep 17 00:00:00 2001 From: Yann Collette Date: Wed, 14 May 2014 11:07:09 +0200 Subject: [PATCH 09/12] add lib64 directories to search for ladspa plugins --- src/core/ladspa_manager.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/core/ladspa_manager.cpp b/src/core/ladspa_manager.cpp index 4d78ebc5d..bd533fb87 100644 --- a/src/core/ladspa_manager.cpp +++ b/src/core/ladspa_manager.cpp @@ -46,10 +46,11 @@ ladspaManager::ladspaManager() ladspaDirectories.push_back( configManager::inst()->pluginDir() + "ladspa" ); #ifndef LMMS_BUILD_WIN32 ladspaDirectories.push_back( qApp->applicationDirPath() + '/' + LIB_DIR + "ladspa" ); - ladspaDirectories.push_back( "/usr/lib/lmms/ladspa" ); - ladspaDirectories.push_back( "/usr/local/lib/lmms/ladspa" ); ladspaDirectories.push_back( "/usr/lib/ladspa" ); + ladspaDirectories.push_back( "/usr/lib64/ladspa" ); ladspaDirectories.push_back( "/usr/local/lib/ladspa" ); + ladspaDirectories.push_back( "/usr/local/lib64/ladspa" ); + ladspaDirectories.push_back( "/Library/Audio/Plug-Ins/LADSPA" ); #endif for( QStringList::iterator it = ladspaDirectories.begin(); From 22cf0db03dcb2d318b13f21fc86c50aedefc21ff Mon Sep 17 00:00:00 2001 From: Daniel Winzen Date: Sun, 8 Jun 2014 17:49:04 +0200 Subject: [PATCH 10/12] Updated German translation --- data/locale/de.qm | Bin 191705 -> 240099 bytes data/locale/de.ts | 1870 +++++++++++++++++++++++++++------------------ 2 files changed, 1137 insertions(+), 733 deletions(-) diff --git a/data/locale/de.qm b/data/locale/de.qm index 0d300fb4e46ff3368201799955f0875081c24e15..534645fe5b83ac1e0679cff8b473cd5c4f5d8687 100644 GIT binary patch delta 57150 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 L**mZ#wNn2N6G9s2 delta 19487 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 language not translated (or native English). If you're interested in translating LMMS in another language or want to improve existing translations, you're welcome to help us! Simply contact the maintainer! - Deutsche Übersetzung von Tobias Doerffel. + Deutsche Übersetzung von Tobias Doerffel und Daniel Winzen. License @@ -43,11 +43,65 @@ If you're interested in translating LMMS in another language or want to imp Copyright (c) 2004-2014, LMMS developers - Copyright (c) 2004-2012, LMMS-Entwickler {2004-2014,?} + Copyright (c) 2004-2014, LMMS-Entwickler <html><head/><body><p><a href="http://lmms.sourceforge.net"><span style=" text-decoration: underline; color:#0000ff;">http://lmms.sourceforge.net</span></a></p></body></html> - + <html><head/><body><p><a href="http://lmms.sourceforge.net"><span style=" text-decoration: underline; color:#0000ff;">http://lmms.sourceforge.net</span></a></p></body></html> + + + + AmplifierControlDialog + + VOL + VOL + + + Volume: + Lautstärke: + + + PAN + PAN + + + Panning: + Balance: + + + LEFT + LINKS + + + Left gain: + Linke Verstärkung: + + + RIGHT + RECHTS + + + Right gain: + Rechte Verstärkung: + + + + AmplifierControls + + Volume + Lautstärke + + + Panning + Balance + + + Left gain + Linke Verstärkung + + + Right gain + Rechte Verstärkung @@ -79,14 +133,6 @@ If you're interested in translating LMMS in another language or want to imp If you enable this button, the whole sample is reversed. This is useful for cool effects, e.g. a reversed crash. Wenn Sie diesen Button aktivieren, wird das gesamte Sample umgekehrt. Das kann nützlich für coole Effekte sein, wie z.B. eine umgekehrte Crash. - - Loop sample at start- and end-point - Sample an Start- und Endpunkt wiederholen - - - Here you can set, whether looping-mode is enabled. If enabled, AudioFileProcessor loops between start and end-points of a sample until the whole note is played. This is useful for things like string and choir samples. - Hier können Sie festlegen, ob der Looping-Modus aktiviert sein soll. Wenn aktiviert, wiederholt AudioFileProcessor das Sample zwischen Start- und Endpunkt solange, bis die gesamte Note gespielt ist. Das ist vorallem für String- und Chor-Samples nützlich. - Amplify: Verstärkung: @@ -99,32 +145,40 @@ If you're interested in translating LMMS in another language or want to imp Startpoint: Startpunkt: - - With this knob you can set the point where AudioFileProcessor should begin playing your sample. If you enable looping-mode, this is the point to which AudioFileProcessor returns if a note is longer than the sample between the start and end-points. - Mit diesem Knopf können Sie festlegen, wo AudioFileProcessor anfangen soll, Ihr Sample zu spielen. Wenn Sie den Looping-Modus aktivieren, ist das der Punkt, wohin AudioFileProcessor zurückkehrt, wenn eine Note länger als das Sample zwischen Start- und Endpunkt ist. - Endpoint: Endpunkt: - - With this knob you can set the point where AudioFileProcessor should stop playing your sample. If you enable looping-mode, this is the point where AudioFileProcessor returns if a note is longer than the sample between the start and end-points. - Mit diesem Knopf können Sie festlegen, wo AudioFileProcessor aufhören soll, Ihr Sample zu spielen. Wenn Sie den Looping-Modus aktivieren, ist das der Punkt, an dem AudioFileProcessor zum Startpunkt zurückkehrt, wenn eine Note länger als das Sample zwischen Start- und Endpunkt ist. - Continue sample playback across notes - + Samplewiedergabe über Noten fortsetzen Enabling this option makes the sample continue playing across different notes - if you change pitch, or the note length stops before the end of the sample, then the next note played will continue where it left off. To reset the playback to the start of the sample, insert a note at the bottom of the keyboard (< 20 Hz) - + Wenn Sie diese Option aktivieren, wird das Sample über verschiedene Noten weitergespielt. Wenn Sie die Tonhöhe ändern oder die Note endet, bevor das Ende des Samples erreicht ist, dann fängt die nächste Note da an, wo aufgehört wurde. Um die Wiedergabe an den Anfang des Samples zurückzusetzen, fügen Sie eine Note am unteren Ende des Keyboards ein (< 20Hz) + + + Loop sample at start- and end-point + Sample am Start- und Endpunkt wiederholen + + + Here you can set, whether looping-mode is enabled. If enabled, AudioFileProcessor loops between start and end-points of a sample until the whole note is played. This is useful for things like string and choir samples. + Hier können Sie festlegen, ob der Wiederholungsmodus aktiviert ist. Wenn aktiviert, wiederholt AudioFileProcessor das Sample, bis die ganze Note gespielt wurde. Dies ist nützlich für Sachen, wie Streicher oder Chor Samples. + + + With this knob you can set the point where AudioFileProcessor should begin playing your sample. If you enable looping-mode, this is the point to which AudioFileProcessor returns if a note is longer than the sample between the start and end-points. + Mit diesem Knopf können Sie den Punkt festlegen, an dem AudioFileProcessor anfangen soll Ihr Sample abzuspielen. Wenn Sie den Wiederholungsmodus aktivieren, ist dies der Punkt, an dem AudioFileProcessor wieder anfängt zu spielen, wenn eine Note länger ist, als das Sample zwischen den Start- und Endpunkten. + + + With this knob you can set the point where AudioFileProcessor should stop playing your sample. If you enable looping-mode, this is the point where AudioFileProcessor returns if a note is longer than the sample between the start and end-points. + Mit diesem Knopf können Sie den Punkt festlegen, an dem AudioFileProcessor aufhören soll Ihr Sample abzuspielen. Wenn Sie den Wiederholungsmodus aktivieren, ist dies der Punkt, an dem AudioFileProcessor wieder von vorne anfängt zu spielen, wenn eine Note länger ist, als das Sample zwischen den Start- und Endpunkten. AudioFileProcessorWaveView Sample length: - + Samplelänge: @@ -237,11 +291,11 @@ If you're interested in translating LMMS in another language or want to imp Remove song-global automation - + Song-globale Automation entfernen Remove all linked controls - + Alle verknüpften Controller entfernen @@ -264,19 +318,19 @@ If you're interested in translating LMMS in another language or want to imp Draw mode (Shift+D) - Zeichnen-Modus (Umschalt+D) + Zeichnenmodus (Umschalt+D) Erase mode (Shift+E) - Radier-Modus (Umschalt+E) + Radiermodus (Umschalt+E) Click here and draw-mode will be activated. In this mode you can add and move single values. This is the default mode which is used most of the time. You can also press 'Shift+D' on your keyboard to activate this mode. - Klicken Sie hier, um den Zeichnen-Modus zu aktivieren. In diesem Modus können Sie einzelne Werte hinzufügen und verschieben. Das ist der Standard-Modus, der meistens benutzt wird. Sie können auch 'Umschalt+D' auf Ihrer Tastatur drücken, um in diesen Modus zu gelangen. + Klicken Sie hier, um den Zeichnenmodus zu aktivieren. In diesem Modus können Sie einzelne Werte hinzufügen und verschieben. Das ist der Standard-Modus, der meistens benutzt wird. Sie können auch 'Umschalt+D' auf Ihrer Tastatur drücken, um in diesen Modus zu gelangen. Click here and erase-mode will be activated. In this mode you can erase single values. You can also press 'Shift+E' on your keyboard to activate this mode. - Klicken Sie hier, um den Radier-Modus zu aktivieren. In diesem Modus können Sie einzelne Werte löschen. Sie können auch 'Umschalt+E' auf Ihrer Tastatur drücken, um diesen Modus zu aktivieren. + Klicken Sie hier, um den Radiermodus zu aktivieren. In diesem Modus können Sie einzelne Werte löschen. Sie können auch 'Umschalt+E' auf Ihrer Tastatur drücken, um diesen Modus zu aktivieren. Cut selected values (Ctrl+X) @@ -324,39 +378,39 @@ If you're interested in translating LMMS in another language or want to imp Discrete progression - + Diskretes Fortschreiten Linear progression - + Lineares Fortschreiten Cubic Hermite progression - + Kubisches, hermetisches Fortschrieten Tension: - + Spannung: Click here to choose discrete progressions for this automation pattern. The value of the connected object will remain constant between control points and be set immediately to the new value when each control point is reached. - + Klicken Sie hier, um diskretes Fortschreiten als Automationsmuster auszuwählen. Der Wert des verbundenen Objekts bleibt konstant zwischen den Kontrollpunkten und wird sofort auf den neuen Wert gesetzt, wenn ein Kontrollpunkt erreicht wird. Click here to choose linear progressions for this automation pattern. The value of the connected object will change at a steady rate over time between control points to reach the correct value at each control point without a sudden change. - + Klicken Sie hier, um lineares Fortschreiten als Automationsmuster auszuwählen. Der Wert des verbundenen Objekts wird über die Zeit kontinuierlich zwischen Kontrollpunkten auf den korrekten Wert am jeweiligen Kontrollpunkt geändert, ohne plötzliche Änderungen. Click here to choose cubic hermite progressions for this automation pattern. The value of the connected object will change in a smooth curve and ease in to the peaks and valleys. - + Klicken Sie hier, um kubisches, hermetisches Fortschreiten als Automationsmuster auszuwählen. Der Wert des verbundenen Objekts wird in einer nahtlosen Kurve geändert und in Spitzen und Täler übergehen. Tension value for spline - + Spannungswert für Spline A higher tension value may make a smoother curve but overshoot some values. A low tension value will cause the slope of the curve to level off at each control point. - + Ein höherer Spannungswert erzeugt möglicherweise eine nahtlosere Kurve, aber überschwingt einige Werte. Ein niedrigerer Spannungswert wird ein Abfallen und dann Abflachen der Kurve an jedem Kontrollpunkt verursachen. @@ -404,6 +458,48 @@ If you're interested in translating LMMS in another language or want to imp Automation-Spur + + BassBoosterControlDialog + + FREQ + FREQ + + + Frequency: + Frequenz: + + + GAIN + GAIN + + + Gain: + Verstärkung: + + + RATIO + RATIO + + + Ratio: + Verhältnis: + + + + BassBoosterControls + + Frequency + Frequenz + + + Gain + Verstärkung + + + Ratio + Verhältnis + + Controller @@ -482,11 +578,11 @@ If you're interested in translating LMMS in another language or want to imp Confirm Delete - + Löschen bestätigen Confirm delete? There are existing connection(s) associted with this controller. There is no way to undo. - + Löschen bestätigen? Es bestehen Verbindungen, die an diesen Controller angeschlossen sind. Es gibt keine Möglichkeit dies rückgängig zu machen. @@ -516,6 +612,132 @@ If you're interested in translating LMMS in another language or want to imp &Hilfe + + DualFilterControlDialog + + Filter 1 enabled + Filter 1 aktiviert + + + Filter 2 enabled + Filter 2 aktiviert + + + Click to enable/disable Filter 1 + Klicken Sie, um Filter 1 zu aktivieren/deaktivieren + + + Click to enable/disable Filter 2 + Klicken Sie, um Filter 2 zu aktivieren/deaktivieren + + + + DualFilterControls + + Filter 1 enabled + Filter 1 aktiviert + + + Filter 1 type + Filtertyp 1 + + + Cutoff 1 frequency + Kennfrequenz 1 + + + Q/Resonance 1 + Q/Resonanz 1 + + + Gain 1 + Verstärkung 1 + + + Mix + Mischung + + + Filter 2 enabled + Filter 2 aktiviert + + + Filter 2 type + Filtertyp 2 + + + Cutoff 2 frequency + Kennfrequenz 2 + + + Q/Resonance 2 + Q/Resonanz 2 + + + Gain 2 + Verstärkung 2 + + + LowPass + Tiefpass + + + HiPass + Hochpass + + + BandPass csg + Bandpass csg + + + BandPass czpg + Bandpass czpg + + + Notch + Notch + + + Allpass + Allpass + + + Moog + Moog + + + 2x LowPass + 2x Tiefpass + + + RC LowPass 12dB + RC-Tiefpass 12dB + + + RC BandPass 12dB + RC-Bandpass 12dB + + + RC HighPass 12dB + RC-Hochpass 12dB + + + RC LowPass 24dB + RC-Tiefpass 24dB + + + RC BandPass 24dB + RC-Bandpass 24dB + + + RC HighPass 24dB + RC-Hochpass 24dB + + + Vocal Formant Filter + Vokalformant-Filter + + Effect @@ -628,7 +850,19 @@ The Gate knob controls the 'given threshold' for the effect's aut The Controls button opens a dialog for editing the effect's parameters. Right clicking will bring up a context menu where you can change the order in which the effects are processed or delete an effect altogether. - + Effektplugins funktionieren als eine Aneinanderreihung von Effekten, wo das Signal von oben nach unter verarbeitet wird. + +Der Ein-/Ausschalter ermöglicht es Ihnen ein Plugin jeder Zeit zu umgehen. + +Der Wet/Dry-Knopf legt das Verhältnis zwischen Eingangssignal und vom Effekt bearbeiteten Signal im Ausgang fest. Der Eingag dieses Effekts ist der Ausgang des vorherigen Effekts. Somit enthält das »dry«-Signal, für Effekte weiter unten in der Kette, alle vorherigen Effekte. + +Der Abfallzeit-Knopf legt fest, wie lange das Signal weiterverarbeitet werden soll, nachdem die Noten losgelassen wurde. Der Effekt hört auf Signale zu verarbeiten, wenn die Lautstärke eines Signals für eine festgelegte Zeit unter einen festgelegten Schwellwert gefallen ist. Dieser Knopf legt die »festgelegte Zeit« fest. Längere Zeiten brauchen mehr Rechenleistung, deshalb sollte diese Zahl für die meisten Effekte niedrig sein. Es muss für Effekte, die über längere Zeit Stille erzeugen, z.B. Verzögerungen, erhöht werden. + +Der Gate-Knopf kontrolliert den »festgelegten Schwellwert« für das automatische Ausschalten des Effekts. Die Uhr für die »festgelegte Zeit« beginnt sobald der Pegel des verarbeiteten Signals unter den mit diesem Knopf festgelegten Pegel fällt. + +Der Regler-Knopf öffnet einen Dialog zum Bearbeiten der Parameter des Effekts. + +Ein Recktsklick öffnet ein Kontextmenü, in dem Sie die Reihenfolge der Effekte ändern oder einen Effekt entfernen können. Move &up @@ -1007,14 +1241,6 @@ Right clicking will bring up a context menu where you can change the order in wh 8x 8x - - Sample-exact controllers - Sample-genaue Controller - - - Alias-free oscillators - Alias-freie Oszillatoren - Start Start @@ -1025,7 +1251,15 @@ Right clicking will bring up a context menu where you can change the order in wh Export as loop (remove end silence) - + Als Schleife exportieren (Stille am Ende entfernen) + + + Sample-exact controllers + Sample-exakte Regler + + + Alias-free oscillators + Unterschiedsfreie Oszillatoren @@ -1055,7 +1289,7 @@ Right clicking will bring up a context menu where you can change the order in wh FX Fader %1 - FX-Schieber %1 + FX Schieber %1 Mute @@ -1070,130 +1304,130 @@ Right clicking will bring up a context menu where you can change the order in wh InstrumentFunctionArpeggio Arpeggio - Arpeggio + Arpeggio Arpeggio type - Arpeggiotyp + Arpeggiotyp Arpeggio range - Arpeggio-Bereich + Arpeggio-Bereich Arpeggio time - Arpeggio-Zeit + Arpeggio-Zeit Arpeggio gate - Arpeggio-Gate + Arpeggio-Gate Arpeggio direction - Arpeggio-Richtung + Arpeggio-Richtung Arpeggio mode - Arpeggio-Modus + Arpeggio-Modus Up - Hoch + Hoch Down - Runter + Runter Up and down - Hoch und runter + Hoch und runter Random - Zufällig + Zufällig Free - Frei + Frei Sort - Sortiert + Sortiert Sync - Synchron + Synchron InstrumentFunctionArpeggioView ARPEGGIO - ARPEGGIO + ARPEGGIO An arpeggio is a method playing (especially plucked) instruments, which makes the music much livelier. The strings of such instruments (e.g. harps) are plucked like chords. The only difference is that this is done in a sequential order, so the notes are not played at the same time. Typical arpeggios are major or minor triads, but there are a lot of other possible chords, you can select. - Ein Arpeggio ist eine Art, (vorallem gezupfte) Instrumente zu spielen, die die Musik viel lebendiger macht. Die Seiten von solchen Instrumenten (z.B. Harfen) werden wie Akkorde gezupft, der einzige Unterschied besteht darin, dass dies nacheinander geschieht. Die Noten werden also nicht zur gleichen Zeit gespielt. Typische Arpeggios sind Dur- oder Moll-Dreiklänge, aber es gibt noch viele andere Akkorde, die Sie auswählen können. + Ein Arpeggio ist eine Art, (vorallem gezupfte) Instrumente zu spielen, die die Musik viel lebendiger macht. Die Seiten von solchen Instrumenten (z.B. Harfen) werden wie Akkorde gezupft, der einzige Unterschied besteht darin, dass dies nacheinander geschieht. Die Noten werden also nicht zur gleichen Zeit gespielt. Typische Arpeggios sind Dur- oder Moll-Dreiklänge, aber es gibt noch viele andere Akkorde, die Sie auswählen können. RANGE - BEREICH + RANGE Arpeggio range: - Arpeggio-Bereich: + Arpeggio-Bereich: octave(s) - Oktave(n) + Oktave(n) Use this knob for setting the arpeggio range in octaves. The selected arpeggio will be played within specified number of octaves. - Benutzen Sie diesen Knopf, um den Arpeggio-Bereich in Oktaven zu setzen. Das gewähle Arpeggio wird innerhalb der angegebenen Anzahl von Oktaven abgespielt. + Benutzen Sie diesen Knopf, um den Arpeggio-Bereich in Oktaven zu setzen. Das gewähle Arpeggio wird innerhalb der angegebenen Anzahl von Oktaven abgespielt. TIME - ZEIT + ZEIT Arpeggio time: - Arpeggio-Zeit: + Arpeggio-Zeit: ms - ms + ms Use this knob for setting the arpeggio time in milliseconds. The arpeggio time specifies how long each arpeggio-tone should be played. - Benutzen Sie diesen Knopf, um die Arpeggio-Zeit in Millisekunden zu setzen. Die Arpeggio-Zeit gibt an, wie lange jeder einzelne Arpeggio-Ton gespielt werden soll. + Benutzen Sie diesen Knopf, um die Arpeggio-Zeit in Millisekunden zu setzen. Die Arpeggio-Zeit gibt an, wie lange jeder einzelne Arpeggio-Ton gespielt werden soll. GATE - GATE + GATE Arpeggio gate: - Arpeggio-Gate: + Arpeggio-Gate: % - % + % Use this knob for setting the arpeggio gate. The arpeggio gate specifies the percent of a whole arpeggio-tone that should be played. With this you can make cool staccato arpeggios. - Benutzen Sie diesen Knopf, um das Arpeggio-Gate zu setzen. Das Arpeggio-Gate gibt an, wie viel Prozent eines ganzen Arpeggio-Tons gespielt werden sollen. Damit können Sie coole Staccato-Arpeggios erzeugen. + Benutzen Sie diesen Knopf, um das Arpeggio-Gate zu setzen. Das Arpeggio-Gate gibt an, wie viel Prozent eines ganzen Arpeggio-Tons gespielt werden sollen. Damit können Sie coole Staccato-Arpeggios erzeugen. Chord: - + Akkord: Direction: - Richtung: + Richtung: Mode: - Modus: + Modus: @@ -1564,6 +1798,14 @@ Right clicking will bring up a context menu where you can change the order in wh Minor + Moll + + + Chromatic + Chromatisch + + + Half-Whole Diminished @@ -1571,7 +1813,7 @@ Right clicking will bring up a context menu where you can change the order in wh InstrumentFunctionNoteStackingView RANGE - BEREICH + RANGE Chord range: @@ -1587,11 +1829,11 @@ Right clicking will bring up a context menu where you can change the order in wh STACKING - + STACKING Chord: - + Akkord: @@ -1626,7 +1868,19 @@ Right clicking will bring up a context menu where you can change the order in wh NOTE - + NOTE + + + CUSTOM BASE VELOCITY + BENUTZERDEFINIERTE GRUNDLAUTSTÄRKE + + + Specify the velocity normalization base for MIDI-based instruments at note volume 100% + Geben Sie die Lautstärken-Normalisationsbasis für MIDI-basierende Instrumente bei einer Notenlautstärke von 100% an + + + BASE VELOCITY + GRUNDLAUTSTÄRKE @@ -1768,11 +2022,15 @@ Right clicking will bring up a context menu where you can change the order in wh FREQ - FREQ + FREQ cutoff frequency: - + Kennfrequenz: + + + Envelopes, LFOs and filters are not supported by the current instrument. + Hüllkurven, LFOs und Filter sind vom aktuellen Instrument nicht unterstützt. @@ -1787,7 +2045,7 @@ Right clicking will bring up a context menu where you can change the order in wh Panning - Panning + Balance Pitch @@ -1811,7 +2069,7 @@ Right clicking will bring up a context menu where you can change the order in wh Pitch range - + Tonhöhenbereich @@ -1830,11 +2088,11 @@ Right clicking will bring up a context menu where you can change the order in wh Panning - Panning + Balance Panning: - Panning: + Balance: PAN @@ -1877,11 +2135,11 @@ Right clicking will bring up a context menu where you can change the order in wh Panning - Panning + Balance Panning: - Panning: + Balance: PAN @@ -1941,11 +2199,11 @@ Right clicking will bring up a context menu where you can change the order in wh Pitch range (semitones) - + Tonhöhenbereich (Halbtöne) RANGE - BEREICH + RANGE @@ -1992,6 +2250,13 @@ Right clicking will bring up a context menu where you can change the order in wh Unbekanntes LADSPA-Plugin %1 angefordert. + + LcdSpinBox + + Please enter a new value between %1 and %2: + Bitte geben Sie einen neuen Wert zwischen %1 und %2 ein: + + LfoController @@ -2043,7 +2308,7 @@ Right clicking will bring up a context menu where you can change the order in wh todo - + Zu erledigen SPD @@ -2116,7 +2381,8 @@ Right clicking will bring up a context menu where you can change the order in wh Click here for a user-defined shape. Double click to pick a file. - + Klicken Sie hier für eine benutzerdefinierte From. +Doppelklicken Sie, um eine Datei auszuwählen. @@ -2359,23 +2625,23 @@ Bitte besuchen Sie http://lmms.sf.net/wiki für Dokumentationen über LMMS. Save as new &version - + Als neue &Version speichern E&xport tracks... - + Spuren E&xportieren… LMMS (*.mmp *.mmpz) - - - - LMMS Project (*.mmp *.mmpz);;LMMS Project Template (*.mpt) - + LMMS (*.mmp *.mmpz) Version %1 - + Version %1 + + + LMMS Project (*.mmpz *.mmp);;LMMS Project Template (*.mpt) + LMMS Projekt (*.mmpz *.mmp);;LMMS Projektvorlage (*.mpt) @@ -2491,7 +2757,11 @@ Bitte besuchen Sie http://lmms.sf.net/wiki für Dokumentationen über LMMS. Fixed output note - + Feste Ausgangnote + + + Base velocity + Grundlautstärke @@ -2592,11 +2862,11 @@ Bitte besuchen Sie http://lmms.sf.net/wiki für Dokumentationen über LMMS. Peak Controller Bug - + Peak Controller Fehler Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. - + Aufgrud eines Fehlers in einer älteren Version von LMMS, sind die Peak Controller möglicherweise nicht richtig verbunden. Bitte stellen Sie sicher, dass die Peak Controller richtig verbunden sind und speichern Sie die Datei erneut. Entschuldigung für jegliche verursachte Unannehmlichkeiten. @@ -2634,23 +2904,23 @@ Bitte besuchen Sie http://lmms.sf.net/wiki für Dokumentationen über LMMS. AMNT - + AMNT MULT - + MULT Amount Multiplicator: - + Stärkenmultiplikator: ATCK - + ATCK DCAY - + DCAY @@ -2677,11 +2947,154 @@ Bitte besuchen Sie http://lmms.sf.net/wiki für Dokumentationen über LMMS. Abs Value - + Absoluter Wert Amount Multiplicator - + Stärkenmultiplikator + + + + PianoRoll + + Cut selected notes (Ctrl+X) + Ausgewählte Noten ausschneiden (Strg+X) + + + Copy selected notes (Ctrl+C) + Ausgewählte Noten kopieren (Strg+C) + + + Paste notes from clipboard (Ctrl+V) + Noten aus Zwischenablage einfügen (Strg+V) + + + Play/pause current pattern (Space) + Aktuellen Pattern abspielen/pausieren (Leertaste) + + + Stop playing of current pattern (Space) + Abspielen des aktuellen Patterns stoppen (Leertaste) + + + Piano-Roll - %1 + Piano-Roll - %1 + + + Piano-Roll - no pattern + Piano-Roll - Kein Pattern + + + Please open a pattern by double-clicking on it! + Bitte öffnen Sie einen Pattern, indem Sie ihn doppelklicken! + + + Record notes from MIDI-device/channel-piano + Noten von MIDI-Gerät/Kanal-Klavier aufnehmen + + + Last note + Letzte Note + + + Draw mode (Shift+D) + Zeichnenmodus (Umschalt+D) + + + Erase mode (Shift+E) + Radiermodus (Umschalt+E) + + + Select mode (Shift+S) + Auswahl-Modus (Umschalt+S) + + + Record notes from MIDI-device/channel-piano while playing song or BB track + Noten vom MIDI-Gerät/Kanal-Klavier aufnehmen während der Song oder BB-Track abgespielt wird + + + Click here to play the current pattern. This is useful while editing it. The pattern is automatically looped when its end is reached. + Klicken Sie hier, um den aktuellen Pattern abzuspielen. Das ist nützlich beim Bearbeiten. Der Pattern wird automatisch wiederholt, wenn sein Ende erreicht ist. + + + Click here to record notes from a MIDI-device or the virtual test-piano of the according channel-window to the current pattern. When recording all notes you play will be written to this pattern and you can play and edit them afterwards. + Klicken Sie hier, um Noten von einem MIDI-Gerät oder dem virtuellen Test-Klavier des zugehörigen Kanal-Fensters in den aktuellen Pattern aufzunehmen. Beim Aufnehmen werden alle Noten, die Sie spielen, in diesen Pattern geschrieben und hinterher können Sie diese abspielen und bearbeiten. + + + Click here to record notes from a MIDI-device or the virtual test-piano of the according channel-window to the current pattern. When recording all notes you play will be written to this pattern and you will hear the song or BB track in the background. + Klicken Sie hier, um Noten von einem MIDI-Gerät oder dem virtuellen Test-Klavier des zugehörigen Kanal-Fensters in den aktuellen Pattern aufzunehmen. Beim Aufnehmen werden alle Noten, die Sie spielen, in diesen Pattern geschrieben und Sie werden den Song oder die BB-Spur im Hintergrund hören. + + + Click here to stop playback of current pattern. + Klicken Sie hier, um die Wiedergabe des aktuellen Patterns zu stoppen. + + + Click here and the selected notes will be cut into the clipboard. You can paste them anywhere in any pattern by clicking on the paste button. + Klicken Sie hier, um die markierten Noten in die Zwischenablage auszuschneiden. Sie können sie überall in einem beliebigen Pattern wieder einfügen, indem Sie auf den Einfügen-Button klicken. + + + Click here and the selected notes will be copied into the clipboard. You can paste them anywhere in any pattern by clicking on the paste button. + Klicken Sie hier, um die markierten Noten in die Zwischenablage zu kopieren. Sie können sie überall in einem beliebigen Pattern wieder einfügen, indem Sie auf den Einfügen-Button klicken. + + + Click here and the notes from the clipboard will be pasted at the first visible measure. + Klicken Sie hier, um die Noten aus der Zwischenablage im ersten sichtbaren Takt einzufügen. + + + Note lock + Notenraster + + + Note Volume + Noten-Lautstärke + + + Note Panning + Noten-Balance + + + Detune mode (Shift+T) + Verstimmungsmodus (Shift+T) + + + Click here and draw mode will be activated. In this mode you can add, resize and move notes. This is the default mode which is used most of the time. You can also press 'Shift+D' on your keyboard to activate this mode. In this mode, hold Ctrl to temporarily go into select mode. + Klicken Sie hier, um den Zeichnenmodus zu aktivieren. In diesem Modus können Sie Noten hinzufügen, in der Länge ändern und verschieben. Das ist der Standardmodus, der meistens benutzt wird. Sie können auch »Umschalt+D« auf Ihrer Tastatur drücken, um in diesen Modus zu gelangen. Halten Sie in diesem Modus Strg gedrückt, um vorübergehend in den Auswahlmodus zu wechslen. + + + Click here and erase mode will be activated. In this mode you can erase notes. You can also press 'Shift+E' on your keyboard to activate this mode. + Klicken Sie hier, um den Radiermodus zu aktivieren. In diesem Modus können Sie einzelne Noten löschen. Sie können auch »Umschalt+E« auf Ihrer Tastatur drücken, um diesen Modus zu aktivieren. + + + Click here and select mode will be activated. In this mode you can select notes. Alternatively, you can hold Ctrl in draw mode to temporarily use select mode. + Klicken Sie hier, um den Auswahlmodus zu aktivieren. In diesem Modus können Sie einzelne Noten auswählen. Alternativ können Sie auch Strg im Zeichnenmodus gedrückt halten, um vorrübergehend den Auswahlmodus zu benutzen. + + + Click here and detune mode will be activated. In this mode you can click a note to open its automation detuning. You can utilize this to slide notes from one to another. You can also press 'Shift+T' on your keyboard to activate this mode. + Klicken Sie hier und der Verstimmungmodus wird aktivert. In diesem Modus können Sie auf eine Note klicken, um die Automations-Verstimmung zu öffnen. Sie können diese benutzen, um von einer Note in eine andere zu rutschen. Sie können auch »Umschalt+T« auf Ihrer Tastatur drücken, um diesen Modus zu aktivieren. + + + Mark/unmark current semitone + Aktuellen Halbton markieren/demarkieren + + + Mark current scale + Aktuelle Tonleiter markieren + + + Mark current chord + Aktuellen Akkord markieren + + + Unmark all + Alles Markierungen entfernen + + + No scale + Keine Tonleiter + + + No chord + Kein Akkord @@ -2728,87 +3141,87 @@ Grund: "%2" C Note name - + C Db Note name - + Db C# Note name - + C# D Note name - + D Eb Note name - + Eb D# Note name - + D# E Note name - + E Fb Note name - + Fb Gb Note name - + Gb F# Note name - + F# G Note name - + G Ab Note name - + Ab G# Note name - + G# A Note name - + A Bb Note name - + B A# Note name - + A# B Note name - + H @@ -2857,113 +3270,259 @@ Grund: "%2" File: Datei: + + File: %1 + Datei: %1 + SampleBuffer Open audio file - Audio-Datei öffnen - - - All Audio-Files (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw *.mp3) - Alle Audio-Dateien (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw *.mp3) + Audiodatei öffnen Wave-Files (*.wav) - Wave-Dateien (*.wav) + Wave-Dateien (*.wav) OGG-Files (*.ogg) - OGG-Dateien (*.ogg) + OGG-Dateien (*.ogg) DrumSynth-Files (*.ds) - DrumSynth-Dateien (*.ds) + DrumSynth-Dateien (*.ds) FLAC-Files (*.flac) - FLAC-Dateien (*.flac) + FLAC-Dateien (*.flac) SPEEX-Files (*.spx) - SPEEX-Dateien (*.spx) - - - MP3-Files (*.mp3) - MP3-Dateien (*.mp3) + SPEEX-Dateien (*.spx) VOC-Files (*.voc) - VOC-Dateien (*.voc) + VOC-Dateien (*.voc) AIFF-Files (*.aif *.aiff) - AIFF-Dateien (*.aif *.aiff) + AIFF-Dateien (*.aif *.aiff) AU-Files (*.au) - AU-Dateien (*.au) + AU-Dateien (*.au) RAW-Files (*.raw) - RAW-Dateien (*.raw) + RAW-Dateien (*.raw) + + + All Audio-Files (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) + Alle Audiodateien (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) SampleTCOView double-click to select sample - Doppelklick, um Sample zu wählen + Doppelklick, um Sample zu wählen Delete (middle mousebutton) - Löschen (mittlere Maustaste) + Löschen (mittlere Maustaste) Cut - Ausschneiden + Ausschneiden Copy - Kopieren + Kopieren Paste - Einfügen + Einfügen Mute/unmute (<Ctrl> + middle click) - Stumm/Laut schalten (<Strg> + Mittelklick) + Stumm/Laut schalten (<Strg> + Mittelklick) Set/clear record - Aufnahme setzen/löschen + Aufnahme setzen/löschen SampleTrack Sample track - Sample-Spur + Samplespur Volume - Lautstärke + Lautstärke SampleTrackView Track volume - Lautstärke der Spur + Lautstärke der Spur Channel volume: - Kanal Lautstärke: + Kanal Lautstärke: VOL - VOL + VOL + + + + SongEditor + + Click here, if you want to stop playing of your song. The song-position-marker will be set to the start of your song. + Klicken Sie hier, wenn Sie das Abspielen des Songs stoppen wollen. Der Song-Positions-Marker wird automatisch auf den Song-Anfang zurückgesetzt. + + + Could not open file + Konnte Datei nicht öffnen + + + Could not write file + Konnte Datei nicht schreiben + + + Song-Editor + Song-Editor + + + Click here, if you want to play your whole song. Playing will be started at the song-position-marker (green). You can also move it while playing. + Klicken Sie hier, wenn Sie Ihren ganzen Song abspielen wollen. Das Abspielen wird am Song-Positions-Marker (grün) gestartet. Sie können diesen auch während des Abspielens verschieben. + + + Play song (Space) + Song abspielen (Leertaste) + + + Stop song (Space) + Abspielen des Songs stoppen (Leertaste) + + + Add beat/bassline + Beat/Bassline hinzufügen + + + Add sample-track + Sample-Spur hinzufügen + + + Draw mode + Zeichenmodus + + + Edit mode (select and move) + Editier-Modus (auswählen und verschieben) + + + Add automation-track + Automation-Spur hinzufügen + + + Record samples from Audio-device + Samples vom Audiogerät aufnehmen + + + Record samples from Audio-device while playing song or BB track + Samples vom Audiogerät während der Wiedergabe des Songs oder BB-Tracks aufnehmen + + + Could not open file %1. You probably have no permissions to read this file. + Please make sure to have at least read permissions to the file and try again. + Konnte die Datei %1 nicht öffnen. Sie sind wahrscheinlich nicht berechtigt, diese Datei zu lesen. Bitte stellen Sie sicher, dass Sie wenigstens Leserechte auf diese Datei besitzen und versuchen es erneut. + + + Error in file + Fehler in Datei + + + The file %1 seems to contain errors and therefore can't be loaded. + Die Datei %1 scheint fehlerhaft zu sein und kann daher nicht geladen werden. + + + Tempo + Tempo + + + TEMPO/BPM + TEMPO/BPM + + + tempo of song + Geschwindigkeit des Songs + + + The tempo of a song is specified in beats per minute (BPM). If you want to change the tempo of your song, change this value. Every measure has four beats, so the tempo in BPM specifies, how many measures / 4 should be played within a minute (or how many measures should be played within four minutes). + Das Tempo eines Liedes wird in Beats pro Minute (BPM) angegeben. Wenn Sie das Tempo Ihres Songs ändern wollen, ändern Sie diesen Wert. Jeder Takt hat vier Schläge (Beats); das Tempo gibt also an, wie viele Takte / 4 innerhalb einer Minute gespielt werden sollen (bzw. wie viele Takte innerhalb von vier Minuten gespielt werden sollen). + + + High quality mode + High-Quality-Modus + + + Master volume + Master-Lautstärke + + + master volume + Master-Lautstärke + + + Master pitch + Master-Tonhöhe + + + master pitch + Master-Tonhöhe + + + Value: %1% + Wert: %1% + + + Value: %1 semitones + Wert: %1 Halbtöne + + + Could not open %1 for writing. You probably are not permitted to write to this file. Please make sure you have write-access to the file and try again. + Konnte %1 nicht zum Schreiben öffnen. Sie sind wahrscheinlich nicht dazu berechtigt in diese Datei zu schreiben. Bitte stellen Sie sicher, dass Sie Schreibrechte für diese Datei haben und versuchen Sie es erneut. + + + + SpectrumAnalyzerControlDialog + + Linear spectrum + Lineares Spektrum + + + Linear Y axis + Lineare Y-Achse + + + + SpectrumAnalyzerControls + + Linear spectrum + Lineares Spektrum + + + Linear Y axis + Lineare Y-Achse + + + Channel mode + Kanalmodus @@ -3049,50 +3608,50 @@ Grund: "%2" TimeDisplayWidget click to change time units - + Klicken Sie hier, um die Zeiteinheit zu ändern TrackContainer Couldn't import file - Konnte Datei nicht importieren + Datei konnte nicht importiert werden Couldn't find a filter for importing file %1. You should convert this file into a format supported by LMMS using another software. - Es konnte kein Filter gefunden werden, um die Datei %1 zu importieren. + Es konnte kein Filter gefunden werden, um die Datei %1 zu importieren. Sie sollten diese Datei mit Hilfe anderer Software in ein von LMMS unterstützes Format umwandeln. Couldn't open file - Konnte Datei nicht öffnen + Datei konnte nicht geöffnet werden Couldn't open file %1 for reading. Please make sure you have read-permission to the file and the directory containing the file and try again! - Konnte Datei %1 nicht zum Lesen öffnen. -Bitte stellen Sie sicher, dass Sie Lese-Rechte auf diese Datei sowie das Verzeichnis besitzen und probieren es erneut! + Datei %1 konnte nicht zum Lesen geöffnet werden. +Bitte stellen Sie sicher, dass Sie Leserechte auf diese Datei sowie das Verzeichnis besitzen und probieren es erneut! Loading project... - Lade Projekt... + Lade Projekt… Cancel - Abbrechen + Abbrechen Please wait... - Bitte warten... + Bitte warten… Importing MIDI-file... - Importiere MIDI-Datei... + Importiere MIDI-Datei… Importing FLP-file... - Importiere FLP-Datei... + Importiere FLP-Datei… @@ -3242,22 +3801,22 @@ Bitte stellen Sie sicher, dass Sie Lese-Rechte auf diese Datei sowie das Verzeic Ui Contributors ordered by number of commits: - + Mitwirkende sortiert nach der Anzahl an Einreichungen: Involved - + Beteiligt VersionedSaveDialog Increment version number - + Versionsnummer erhöhen Decrement version number - + Versionsnummer vermindern @@ -3344,11 +3903,11 @@ Bitte stellen Sie sicher, dass Sie Lese-Rechte auf diese Datei sowie das Verzeic by - + von - VST plugin control - + - VST Plugin Controller @@ -3395,15 +3954,15 @@ Bitte stellen Sie sicher, dass Sie Lese-Rechte auf diese Datei sowie das Verzeic Show/hide - + Anzeigen/ausblenden Effect by: - + Effekt von: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> - + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> @@ -3412,20 +3971,6 @@ Bitte stellen Sie sicher, dass Sie Lese-Rechte auf diese Datei sowie das Verzeic Loading plugin Lade Plugin - - Please wait while loading VST-plugin... - Bitte warten, während das VST-Plugin geladen wird... - - - Failed loading VST-plugin - Laden des VST-Plugins fehlgeschlagen - - - The VST-plugin %1 could not be loaded for some reason. -If it runs with other VST-software under Linux, please contact an LMMS-developer! - Das VST-Plugin %1 konnte aus irgendeinem Grund nicht geladen werden. -Wenn es mit anderer VST-Software unter Linux funktioniert, kontaktieren Sie bitte einen LMMS-Entwickler! - Open Preset Preset öffnen @@ -3436,15 +3981,15 @@ Wenn es mit anderer VST-Software unter Linux funktioniert, kontaktieren Sie bitt : default - + : Standard " - + " ' - + ' Save Preset @@ -3466,6 +4011,18 @@ Wenn es mit anderer VST-Software unter Linux funktioniert, kontaktieren Sie bitt .fxb .fxb + + Please wait while loading VST plugin... + Bitte warten, während das VST-Plugin geladen wird… + + + Failed loading VST plugin + Laden des VST-Plugins fehlgeschlagen + + + The VST plugin %1 could not be loaded for some reason. + Das VST-Plugin %1 konnte aus irgend einem Grund nicht geladen werden. + ZynAddSubFxInstrument @@ -3487,7 +4044,7 @@ Wenn es mit anderer VST-Software unter Linux funktioniert, kontaktieren Sie bitt FM Gain - + FM-Verstärkung Resonance Center Frequency @@ -3546,11 +4103,11 @@ Wenn es mit anderer VST-Software unter Linux funktioniert, kontaktieren Sie bitt FM Gain: - + FM-Verstärkung: FM GAIN - + FM GAIN Resonance center frequency: @@ -3558,7 +4115,7 @@ Wenn es mit anderer VST-Software unter Linux funktioniert, kontaktieren Sie bitt RES CF - + RES CF Resonance bandwidth: @@ -3566,7 +4123,7 @@ Wenn es mit anderer VST-Software unter Linux funktioniert, kontaktieren Sie bitt RES BW - + RES BW Forward MIDI Control Changes @@ -3591,56 +4148,14 @@ Wenn es mit anderer VST-Software unter Linux funktioniert, kontaktieren Sie bitt Reverse sample Sample umkehren + + Stutter + Stottern + Loop Wiederholen - - Stutter - - - - - bassBoosterControlDialog - - FREQ - FREQ - - - Frequency: - Frequenz: - - - GAIN - GAIN - - - Gain: - Gain: - - - RATIO - RATE - - - Ratio: - Rate: - - - - bassBoosterControls - - Frequency - Frequenz - - - Gain - Gain - - - Ratio - Rate - bbEditor @@ -3674,11 +4189,11 @@ Wenn es mit anderer VST-Software unter Linux funktioniert, kontaktieren Sie bitt Remove steps - Steps entfernen + Schritte entfernen Add steps - Steps hinzufügen + Schritte hinzufügen @@ -3793,6 +4308,120 @@ Wenn es mit anderer VST-Software unter Linux funktioniert, kontaktieren Sie bitt Klick für eine benutzerdefinierte Wellenform. + + dynProcControlDialog + + INPUT + INPUT + + + Input gain: + Eingangsverstärkung: + + + OUTPUT + OUTPUT + + + Output gain: + Ausgabeverstärkung: + + + ATTACK + ATTACK + + + Peak attack time: + Spitzen Anschwellzeit: + + + RELEASE + RELEASE + + + Peak release time: + Spitzen Ausklingzeit: + + + Reset waveform + Wellenform zurücksetzen + + + Click here to reset the wavegraph back to default + Klicken Sie hier, um den Wellengraph zum Standard zurückzusetzen + + + Smooth waveform + Wellenform glätten + + + Click here to apply smoothing to wavegraph + Klicken Sie hier, um den Wellengraph zu glätten + + + Increase wavegraph amplitude by 1dB + Die Amplitude des Wellengraphs um 1dB erhöhen + + + Click here to increase wavegraph amplitude by 1dB + Klicken Sie hier, um die Amplitude des Wellengraphs um 1dB zu erhöhen + + + Decrease wavegraph amplitude by 1dB + Die Amplitude des Wellengraphs um 1dB vermindern + + + Click here to decrease wavegraph amplitude by 1dB + Klicken Sie hier, um die Amplitude des Wellengraphs um 1dB zu vermindern + + + Stereomode Maximum + Stereomodus Maximum + + + Process based on the maximum of both stereo channels + Basierend auf dem Maximum beider Stereokanäle verarbeiten + + + Stereomode Average + Stereomodus Durchschnitt + + + Process based on the average of both stereo channels + Basierend auf dem Durchschnitt beider Stereokanäle verarbeiten + + + Stereomode Unlinked + Stereomodus Unverknüpft + + + Process each stereo channel independently + Jeden Stereokanal unabhängig verarbeiten + + + + dynProcControls + + Input gain + Eingangsverstärkung + + + Output gain + Ausgabeverstärkung + + + Attack time + Anschwellzeit + + + Release time + Ausklingzeit + + + Stereo mode + Stereomodus + + exportProjectDialog @@ -3826,7 +4455,7 @@ Bitte stellen Sie sicher, dass Sie Schreibrechte auf diese Datei und das Verzeic fader Please enter a new value between %1 and %2: - Bitte geben Sie einen neuen Wert zwischen %1 und %2 ein: + Bitte geben Sie einen neuen Wert zwischen %1 und %2 ein: @@ -3856,7 +4485,7 @@ Bitte stellen Sie sicher, dass Sie Schreibrechte auf diese Datei und das Verzeic Please wait, loading sample for preview... - Bitte warten, lade Sample für Vorschau... + Bitte warten, lade Sample für Vorschau… --- Factory files --- @@ -3880,6 +4509,10 @@ Bitte stellen Sie sicher, dass Sie Schreibrechte auf diese Datei und das Verzeic End frequency Endfrequenz + + Gain + Gain + Decay Abfallzeit @@ -3888,10 +4521,6 @@ Bitte stellen Sie sicher, dass Sie Schreibrechte auf diese Datei und das Verzeic Distortion Verzerrung - - Gain - Gain - kickerInstrumentView @@ -3903,18 +4532,18 @@ Bitte stellen Sie sicher, dass Sie Schreibrechte auf diese Datei und das Verzeic End frequency: Endfrequenz: + + Gain: + Gain: + Decay: - Abfallzeit (decay): + Abfallzeit: Distortion: Verzerrung: - - Gain: - Gain: - knob @@ -3967,7 +4596,19 @@ Analysis Tools are plugins for which only input channels were identified. Don't Knows are plugins for which no input or output channels were identified. Double clicking any of the plugins will bring up information on the ports. - + Dieser Dialog zeigt Informationen zu allen LADSPA Plugins an, dieLMMS gefunden hat. Die Plugins werden in fünf Kategorien eingeteilt, basierend auf der Interpretation der Porttypen und Namen. + +Verfügbare Effekte sind die, die von LMMS benutzt werden können. Um in LMMS einen Effekt benutzen zu können, muss er vor allem ein Effekt sein, was bedeutet, dass er beides, Eingabe- und Ausgabekanäle, haben muss. LMMS identifiziert Eingabekanäle als einen Audioport, der »in« im Namen enthält. Ausgabekanäle werden durch die Buchstaben »out« identifizert. Des weiteren muss der Effekt die gleiche Anzahl an Ein- und Ausgängen besitzen und muss echtzeitfähig sein. + +Nicht verfügbare Effekte sind die, die als Effekt identifiziert wurden, aber entweder nicht die gleiche Anzahl an Ein- und Ausgabekanälen besizen oder nicht echtzeitfähig sind. + +Instrumente sind Plugins, für die nur Ausgabekanäle identifiziert wurden. + +Analysewerkzeuge sind Plugins, für die nur Eingabekanäle identifiziert wurden. + +Weiß nicht sind Plugins, für die kein Ein- oder Ausgabekanal identifiziert wurde. + +Doppelklicken auf eines der Plugins zeigt Informaitonen über die Ports an. Type: @@ -4080,7 +4721,7 @@ Double clicking any of the plugins will bring up information on the ports. Dead - + Stumpf Slide Decay @@ -4230,7 +4871,7 @@ Double clicking any of the plugins will bring up information on the ports. Dead - + Stumpf 24dB/oct Filter @@ -4570,23 +5211,23 @@ Double clicking any of the plugins will bring up information on the ports. - VST parameter control - + - VST Parameter Controller Automated - + Automatisiert Click here if you want to display automated parameters only. - + Klicken Sie hier, wenn Sie nur automatisierte Parameter anzeigen möchten. Close - + Schließen Close VST effect knob-controller window. - + VST Effekt Knopf-Controllerfenster schließen. @@ -4601,23 +5242,23 @@ Double clicking any of the plugins will bring up information on the ports. - VST plugin control - + - VST Plugin Controller Automated - + Automatisiert Click here if you want to display automated parameters only. - + Klicken Sie hier, wenn Sie nur automatisierte Parameter anzeigen möchten. Close - + Schließen Close VST plugin knob-controller window. - + VST Effekt Knopf-Controllerfenster schließen. @@ -4631,39 +5272,39 @@ Double clicking any of the plugins will bring up information on the ports.opl2instrument Patch - Patch + Patch Op 1 Attack - + Op 1 Anschwellzeit Op 1 Decay - + Op 1-Abfallzeit Op 1 Sustain - + Op 1 Dauerpegel Op 1 Release - + Op 1 Ausklingzeit Op 1 Level - + Op 1 Strärke Op 1 Level Scaling - + Op 1 Stärkenskalierung Op 1 Frequency Multiple - + Op 1 Frequenzmultiplikator Op 1 Feedback - + Op 1 Rückkopplung Op 1 Key Scaling Rate @@ -4675,43 +5316,43 @@ Double clicking any of the plugins will bring up information on the ports. Op 1 Tremolo - + Op 1 Tremolo Op 1 Vibrato - + Op 1 Vibrato Op 1 Waveform - + Op 1 Wellenform Op 2 Attack - + Op 2 Anschwellzeit Op 2 Decay - + Op 2-Abfallzeit Op 2 Sustain - + Op 2 Dauerpegel Op 2 Release - + Op 2 Ausklingzeit Op 2 Level - + Op 2 Strärke Op 2 Level Scaling - + Op 2 Stärkenskalierung Op 2 Frequency Multiple - + Op 2 Frequenzmultiplikator Op 2 Key Scaling Rate @@ -4723,27 +5364,27 @@ Double clicking any of the plugins will bring up information on the ports. Op 2 Tremolo - + Op 2 Tremolo Op 2 Vibrato - + Op 2 Vibrato Op 2 Waveform - + Op 2 Wellenform FM - + FM Vibrato Depth - + Vibrato-Tiefe Tremolo Depth - + Tremolo-Tiefe @@ -4775,10 +5416,6 @@ Double clicking any of the plugins will bring up information on the ports.Osc %1 panning: Oszillator %1 Balance: - - Osc %1 fine detuning left: - Oszillator %1 Fein-Verstimmung links: - cents Cent @@ -4791,16 +5428,20 @@ Double clicking any of the plugins will bring up information on the ports.Volume: Lautstärke: + + Osc %1 fine detuning left: + Oszillator %1 Fein-Verstimmung links: + papuInstrument Sweep time - + Streichzeit Sweep direction - + Streichrichtung Sweep RtShift amount @@ -4812,67 +5453,67 @@ Double clicking any of the plugins will bring up information on the ports. Channel 1 volume - + Kanal 1 Lautstärke Volume sweep direction - + Lautstärken-Streichrichtung Length of each step in sweep - + Länge jedes Schritts beim Streichen Channel 2 volume - + Kanal 2 Lautstärke Channel 3 volume - + Kanal 3 Lautstärke Channel 4 volume - + Kanal 4 Lautstärke Right Output level - + Rechter Ausgabelevel Left Output level - + Linker Ausgabelevel Channel 1 to SO2 (Left) - + Kanal 1 zu SO2 (Links) Channel 2 to SO2 (Left) - + Kanal 2 zu SO2 (Links) Channel 3 to SO2 (Left) - + Kanal 3 zu SO2 (Links) Channel 4 to SO2 (Left) - + Kanal 4 zu SO2 (Links) Channel 1 to SO1 (Right) - + Kanal 1 zu SO1 (Rechts) Channel 2 to SO1 (Right) - + Kanal 2 zu SO1 (Rechts) Channel 3 to SO1 (Right) - + Kanal 3 zu SO1 (Rechts) Channel 4 to SO1 (Right) - + Kanal 4 zu SO1 (Rechts) Treble @@ -4880,22 +5521,22 @@ Double clicking any of the plugins will bring up information on the ports. Bass - + Bass Shift Register width - + Schieberegister-Breite papuInstrumentView Sweep Time: - + Streichzeit: Sweep Time - + Streichzeit Sweep RtShift amount: @@ -4915,15 +5556,15 @@ Double clicking any of the plugins will bring up information on the ports. Square Channel 1 Volume: - + Quadratkanal 1 Lautstärke: Length of each step in sweep: - + Länge jedes Schritts beim Streichen: Length of each step in sweep - + Länge jedes Schritts beim Streichen Wave pattern duty @@ -4931,43 +5572,43 @@ Double clicking any of the plugins will bring up information on the ports. Square Channel 2 Volume: - + Quadratkanal 2 Lautstärke: Square Channel 2 Volume - + Quadratkanal 2 Lautstärke Wave Channel Volume: - + Wellenkanal Lautstärke: Wave Channel Volume - + Wellenkanal Lautstärke Noise Channel Volume: - + Rauschkanal Lautstärke: Noise Channel Volume - + Rauschkanal Lautstärke SO1 Volume (Right): - + SO1 Lautstärke (Rechts): SO1 Volume (Right) - + SO1 Lautstärke (Rechts) SO2 Volume (Left): - + SO2 Lautstärke (Links): SO2 Volume (Left) - + SO2 Lautstärke (Links) Treble: @@ -4979,67 +5620,67 @@ Double clicking any of the plugins will bring up information on the ports. Bass: - + Bass: Bass - + Bass Sweep Direction - + Streichrichtung Volume Sweep Direction - + Lautstärken-Streichrichtung Shift Register Width - + Schieberegister-Breite Channel1 to SO1 (Right) - + Kanal1 zu SO1 (Rechts) Channel2 to SO1 (Right) - + Kanal2 zu SO1 (Rechts) Channel3 to SO1 (Right) - + Kanal3 zu SO1 (Rechts) Channel4 to SO1 (Right) - + Kanal4 zu SO1 (Rechts) Channel1 to SO2 (Left) - + Kanal1 zu SO2 (Links) Channel2 to SO2 (Left) - + Kanal2 zu SO2 (Links) Channel3 to SO2 (Left) - + Kanal3 zu SO2 (Links) Channel4 to SO2 (Left) - + Kanal4 zu SO2 (Links) Wave Pattern - + Wellenmuster The amount of increase or decrease in frequency - + Die Menge an Erhöhung oder Verminderung in der Frequenz The rate at which increase or decrease in frequency occurs - + Die Rate, mit der Erhöhung oder Verminderung in der Frequenz geschieht The duty cycle is the ratio of the duration (time) that a signal is ON versus the total period of the signal. @@ -5047,37 +5688,15 @@ Double clicking any of the plugins will bring up information on the ports. Square Channel 1 Volume - + Quadratkanal 1 Lautstärke The delay between step change - + Die Verzögerung zwischen Schrittänderung Draw the wave here - - - - - pattern - - Cannot freeze pattern - Kann Pattern nicht einfrieren - - - The pattern currently cannot be freezed because you're in play-mode. Please stop and try again! - Der Pattern kann derzeit nicht eingefroren werden, da Sie sich im Abspiel-Modus befinden. Bitte stoppen Sie und versuchen es erneut! - - - - patternFreezeStatusDialog - - Freezing pattern... - Friere Pattern ein... - - - Cancel - Abbrechen + Die Welle hier zeichnen @@ -5086,7 +5705,7 @@ Double clicking any of the plugins will bring up information on the ports.double-click to open this pattern in piano-roll use mouse wheel to set volume of a step Doppelklick, um diesen Pattern im Piano-Roll zu öffnen -Lautstärke eines Steps kann mit Mausrad geändert werden +Lautstärke eines Schritts kann mit Mausrad geändert werden Open in piano-roll @@ -5104,168 +5723,13 @@ Lautstärke eines Steps kann mit Mausrad geändert werden Change name Name ändern - - Refreeze - Erneut einfrieren - - - Freeze - Einfrieren - - - Unfreeze - Ausfrieren - Add steps - Steps hinzufügen + Schritte hinzufügen Remove steps - Steps entfernen - - - - PianoRoll - - Cut selected notes (Ctrl+X) - Ausgewählte Noten ausschneiden (Strg+X) - - - Copy selected notes (Ctrl+C) - Ausgewählte Noten kopieren (Strg+C) - - - Paste notes from clipboard (Ctrl+V) - Noten aus Zwischenablage einfügen (Strg+V) - - - Play/pause current pattern (Space) - Aktuellen Pattern abspielen/pausieren (Leertaste) - - - Stop playing of current pattern (Space) - Abspielen des aktuellen Patterns stoppen (Leertaste) - - - Piano-Roll - %1 - Piano-Roll - %1 - - - Piano-Roll - no pattern - Piano-Roll - Kein Pattern - - - Please open a pattern by double-clicking on it! - Bitte öffnen Sie einen Pattern, indem Sie ihn doppelklicken! - - - Record notes from MIDI-device/channel-piano - Noten von MIDI-Gerät/Kanal-Klavier aufnehmen - - - Last note - Letzte Note - - - Draw mode (Shift+D) - Zeichnen-Modus (Umschalt+D) - - - Erase mode (Shift+E) - Radier-Modus (Umschalt+E) - - - Select mode (Shift+S) - Auswahl-Modus (Umschalt+S) - - - Record notes from MIDI-device/channel-piano while playing song or BB track - Noten vom MIDI-Gerät/Kanal-Klavier aufnehmen während der Song oder BB-Track abgespielt wird - - - Click here to play the current pattern. This is useful while editing it. The pattern is automatically looped when its end is reached. - Klicken Sie hier, um den aktuellen Pattern abzuspielen. Das ist nützlich beim Bearbeiten. Der Pattern wird automatisch wiederholt, wenn sein Ende erreicht ist. - - - Click here to record notes from a MIDI-device or the virtual test-piano of the according channel-window to the current pattern. When recording all notes you play will be written to this pattern and you can play and edit them afterwards. - Klicken Sie hier, um Noten von einem MIDI-Gerät oder dem virtuellen Test-Klavier des zugehörigen Kanal-Fensters in den aktuellen Pattern aufzunehmen. Beim Aufnehmen werden alle Noten, die Sie spielen, in diesen Pattern geschrieben und hinterher können Sie diese abspielen und bearbeiten. - - - Click here to record notes from a MIDI-device or the virtual test-piano of the according channel-window to the current pattern. When recording all notes you play will be written to this pattern and you will hear the song or BB track in the background. - - - - Click here to stop playback of current pattern. - Klicken Sie hier, um die Wiedergabe des aktuellen Patterns zu stoppen. - - - Click here and the selected notes will be cut into the clipboard. You can paste them anywhere in any pattern by clicking on the paste button. - Klicken Sie hier, um die markierten Noten in die Zwischenablage auszuschneiden. Sie können sie überall in einem beliebigen Pattern wieder einfügen, indem Sie auf den Einfügen-Button klicken. - - - Click here and the selected notes will be copied into the clipboard. You can paste them anywhere in any pattern by clicking on the paste button. - Klicken Sie hier, um die markierten Noten in die Zwischenablage zu kopieren. Sie können sie überall in einem beliebigen Pattern wieder einfügen, indem Sie auf den Einfügen-Button klicken. - - - Click here and the notes from the clipboard will be pasted at the first visible measure. - Klicken Sie hier, um die Noten aus der Zwischenablage im ersten sichtbaren Takt einzufügen. - - - Note lock - - - - Note Volume - Noten-lautstärke - - - Note Panning - - - - Detune mode (Shift+T) - Verstimmungsmodus (Shift+T) - - - Click here and draw mode will be activated. In this mode you can add, resize and move notes. This is the default mode which is used most of the time. You can also press 'Shift+D' on your keyboard to activate this mode. In this mode, hold Ctrl to temporarily go into select mode. - - - - Click here and erase mode will be activated. In this mode you can erase notes. You can also press 'Shift+E' on your keyboard to activate this mode. - - - - Click here and select mode will be activated. In this mode you can select notes. Alternatively, you can hold Ctrl in draw mode to temporarily use select mode. - - - - Click here and detune mode will be activated. In this mode you can click a note to open its automation detuning. You can utilize this to slide notes from one to another. You can also press 'Shift+T' on your keyboard to activate this mode. - - - - Mark/unmark current semitone - Aktuellen Halbton markieren/demarkieren - - - Mark current scale - Aktuelle Tonleite markieren - - - Mark current chord - Aktuellen Akkord markieren - - - Unmark all - Alles Markierungen entfernen - - - No scale - Keine Tonleiter - - - No chord - Kein Akkord + Schritte entfernen @@ -5274,10 +5738,6 @@ Lautstärke eines Steps kann mit Mausrad geändert werden Instrument plugins Instrument-Plugins - - three powerful oscillators you can modulate in several ways - Drei leistungsfähige Oszillatoren, die Sie auf verschiedene Art und Weise modulieren können - VST-host for using VST(i)-plugins within LMMS VST-Host zum Benutzen von VST(i)-Plugins innerhalb von LMMS @@ -5298,10 +5758,6 @@ Lautstärke eines Steps kann mit Mausrad geändert werden Filter for importing MIDI-files into LMMS Filter, um MIDI-Dateien in LMMS zu importieren - - simple sampler with various settings for using samples (e.g. drums) in an instrument-track - Einfacher Sampler mit verschiedenen Einstellungen zur Nutzung von Samples (z.B. Drums) in einer Instrument-Spur - Filter for importing FL Studio projects into LMMS Filter für Import von FL Studio Projekten in LMMS @@ -5314,18 +5770,10 @@ Lautstärke eines Steps kann mit Mausrad geändert werden plugin for using arbitrary LADSPA-effects inside LMMS. Plugin, um beliebige LADSPA-Effekte in LMMS nutzen zu können. - - plugin for using arbitrary VST-effects inside LMMS. - Plugin um beliebige VST-Effekte in LMMS nutzen zu können. - Incomplete monophonic imitation tb303 Unvollständiger monophonischer TB303-Klon - - versatile kick- & bassdrum-synthesizer - Vielfältiger Kick- & Bassdrum-Synthesizer - GUS-compatible patch instrument GUS-kompatibles Patch-Instrument @@ -5338,10 +5786,6 @@ Lautstärke eines Steps kann mit Mausrad geändert werden List installed LADSPA plugins Installierte LADSPA-Plugins auflisten - - plugin for boosting bass - Plugin zur Bass-Verstärkung - Plugin for freely manipulating stereo output Plugin zur freien Manipulation der Stereoausgabe @@ -5382,15 +5826,51 @@ Dieser Chip wurde in Commodore 64 Computern genutzt. 2-operator FM Synth - + 2-Operator FM-Synth Filter for importing Hydrogen files into LMMS - + Filter zum importieren von Hydrogendateien in LMMS LMMS port of sfxr - + LMMS-Portierung von sfxr + + + plugin for processing dynamics in a flexible way + Ein Plugin, um Dynamik auf Flexible Weise zu verarbeiten + + + A native amplifier plugin + Ein natives Verstärker-Plugin + + + Graphical spectrum analyzer plugin + Graphisches Spektrumanalyzer Plugin + + + Boost your bass the fast and simple way + Verstärken Sie Ihren Bass auf schnellen und einfachen Wege + + + plugin for waveshaping + Plugin für Wellenformen + + + plugin for using arbitrary VST effects inside LMMS. + Plugin um beliebige VST-Effekte in LMMS zu benutzen. + + + Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + Einfacher Sampler mit verschiedenen Einstellungen zum Benutzen von Samples (z.B. Trommeln) in einer Instrumentenspur + + + Three powerful oscillators you can modulate in several ways + Drei mächtige Oszillatoren, die Sie auf mehrere Arten modulieren können + + + Versatile kick- & bassdrum-synthesizer + Vielseitiger Kick- & Bassdrum-Synthesizer @@ -5701,23 +6181,23 @@ Latenz: %2 ms Sync VST plugins to host playback - + VST Plugins mit der Host-Wiedergabe synchronisieren Enable note labels in piano roll - + Notenbeschriftung in Piano-Roll aktivieren Enable waveform display by default - + Wellenform standardmäßig anzeigen Enable auto save feature - + Automatisches Speichern aktivieren Show playback cursor in AudioFileProcessor - + Wiedergabe-Courser im AudioFileProcessor anzeigen @@ -5760,7 +6240,7 @@ Latenz: %2 ms Chorus Lines - + Chorus/Anzahl Chorus Level @@ -5831,7 +6311,7 @@ Latenz: %2 ms Chorus Lines: - + Chorus/Anzahl: Chorus Level: @@ -5854,7 +6334,7 @@ Latenz: %2 ms sfxrInstrument Wave Form - + Wellenform @@ -5976,19 +6456,19 @@ Latenz: %2 ms Attack rate determines how rapidly the output of Voice %1 rises from zero to peak amplitude. - + Anschwellzeit gibt an, wie schnell die Ausgabe von Stimme %1 von Null zur Spitzenamplitude anschwellt. Decay rate determines how rapidly the output falls from the peak amplitude to the selected Sustain level. - + Abfallzeit gibt an, wie schnell die Ausgabe von der Spitzenamplitude bis zum ausgewählten Dauerpegel fällt. Output of Voice %1 will remain at the selected Sustain amplitude as long as the note is held. - + Die Ausgabe von Stimme %1 wird solange bei dem ausgewählten Dauerpegel verbleiben, wie die Note gehalten wird. The output of of Voice %1 will fall from Sustain amplitude to zero amplitude at the selected Release rate. - + Die Ausgabe von Stimme %1 wird vom Dauerpegel mit der ausgewählten Ausklingzeit auf Null abfallen. The Pulse Width resolution allows the width to be smoothly swept with no discernable stepping. The Pulse waveform on Oscillator %1 must be selected to have any audible effect. @@ -5996,27 +6476,27 @@ Latenz: %2 ms The Coarse detuning allows to detune Voice %1 one octave up or down. - + Die Grob-Verstimmung ermöglicht es die Stimme %1 um eine Oktave nach oben oder unten zu verstimmen. Sync synchronizes the fundamental frequency of Oscillator %1 with the fundamental frequency of Oscillator %2 producing "Hard Sync" effects. - + Sync synchronisiert die Grundfrequenz von Oszillator %1 mit der Grundfrequenz von Oszillator %2, was einen "Hard Sync" Effekt hervorruft. Ring-mod replaces the Triangle Waveform output of Oscillator %1 with a "Ring Modulated" combination of Oscillators %1 and %2. - + Ringmodus ersetzt die Dreiecks-Wellenfrom-Ausgabe von Oszillator %1 mit einer ringmodulierten Kombination der Oszillatoren %1 und %2. When Filtered is on, Voice %1 will be processed through the Filter. When Filtered is off, Voice %1 appears directly at the output, and the Filter has no effect on it. - + Wenn gefilter an ist, wird Stimme %1 durch den Filter verarbeitet. Wenn gefiltert aus ist, wird Stimme %1 direckt an die Ausgabe weitergeleitet und der Filter hat keine Auswirkung darauf. Test - + Test Test, when set, resets and locks Oscillator %1 at zero until Test is turned off. - + Test, wenn aktiviert, wird Oszillator %1 zurückgesetzt und auf Null gesperrt, bis Test ausgeschaltet wird. @@ -6083,157 +6563,11 @@ Latenz: %2 ms Hydrogen projects - + Hydrogen-Projekte Select directory for writing exported tracks... - - - - - SongEditor - - Click here, if you want to stop playing of your song. The song-position-marker will be set to the start of your song. - Klicken Sie hier, wenn Sie das Abspielen des Songs stoppen wollen. Der Song-Positions-Marker wird automatisch auf den Song-Anfang zurückgesetzt. - - - Could not open file - Konnte Datei nicht öffnen - - - Could not write file - Konnte Datei nicht schreiben - - - Song-Editor - Song-Editor - - - Click here, if you want to play your whole song. Playing will be started at the song-position-marker (green). You can also move it while playing. - Klicken Sie hier, wenn Sie Ihren ganzen Song abspielen wollen. Das Abspielen wird am Song-Positions-Marker (grün) gestartet. Sie können diesen auch während des Abspielens verschieben. - - - Play song (Space) - Song abspielen (Leertaste) - - - Stop song (Space) - Abspielen des Songs stoppen (Leertaste) - - - Add beat/bassline - Beat/Bassline hinzufügen - - - Add sample-track - Sample-Spur hinzufügen - - - Draw mode - Zeichen-Modus - - - Edit mode (select and move) - Editier-Modus (auswählen und verschieben) - - - Add automation-track - Automation-Spur hinzufügen - - - Record samples from Audio-device - Samples vom Audiogerät aufnehmen - - - Record samples from Audio-device while playing song or BB track - Samples vom Audiogerät während der Wiedergabe des Songs oder BB-Tracks aufnehmen - - - Could not open file %1. You probably have no permissions to read this file. - Please make sure to have at least read permissions to the file and try again. - Konnte die Datei %1 nicht öffnen. Sie sind wahrscheinlich nicht berechtigt, diese Datei zu lesen. Bitte stellen Sie sicher, dass Sie wenigstens Leserechte auf diese Datei besitzen und versuchen es erneut. - - - Error in file - Fehler in Datei - - - The file %1 seems to contain errors and therefore can't be loaded. - Die Datei %1 scheint fehlerhaft zu sein und kann daher nicht geladen werden. - - - Tempo - Tempo - - - TEMPO/BPM - TEMPO/BPM - - - tempo of song - Geschwindigkeit des Songs - - - The tempo of a song is specified in beats per minute (BPM). If you want to change the tempo of your song, change this value. Every measure has four beats, so the tempo in BPM specifies, how many measures / 4 should be played within a minute (or how many measures should be played within four minutes). - Das Tempo eines Liedes wird in Beats pro Minute (BPM) angegeben. Wenn Sie das Tempo Ihres Songs ändern wollen, ändern Sie diesen Wert. Jeder Takt hat vier Schläge (Beats); das Tempo gibt also an, wie viele Takte / 4 innerhalb einer Minute gespielt werden sollen (bzw. wie viele Takte innerhalb von vier Minuten gespielt werden sollen). - - - High quality mode - High-Quality-Modus - - - Master volume - Master-Lautstärke - - - master volume - Master-Lautstärke - - - Master pitch - Master-Tonhöhe - - - master pitch - Master-Tonhöhe - - - Value: %1% - Wert: %1% - - - Value: %1 semitones - Wert: %1 Halbtöne - - - Could not open %1 for writing. You probably are not permitted to write to this file. Please make sure you have write-access to the file and try again. - - - - - spectrumAnalyzerControlDialog - - Linear spectrum - Lineares Spektrum - - - Linear Y axis - Lineare Y-Achse - - - - spectrumAnalyzerControls - - Linear spectrum - Lineares Spektrum - - - Linear Y-axis - Lineare Y-Axe - - - Channel mode - Kanalmodus + Wählen Sie einen Ordner zum schreiben der exportierten Spuren aus… @@ -6320,11 +6654,11 @@ Latenz: %2 ms Press <Ctrl> to disable magnetic loop points. - + Drücken Sie <Strg>, um magnetische Loop-Punkte zu deaktivieren. Hold <Shift> to move the begin loop point; Press <Ctrl> to disable magnetic loop points. - + Halten Sie <Umschalt>, um den Anfangs-Loop-Punkt zu verschieben; Drücken Sie <Strg>, um magnetische Loop-Punkte zu deaktivieren. @@ -6441,7 +6775,7 @@ Wenn es mit anderer VST-software unter Linux funktioniert, kontaktieren Sie bitt Please wait while loading VST-plugin... - Bitte warten, während das VST-Plugin geladen wird... + Bitte warten, während das VST-Plugin geladen wird… @@ -6464,7 +6798,7 @@ Wenn es mit anderer VST-software unter Linux funktioniert, kontaktieren Sie bitt Pan %1 - + Balance %1 Detune %1 @@ -6753,7 +7087,77 @@ Die LED rechts unterhalb der Wellenform gibt an, ob die Saite aktiviert ist. Voice %1 test - + Stimme %1 Test + + + + waveShaperControlDialog + + INPUT + INPUT + + + Input gain: + Eingangsverstärkung: + + + OUTPUT + OUTPUT + + + Output gain: + Ausgabeverstärkung: + + + Reset waveform + Wellenform zurücksetzen + + + Click here to reset the wavegraph back to default + Klicken Sie hier, um den Wellengraph zum Standard zurückzusetzen + + + Smooth waveform + Wellenform glätten + + + Click here to apply smoothing to wavegraph + Klicken Sie hier, um den Wellengraph zu glätten + + + Increase graph amplitude by 1dB + Die Amplitude des Wellengraphs um 1dB erhöhen + + + Click here to increase wavegraph amplitude by 1dB + Klicken Sie hier, um die Amplitude des Wellengraphs um 1dB zu erhöhen + + + Decrease graph amplitude by 1dB + Die Amplitude des Wellengraphs um 1dB vermindern + + + Click here to decrease wavegraph amplitude by 1dB + Klicken Sie hier, um die Amplitude des Wellengraphs um 1dB zu vermindern + + + Clip input + Eingang begrenzen + + + Clip input signal to 0dB + Eingangssignal auf 0dB begrenzen + + + + waveShaperControls + + Input gain + Eingangsverstärkung + + + Output gain + Ausgabeverstärkung From 91519898d0a43c5ec0c82c13461b249b1d7525cf Mon Sep 17 00:00:00 2001 From: sarahkeefe Date: Wed, 11 Jun 2014 13:21:01 -0400 Subject: [PATCH 11/12] Replacing includes with to fix compile issue on OS X --- include/RemotePlugin.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/RemotePlugin.h b/include/RemotePlugin.h index edf09efbe..c2a37e437 100644 --- a/include/RemotePlugin.h +++ b/include/RemotePlugin.h @@ -52,7 +52,7 @@ #include #endif -#include +#include #if QT_VERSION >= 0x040400 #include @@ -75,7 +75,7 @@ #ifdef USE_QT_SHMEM -#include +#include #if QT_VERSION >= 0x040400 #include From 940fb0d3d523cbec38225cdd855179a6cfe3f144 Mon Sep 17 00:00:00 2001 From: sarahkeefe Date: Wed, 11 Jun 2014 17:16:28 -0400 Subject: [PATCH 12/12] Updating include to QtCore/QtGlobal --- include/RemotePlugin.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/RemotePlugin.h b/include/RemotePlugin.h index c2a37e437..40eb78632 100644 --- a/include/RemotePlugin.h +++ b/include/RemotePlugin.h @@ -52,7 +52,7 @@ #include #endif -#include +#include #if QT_VERSION >= 0x040400 #include @@ -75,7 +75,7 @@ #ifdef USE_QT_SHMEM -#include +#include #if QT_VERSION >= 0x040400 #include