| /* |
| * 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_*/ |