|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+clc;tic;clear;clf;rng(0);set(0,'DefaultFigureWindowStyle','DOCKED');
|
|
|
2
|
+O = 84.406022589954030768899117092091000289089388918088900852079 ;
|
|
|
3
|
+A = (((( 0 )))) ;
|
|
|
4
|
+M = (((( 3 )))) ;
|
|
|
5
|
+I = (((( 0 )))) ;
|
|
|
6
|
+O_EDUTILPMA_O_AMPLITUDE_O = 1 / M ^ (((( 2 )))) ;
|
|
|
7
|
+O_SYCNEUQERF_O_FREQUENCYS_O = 1 / O * M.^(( (((( 0 )))) *M^A : (((( 13 )))) *M^A )/M^A);
|
|
|
8
|
+for O_SEULAW_YCNEUQERF_O_FREQUENCY_WALUES_O=1:length(O_SYCNEUQERF_O_FREQUENCYS_O) fprintf(['%d : %.' num2str(2^4) 'f\n'],O_SEULAW_YCNEUQERF_O_FREQUENCY_WALUES_O,O_SYCNEUQERF_O_FREQUENCYS_O(O_SEULAW_YCNEUQERF_O_FREQUENCY_WALUES_O));end
|
|
|
9
|
+
|
|
|
10
|
+fprintf('%s','≡');
|
|
|
11
|
+O_ETAR_ELPMAS_O_SAMPLE_RATE_O=ceil( 4 / O * M ^ (((( 13 )))) );
|
|
|
12
|
+fprintf('\n%s\n',sprintf('%.d',O_ETAR_ELPMAS_O_SAMPLE_RATE_O));
|
|
|
13
|
+fprintf('%s\n','×');
|
|
|
14
|
+O_NOITARUD_O_DURATION_O = O / M ^ (((( 4 )))) ;
|
|
|
15
|
+fprintf('%s\n',sprintf('%.16f',O_NOITARUD_O_DURATION_O));
|
|
|
16
|
+fprintf('%s\n','=');
|
|
|
17
|
+O_YTITNAUQ_ELPMAS_O_SAMPLE_QUANTITY_O=ceil(O_NOITARUD_O_DURATION_O*O_ETAR_ELPMAS_O_SAMPLE_RATE_O);
|
|
|
18
|
+fprintf('%s\n',sprintf('%.d',O_YTITNAUQ_ELPMAS_O_SAMPLE_QUANTITY_O));
|
|
|
19
|
+
|
|
|
20
|
+O_LANGIS_OIDUA_O_AUDIO_SIGNAL_O=zeros(O_YTITNAUQ_ELPMAS_O_SAMPLE_QUANTITY_O,1);
|
|
|
21
|
+
|
|
|
22
|
+for O_XEDNI_YCNEUQERF_O_FREQUENCY_INDEX_O=1:length(O_SYCNEUQERF_O_FREQUENCYS_O) O_EMIT_O_TIME_O=(0:O_YTITNAUQ_ELPMAS_O_SAMPLE_QUANTITY_O-1)/O_ETAR_ELPMAS_O_SAMPLE_RATE_O;
|
|
|
23
|
+O_EPAHS_MROFEWAW_ENIS_O_SINE_WAWEFORM_SHAPE_O = sin(2*4*atan(1)*O_SYCNEUQERF_O_FREQUENCYS_O(O_XEDNI_YCNEUQERF_O_FREQUENCY_INDEX_O)*O_EMIT_O_TIME_O') ;
|
|
|
24
|
+O_EPAHS_MROFEWAW_LAITNENOPXE_O_EXPONENTIAL_WAWEFORM_SHAPE_O = (-1).^floor(.5+O_SYCNEUQERF_O_FREQUENCYS_O(O_XEDNI_YCNEUQERF_O_FREQUENCY_INDEX_O)*2*O_EMIT_O_TIME_O').*(-1+2./(1+exp(1./(-1+mod(.5+O_SYCNEUQERF_O_FREQUENCYS_O(O_XEDNI_YCNEUQERF_O_FREQUENCY_INDEX_O)*2*O_EMIT_O_TIME_O',1))+1./mod(.5+O_SYCNEUQERF_O_FREQUENCYS_O(O_XEDNI_YCNEUQERF_O_FREQUENCY_INDEX_O)*2*O_EMIT_O_TIME_O',1)))) ;
|
|
|
25
|
+O_EPAHS_MROFEWAW_DOIREP_ELGNIS_O_SINGLE_PERIOD_WAWEFORM_SHAPE_O = (((( O_EPAHS_MROFEWAW_ENIS_O_SINE_WAWEFORM_SHAPE_O )))) ;
|
|
|
26
|
+O_LANGIS_OIDUA_O_AUDIO_SIGNAL_O=O_LANGIS_OIDUA_O_AUDIO_SIGNAL_O+O_EPAHS_MROFEWAW_DOIREP_ELGNIS_O_SINGLE_PERIOD_WAWEFORM_SHAPE_O;end
|
|
|
27
|
+
|
|
|
28
|
+O_EPAHS_EDAF_ENISOC_O_COSINE_FADE_SHAPE_O = (0.5 - 0.5*cos(4*atan(1)/O_NOITARUD_O_DURATION_O*2* O_EMIT_O_TIME_O * M ^ (((( I )))) )) ;
|
|
|
29
|
+O_EPAHS_EDAF_LAITNENOPXE_O_EXPONENTIAL_FADE_SHAPE_O = (0.5-0.5*(-1).^floor(1./O_NOITARUD_O_DURATION_O*2* O_EMIT_O_TIME_O * M ^ (((( I )))) )+((-1).^floor(1./O_NOITARUD_O_DURATION_O*2* O_EMIT_O_TIME_O * M ^ (((( I )))) ))./(1+exp((1)./(-1+mod(1./O_NOITARUD_O_DURATION_O*2* O_EMIT_O_TIME_O * M ^ (((( I )))) ,1))+(1)./(mod(1./O_NOITARUD_O_DURATION_O*2* O_EMIT_O_TIME_O * M ^ (((( I )))) ,1))))) ;
|
|
|
30
|
+O_EPAHS_EDAF_O_FADE_SHAPE_O = (((( O_EPAHS_EDAF_ENISOC_O_COSINE_FADE_SHAPE_O )))) ;
|
|
|
31
|
+for O_XEDNI_ELPMAS_O_SAMPLE_INDEX_O=1:O_YTITNAUQ_ELPMAS_O_SAMPLE_QUANTITY_O O_LANGIS_OIDUA_O_AUDIO_SIGNAL_O(O_XEDNI_ELPMAS_O_SAMPLE_INDEX_O)=O_LANGIS_OIDUA_O_AUDIO_SIGNAL_O(O_XEDNI_ELPMAS_O_SAMPLE_INDEX_O)*O_EDUTILPMA_O_AMPLITUDE_O*O_EPAHS_EDAF_O_FADE_SHAPE_O(O_XEDNI_ELPMAS_O_SAMPLE_INDEX_O);end
|
|
|
32
|
+
|
|
|
33
|
+fprintf('%s','¤');
|
|
|
34
|
+fprintf('\n%s%s%s\n',sprintf('%.16f',max(abs(O_LANGIS_OIDUA_O_AUDIO_SIGNAL_O))),'=',sprintf('%.16f',20*log10(max(abs(O_LANGIS_OIDUA_O_AUDIO_SIGNAL_O)))));
|
|
|
35
|
+O_LANGIS_OIDUA_O_AUDIO_SIGNAL_O=(O_LANGIS_OIDUA_O_AUDIO_SIGNAL_O/max(abs(O_LANGIS_OIDUA_O_AUDIO_SIGNAL_O)))*O_EDUTILPMA_O_AMPLITUDE_O;
|
|
|
36
|
+fprintf('%s\n','═');
|
|
|
37
|
+fprintf('%s%s%s\n',sprintf('%.16f',max(abs(O_LANGIS_OIDUA_O_AUDIO_SIGNAL_O))),'=',sprintf('%.16f',20*log10(max(abs(O_LANGIS_OIDUA_O_AUDIO_SIGNAL_O)))));
|
|
|
38
|
+
|
|
|
39
|
+try sound(O_LANGIS_OIDUA_O_AUDIO_SIGNAL_O,O_ETAR_ELPMAS_O_SAMPLE_RATE_O,24);end
|
|
|
40
|
+try audiowrite('C:\VAW.O____TUPTUO_ROTALICSO_OIDUA____O____AUDIO_OSCILATOR_OUTPUT____O.WAV',O_LANGIS_OIDUA_O_AUDIO_SIGNAL_O,O_ETAR_ELPMAS_O_SAMPLE_RATE_O,'BITSPERSAMPLE',64);end
|
|
|
41
|
+fprintf('%s','#');
|
|
|
42
|
+fprintf('\n%s\n',sprintf('%.16f',toc));
|