| /* eSpeak NG API. | /* eSpeak NG API. | ||||
| * | * | ||||
| * Copyright (C) 2015 Reece H. Dunn | |||||
| * Copyright (C) 2015-2016 Reece H. Dunn | |||||
| * | * | ||||
| * This program is free software: you can redistribute it and/or modify | * This program is free software: you can redistribute it and/or modify | ||||
| * it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
| ENE_WRITE_ERROR = -2, | ENE_WRITE_ERROR = -2, | ||||
| ENE_OUT_OF_MEMORY = -3, | ENE_OUT_OF_MEMORY = -3, | ||||
| ENE_COMPILE_ERRORS = -4, | ENE_COMPILE_ERRORS = -4, | ||||
| ENE_VERSION_MISMATCH = -5, | |||||
| } espeak_ng_STATUS; | } espeak_ng_STATUS; | ||||
| #define espeakINITIALIZE_PATH_ONLY 0x4000 | #define espeakINITIALIZE_PATH_ONLY 0x4000 |
| /* | /* | ||||
| * Copyright (C) 2005 to 2014 by Jonathan Duddington | * Copyright (C) 2005 to 2014 by Jonathan Duddington | ||||
| * email: [email protected] | * email: [email protected] | ||||
| * Copyright (C) 2013-2015 Reece H. Dunn | |||||
| * Copyright (C) 2013-2016 Reece H. Dunn | |||||
| * | * | ||||
| * This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | ||||
| * it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
| #include <wctype.h> | #include <wctype.h> | ||||
| #include <wchar.h> | #include <wchar.h> | ||||
| #include "espeak_ng.h" | |||||
| #include "speak_lib.h" | #include "speak_lib.h" | ||||
| #include "speech.h" | #include "speech.h" | ||||
| #include "phoneme.h" | #include "phoneme.h" | ||||
| #include "synthesize.h" | #include "synthesize.h" |
| /* | /* | ||||
| * Copyright (C) 2005 to 2007 by Jonathan Duddington | * Copyright (C) 2005 to 2007 by Jonathan Duddington | ||||
| * email: [email protected] | * email: [email protected] | ||||
| * Copyright (C) 2015 Reece H. Dunn | |||||
| * Copyright (C) 2015-2016 Reece H. Dunn | |||||
| * | * | ||||
| * This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | ||||
| * it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
| #include <stdint.h> | #include <stdint.h> | ||||
| #endif | #endif | ||||
| #include "espeak_ng.h" | |||||
| #include "speak_lib.h" | #include "speak_lib.h" | ||||
| #include "speech.h" | #include "speech.h" | ||||
| #include "phoneme.h" | #include "phoneme.h" | ||||
| #include "synthesize.h" | #include "synthesize.h" |
| /* | /* | ||||
| * Copyright (C) 2008 by Jonathan Duddington | * Copyright (C) 2008 by Jonathan Duddington | ||||
| * email: [email protected] | * email: [email protected] | ||||
| * Copyright (C) 2013-2015 Reece H. Dunn | |||||
| * Copyright (C) 2013-2016 Reece H. Dunn | |||||
| * | * | ||||
| * Based on a re-implementation by: | * Based on a re-implementation by: | ||||
| * (c) 1993,94 Jon Iles and Nick Ing-Simmons | * (c) 1993,94 Jon Iles and Nick Ing-Simmons | ||||
| #include <stdint.h> | #include <stdint.h> | ||||
| #endif | #endif | ||||
| #include "espeak_ng.h" | |||||
| #include "speak_lib.h" | #include "speak_lib.h" | ||||
| #include "speech.h" | #include "speech.h" | ||||
| #include "klatt.h" | #include "klatt.h" | ||||
| #include "phoneme.h" | #include "phoneme.h" |
| /* | /* | ||||
| * Copyright (C) 2005 to 2015 by Jonathan Duddington | * Copyright (C) 2005 to 2015 by Jonathan Duddington | ||||
| * email: [email protected] | * email: [email protected] | ||||
| * Copyright (C) 2015 Reece H. Dunn | |||||
| * Copyright (C) 2015-2016 Reece H. Dunn | |||||
| * | * | ||||
| * This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | ||||
| * it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
| #include <wctype.h> | #include <wctype.h> | ||||
| #include <wchar.h> | #include <wchar.h> | ||||
| #include "espeak_ng.h" | |||||
| #include "speak_lib.h" | #include "speak_lib.h" | ||||
| #include "speech.h" | #include "speech.h" | ||||
| #include "phoneme.h" | #include "phoneme.h" | ||||
| #include "synthesize.h" | #include "synthesize.h" |
| /* | /* | ||||
| * Copyright (C) 2005 to 2014 by Jonathan Duddington | * Copyright (C) 2005 to 2014 by Jonathan Duddington | ||||
| * email: [email protected] | * email: [email protected] | ||||
| * Copyright (C) 2015 Reece H. Dunn | |||||
| * Copyright (C) 2015-2016 Reece H. Dunn | |||||
| * | * | ||||
| * This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | ||||
| * it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
| #include <stdint.h> | #include <stdint.h> | ||||
| #endif | #endif | ||||
| #include "espeak_ng.h" | |||||
| #include "speak_lib.h" | #include "speak_lib.h" | ||||
| #include "speech.h" | #include "speech.h" | ||||
| #include "phoneme.h" | #include "phoneme.h" | ||||
| #include "synthesize.h" | #include "synthesize.h" |
| /* | /* | ||||
| * Copyright (C) 2005 to 2015 by Jonathan Duddington | * Copyright (C) 2005 to 2015 by Jonathan Duddington | ||||
| * email: [email protected] | * email: [email protected] | ||||
| * Copyright (C) 2015 Reece H. Dunn | |||||
| * Copyright (C) 2015-2016 Reece H. Dunn | |||||
| * | * | ||||
| * This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | ||||
| * it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
| #include <stdint.h> | #include <stdint.h> | ||||
| #endif | #endif | ||||
| #include "espeak_ng.h" | |||||
| #include "speak_lib.h" | #include "speak_lib.h" | ||||
| #include "speech.h" | #include "speech.h" | ||||
| #include "phoneme.h" | #include "phoneme.h" | ||||
| #include "synthesize.h" | #include "synthesize.h" |
| /* | /* | ||||
| * Copyright (C) 2005 to 2011 by Jonathan Duddington | * Copyright (C) 2005 to 2011 by Jonathan Duddington | ||||
| * email: [email protected] | * email: [email protected] | ||||
| * Copyright (C) 2015 Reece H. Dunn | |||||
| * Copyright (C) 2015-2016 Reece H. Dunn | |||||
| * | * | ||||
| * This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | ||||
| * it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
| #include <stdint.h> | #include <stdint.h> | ||||
| #endif | #endif | ||||
| #include "espeak_ng.h" | |||||
| #include "speak_lib.h" | #include "speak_lib.h" | ||||
| #include "speech.h" | #include "speech.h" | ||||
| #include "phoneme.h" | #include "phoneme.h" | ||||
| #include "synthesize.h" | #include "synthesize.h" |
| /* | /* | ||||
| * Copyright (C) 2005 to 2013 by Jonathan Duddington | * Copyright (C) 2005 to 2013 by Jonathan Duddington | ||||
| * email: [email protected] | * email: [email protected] | ||||
| * Copyright (C) 2013-2015 Reece H. Dunn | |||||
| * Copyright (C) 2013-2016 Reece H. Dunn | |||||
| * | * | ||||
| * This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | ||||
| * it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
| #include <unistd.h> | #include <unistd.h> | ||||
| #endif | #endif | ||||
| #include "speak_lib.h" | |||||
| #include "espeak_ng.h" | #include "espeak_ng.h" | ||||
| #include "speak_lib.h" | |||||
| #include "phoneme.h" | #include "phoneme.h" | ||||
| #include "synthesize.h" | #include "synthesize.h" | ||||
| #include "voice.h" | #include "voice.h" | ||||
| static int initialise(int control) | static int initialise(int control) | ||||
| { | { | ||||
| int param; | int param; | ||||
| int result; | |||||
| int srate = 22050; // default sample rate 22050 Hz | int srate = 22050; // default sample rate 22050 Hz | ||||
| err = EE_OK; | err = EE_OK; | ||||
| LoadConfig(); | LoadConfig(); | ||||
| if ((result = LoadPhData(&srate)) != 1) { // reads sample rate from espeak-data/phontab | |||||
| if (result == -1) { | |||||
| espeak_ng_STATUS result = LoadPhData(&srate); | |||||
| if (result != ENS_OK) { | |||||
| if (result == ENE_READ_ERROR) { | |||||
| fprintf(stderr, "Failed to load espeak-data\n"); | fprintf(stderr, "Failed to load espeak-data\n"); | ||||
| if ((control & espeakINITIALIZE_DONT_EXIT) == 0) | if ((control & espeakINITIALIZE_DONT_EXIT) == 0) | ||||
| exit(1); | exit(1); | ||||
| } else | } else | ||||
| fprintf(stderr, "Wrong version of espeak-data 0x%x (expects 0x%x) at %s\n", result, version_phdata, path_home); | |||||
| fprintf(stderr, "Wrong version of espeak-data (expected 0x%x) at %s\n", version_phdata, path_home); | |||||
| } | } | ||||
| WavegenInit(srate, 0); | WavegenInit(srate, 0); | ||||
| /* | /* | ||||
| * Copyright (C) 2005 to 2007 by Jonathan Duddington | * Copyright (C) 2005 to 2007 by Jonathan Duddington | ||||
| * email: [email protected] | * email: [email protected] | ||||
| * Copyright (C) 2013-2015 Reece H. Dunn | |||||
| * Copyright (C) 2013-2016 Reece H. Dunn | |||||
| * | * | ||||
| * This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | ||||
| * it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
| #include "config.h" | #include "config.h" | ||||
| #include <stdio.h> | |||||
| #if HAVE_STDINT_H | #if HAVE_STDINT_H | ||||
| #include <stdint.h> | #include <stdint.h> | ||||
| #endif | #endif | ||||
| #include "espeak_ng.h" | |||||
| #include "speak_lib.h" | #include "speak_lib.h" | ||||
| #include "speech.h" | #include "speech.h" | ||||
| #include "phoneme.h" | #include "phoneme.h" | ||||
| #include "synthesize.h" | #include "synthesize.h" |
| /* | /* | ||||
| * Copyright (C) 2005 to 2013 by Jonathan Duddington | * Copyright (C) 2005 to 2013 by Jonathan Duddington | ||||
| * email: [email protected] | * email: [email protected] | ||||
| * Copyright (C) 2015 Reece H. Dunn | |||||
| * Copyright (C) 2015-2016 Reece H. Dunn | |||||
| * | * | ||||
| * This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | ||||
| * it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
| #include <stdint.h> | #include <stdint.h> | ||||
| #endif | #endif | ||||
| #include "espeak_ng.h" | |||||
| #include "speak_lib.h" | #include "speak_lib.h" | ||||
| #include "speech.h" | #include "speech.h" | ||||
| #include "phoneme.h" | #include "phoneme.h" | ||||
| #include "synthesize.h" | #include "synthesize.h" |
| /* | /* | ||||
| * Copyright (C) 2005 to 2014 by Jonathan Duddington | * Copyright (C) 2005 to 2014 by Jonathan Duddington | ||||
| * email: [email protected] | * email: [email protected] | ||||
| * Copyright (C) 2015 Reece H. Dunn | |||||
| * Copyright (C) 2015-2016 Reece H. Dunn | |||||
| * | * | ||||
| * This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | ||||
| * it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
| #include <stdint.h> | #include <stdint.h> | ||||
| #endif | #endif | ||||
| #include "espeak_ng.h" | |||||
| #include "speak_lib.h" | #include "speak_lib.h" | ||||
| #include "speech.h" | #include "speech.h" | ||||
| #include "phoneme.h" | #include "phoneme.h" | ||||
| #include "synthesize.h" | #include "synthesize.h" | ||||
| return p; | return p; | ||||
| } | } | ||||
| int LoadPhData(int *srate) | |||||
| espeak_ng_STATUS LoadPhData(int *srate) | |||||
| { | { | ||||
| int ix; | int ix; | ||||
| int n_phonemes; | int n_phonemes; | ||||
| int version; | int version; | ||||
| int result = 1; | |||||
| int length; | int length; | ||||
| int rate; | int rate; | ||||
| unsigned char *p; | unsigned char *p; | ||||
| int *pw; | int *pw; | ||||
| if ((phoneme_tab_data = (unsigned char *)ReadPhFile((void *)(phoneme_tab_data), "phontab", NULL)) == NULL) | if ((phoneme_tab_data = (unsigned char *)ReadPhFile((void *)(phoneme_tab_data), "phontab", NULL)) == NULL) | ||||
| return -1; | |||||
| return ENE_READ_ERROR; | |||||
| if ((phoneme_index = (USHORT *)ReadPhFile((void *)(phoneme_index), "phonindex", NULL)) == NULL) | if ((phoneme_index = (USHORT *)ReadPhFile((void *)(phoneme_index), "phonindex", NULL)) == NULL) | ||||
| return -1; | |||||
| return ENE_READ_ERROR; | |||||
| if ((phondata_ptr = ReadPhFile((void *)(phondata_ptr), "phondata", NULL)) == NULL) | if ((phondata_ptr = ReadPhFile((void *)(phondata_ptr), "phondata", NULL)) == NULL) | ||||
| return -1; | |||||
| return ENE_READ_ERROR; | |||||
| if ((tunes = (TUNE *)ReadPhFile((void *)(tunes), "intonations", &length)) == NULL) | if ((tunes = (TUNE *)ReadPhFile((void *)(tunes), "intonations", &length)) == NULL) | ||||
| return -1; | |||||
| return ENE_READ_ERROR; | |||||
| wavefile_data = (unsigned char *)phondata_ptr; | wavefile_data = (unsigned char *)phondata_ptr; | ||||
| n_tunes = length / sizeof(TUNE); | n_tunes = length / sizeof(TUNE); | ||||
| } | } | ||||
| if (version != version_phdata) | if (version != version_phdata) | ||||
| result = version; | |||||
| return ENE_VERSION_MISMATCH; | |||||
| // set up phoneme tables | // set up phoneme tables | ||||
| p = phoneme_tab_data; | p = phoneme_tab_data; | ||||
| if (srate != NULL) | if (srate != NULL) | ||||
| *srate = rate; | *srate = rate; | ||||
| return result; | |||||
| return ENS_OK; | |||||
| } | } | ||||
| void FreePhData(void) | void FreePhData(void) |
| /* | /* | ||||
| * Copyright (C) 2005 to 2014 by Jonathan Duddington | * Copyright (C) 2005 to 2014 by Jonathan Duddington | ||||
| * email: [email protected] | * email: [email protected] | ||||
| * Copyright (C) 2015 Reece H. Dunn | |||||
| * Copyright (C) 2015-2016 Reece H. Dunn | |||||
| * | * | ||||
| * This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | ||||
| * it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
| #include <stdint.h> | #include <stdint.h> | ||||
| #endif | #endif | ||||
| #include "espeak_ng.h" | |||||
| #include "speak_lib.h" | #include "speak_lib.h" | ||||
| #include "speech.h" | #include "speech.h" | ||||
| #include "phoneme.h" | #include "phoneme.h" | ||||
| #include "synthesize.h" | #include "synthesize.h" |
| /* | /* | ||||
| * Copyright (C) 2005 to 2014 by Jonathan Duddington | * Copyright (C) 2005 to 2014 by Jonathan Duddington | ||||
| * email: [email protected] | * email: [email protected] | ||||
| * Copyright (C) 2015 Reece H. Dunn | |||||
| * Copyright (C) 2015-2016 Reece H. Dunn | |||||
| * | * | ||||
| * This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | ||||
| * it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
| frameref_t *LookupSpect(PHONEME_TAB *this_ph, int which, FMT_PARAMS *fmt_params, int *n_frames, PHONEME_LIST *plist); | frameref_t *LookupSpect(PHONEME_TAB *this_ph, int which, FMT_PARAMS *fmt_params, int *n_frames, PHONEME_LIST *plist); | ||||
| unsigned char *LookupEnvelope(int ix); | unsigned char *LookupEnvelope(int ix); | ||||
| int LoadPhData(int *srate); | |||||
| espeak_ng_STATUS LoadPhData(int *srate); | |||||
| void SynthesizeInit(void); | void SynthesizeInit(void); | ||||
| int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume); | int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume); |
| /* | /* | ||||
| * Copyright (C) 2005 to 2015 by Jonathan Duddington | * Copyright (C) 2005 to 2015 by Jonathan Duddington | ||||
| * email: [email protected] | * email: [email protected] | ||||
| * Copyright (C) 2015 Reece H. Dunn | |||||
| * Copyright (C) 2015-2016 Reece H. Dunn | |||||
| * | * | ||||
| * This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | ||||
| * it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
| #include <wctype.h> | #include <wctype.h> | ||||
| #include "espeak_ng.h" | |||||
| #include "speak_lib.h" | #include "speak_lib.h" | ||||
| #include "speech.h" | #include "speech.h" | ||||
| #include "phoneme.h" | #include "phoneme.h" | ||||
| #include "synthesize.h" | #include "synthesize.h" |
| /* | /* | ||||
| * Copyright (C) 2005 to 2014 by Jonathan Duddington | * Copyright (C) 2005 to 2014 by Jonathan Duddington | ||||
| * email: [email protected] | * email: [email protected] | ||||
| * Copyright (C) 2015 Reece H. Dunn | |||||
| * Copyright (C) 2015-2016 Reece H. Dunn | |||||
| * | * | ||||
| * This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | ||||
| * it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
| #include <wctype.h> | #include <wctype.h> | ||||
| #include <wchar.h> | #include <wchar.h> | ||||
| #include "espeak_ng.h" | |||||
| #include "speak_lib.h" | #include "speak_lib.h" | ||||
| #include "speech.h" | #include "speech.h" | ||||
| #include "phoneme.h" | #include "phoneme.h" | ||||
| #include "synthesize.h" | #include "synthesize.h" |
| /* | /* | ||||
| * Copyright (C) 2005 to 2015 by Jonathan Duddington | * Copyright (C) 2005 to 2015 by Jonathan Duddington | ||||
| * email: [email protected] | * email: [email protected] | ||||
| * Copyright (C) 2015 Reece H. Dunn | |||||
| * Copyright (C) 2015-2016 Reece H. Dunn | |||||
| * | * | ||||
| * This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | ||||
| * it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
| #include "dirent.h" | #include "dirent.h" | ||||
| #endif | #endif | ||||
| #include "espeak_ng.h" | |||||
| #include "speak_lib.h" | #include "speak_lib.h" | ||||
| #include "phoneme.h" | #include "phoneme.h" | ||||
| #include "synthesize.h" | #include "synthesize.h" | ||||
| #include "voice.h" | #include "voice.h" |
| /* | /* | ||||
| * Copyright (C) 2005 to 2013 by Jonathan Duddington | * Copyright (C) 2005 to 2013 by Jonathan Duddington | ||||
| * email: [email protected] | * email: [email protected] | ||||
| * Copyright (C) 2015 Reece H. Dunn | |||||
| * Copyright (C) 2015-2016 Reece H. Dunn | |||||
| * | * | ||||
| * This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | ||||
| * it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
| #include <stdint.h> | #include <stdint.h> | ||||
| #endif | #endif | ||||
| #include "espeak_ng.h" | |||||
| #include "speak_lib.h" | #include "speak_lib.h" | ||||
| #include "speech.h" | #include "speech.h" | ||||
| #include "phoneme.h" | #include "phoneme.h" | ||||
| #include "synthesize.h" | #include "synthesize.h" |
| /* | /* | ||||
| * Copyright (C) 2005 to 2013 by Jonathan Duddington | * Copyright (C) 2005 to 2013 by Jonathan Duddington | ||||
| * email: [email protected] | * email: [email protected] | ||||
| * Copyright (C) 2015 Reece H. Dunn | |||||
| * Copyright (C) 2015-2016 Reece H. Dunn | |||||
| * | * | ||||
| * This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | ||||
| * it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
| #include <locale.h> | #include <locale.h> | ||||
| #include <sys/stat.h> | #include <sys/stat.h> | ||||
| #include "speak_lib.h" | |||||
| #include "espeak_ng.h" | #include "espeak_ng.h" | ||||
| #include "speak_lib.h" | |||||
| #include "phoneme.h" | #include "phoneme.h" | ||||
| #include "synthesize.h" | #include "synthesize.h" | ||||
| static int initialise(void) | static int initialise(void) | ||||
| { | { | ||||
| int param; | int param; | ||||
| int result; | |||||
| int srate = 22050; // default sample rate | int srate = 22050; // default sample rate | ||||
| // It seems that the wctype functions don't work until the locale has been set | // It seems that the wctype functions don't work until the locale has been set | ||||
| setlocale(LC_CTYPE, ""); | setlocale(LC_CTYPE, ""); | ||||
| } | } | ||||
| if ((result = LoadPhData(&srate)) != 1) { | |||||
| if (result == -1) { | |||||
| espeak_ng_STATUS result = LoadPhData(&srate); | |||||
| if (result != ENS_OK) { | |||||
| if (result == ENE_READ_ERROR) { | |||||
| fprintf(stderr, "Failed to load espeak-data\n"); | fprintf(stderr, "Failed to load espeak-data\n"); | ||||
| exit(1); | exit(1); | ||||
| } else | } else | ||||
| fprintf(stderr, "Wrong version of espeak-data 0x%x (expects 0x%x) at %s\n", result, version_phdata, path_home); | |||||
| fprintf(stderr, "Wrong version of espeak-data (expected 0x%x) at %s\n", version_phdata, path_home); | |||||
| } | } | ||||
| WavegenInit(srate, 0); | WavegenInit(srate, 0); | ||||
| LoadConfig(); | LoadConfig(); |