* <para>
* #GstValueList of #gfloat
* <classname>"magnitude"</classname>:
- * the level for each frequency band. A value of 0 maps to the
- * db value given by the
- * <link linkend="GstSpectrum--threshold">threshold property.</link>.
+ * the level for each frequency band in dB. All values below the value of the
+ * <link linkend="GstSpectrum--threshold">threshold property</link> will
+ * be set to the threshold.
* </para>
* </listitem>
* <listitem>
* This element cannot be used with the gst-launch command in a sensible way.
* The included demo shows how to use it in an application.
*
- * Last reviewed on 2007-08-18 (0.10.5)
+ * Last reviewed on 2007-11-11 (0.10.6)
* </refsect2>
*/
g_object_class_install_property (gobject_class, PROP_THRESHOLD,
g_param_spec_int ("threshold", "Threshold",
- "db threshold for result, maps to 0", G_MININT, 0, DEFAULT_THRESHOLD,
- G_PARAM_READWRITE));
+ "dB threshold for result. All lower values will be set to this",
+ G_MININT, 0, DEFAULT_THRESHOLD, G_PARAM_READWRITE));
GST_DEBUG_CATEGORY_INIT (gst_spectrum_debug, "spectrum", 0,
"audio spectrum analyser element");
val += (gdouble) freqdata[i].i * (gdouble) freqdata[i].i; \
val /= max*max; \
val = 10.0 * log10 (val); \
- if (val > spectrum->threshold) \
- val -= spectrum->threshold; \
- else \
- val = 0.0; \
+ if (val < spectrum->threshold) \
+ val = spectrum->threshold; \
spect_magnitude[i] += val; \
} \
\
val += freqdata[i].i * freqdata[i].i; \
val /= nfft*nfft; \
val = 10.0 * log10 (val); \
- if (val > spectrum->threshold) \
- val -= spectrum->threshold; \
- else \
- val = 0.0; \
+ if (val < spectrum->threshold) \
+ val = spectrum->threshold; \
spect_magnitude[i] += val; \
} \
\
TRUE, 0, 0, spect_bands, spect_height);
for (i = 0; i < spect_bands; i++) {
gdk_draw_rectangle (drawingarea->window, drawingarea->style->white_gc,
- TRUE, i, spect_height - data[i], 1, data[i]);
+ TRUE, i, -data[i], 1, spect_height + data[i]);
}
gdk_window_end_paint (drawingarea->window);
}
/* White noise */
src = gst_element_factory_make ("audiotestsrc", "src");
- g_object_set (G_OBJECT (src), "wave", 5, "volume", 0.5, NULL);
+ g_object_set (G_OBJECT (src), "wave", 5, "volume", 0.8, NULL);
/* Force float32 samples */
capsfilter = gst_element_factory_make ("capsfilter", "capsfilter");
TRUE, 0, 0, spect_bands, spect_height);
for (i = 0; i < spect_bands; i++) {
gdk_draw_rectangle (drawingarea->window, drawingarea->style->white_gc,
- TRUE, i, spect_height - data[i], 1, data[i]);
+ TRUE, i, -data[i], 1, spect_height + data[i]);
}
gdk_window_end_paint (drawingarea->window);
}
TRUE, 0, 0, spect_bands, spect_height);
for (i = 0; i < spect_bands; i++) {
gdk_draw_rectangle (drawingarea->window, drawingarea->style->white_gc,
- TRUE, i, spect_height - data[i], 1, data[i]);
+ TRUE, i, -data[i], 1, spect_height + data[i]);
}
gdk_window_end_paint (drawingarea->window);
}