From e2eee1783b8444e97aabf0d2e16ea0bea55bd0b2 Mon Sep 17 00:00:00 2001 From: EdouardBerge Date: Sat, 10 Jun 2023 14:11:10 +0200 Subject: [PATCH] AKI output support --- wav2ay.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 68 insertions(+), 5 deletions(-) diff --git a/wav2ay.c b/wav2ay.c index 6691f0e..e7880e1 100644 --- a/wav2ay.c +++ b/wav2ay.c @@ -494,7 +494,7 @@ int getvolume(double level) { return volume; } -void do_sample(double *data,int n, double pw, double cutlow, double cuthigh, double acqui, double replay, double preamp, int info, double workingfreq, int nbchannel, double treshold, int dmalist, char *wavout_filename, int *channel_list, int cpclist) { +void do_sample(double *data,int n, double pw, double cutlow, double cuthigh, double acqui, double replay, double preamp, int info, double workingfreq, int nbchannel, double treshold, int dmalist, char *wavout_filename, int *channel_list, int cpclist, char *akifilename) { double *fourier,*oldfourier; double *newdata,subcoef; double vmax,resolution,picfreq; @@ -515,6 +515,10 @@ void do_sample(double *data,int n, double pw, double cutlow, double cuthigh, dou int nbchanges; int makenoise=0; int hadnoise=0; + FILE *akifile; +#ifdef OS_WIN + int sr; +#endif if (pw<0.0 || pw>0.75) { fprintf(stderr,"previous weight not in [0.0:0.75] interval. Default value is 0.25\n"); @@ -597,6 +601,33 @@ void do_sample(double *data,int n, double pw, double cutlow, double cuthigh, dou if (preamp!=1.0) for (j=0;j\n"\ + "\n"\ + " \n"\ + " 1\n"\ + " %s\n"\ + " %d\n"\ + " false\n"\ + " %d\n"\ + " %d\n"\ + " false\n"\ + " 4281370811\n",akifilename,replay==50?0:replay==25?1:2,nbwin-1,nbwin-1); + } + for (i=0;i\n"\ + " softOnly\n"\ + " %d\n"\ + " %d\n"\ + " %d\n"\ + " 0\n"\ + " 0\n"\ + " 1\n"\ + " 8\n"\ + " 0\n"\ + " 0\n"\ + " 0\n"\ + " false\n"\ + " \n",AYvolume[0],makenoise,AYperiod[0]); + } + } + + if (akifilename) { + fprintf(akifile," \n\n"); + fclose(akifile); } if (wavout_filename) { @@ -879,9 +932,6 @@ void do_sample(double *data,int n, double pw, double cutlow, double cuthigh, dou } - - - void usage() { printf("=========== conversion from WAV to AY registers ===========\n"); printf("usage: wav2ay.exe \n"); @@ -898,6 +948,7 @@ void usage() { printf("-dmalist output optimised DMA list\n"); printf("-cpclist output optimised list for CPC replay\n"); printf("-wavout output WAV preview\n"); + printf("-aki output AKI file for Arkos Track 2\n"); printf("-verbose\n"); printf("\n"); exit(1); @@ -911,6 +962,7 @@ void main(int argc, char **argv) { int nbchannel,dmalist,cpclist; int channel_list[3],ichan=0; char *wavoutfilename=NULL; + char *akifilename=NULL; dmalist=cpclist=0; preamp=1.0; @@ -938,6 +990,8 @@ void main(int argc, char **argv) { } else if (strcmp(argv[i],"-tresh")==0 && i+1