diff --git a/dictsource/en_list b/dictsource/en_list index 6d49d064..1fdf20d1 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -1252,7 +1252,6 @@ gases gasI#z gauche goUS gauge geIdZ gavel gav@L -gecko gEkoU geese gi:s gemini dZEmI2naI geni dZi:ni diff --git a/dictsource/en_rules b/dictsource/en_rules index 826c2e2e..51de9933 100644 --- a/dictsource/en_rules +++ b/dictsource/en_rules @@ -1399,6 +1399,7 @@ chloro kl,o@roU choir kwaI3 ch (ol k + _) ch (ola tS // for lang=ta choly k@l%I ch (ond k ch (orA k @@ -2580,9 +2581,11 @@ gg g g (e dZ _) gaol dZeIl + _) g (ec g ge (dd g'E g (eek g _) g (ert g + _) g (ek g ge (nic_ dZ'E genesis dZ'EnI2sIs geous dZ=@s diff --git a/dictsource/ta_rules b/dictsource/ta_rules index c8293bc2..904558a5 100644 --- a/dictsource/ta_rules +++ b/dictsource/ta_rules @@ -1,6 +1,6 @@ /*************************************************************************** - * Copyright (C) 2009 to 2010 by Jonathan Duddington * + * Copyright (C) 2009 to 2012 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -311,6 +311,7 @@ _மன்மதக்) க (ுகை g _) க (ுணவதி g _) க (ுணவான g _) க (ுணா g + _) குண்ட (க்கல gun.t.V# _) க (ுண்டடி g _) க (ுண்டன g _) க (ுண்டம்மா g @@ -321,6 +322,7 @@ _மன்மதக்) க (ுகை g _) க (ுண்டின g _) க (ுண்டு g _) க (ுண்டூசி g + _) குண்ட (ூர gun.t.V# _) க (ுண்டை g _) க (ுண்டோதர g _) க (ுதிக் g @@ -354,6 +356,7 @@ _மன்மதக்) க (ுகை g _) க (ுருமார g _) க (ுருமூர்த்தி g _) க (ுருரா g + _) க (ுருவடி g _) க (ுருவா g _) க (ுருவாய g _) க (ுருவிட g @@ -439,6 +442,9 @@ _மன்மதக்) க (ுகை g _) க (ோரக g _) க (ோரத்_தாண்ட g _) க (ோரப்_L20 g + _) க (ோரப்பற் g + _) க (ோரப்பல் g + _) க (ோரப்போர g _) க (ோரம g _) க (ோலிக g _) க (ோலிய g @@ -549,7 +555,6 @@ _ஹன்L04ி) க (ா k _தென்) க (ாசி k _நேர்) க (ாணல k _கண்) க (ாணா k - _ஏ) க (ாதசி k _ராம) க (ாதை k இராம) க (ாதை k _ஸ்ரீ) காந்த ka:ntV# @@ -610,6 +615,7 @@ _தொன்ம) க (ால k நற்) க (ுண g _சற்) க (ுண g ஏறிக்) க (ுதி g + க (ுமரன k _கண்ணியா) க (ுமரி k க (ுமார k _டா) குமெண்ட kUmen.tV# @@ -668,6 +674,8 @@ _துணை) க்க (ண்ட ggV நிர்) க்க (தி ggV _தீர்) க்க (மாக ggV _தீர்) க்க (மான ggV + _தனி) க்க (வன ggV + _முழு) க்க (வன ggV தீர்) க்க (ாலோசநை gg _ல) க்க (ின gg _வி) க்க (ினம்_ gg @@ -809,6 +817,7 @@ _தணிகா) ச (ல tSV அருணா) ச (ல tSV வெங்கடா) ச (ல tSV வேங்கடா) ச (ல tSV + _) ச (லோ tSV _) ச (வான tSV _) சாக்ப (ீL04 tSa:kp _) சாக்லேட் tSa:kle:t. @@ -907,6 +916,8 @@ _தணிகா) ச (ல tSV மே) சு (வ s வி) சு (வ s _சனீ) சு (வர s + ராஜே) சு (வர s +அகிலாண்டே) சு (வர s இராவணே) சு (வர s ராவணே) சு (வர s _) சுவர்க்க svVrggV# @@ -1464,6 +1475,7 @@ _நடுரோ) ட் (ல t. _) த (ானிய d _) த (ானியங்கி t _) த (ானுவ d + _) த (ான்ய d _) த (ாமோதர d _) த (ாம்_தூம d _) த (ாயங்கள d @@ -1576,8 +1588,11 @@ _நடுரோ) ட் (ல t. _) தீர்க்க (முள்ள di:rggV# _) தீர்க்க (ம்_ di:rggV _) தீர்க்க (ாயு di:rggV# + _) த (ீவாளி d _) து(ரோக d _) த (ுக்க d + _) த (ுக்கா t + _) த (ுக்கோ t _) த (ுச்சம d _) த (ுச்சாதனன d _) த (ுஜஸ் d @@ -1639,7 +1654,8 @@ _நடுரோ) ட் (ல t. _) த (ேவரு t _) த (ேவரை t _) த (ேவர்_ t - _) த (ேவல t + _) த (ேவல_ t + _) த (ேவலை t _) த (ேவிடியா t _) த (ேவிடியா t _) த (ேவேந் d @@ -1753,6 +1769,7 @@ _சிறை) த்த (ண்டனை ddV வா) த்த (ிய dd வை) த்த (ிய dd உபா) த்த (ிய dd +_நைவே) த்த (ிய dd _சா) த்த (ிய_ tt பு) த்த (ியி dd _சா) த்த (ியிரு tt @@ -2048,6 +2065,7 @@ _டீயும்_) ப (ன்னும்_ bV _) ப (ாங்கில b _) ப (ாங்க் b _) ப (ாசு b + _) பாசுப (த pa:sUpV _) ப (ாசுர p _டெட்_) ப (ாடி b _) ப (ாடி_பில்டிங் b @@ -2211,6 +2229,7 @@ _ராகத்தின்_) ப (ாவ b _) ப (ாஷிய b _) ப (ாஷை b _) ப (ாஷ்ய b + _) ப (ாஸந்தி b _) ப (ாஸ்கர b _) ப (ாஸ்கி b _) ப (ாஸ்டன b @@ -2278,6 +2297,7 @@ _ராகத்தின்_) ப (ாவ b _) பி (ரத்தியேக p _) பிரத் (யேக prVt _) பி (ரப p + _) பிரம (ன brVmmV _) பி (ரமாண p _) பி (ரமாண்ட b _) பி (ரமாத p @@ -2311,7 +2331,10 @@ _ராகத்தின்_) ப (ாவ b _) பி (ரஸல்ஸ b _) பி (ரஸாத p _) பி (ரஸ்தா p + _) பி (ரஹதீசு b + _) பி (ரஹதீஸ் b _) பி (ரஹலாத p + _) பி (ரஹஸ் b _) பி (ராகார p _) பி (ராகிருத p _) பி (ராக்கள b @@ -2382,6 +2405,7 @@ _ராகத்தின்_) ப (ாவ b _) பிரு (கன்நளை bri _) பி (ருகு b _) பிரு (ந்தா bri + _) ப (ிருஷ்ட b _) பிரெஞ்ச fren^tSV# _) பி (ரெட் b _) பிரெட்ரிக் fred.rik @@ -2649,6 +2673,7 @@ _சந்திர_) ப (ோஸ b _) ப (ௌதிக b _) ப (ௌத்த b _) ப (ௌலிங் b + _) ப (ௌஷ b சு) ப்பி (ரமணி b _) ப் (ரசல்ஸ b _) ப்ரபொ (சர profV @@ -2710,6 +2735,7 @@ _விரகதா) ப (+ bV# நன்) ப (கல pV பின்) ப (கல pV முன்) ப (கல pV + னி) ப (கவான் bV வட) ப (குதி pV தென்) ப (குதி pV அக்கம்) ப (க்க bV @@ -2808,6 +2834,7 @@ _முனிசி) ப (ல pV வட) ப (ழ pV வீண்) ப (ழி pV _முத்து) ப (வள pV + த) ப (ஸ bV _வா) ப (ஸ pV _தீ) ப (ா p _கலி) ப (ா f @@ -2857,6 +2884,7 @@ _வெளிப்) ப (ாக b _நடை) ப (ாதை p ஜிந்தா) ப (ாத் b _பஞ்ச) ப (ாத்திர p + அ) ப (ான p ச) பாபதி ba:pVti _) பாபவிமோசன pa:bVvimo:tSV _சாயி) பாப (ா ba:b @@ -2972,6 +3000,7 @@ L03ந்தப்) பி (ராய p அக்கினி) ப (ுத்திர p வில்லி) ப (ுத்தூர p ம்) ப (ுரா b + ம்) ப (ுரி b _தர்ம) ப (ுரி p _மர) ப (ுரிமை b இன்) ப (ுற b @@ -3092,6 +3121,7 @@ _மைக்ரோசா) ப் (ட f _ர) ப்ப (ர bbV ஆ) ப்ப (ரிக்க fV தென்னா) ப்ப (ரிக்க fV + _கள) ப்ப (லி bbV உயிர்) ப்ப (லி bbV L03) ப்ப (ஸ bbV _ட) ப்ப (ா bb @@ -3124,13 +3154,17 @@ _ஒL10ி) ப்பி (ரவாக pp தேச) ப்பி (ரஷ்ட pp ஆ) ப்பி (ரிக்க f தென்னா) ப்பி (ரிக்க fV + _கஜ) ப்ப (ிருஷ்ட bb _ஹ) ப்ப (ிள bb _க்ள) ப்ப (ுகள bb உ) ப்ப (ுசத்த bb உ) ப்ப (ுசம bb _சந்தேக) ப்ப (ுத்தி bb + L03) ப்ப (ூதத் bb + L03) ப்ப (ூதம bb இ) ப்ப (ூமி bb _ல) ப்ப (ை bb + _தர்) ப்ப (ை bb துர்) ப்ப (ோதனை bb _கே) ப் (மாரி p கம்) ப்யூட (ர pjU:t.V @@ -3414,6 +3448,7 @@ _சந்தேக) ப்ப (ுத்தி bb _ம) ெள (ஸ aU // bad scanning _ச) ெள aU _ப) ெள aU + _வ) ெள (வால aU ே e: diff --git a/phsource/vowel/e#_2 b/phsource/vowel/e#_2 deleted file mode 100644 index 30a5998d..00000000 Binary files a/phsource/vowel/e#_2 and /dev/null differ diff --git a/platforms/windows/make_espeak.iss b/platforms/windows/make_espeak.iss index 8d571341..0b6c28d4 100644 --- a/platforms/windows/make_espeak.iss +++ b/platforms/windows/make_espeak.iss @@ -2,7 +2,7 @@ [Setup] AppName=eSpeak -AppVerName=eSpeak version 1.46.02 +AppVerName=eSpeak version 1.46.08 AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). WindowVisible=yes @@ -159,7 +159,6 @@ begin $41: Result := 'sw'; $49: Result := 'ta'; $4b: Result := 'kn'; - $4c: Result := 'ml'; //$50: Result := 'mn'; $52: Result := 'cy'; //$5e: Result := 'am'; diff --git a/platforms/windows/make_espeakedit.iss b/platforms/windows/make_espeakedit.iss index de906cce..19d31f59 100644 --- a/platforms/windows/make_espeakedit.iss +++ b/platforms/windows/make_espeakedit.iss @@ -1,7 +1,7 @@ [Setup] AppName=eSpeakEdit -AppVerName=eSpeakEdit version 1.46.02 +AppVerName=eSpeakEdit version 1.46.01 DefaultDirName={pf}\eSpeak DefaultGroupName=eSpeak OutputBaseFilename=setup_espeakedit diff --git a/src/dictionary.cpp b/src/dictionary.cpp index 012d23b2..b4b4d323 100644 --- a/src/dictionary.cpp +++ b/src/dictionary.cpp @@ -161,7 +161,7 @@ static void InitGroups(Translator *tr) if(p[0] == RULE_REPLACEMENTS) { - pw = (unsigned int *)(((long)p+4) & ~3); // advance to next word boundary + pw = (unsigned int *)(((long64)p+4) & ~3); // advance to next word boundary tr->langopts.replace_chars = pw; while(pw[0] != 0) { diff --git a/src/speak_lib.cpp b/src/speak_lib.cpp index 5f2b6e26..bdcc3275 100644 --- a/src/speak_lib.cpp +++ b/src/speak_lib.cpp @@ -550,7 +550,6 @@ void MarkerEvent(int type, unsigned int char_position, int value, int value2, un ENTER("MarkerEvent"); espeak_EVENT *ep; double time; - PHONEME_TAB *ph; if((event_list == NULL) || (event_list_ix >= (n_event_list-2))) return; @@ -576,7 +575,7 @@ void MarkerEvent(int type, unsigned int char_position, int value, int value2, un if((type == espeakEVENT_MARK) || (type == espeakEVENT_PLAY)) ep->id.name = &namedata[value]; else -#ifdef deleted +//#ifdef deleted // temporarily removed, don't introduce until after eSpeak version 1.46.02 if(type == espeakEVENT_PHONEME) { @@ -586,7 +585,7 @@ void MarkerEvent(int type, unsigned int char_position, int value, int value2, un p[1] = value2; } else -#endif +//#endif { ep->id.number = value; } diff --git a/src/speak_lib.h b/src/speak_lib.h index fb749415..1cc15bc1 100644 --- a/src/speak_lib.h +++ b/src/speak_lib.h @@ -1,7 +1,7 @@ #ifndef SPEAK_LIB_H #define SPEAK_LIB_H /*************************************************************************** - * Copyright (C) 2005 to 2010 by Jonathan Duddington * + * Copyright (C) 2005 to 2012 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/speech.h b/src/speech.h index ddf35399..cbc9e5aa 100644 --- a/src/speech.h +++ b/src/speech.h @@ -63,7 +63,7 @@ typedef unsigned short USHORT; typedef unsigned char UCHAR; typedef double DOUBLEX; - +typedef unsigned long long64; // use this for conversion between pointers and integers diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 11f66f48..3dbb62f2 100644 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.46.02 06.Jan.12"; +const char *version_string = "1.46.13 14.Jan.12"; const int version_phdata = 0x014600; int option_device_number = -1; diff --git a/src/synthesize.cpp b/src/synthesize.cpp index 3334ad60..ca0314ea 100644 --- a/src/synthesize.cpp +++ b/src/synthesize.cpp @@ -142,7 +142,7 @@ static void EndPitch(int voice_break) static void DoAmplitude(int amp, unsigned char *amp_env) {//===================================================== - long *q; + long64 *q; last_amp_cmd = wcmdq_tail; amp_length = 0; // total length of vowel with this amplitude envelope @@ -150,7 +150,7 @@ static void DoAmplitude(int amp, unsigned char *amp_env) q = wcmdq[wcmdq_tail]; q[0] = WCMD_AMPLITUDE; q[1] = 0; // fill in later from amp_length - q[2] = (long)amp_env; + q[2] = (long64)amp_env; q[3] = amp; WcmdqInc(); } // end of DoAmplitude @@ -159,7 +159,7 @@ static void DoAmplitude(int amp, unsigned char *amp_env) static void DoPitch(unsigned char *env, int pitch1, int pitch2) {//============================================================ - long *q; + long64 *q; EndPitch(0); @@ -179,7 +179,7 @@ static void DoPitch(unsigned char *env, int pitch1, int pitch2) q = wcmdq[wcmdq_tail]; q[0] = WCMD_PITCH; q[1] = 0; // length, fill in later from pitch_length - q[2] = (long)env; + q[2] = (long64)env; q[3] = (pitch1 << 16) + pitch2; WcmdqInc(); } // end of DoPitch @@ -248,7 +248,7 @@ static int DoSample2(int index, int which, int std_length, int control, int leng int min_length; int x; int len4; - long *q; + long64 *q; unsigned char *p; index = index & 0x7fffff; @@ -336,7 +336,7 @@ static int DoSample2(int index, int which, int std_length, int control, int leng q = wcmdq[wcmdq_tail]; q[0] = WCMD_WAVE2; q[1] = length | (wav_length << 16); // length in samples - q[2] = long(&wavefile_data[index]); + q[2] = long64(&wavefile_data[index]); q[3] = wav_scale + (amp << 8); WcmdqInc(); return(length); @@ -357,7 +357,7 @@ static int DoSample2(int index, int which, int std_length, int control, int leng q = wcmdq[wcmdq_tail]; q[0] = WCMD_WAVE; q[1] = x; // length in samples - q[2] = long(&wavefile_data[index]); + q[2] = long64(&wavefile_data[index]); q[3] = wav_scale + (amp << 8); WcmdqInc(); @@ -372,7 +372,7 @@ static int DoSample2(int index, int which, int std_length, int control, int leng q = wcmdq[wcmdq_tail]; q[0] = WCMD_WAVE; q[1] = len4*2; // length in samples - q[2] = long(&wavefile_data[index+x]); + q[2] = long64(&wavefile_data[index+x]); q[3] = wav_scale + (amp << 8); WcmdqInc(); @@ -388,7 +388,7 @@ static int DoSample2(int index, int which, int std_length, int control, int leng q = wcmdq[wcmdq_tail]; q[0] = WCMD_WAVE; q[1] = length; // length in samples - q[2] = long(&wavefile_data[index+x]); + q[2] = long64(&wavefile_data[index+x]); q[3] = wav_scale + (amp << 8); WcmdqInc(); } @@ -775,7 +775,7 @@ static void SmoothSpect(void) {//========================== // Limit the rate of frequence change of formants, to reduce chirping - long *q; + long64 *q; frame_t *frame; frame_t *frame2; frame_t *frame1; @@ -817,7 +817,7 @@ static void SmoothSpect(void) frame1 = (frame_t *)q[3]; if(frame1 == frame) { - q[3] = (long)frame2; + q[3] = (long64)frame2; frame1 = frame2; } else @@ -865,7 +865,7 @@ static void SmoothSpect(void) modified = 1; } frame2->ffreq[pk] = frame1->ffreq[pk] + allowed; - q[2] = (long)frame2; + q[2] = (long64)frame2; } else if(diff < -allowed) @@ -876,7 +876,7 @@ static void SmoothSpect(void) modified = 1; } frame2->ffreq[pk] = frame1->ffreq[pk] - allowed; - q[2] = (long)frame2; + q[2] = (long64)frame2; } } } @@ -907,7 +907,7 @@ static void SmoothSpect(void) { if(frame1 == frame) { - q[2] = (long)frame2; + q[2] = (long64)frame2; frame1 = frame2; } else @@ -949,7 +949,7 @@ static void SmoothSpect(void) modified = 1; } frame2->ffreq[pk] = frame1->ffreq[pk] + allowed; - q[3] = (long)frame2; + q[3] = (long64)frame2; } else if(diff < -allowed) @@ -960,7 +960,7 @@ static void SmoothSpect(void) modified = 1; } frame2->ffreq[pk] = frame1->ffreq[pk] - allowed; - q[3] = (long)frame2; + q[3] = (long64)frame2; } } } @@ -997,7 +997,7 @@ int DoSpect2(PHONEME_TAB *this_ph, int which, FMT_PARAMS *fmt_params, PHONEME_L frame_t *frame2; frame_t *fr; int ix; - long *q; + long64 *q; int len; int frame_length; int length_factor; @@ -1083,7 +1083,7 @@ if(which==1) && !(last_frame->frflags & FRFLAG_BREAK)) { // last frame of previous sequence was zero-length, replace with first of this sequence - wcmdq[last_wcmdq][3] = (long)frame1; + wcmdq[last_wcmdq][3] = (long64)frame1; if(last_frame->frflags & FRFLAG_BREAK_LF) { @@ -1095,7 +1095,7 @@ if(which==1) fr->ffreq[ix] = last_frame->ffreq[ix]; fr->fheight[ix] = last_frame->fheight[ix]; } - wcmdq[last_wcmdq][3] = (long)fr; + wcmdq[last_wcmdq][3] = (long64)fr; } } } @@ -1180,8 +1180,8 @@ if(which==1) q = wcmdq[wcmdq_tail]; q[0] = wcmd_spect; q[1] = len + (modulation << 16); - q[2] = long(frame1); - q[3] = long(frame2); + q[2] = (long64)frame1; + q[3] = (long64)frame2; WcmdqInc(); } @@ -1254,7 +1254,7 @@ void DoVoiceChange(voice_t *v) v2 = (voice_t *)malloc(sizeof(voice_t)); memcpy(v2,v,sizeof(voice_t)); wcmdq[wcmdq_tail][0] = WCMD_VOICE; - wcmdq[wcmdq_tail][1] = (long)(v2); + wcmdq[wcmdq_tail][2] = (long64)v2; WcmdqInc(); } @@ -1291,7 +1291,7 @@ void DoEmbedded(int *embix, int sourceix) DoPause(10,0); // ensure a break in the speech wcmdq[wcmdq_tail][0] = WCMD_WAVE; wcmdq[wcmdq_tail][1] = soundicon_tab[value].length; - wcmdq[wcmdq_tail][2] = (long)soundicon_tab[value].data + 44; // skip WAV header + wcmdq[wcmdq_tail][2] = (long64)soundicon_tab[value].data + 44; // skip WAV header wcmdq[wcmdq_tail][3] = 0x1500; // 16 bit data, amp=21 WcmdqInc(); } @@ -1337,6 +1337,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume) unsigned char *amp_env; PHONEME_TAB *ph; int use_ipa=0; + int done_phoneme_marker; char phoneme_name[16]; static int sourceix=0; @@ -1424,11 +1425,19 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume) if(p->prepause > 0) DoPause(p->prepause,1); - if(option_phoneme_events && (p->type != phVOWEL) && (p->ph->code != phonEND_WORD)) + done_phoneme_marker = 0; + if(option_phoneme_events && (p->ph->code != phonEND_WORD)) { - // Note, for vowels, do the phoneme event after the vowel-start - WritePhMnemonic(phoneme_name, p->ph, p, use_ipa); - DoPhonemeMarker(espeakEVENT_PHONEME, sourceix, 0, phoneme_name); + if((p->type == phVOWEL) && (prev->type==phLIQUID || prev->type==phNASAL)) + { + // For vowels following a liquid or nasal, do the phoneme event after the vowel-start + } + else + { + WritePhMnemonic(phoneme_name, p->ph, p, use_ipa); + DoPhonemeMarker(espeakEVENT_PHONEME, sourceix, 0, phoneme_name); + done_phoneme_marker = 1; + } } switch(p->type) @@ -1733,7 +1742,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume) DoSpect2(ph, 1, &fmtp, p, modulation); } - if(option_phoneme_events) + if((option_phoneme_events) && (done_phoneme_marker == 0)) { WritePhMnemonic(phoneme_name, p->ph, p, use_ipa); DoPhonemeMarker(espeakEVENT_PHONEME, sourceix, 0, phoneme_name); diff --git a/src/synthesize.h b/src/synthesize.h index 67d8a754..9c3c9ed6 100644 --- a/src/synthesize.h +++ b/src/synthesize.h @@ -462,7 +462,7 @@ extern unsigned char pitch_adjust_tab[MAX_PITCH_VALUE+1]; #define N_WCMDQ 170 #define MIN_WCMDQ 25 // need this many free entries before adding new phoneme -extern long wcmdq[N_WCMDQ][4]; +extern long64 wcmdq[N_WCMDQ][4]; extern int wcmdq_head; extern int wcmdq_tail; diff --git a/src/wavegen.cpp b/src/wavegen.cpp index 01f5dabb..a7535fed 100644 --- a/src/wavegen.cpp +++ b/src/wavegen.cpp @@ -130,7 +130,7 @@ unsigned char *out_end; int outbuf_size = 0; // the queue of operations passed to wavegen from sythesize -long wcmdq[N_WCMDQ][4]; +long64 wcmdq[N_WCMDQ][4]; int wcmdq_head=0; int wcmdq_tail=0; @@ -1868,7 +1868,7 @@ int WavegenFill2(int fill_zeros) // return: 0 output buffer has been filled // return: 1 input command queue is now empty - long *q; + long64 *q; int length; int result; int marker_type; @@ -1972,8 +1972,8 @@ int WavegenFill2(int fill_zeros) break; case WCMD_VOICE: - WavegenSetVoice((voice_t *)q[1]); - free((voice_t *)q[1]); + WavegenSetVoice((voice_t *)q[2]); + free((voice_t *)q[2]); break; case WCMD_EMBEDDED: