Hello community,

here is the log from the commit of package buzztrax for openSUSE:Factory 
checked in at 2019-12-21 12:30:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/buzztrax (Old)
 and      /work/SRC/openSUSE:Factory/.buzztrax.new.6675 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "buzztrax"

Sat Dec 21 12:30:31 2019 rev:17 rq:758178 version:0.10.2+git20191209

Changes:
--------
--- /work/SRC/openSUSE:Factory/buzztrax/buzztrax.changes        2019-11-27 
13:54:35.588318539 +0100
+++ /work/SRC/openSUSE:Factory/.buzztrax.new.6675/buzztrax.changes      
2019-12-21 12:30:57.723351272 +0100
@@ -1,0 +2,8 @@
+Thu Dec 19 12:06:53 UTC 2019 - Dave Plater <[email protected]>
+
+- Update to git snapshot 0.10.2+git20191209
+- Add patch from debian 0001-Fix-build-with-fluidsynth-2.x.patch
+- Upstream changes:
+  *More synth pannning. Add more module ideas.
+
+-------------------------------------------------------------------

Old:
----
  buzztrax-0.10.2+git20191028.tar.gz

New:
----
  0001-Fix-build-with-fluidsynth-2.x.patch
  buzztrax-0.10.2+git20191209.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ buzztrax.spec ++++++
--- /var/tmp/diff_new_pack.vU10Gd/_old  2019-12-21 12:30:58.823351795 +0100
+++ /var/tmp/diff_new_pack.vU10Gd/_new  2019-12-21 12:30:58.843351805 +0100
@@ -16,7 +16,7 @@
 #
 
 
-%define rev e08d73311d45b8bd73cbbd1fe95bc95b5ad52d2f
+%define rev 1f57d1b6ff55dd3d574f92039bb06a768d613d67
 %define relver 0.11.0
 
 %define gir gobject-introspection-1.0
@@ -31,7 +31,7 @@
 %define glib_version 2.32.0
 %define gst_version 1.2.0
 Name:           buzztrax
-Version:        0.10.2+git20191028
+Version:        0.10.2+git20191209
 Release:        0
 Summary:        A music studio inspired by Buzz
 License:        GPL-2.0-or-later
@@ -41,6 +41,7 @@
 #http://files.buzztrax.org/releases/%%{name}-%%{version}.tar.gz
 Source1:        autogen.sh
 Source2:        COPYING-DOCS
+Patch0:         0001-Fix-build-with-fluidsynth-2.x.patch
 BuildRequires:  automake >= 1.13
 BuildRequires:  desktop-file-utils
 BuildRequires:  fdupes
@@ -57,10 +58,7 @@
 BuildRequires:  pkgconfig(alsa)
 BuildRequires:  pkgconfig(cairo)
 BuildRequires:  pkgconfig(clutter-gtk-1.0)
-#Doesn't build with fluidsynth 2 yet
-%if 0%{?suse_version} <= 1500
 BuildRequires:  pkgconfig(fluidsynth)
-%endif
 BuildRequires:  pkgconfig(gdk-x11-3.0)
 BuildRequires:  pkgconfig(gio-2.0) >= %{glib_version}
 BuildRequires:  pkgconfig(glib-2.0) >= %{glib_version}
@@ -207,7 +205,10 @@
 
 %prep
 %setup -q -n %{name}-%{rev}
-%autopatch -p1
+# Patch causes fluidsynth1 build failure.
+%if 0%{?suse_version} > 1500
+%patch0 -p1
+%endif
 # Rpmlint complains that COPYING-DOCS is outdated
 cp -v %{SOURCE2} .
 cp -v %{SOURCE1} .

++++++ 0001-Fix-build-with-fluidsynth-2.x.patch ++++++
>From 3ac7cbf1a712c3f4db7a34a6d3b46dc9a43172d3 Mon Sep 17 00:00:00 2001
From: Peter Michael Green <[email protected]>
Date: Thu, 19 Dec 2019 01:38:18 +0000
Subject: [PATCH] Fix build with fluidsynth 2.x

---
 src/gst/fluidsynth/fluidsynth.c | 44 +++++++++++++++++++++++++++++++++++++++--
 1 file changed, 42 insertions(+), 2 deletions(-)

diff --git a/src/gst/fluidsynth/fluidsynth.c b/src/gst/fluidsynth/fluidsynth.c
index 0d954f8e..ec598dc4 100644
--- a/src/gst/fluidsynth/fluidsynth.c
+++ b/src/gst/fluidsynth/fluidsynth.c
@@ -132,25 +132,41 @@ G_DEFINE_TYPE (GstBtFluidSynth, gstbt_fluid_synth, 
GSTBT_TYPE_AUDIO_SYNTH);
 //-- fluid_synth log handler
 
 static void
+#if FLUIDSYNTH_VERSION_MAJOR < 2
 gstbt_fluid_synth_error_log_function (int level, char *message, void *data)
+#else
+gstbt_fluid_synth_error_log_function (int level, const char *message, void 
*data)
+#endif
 {
   GST_ERROR ("%s", message);
 }
 
 static void
