import os\r
from pylab import *\r
import numpy\r
+from matplotlib.backends.backend_pdf import PdfPages\r
+pdfFile = PdfPages('patest_suggested_vs_streaminfo_latency.pdf')\r
\r
testExeName = "PATest.exe" # rename to whatever the compiled patest_suggested_vs_streaminfo_latency.c binary is\r
dataFileName = 'patest_suggested_vs_streaminfo_latency.csv' # code below calls the exe to generate this file\r
\r
class R(object): pass\r
result = R()\r
- result.titleInfo = '%s\n%s\n%s'%(params,inputDevice,outputDevice)\r
+ result.params = params\r
+ for s in params.split(','):\r
+ if "sample rate" in s:\r
+ result.sampleRate = s\r
+\r
+ result.inputDevice = inputDevice\r
+ result.outputDevice = outputDevice\r
result.suggestedLatency = data[0]\r
result.halfDuplexOutputLatency = data[1]\r
result.halfDuplexInputLatency = data[2]\r
\r
# could also test: multiples of 10, random numbers, powers of primes, etc\r
\r
- \r
+isFirst = True \r
\r
for framesPerBuffer in framesPerBufferValues:\r
\r
\r
d = loadCsvData(dataFileName)\r
\r
+ if isFirst:\r
+ figure(1)\r
+ gcf().text(0.1, 0.0,\r
+ 'patest_suggested_vs_streaminfo_latency\n%s\n%s\n%s\n'%(d.inputDevice,d.outputDevice,d.sampleRate))\r
+ pdfFile.savefig()\r
+ isFirst = False\r
+ \r
+ figure(2)\r
+\r
plot( d.suggestedLatency, d.suggestedLatency )\r
plot( d.suggestedLatency, d.halfDuplexOutputLatency )\r
plot( d.suggestedLatency, d.halfDuplexInputLatency )\r
plot( d.suggestedLatency, d.fullDuplexOutputLatency )\r
plot( d.suggestedLatency, d.fullDuplexInputLatency )\r
\r
-title('PortAudio suggested (requested) vs. resulting (reported) stream latency\n%s'%d.titleInfo)\r
+title('PortAudio suggested (requested) vs. resulting (reported) stream latency\n%s'%str(framesPerBufferValues))\r
ylabel('PaStreamInfo::{input,output}Latency (s)')\r
xlabel('Pa_OpenStream suggestedLatency (s)')\r
grid(True)\r
\r
+pdfFile.savefig()\r
+\r
+pdfFile.close()\r
+\r
show()\r