summaryrefslogtreecommitdiffstats
path: root/pico/lib/picodsp.h
diff options
context:
space:
mode:
authorCharles Chen <clchen@google.com>2009-06-22 16:25:25 -0700
committerCharles Chen <clchen@google.com>2009-06-22 17:14:37 -0700
commit1284d937084a20b457c280259fff59391129509a (patch)
tree5630028284c450b56a56b187d9c99cf7ebcee9cc /pico/lib/picodsp.h
parentf605ee98e5e03144c25a92af7e5d2a3ec33d375f (diff)
downloadexternal_svox-1284d937084a20b457c280259fff59391129509a.zip
external_svox-1284d937084a20b457c280259fff59391129509a.tar.gz
external_svox-1284d937084a20b457c280259fff59391129509a.tar.bz2
Moving PicoTts plugin under the pico directory of external/svox
Diffstat (limited to 'pico/lib/picodsp.h')
-rw-r--r--pico/lib/picodsp.h112
1 files changed, 112 insertions, 0 deletions
diff --git a/pico/lib/picodsp.h b/pico/lib/picodsp.h
new file mode 100644
index 0000000..67457f8
--- /dev/null
+++ b/pico/lib/picodsp.h
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2008-2009 SVOX AG, Baslerstr. 30, 8048 Zuerich, Switzerland
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * @file picodsp.h
+ *
+ * Include file for DSP related data types and constants in Pico
+ *
+ * Copyright (C) 2008-2009 SVOX AG, Baslerstr. 30, 8048 Zuerich, Switzerland
+ * All rights reserved.
+ *
+ * History:
+ * - 2009-04-20 -- initial version
+ *
+ */
+
+#ifndef PICODSP_H_
+#define PICODSP_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#if 0
+}
+#endif
+
+/*----------------------------CONSTANTS ----------------------*/
+/*Normalization factors used at the start and at the end of the sig*/
+#define PICODSP_START_FLOAT_NORM 0.41f
+#define PICODSP_ENVSPEC_K1 0.5f
+#define PICODSP_ENVSPEC_K2 2
+#define PICODSP_GETEXC_K1 1024
+#define PICODSP_FIXRESP_NORM 4096.0f
+#define PICODSP_END_FLOAT_NORM 1.5f*16.0f
+#define PICODSP_FIX_SCALE1 0x4000000
+#define PICODSP_FIX_SCALE2 0x4000
+#define PICODSP_SHIFT_FACT1 10
+#define PICODSP_SHIFT_FACT2 16
+#define PICODSP_SHIFT_FACT3 12
+#define PICODSP_SHIFT_FACT4 1
+#define PICODSP_SHIFT_FACT5 18
+#define PICODSP_SHIFT_FACT6 9
+#define PICOSIG_NORM1 9.14f /100.0f /*normalization factor*/
+#define PICOSIG_MAXAMP (32767)
+#define PICOSIG_MINAMP (-32768)
+#define PICODSP_M_PI 3.14159265358979323846
+#define PICODSP_MAX_EX 32
+#define PICODSP_WGT_SHIFT (0x20000000)
+#define PICODSP_N_RAND_TABLE (760)
+#define PICODSP_COS_TABLE_LEN (512)
+#define PICODSP_COS_TABLE_LEN2 (1024)
+#define PICODSP_COS_TABLE_LEN4 (2048)
+#define PICODSP_PI_SHIFT (4) /* -log2(PICODSP_COS_TABLE_LEN2/0x4000) */
+
+#define PICODSP_V_CUTOFF_FREQ 4500
+#define PICODSP_UV_CUTOFF_FREQ 300
+#define PICODSP_SAMP_FREQ 16000
+#define PICODSP_FREQ_WARP_FACT 0.42f
+
+/*----------------------------CEP/PHASE CONSTANTS----------------------------*/
+#define PICODSP_CEPORDER 25
+#define PICODSP_PHASEORDER 72
+#define CEPST_BUFF_SIZE 3
+#define PHASE_BUFF_SIZE 5
+/*----------------------------FFT CONSTANTS----------------------------*/
+#define PICODSP_FFTSIZE (256)
+
+#define PICODSP_H_FFTSIZE (PICODSP_FFTSIZE/2)
+
+#define PICODSP_DISPLACE PICODSP_FFTSIZE/4
+
+#define PICODSP_H_FFTSIZE (PICODSP_FFTSIZE/2)
+#define PICODSP_HFFTSIZE_P1 (PICODSP_H_FFTSIZE+1)
+
+#define FAST_DEVICE(aCount, aAction) \
+{ \
+ int count_ = (aCount); \
+ int times_ = (count_ + 7) >> 3; \
+ switch (count_ & 7){ \
+ case 0: do { aAction; \
+ case 7: aAction; \
+ case 6: aAction; \
+ case 5: aAction; \
+ case 4: aAction; \
+ case 3: aAction; \
+ case 2: aAction; \
+ case 1: aAction; \
+ } while (--times_ > 0); \
+} \
+}
+/*------------------------------------------------------------------------------------------
+ Fast Exp Approximation now remapped to a function in picoos
+ -----------------------------------------------------------------------------------------*/
+#define EXP(y) picoos_quick_exp(y)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*PICODSP_H_*/