+#if FLUIDSYNTH_VERSION_MAJOR < 2
 gstbt_fluid_synth_warning_log_function (int level, char *message, void *data)
+#else
+gstbt_fluid_synth_warning_log_function (int level, const char *message, void 
*data)
+#endif
 {
   GST_WARNING ("%s", message);
 }
 
 static void
+#if FLUIDSYNTH_VERSION_MAJOR < 2
 gstbt_fluid_synth_info_log_function (int level, char *message, void *data)
+#else
+gstbt_fluid_synth_info_log_function (int level, const char *message, void 
*data)
+#endif
 {
   GST_INFO ("%s", message);
 }
 
 static void
+#if FLUIDSYNTH_VERSION_MAJOR < 2
 gstbt_fluid_synth_debug_log_function (int level, char *message, void *data)
+#else
+gstbt_fluid_synth_debug_log_function (int level, const char *message, void 
*data)
+#endif
 {
   GST_DEBUG ("%s", message);
 }
@@ -212,7 +228,11 @@ typedef struct
 
 /* for counting the number of FluidSynth settings properties */
 static void
+#if FLUIDSYNTH_VERSION_MAJOR < 2
 settings_foreach_count (void *data, char *name, int type)
+#else
+settings_foreach_count (void *data, const char *name, int type)
+#endif
 {
   int *count = (int *) data;
   *count = *count + 1;
@@ -220,7 +240,11 @@ settings_foreach_count (void *data, char *name, int type)
 
 /* add each FluidSynth setting as a GObject property */
 static void
+#if FLUIDSYNTH_VERSION_MAJOR < 2
 settings_foreach_func (void *data, char *name, int type)
+#else
+settings_foreach_func (void *data, const char *name, int type)
+#endif
 {
   ForeachBag *bag = (ForeachBag *) data;
   GParamSpec *spec;
@@ -231,18 +255,30 @@ settings_foreach_func (void *data, char *name, int type)
   switch (type) {
     case FLUID_NUM_TYPE:
       fluid_settings_getnum_range (bag->settings, name, &dmin, &dmax);
+#if FLUIDSYNTH_VERSION_MAJOR < 2
       ddef = fluid_settings_getnum_default (bag->settings, name);
+#else
+      if (fluid_settings_getnum_default (bag->settings, name, &ddef) != 
FLUID_OK) ddef = 0;
+#endif
       spec = g_param_spec_double (name, name, name, dmin, dmax, ddef,
           G_PARAM_READWRITE);
       break;
     case FLUID_INT_TYPE:
       fluid_settings_getint_range (bag->settings, name, &imin, &imax);
+#if FLUIDSYNTH_VERSION_MAJOR < 2
       idef = fluid_settings_getint_default (bag->settings, name);
+#else
+      if (fluid_settings_getint_default (bag->settings, name, &idef) != 
FLUID_OK) idef = 0;
+#endif
       spec = g_param_spec_int (name, name, name, imin, imax, idef,
           G_PARAM_READWRITE);
       break;
     case FLUID_STR_TYPE:
-      defstr = fluid_settings_getstr_default (bag->settings, name);
+#if FLUIDSYNTH_VERSION_MAJOR < 2
+      fluid_settings_getstr_default (bag->settings, name);
+#else
+      if (fluid_settings_getstr_default (bag->settings, name,&defstr) != 
FLUID_OK) defstr = 0;
+#endif
       spec = g_param_spec_string (name, name, name, defstr, G_PARAM_READWRITE);
       break;
     case FLUID_SET_TYPE:
@@ -724,7 +760,11 @@ gstbt_fluid_synth_init (GstBtFluidSynth * src)
       new_fluid_midi_router (src->settings,
       fluid_synth_handle_midi_event, src->fluid);
   if (src->midi_router) {
+#if FLUIDSYNTH_VERSION_MAJOR < 2
     src->cmd_handler = new_fluid_cmd_handler (src->fluid);
+#else
+    src->cmd_handler = new_fluid_cmd_handler (src->fluid,NULL);
+#endif
     if (src->cmd_handler) {
       src->midi = new_fluid_midi_driver (src->settings,
           fluid_midi_router_handle_midi_event, (void *) (src->midi_router));
@@ -886,7 +926,7 @@ gstbt_fluid_synth_class_init (GstBtFluidSynthClass * klass)
       g_param_spec_enum ("chorus-waveform", "Chorus waveform",
           "Chorus waveform type",
           CHORUS_WAVEFORM_TYPE,
-          FLUID_CHORUS_DEFAULT_TYPE,
+          FLUID_CHORUS_MOD_SINE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   gst_element_class_set_static_metadata (element_class,
-- 
2.16.4

++++++ buzztrax-0.10.2+git20191028.tar.gz -> buzztrax-0.10.2+git20191209.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/buzztrax-e08d73311d45b8bd73cbbd1fe95bc95b5ad52d2f/src/gst/audio/TODO.md 
new/buzztrax-1f57d1b6ff55dd3d574f92039bb06a768d613d67/src/gst/audio/TODO.md
--- old/buzztrax-e08d73311d45b8bd73cbbd1fe95bc95b5ad52d2f/src/gst/audio/TODO.md 
2019-10-28 05:47:40.000000000 +0100
+++ new/buzztrax-1f57d1b6ff55dd3d574f92039bb06a768d613d67/src/gst/audio/TODO.md 
2019-12-09 20:01:21.000000000 +0100
@@ -1,6 +1,6 @@
-# SimSyn alike
+# More synthesizers
 
-More synthesizers
+## SimSyn alike
 - we'd like to have one with
   - dual-osc
     - with detune for the 2nd osc: coarse in semitones
@@ -23,11 +23,11 @@
     a) map for tone above and below base
     b) map for tone related to base and clamp against 1.0
 
-# WaveTabSynth
+## WaveTabSynth
 - slightly modulating the wave-offset could be interesting
   - we could e.g. let it progress during the tone or have an envelope for it
 
-# BLoop (beat looper)
+## BLoop (beat looper)
 - parameters:
   - wavetable-ix
   - subdivide / slices (e.g. 4 for quarter)
@@ -49,7 +49,7 @@
   subdivide=4, pattern={0,1,2,3} plays the loop as is
   subdivide=4, pattern={0,3,0,1} plays segments in different order
 
-# GrainSynth
+## GrainSynth
 - a grain synth takes snippets from the one wave-table slot, applies a
   fft-window function and mixes it into the output
 - using a triangle-window and a grain-ratio=1.0 would replicate the waveform
@@ -89,6 +89,35 @@
 overlap_ms = 2
 voices = 1 + (12 / 2) = 7
 
+## Drones
+Simple Osc with multiple slightly detuned voices that are spread in the 
panorama
+and where the detuning is set so that it matches the song tempo.
+
+Need tables for each tone to calculate the detune factors so that the phases 
are
+in sync after n-ticks. If this is hard, we can mybe cross-fade a reverse copy
+using sin()² curves and reset the phase after n-ticks.
+
+From ticks and samplerate we calculate the number of samples for desired 
resync.
+
+TODO:
+- can we disable resetting the phase on the osc component when triggering a 
note
+  - gstbt_osc_synth_trigger(): self->accumulator = 0.0
+  - we only call this when we change waves
+
+Parameters:
+- note: tone to play
+- wave: classic tonal osc (sin, tri, saw, sqr)
+- ticks: when the phases should be in sync again
+- sync: when plaing a note - should we sync the phases or not?
+- voices: 3,5,7
+- stereo spread: 0 ... 100%
+  - example: 5 voice, spread=100%
+  - voice 1 -> middle
+  - voice 2 -> 50% right
+  - voice 3 -> 50% left
+  - voice 4 -> 100% right
+  - voice 5 -> 100% left
+
 # sfxr
 https://github.com/grimfang4/sfxr/blob/master/sfxr/source/main.cpp
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/buzztrax-e08d73311d45b8bd73cbbd1fe95bc95b5ad52d2f/src/gst/audio/ebeats.c 
new/buzztrax-1f57d1b6ff55dd3d574f92039bb06a768d613d67/src/gst/audio/ebeats.c
--- 
old/buzztrax-e08d73311d45b8bd73cbbd1fe95bc95b5ad52d2f/src/gst/audio/ebeats.c    
    2019-10-28 05:47:40.000000000 +0100
+++ 
new/buzztrax-1f57d1b6ff55dd3d574f92039bb06a768d613d67/src/gst/audio/ebeats.c    
    2019-12-09 20:01:21.000000000 +0100
@@ -24,7 +24,8 @@
  * A drum synthesizer with two tonal and one noise oscillator (#GstBtOscSynth),
  * plus decay envelopes (#GstBtEnvelopeD) for tonal transitions and volumes.
  * The tonal oscillators can be mixed through various #GstBtCombine:combine
- * modes. The noise part is then mixed with the tonal parts.
+ * modes. The noise part is then mixed with the tonal parts. The volume enve-
+ * lopes are applied before combining and mixing.
  *
  * Finally one can apply a filter (#GstBtFilterSVF) to either the tonal mix, 
the
  * noise or both. The #GstBtFilterSVF:cut-off is also controlled by a decay
@@ -41,12 +42,20 @@
  * ]| Render a drum tone.
  * </refsect2>
  */
-/* TODO: add a delay line for metalic effects */
+/* TODO: add a short delay line for metalic effects */
 /* TODO: add a boolean 'reverse 'parameter
  * - can be a pattern only trigger param to set time to max and time-inc * -1
  * - for that the envelopes need a 'reverse' param too, or we need to check if
  *   we can count 'ct' backwards
  */
+ /* TODO: more volume env routing:
+  * - some combine modes can create loud signals, it would be nice to rapply
+  *   a volum env
+  * - modes: before, after, before+after
+  * - if after or before+after, we need a volume param that can be applied
+  *   during or after the combine operation
+  */
+
 /* TODO: have presets for:
  * kick
  * snare


Reply via email to