r3842 - in trunk: . bse
- From: timj svn gnome org
- To: svn-commits-list gnome org
- Subject: r3842 - in trunk: . bse
- Date: Sat, 15 Jul 2006 18:15:20 +0000 (UTC)
Author: timj
Date: 2006-07-15 18:15:18 +0000 (Sat, 15 Jul 2006)
New Revision: 3842
Modified:
trunk/TODO
trunk/bse/ChangeLog
trunk/bse/gslwaveosc-aux.c
Log:
Sat Jul 15 20:06:24 2006 Tim Janik <timj gtk org>
* gslwaveosc-aux.c: use doubles instead of floats to store temporary
filter state. this avoids artefacts for larger pitch values.
Modified: trunk/TODO
===================================================================
--- trunk/TODO 2006-07-15 14:32:42 UTC (rev 3841)
+++ trunk/TODO 2006-07-15 18:15:18 UTC (rev 3842)
@@ -17,6 +17,9 @@
- merge 2 * BseSimpleADSR into 1
- delete BseAtanDistort
- nuke compat code
+USAGE:
+- in song view, there should be a way to directly load wave files
+- when popping up the synth selection, if no synth is presnet but waves are available, the notebook should show the Waves page
MISC:
- fix bsepcmdevice-alsa.c:alsa_device_retrigger():g_malloc0(): to instead use bse_engine_const_zeros()
- make BSE_REGISTER_OBJECT() define parent_class, similar to G_DEFINE_TYPE
Modified: trunk/bse/ChangeLog
===================================================================
--- trunk/bse/ChangeLog 2006-07-15 14:32:42 UTC (rev 3841)
+++ trunk/bse/ChangeLog 2006-07-15 18:15:18 UTC (rev 3842)
@@ -1,3 +1,8 @@
+Sat Jul 15 20:06:24 2006 Tim Janik <timj gtk org>
+
+ * gslwaveosc-aux.c: use doubles instead of floats to store temporary
+ filter state. this avoids artefacts for larger pitch values.
+
Sat Jul 15 04:11:06 2006 Tim Janik <timj gtk org>
* bsebiquadfilter.c (bse_biquad_filter_class_init):
Modified: trunk/bse/gslwaveosc-aux.c
===================================================================
--- trunk/bse/gslwaveosc-aux.c 2006-07-15 14:32:42 UTC (rev 3841)
+++ trunk/bse/gslwaveosc-aux.c 2006-07-15 18:15:18 UTC (rev 3842)
@@ -46,8 +46,6 @@
wave_boundary = wave_out + n_values;
do
{
- gfloat ffrac;
-
if (CHECK_SYNC)
{
gfloat sync_level = *sync_in++;
@@ -113,8 +111,8 @@
/* process filter while necesary */
while (wosc->cur_pos >= (FRAC_MASK + 1) << 1)
{
- gfloat c, c0, c1, c2, c3, c4, c5, c6, c7, c8;
- gfloat d, d0, d1, d2, d3, d4, d5, d6, d7;
+ double c, c0, c1, c2, c3, c4, c5, c6, c7, c8;
+ double d, d0, d1, d2, d3, d4, d5, d6, d7;
gfloat *x;
if (UNLIKELY ((block->dirstride > 0 && wosc->x >= boundary) ||
@@ -172,16 +170,14 @@
if (wosc->cur_pos >> FRAC_SHIFT)
{
guint k = wosc_j - 2;
-
- ffrac = wosc->cur_pos & FRAC_MASK; /* int -> float */
+ double ffrac = wosc->cur_pos & FRAC_MASK; /* int -> float */
ffrac *= 1. / (FRAC_MASK + 1.);
*wave_out++ = y[k & 0x7] * (1.0 - ffrac) + y[(k + 1) & 0x7] * ffrac;
}
else
{
guint k = wosc_j - 3;
-
- ffrac = wosc->cur_pos; /* int -> float */
+ double ffrac = wosc->cur_pos; /* int -> float */
ffrac *= 1. / (FRAC_MASK + 1.);
*wave_out++ = y[k & 0x7] * (1.0 - ffrac) + y[(k + 1) & 0x7] * ffrac;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]