Added Audio Codecs presentation

This commit is contained in:
Logan G 2024-09-16 19:27:30 -06:00
parent bec5445071
commit 11f81bb3af
Signed by: logan
GPG key ID: E328528C921E7A7A
70 changed files with 12199 additions and 0 deletions

5
audiocodecs/.gitignore vendored Normal file
View file

@ -0,0 +1,5 @@
out/
out/**
work/
work/**

22
audiocodecs/Makefile Normal file
View file

@ -0,0 +1,22 @@
SRC = ./slides/*.md
TEMP_DIR = ./work/
TEMP_MD = $(TEMP_DIR)/work.md
OUT_DIR = ./out/
INCLUDE_DIR = ./media/
all: $(OUT_DIR)/index.html
$(OUT_DIR)/index.html: $(TEMP_MD)
mkdir -p $(OUT_DIR)
mdslides $(TEMP_MD) --include $(INCLUDE_DIR) --output $(OUT_DIR)
$(TEMP_MD): $(SRC)
mkdir -p $(TEMP_DIR)
cat $(SRC) > $(TEMP_MD)
preview: $(OUT_DIR)/index.html
xdg-open $(OUT_DIR)/index.html
clean:
rm -rf $(OUT_DIR)/
rm -rf $(TEMP_DIR)/

0
audiocodecs/README.md Normal file
View file

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Basic//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="120" height="42" viewBox="0 0 120 42" baseProfile="basic" version="1.1">
<g id="surface1">
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(66.666667%,69.803922%,67.058824%);fill-opacity:1;" d="M 3.410156 0.453125 L 116.761719 0.652344 C 118.347656 0.652344 119.761719 0.417969 119.761719 3.816406 L 119.621094 41.144531 L 0.546875 41.144531 L 0.546875 3.675781 C 0.546875 2 0.710938 0.453125 3.410156 0.453125 Z "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 117.753906 0 L 2.246094 0 C 1.007813 0 0 1.007813 0 2.246094 L 0 41.492188 C 0 41.773438 0.226563 42 0.507813 42 L 119.492188 42 C 119.773438 42 120 41.773438 120 41.492188 L 120 2.246094 C 120 1.007813 118.992188 0 117.753906 0 Z M 2.246094 1.015625 L 117.753906 1.015625 C 118.433594 1.015625 118.984375 1.566406 118.984375 2.246094 C 118.984375 2.246094 118.984375 18.042969 118.984375 29.46875 L 36.429688 29.46875 C 33.402344 34.9375 27.570313 38.652344 20.882813 38.652344 C 14.1875 38.652344 8.359375 34.941406 5.335938 29.46875 L 1.015625 29.46875 C 1.015625 18.042969 1.015625 2.246094 1.015625 2.246094 C 1.015625 1.566406 1.566406 1.015625 2.246094 1.015625 Z "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 34.523438 19.550781 C 34.527344 27.082031 28.425781 33.1875 20.894531 33.191406 C 13.367188 33.199219 7.257813 27.097656 7.253906 19.566406 C 7.253906 19.5625 7.253906 19.558594 7.253906 19.550781 C 7.246094 12.023438 13.347656 5.914063 20.878906 5.910156 C 28.410156 5.90625 34.519531 12.003906 34.523438 19.535156 C 34.523438 19.539063 34.523438 19.546875 34.523438 19.550781 Z "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 31.972656 8.445313 C 34.996094 11.46875 36.507813 15.171875 36.507813 19.550781 C 36.507813 23.929688 35.019531 27.59375 32.050781 30.539063 C 28.894531 33.640625 25.167969 35.191406 20.867188 35.191406 C 16.617188 35.191406 12.957031 33.652344 9.882813 30.578125 C 6.804688 27.503906 5.269531 23.828125 5.269531 19.550781 C 5.269531 15.277344 6.804688 11.574219 9.882813 8.445313 C 12.878906 5.421875 16.539063 3.910156 20.867188 3.910156 C 25.246094 3.910156 28.949219 5.421875 31.972656 8.445313 Z M 11.917969 10.480469 C 9.359375 13.0625 8.082031 16.085938 8.082031 19.554688 C 8.082031 23.023438 9.347656 26.023438 11.875 28.550781 C 14.40625 31.082031 17.417969 32.34375 20.914063 32.34375 C 24.410156 32.34375 27.445313 31.066406 30.027344 28.511719 C 32.480469 26.140625 33.707031 23.152344 33.707031 19.554688 C 33.707031 15.984375 32.460938 12.953125 29.96875 10.460938 C 27.476563 7.972656 24.460938 6.726563 20.914063 6.726563 C 17.367188 6.726563 14.367188 7.976563 11.917969 10.480469 Z M 18.644531 18.03125 C 18.253906 17.179688 17.667969 16.753906 16.886719 16.753906 C 15.511719 16.753906 14.820313 17.679688 14.820313 19.535156 C 14.820313 21.390625 15.511719 22.320313 16.886719 22.320313 C 17.796875 22.320313 18.449219 21.867188 18.839844 20.960938 L 20.75 21.980469 C 19.839844 23.597656 18.472656 24.40625 16.652344 24.40625 C 15.246094 24.40625 14.121094 23.976563 13.273438 23.113281 C 12.429688 22.253906 12.003906 21.066406 12.003906 19.550781 C 12.003906 18.0625 12.441406 16.882813 13.3125 16.007813 C 14.183594 15.132813 15.273438 14.695313 16.574219 14.695313 C 18.5 14.695313 19.878906 15.453125 20.710938 16.972656 Z M 27.632813 18.03125 C 27.242188 17.179688 26.667969 16.753906 25.914063 16.753906 C 24.507813 16.753906 23.804688 17.679688 23.804688 19.535156 C 23.804688 21.390625 24.507813 22.320313 25.914063 22.320313 C 26.828125 22.320313 27.464844 21.867188 27.828125 20.960938 L 29.78125 21.980469 C 28.871094 23.597656 27.507813 24.40625 25.691406 24.40625 C 24.285156 24.40625 23.164063 23.976563 22.316406 23.113281 C 21.476563 22.253906 21.050781 21.066406 21.050781 19.550781 C 21.050781 18.0625 21.480469 16.882813 22.339844 16.007813 C 23.195313 15.132813 24.285156 14.695313 25.613281 14.695313 C 27.535156 14.695313 28.910156 15.453125 29.742188 16.972656 Z "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 62.503906 15.222656 C 62.503906 21.152344 57.695313 25.960938 51.761719 25.960938 C 45.832031 25.960938 41.023438 21.152344 41.023438 15.222656 C 41.023438 9.292969 45.832031 4.484375 51.761719 4.484375 C 57.695313 4.484375 62.503906 9.292969 62.503906 15.222656 Z "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 54.871094 12.117188 C 54.871094 11.703125 54.535156 11.367188 54.121094 11.367188 L 49.378906 11.367188 C 48.964844 11.367188 48.628906 11.703125 48.628906 12.117188 L 48.628906 16.859375 L 49.953125 16.859375 L 49.953125 22.476563 L 53.546875 22.476563 L 53.546875 16.859375 L 54.871094 16.859375 Z "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 53.371094 9.121094 C 53.371094 10.015625 52.648438 10.742188 51.75 10.742188 C 50.855469 10.742188 50.128906 10.015625 50.128906 9.121094 C 50.128906 8.226563 50.855469 7.5 51.75 7.5 C 52.648438 7.5 53.371094 8.226563 53.371094 9.121094 Z "/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 51.734375 3.390625 C 48.523438 3.390625 45.804688 4.511719 43.578125 6.753906 C 41.296875 9.074219 40.15625 11.816406 40.15625 14.988281 C 40.15625 18.15625 41.296875 20.882813 43.578125 23.160156 C 45.863281 25.441406 48.582031 26.582031 51.734375 26.582031 C 54.929688 26.582031 57.695313 25.433594 60.039063 23.132813 C 62.246094 20.949219 63.347656 18.234375 63.347656 14.988281 C 63.347656 11.738281 62.226563 8.996094 59.980469 6.753906 C 57.734375 4.511719 54.988281 3.390625 51.734375 3.390625 Z M 51.765625 5.480469 C 54.398438 5.480469 56.632813 6.40625 58.46875 8.261719 C 60.328125 10.097656 61.257813 12.339844 61.257813 14.988281 C 61.257813 17.652344 60.347656 19.867188 58.527344 21.625 C 56.613281 23.519531 54.359375 24.464844 51.765625 24.464844 C 49.171875 24.464844 46.9375 23.527344 45.058594 21.652344 C 43.183594 19.78125 42.246094 17.558594 42.246094 14.988281 C 42.246094 12.417969 43.191406 10.175781 45.089844 8.261719 C 46.910156 6.40625 49.132813 5.480469 51.765625 5.480469 Z "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 48.402344 32.746094 C 48.714844 32.746094 49.003906 32.777344 49.265625 32.832031 C 49.523438 32.886719 49.75 32.976563 49.933594 33.105469 C 50.121094 33.230469 50.261719 33.398438 50.367188 33.609375 C 50.46875 33.820313 50.519531 34.078125 50.519531 34.386719 C 50.519531 34.722656 50.445313 35 50.292969 35.222656 C 50.140625 35.445313 49.914063 35.625 49.617188 35.769531 C 50.027344 35.886719 50.332031 36.09375 50.535156 36.386719 C 50.738281 36.679688 50.839844 37.035156 50.839844 37.449219 C 50.839844 37.78125 50.773438 38.070313 50.644531 38.316406 C 50.511719 38.558594 50.335938 38.761719 50.117188 38.914063 C 49.898438 39.070313 49.644531 39.183594 49.363281 39.257813 C 49.082031 39.332031 48.792969 39.371094 48.496094 39.371094 L 45.277344 39.371094 L 45.277344 32.746094 Z M 48.214844 35.425781 C 48.476563 35.425781 48.6875 35.363281 48.855469 35.242188 C 49.023438 35.117188 49.105469 34.917969 49.105469 34.640625 C 49.105469 34.484375 49.078125 34.359375 49.023438 34.261719 C 48.96875 34.160156 48.894531 34.085938 48.800781 34.027344 C 48.707031 33.972656 48.601563 33.933594 48.480469 33.914063 C 48.359375 33.890625 48.234375 33.878906 48.101563 33.878906 L 46.738281 33.878906 L 46.738281 35.425781 Z M 48.300781 38.234375 C 48.441406 38.234375 48.578125 38.222656 48.707031 38.195313 C 48.839844 38.167969 48.953125 38.121094 49.054688 38.054688 C 49.152344 37.992188 49.230469 37.902344 49.289063 37.789063 C 49.347656 37.679688 49.378906 37.539063 49.378906 37.363281 C 49.378906 37.023438 49.28125 36.78125 49.089844 36.636719 C 48.898438 36.492188 48.644531 36.417969 48.328125 36.417969 L 46.738281 36.417969 L 46.738281 38.234375 Z "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 51.09375 32.746094 L 52.726563 32.746094 L 54.277344 35.363281 L 55.820313 32.746094 L 57.445313 32.746094 L 54.984375 36.828125 L 54.984375 39.371094 L 53.523438 39.371094 L 53.523438 36.789063 Z "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 98.441406 37.730469 C 98.519531 37.886719 98.625 38.011719 98.761719 38.109375 C 98.894531 38.203125 99.046875 38.273438 99.226563 38.320313 C 99.40625 38.367188 99.589844 38.390625 99.78125 38.390625 C 99.910156 38.390625 100.050781 38.378906 100.199219 38.359375 C 100.347656 38.335938 100.484375 38.296875 100.617188 38.234375 C 100.746094 38.171875 100.851563 38.085938 100.941406 37.976563 C 101.023438 37.871094 101.070313 37.730469 101.070313 37.566406 C 101.070313 37.386719 101.011719 37.242188 100.898438 37.128906 C 100.785156 37.019531 100.632813 36.925781 100.449219 36.851563 C 100.261719 36.777344 100.050781 36.710938 99.820313 36.65625 C 99.582031 36.601563 99.347656 36.539063 99.105469 36.472656 C 98.859375 36.410156 98.617188 36.332031 98.382813 36.242188 C 98.148438 36.15625 97.9375 36.039063 97.753906 35.894531 C 97.566406 35.753906 97.417969 35.574219 97.304688 35.363281 C 97.191406 35.148438 97.132813 34.890625 97.132813 34.589844 C 97.132813 34.246094 97.207031 33.953125 97.351563 33.703125 C 97.496094 33.453125 97.683594 33.242188 97.917969 33.074219 C 98.152344 32.910156 98.421875 32.785156 98.71875 32.703125 C 99.011719 32.625 99.308594 32.585938 99.605469 32.585938 C 99.953125 32.585938 100.285156 32.625 100.601563 32.699219 C 100.921875 32.777344 101.203125 32.902344 101.449219 33.078125 C 101.699219 33.25 101.894531 33.472656 102.039063 33.738281 C 102.183594 34.011719 102.257813 34.335938 102.257813 34.71875 L 100.84375 34.71875 C 100.832031 34.519531 100.789063 34.355469 100.71875 34.226563 C 100.648438 34.097656 100.554688 33.996094 100.4375 33.921875 C 100.320313 33.847656 100.1875 33.792969 100.035156 33.765625 C 99.886719 33.734375 99.71875 33.71875 99.542969 33.71875 C 99.425781 33.71875 99.308594 33.730469 99.191406 33.753906 C 99.074219 33.78125 98.96875 33.824219 98.875 33.882813 C 98.777344 33.945313 98.699219 34.023438 98.636719 34.117188 C 98.578125 34.210938 98.546875 34.328125 98.546875 34.46875 C 98.546875 34.597656 98.570313 34.703125 98.617188 34.785156 C 98.667969 34.863281 98.765625 34.941406 98.910156 35.007813 C 99.058594 35.074219 99.257813 35.144531 99.511719 35.210938 C 99.769531 35.277344 100.105469 35.367188 100.519531 35.472656 C 100.640625 35.496094 100.8125 35.542969 101.03125 35.605469 C 101.25 35.671875 101.46875 35.773438 101.683594 35.917969 C 101.902344 36.058594 102.085938 36.25 102.246094 36.488281 C 102.402344 36.726563 102.480469 37.03125 102.480469 37.402344 C 102.480469 37.703125 102.421875 37.984375 102.304688 38.246094 C 102.1875 38.503906 102.011719 38.730469 101.78125 38.917969 C 101.550781 39.105469 101.261719 39.253906 100.917969 39.359375 C 100.574219 39.464844 100.179688 39.515625 99.726563 39.515625 C 99.363281 39.515625 99.007813 39.472656 98.664063 39.382813 C 98.320313 39.292969 98.019531 39.152344 97.757813 38.957031 C 97.492188 38.765625 97.285156 38.519531 97.128906 38.222656 C 96.976563 37.925781 96.902344 37.574219 96.90625 37.167969 L 98.320313 37.167969 C 98.320313 37.390625 98.359375 37.578125 98.441406 37.730469 Z "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 106.644531 32.746094 L 109.121094 39.371094 L 107.609375 39.371094 L 107.109375 37.894531 L 104.632813 37.894531 L 104.113281 39.371094 L 102.648438 39.371094 L 105.152344 32.746094 Z M 106.730469 36.808594 L 105.894531 34.378906 L 105.875 34.378906 L 105.015625 36.808594 Z "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 72.519531 32.746094 L 75.285156 37.191406 L 75.300781 37.191406 L 75.300781 32.746094 L 76.667969 32.746094 L 76.667969 39.371094 L 75.210938 39.371094 L 72.453125 34.9375 L 72.433594 34.9375 L 72.433594 39.371094 L 71.070313 39.371094 L 71.070313 32.746094 Z "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 82.195313 34.511719 C 82.109375 34.371094 82 34.25 81.871094 34.144531 C 81.742188 34.039063 81.59375 33.957031 81.429688 33.898438 C 81.265625 33.839844 81.09375 33.8125 80.914063 33.8125 C 80.585938 33.8125 80.308594 33.875 80.078125 34 C 79.851563 34.128906 79.664063 34.296875 79.523438 34.511719 C 79.382813 34.722656 79.277344 34.964844 79.210938 35.238281 C 79.148438 35.511719 79.113281 35.792969 79.113281 36.082031 C 79.113281 36.359375 79.148438 36.632813 79.210938 36.894531 C 79.277344 37.15625 79.382813 37.394531 79.523438 37.601563 C 79.664063 37.8125 79.851563 37.980469 80.078125 38.109375 C 80.308594 38.234375 80.585938 38.296875 80.914063 38.296875 C 81.359375 38.296875 81.707031 38.164063 81.957031 37.890625 C 82.210938 37.617188 82.363281 37.257813 82.417969 36.8125 L 83.828125 36.8125 C 83.792969 37.226563 83.695313 37.601563 83.539063 37.9375 C 83.386719 38.269531 83.179688 38.554688 82.929688 38.789063 C 82.675781 39.027344 82.378906 39.207031 82.039063 39.332031 C 81.699219 39.453125 81.324219 39.515625 80.914063 39.515625 C 80.40625 39.515625 79.953125 39.429688 79.546875 39.25 C 79.140625 39.078125 78.800781 38.832031 78.519531 38.523438 C 78.242188 38.214844 78.027344 37.851563 77.878906 37.433594 C 77.730469 37.015625 77.65625 36.566406 77.65625 36.082031 C 77.65625 35.585938 77.730469 35.128906 77.878906 34.703125 C 78.027344 34.28125 78.242188 33.910156 78.519531 33.59375 C 78.800781 33.28125 79.140625 33.03125 79.546875 32.851563 C 79.953125 32.671875 80.40625 32.585938 80.914063 32.585938 C 81.28125 32.585938 81.625 32.636719 81.949219 32.742188 C 82.273438 32.847656 82.566406 33 82.820313 33.203125 C 83.078125 33.402344 83.289063 33.652344 83.457031 33.949219 C 83.625 34.246094 83.730469 34.585938 83.773438 34.96875 L 82.363281 34.96875 C 82.335938 34.804688 82.28125 34.648438 82.195313 34.511719 Z "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 114.578125 14.980469 C 114.585938 20.824219 109.847656 25.566406 104.003906 25.574219 C 98.15625 25.574219 93.414063 20.84375 93.410156 14.996094 C 93.410156 14.992188 93.410156 14.984375 93.410156 14.980469 C 93.40625 9.136719 98.140625 4.394531 103.988281 4.390625 C 109.832031 4.382813 114.574219 9.121094 114.578125 14.964844 C 114.578125 14.96875 114.578125 14.976563 114.578125 14.980469 Z "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 103.917969 3.386719 C 100.707031 3.386719 97.988281 4.507813 95.761719 6.746094 C 93.480469 9.066406 92.335938 11.8125 92.335938 14.980469 C 92.335938 18.148438 93.480469 20.875 95.761719 23.15625 C 98.046875 25.4375 100.765625 26.574219 103.917969 26.574219 C 107.113281 26.574219 109.878906 25.425781 112.21875 23.125 C 114.425781 20.941406 115.53125 18.226563 115.53125 14.980469 C 115.53125 11.734375 114.40625 8.988281 112.164063 6.746094 C 109.917969 4.507813 107.171875 3.386719 103.917969 3.386719 Z M 103.949219 5.472656 C 106.578125 5.472656 108.8125 6.398438 110.652344 8.257813 C 112.511719 10.089844 113.4375 12.332031 113.4375 14.980469 C 113.4375 17.648438 112.53125 19.859375 110.710938 21.621094 C 108.796875 23.511719 106.539063 24.460938 103.949219 24.460938 C 101.355469 24.460938 99.121094 23.523438 97.242188 21.648438 C 95.367188 19.773438 94.425781 17.550781 94.425781 14.980469 C 94.425781 12.410156 95.375 10.167969 97.273438 8.257813 C 99.089844 6.398438 101.316406 5.472656 103.949219 5.472656 Z "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 98.777344 13.34375 C 99.242188 10.425781 101.292969 8.867188 103.871094 8.867188 C 107.570313 8.867188 109.828125 11.554688 109.828125 15.136719 C 109.828125 18.628906 107.425781 21.34375 103.8125 21.34375 C 101.324219 21.34375 99.097656 19.816406 98.691406 16.808594 L 101.613281 16.808594 C 101.699219 18.371094 102.710938 18.917969 104.160156 18.917969 C 105.804688 18.917969 106.878906 17.386719 106.878906 15.046875 C 106.878906 12.59375 105.953125 11.292969 104.214844 11.292969 C 102.945313 11.292969 101.84375 11.757813 101.613281 13.34375 L 102.460938 13.339844 L 100.164063 15.636719 L 97.863281 13.339844 Z "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 88.628906 14.980469 C 88.632813 20.9375 83.808594 25.769531 77.851563 25.773438 C 71.894531 25.777344 67.058594 20.953125 67.054688 14.996094 C 67.054688 14.992188 67.054688 14.984375 67.054688 14.980469 C 67.050781 9.023438 71.878906 4.191406 77.835938 4.1875 C 83.792969 4.183594 88.625 9.007813 88.628906 14.964844 C 88.628906 14.96875 88.628906 14.976563 88.628906 14.980469 Z "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 77.828125 3.386719 C 81.078125 3.386719 83.824219 4.507813 86.070313 6.746094 C 88.316406 8.988281 89.4375 11.734375 89.4375 14.980469 C 89.4375 18.226563 88.335938 20.941406 86.128906 23.125 C 83.789063 25.425781 81.019531 26.574219 77.828125 26.574219 C 74.671875 26.574219 71.953125 25.4375 69.671875 23.15625 C 67.386719 20.875 66.246094 18.148438 66.246094 14.980469 C 66.246094 11.8125 67.386719 9.066406 69.671875 6.746094 C 71.898438 4.507813 74.613281 3.386719 77.828125 3.386719 Z M 68.855469 11.867188 C 68.507813 12.84375 68.335938 13.882813 68.335938 14.980469 C 68.335938 17.550781 69.273438 19.773438 71.152344 21.648438 C 73.027344 23.523438 75.261719 24.460938 77.855469 24.460938 C 80.449219 24.460938 82.703125 23.511719 84.621094 21.617188 C 85.261719 21 85.789063 20.324219 86.203125 19.589844 L 81.832031 17.644531 C 81.535156 19.113281 80.226563 20.109375 78.640625 20.226563 L 78.640625 22.011719 L 77.308594 22.011719 L 77.308594 20.226563 C 76.007813 20.210938 74.75 19.675781 73.789063 18.835938 L 75.386719 17.226563 C 76.15625 17.949219 76.925781 18.273438 77.976563 18.273438 C 78.65625 18.273438 79.410156 18.007813 79.410156 17.121094 C 79.410156 16.808594 79.289063 16.589844 79.097656 16.425781 L 77.992188 15.933594 L 76.613281 15.320313 C 75.933594 15.015625 75.355469 14.761719 74.777344 14.503906 Z M 77.855469 5.472656 C 75.222656 5.472656 73 6.398438 71.179688 8.257813 C 70.683594 8.753906 70.253906 9.277344 69.890625 9.820313 L 74.320313 11.796875 C 74.722656 10.566406 75.890625 9.820313 77.308594 9.738281 L 77.308594 7.949219 L 78.640625 7.949219 L 78.640625 9.738281 C 79.558594 9.78125 80.5625 10.03125 81.554688 10.800781 L 80.03125 12.367188 C 79.46875 11.96875 78.757813 11.6875 78.046875 11.6875 C 77.472656 11.6875 76.660156 11.863281 76.660156 12.585938 C 76.660156 12.699219 76.695313 12.796875 76.761719 12.882813 L 78.246094 13.542969 L 79.25 13.988281 C 79.890625 14.273438 80.503906 14.546875 81.113281 14.816406 L 87.054688 17.464844 C 87.25 16.683594 87.347656 15.855469 87.347656 14.980469 C 87.347656 12.332031 86.417969 10.089844 84.5625 8.257813 C 82.722656 6.398438 80.488281 5.472656 77.855469 5.472656 Z "/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

View file

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="674" height="497">
<defs>
<marker orient="auto" id="Arrow2Send" style="overflow:visible">
<path d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(-0.3,0,0,-0.3,0.69,0)" style="fill:#808080"/>
</marker>
<marker orient="auto" id="Arrow2Mstart" style="overflow:visible">
<path d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="scale(0.6,0.6)" style="fill:#808080"/>
</marker>
<marker orient="auto" id="Arrow2Mend" style="overflow:visible">
<path d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="scale(-0.6,-0.6)" style="fill:#808080"/>
</marker>
<linearGradient id="linearGradient3793">
<stop style="stop-color:#ff9966" offset="0"/>
<stop style="stop-color:#ffff66" offset="0.5"/>
<stop style="stop-color:#66ff6c" offset="1"/>
</linearGradient>
<linearGradient x1="78" x2="380" id="linearGradient3803" xlink:href="#linearGradient3793" gradientUnits="userSpaceOnUse"/>
<linearGradient x1="74" y1="173" x2="601" y2="173" id="linearGradient3825" xlink:href="#linearGradient3793" gradientUnits="userSpaceOnUse"/>
</defs>
<path d="m 59,131 567,0" id="path1" style="stroke:#808080;stroke-linecap:round"/>
<use transform="translate(0,75)" xlink:href="#path1"/>
<use transform="translate(0,158)" xlink:href="#path1"/>
<use transform="translate(0,253)" xlink:href="#path1"/>
<path d="m 59,47 556,0" style="stroke:#808080;stroke-width:5;stroke-linecap:round;marker-end:url(#Arrow2Send)"/>
<path d="m 59,47 0,370" style="stroke:#808080;stroke-width:5;stroke-linecap:round;marker-end:url(#Arrow2Send)"/>
<path d="m 652,66 0,313" style="stroke:#808080;stroke-width:2.5;marker-start:url(#Arrow2Mstart);marker-end:url(#Arrow2Mend)"/>
<path d="m 119,425 464,0" style="stroke:#808080;stroke-width:2.5;marker-start:url(#Arrow2Mstart);marker-end:url(#Arrow2Mend)"/>
<ellipse cx="484.25" cy="162" rx="141.75" ry="44" style="fill:#66ff6c"/>
<path d="m 633,99.63936 a 274,38 0 0 1 -548,0 274,38 0 1 1 548,0 z" style="fill:#808080"/>
<ellipse cx="352" cy="92" rx="274" ry="38" style="fill:url(#linearGradient3803)"/>
<ellipse cx="115.5" cy="107.5" rx="42" ry="19" style="fill:#ff9966"/>
<ellipse cx="210" cy="170" rx="132" ry="28" style="fill:url(#linearGradient3825)"/>
<ellipse cx="295" cy="206" rx="85" ry="19" style="fill:#66ff6c"/>
<ellipse cx="200.5" cy="232" rx="84.5" ry="19" style="fill:#ffff66"/>
<ellipse cx="285.5" cy="291" rx="131.5" ry="28" style="fill:#66ff6c"/>
<ellipse cx="417.5" cy="389" rx="207.5" ry="28" style="fill:#66ff6c"/>
<rect width="461" height="38" x="122" y="459" style="fill:#ffffff;stroke:#808080"/>
<circle cx="142.5" cy="478" r="11.5" style="fill:#ff9966;stroke:#808080"/>
<circle cx="304.5" cy="478" r="11.5" style="fill:#ffff66;stroke:#808080"/>
<circle cx="443" cy="478" r="11.5" style="fill:#66ff6c;stroke:#808080"/>
<text style="font-size:19px;text-align:center;text-anchor:middle;font-family:DejaVu Sans"><tspan x="339" y="16">Bitrate (kbps/channel)</tspan></text>
<text transform="matrix(0,1,-1,0,0,0)" style="font-size:19px;text-align:center;text-anchor:middle;font-family:DejaVu Sans"><tspan x="205.1291" y="-4.7897768">Delay (ms)</tspan></text>
<text style="font-size:19px;text-align:end;text-anchor:end;font-family:DejaVu Sans"><tspan x="49.392632" y="53.892239">0</tspan></text>
<text style="font-size:19px;text-align:end;text-anchor:end;font-family:DejaVu Sans"><tspan x="49.392632" y="137.91626">20</tspan></text>
<use transform="translate(-300.1782,174.41626)" xlink:href="#text1"/>
<text style="font-size:19px;text-align:end;text-anchor:end;font-family:DejaVu Sans"><tspan x="49.392632" y="295.91626">80</tspan></text>
<text style="font-size:19px;text-align:end;text-anchor:end;font-family:DejaVu Sans"><tspan x="49.392632" y="390.91626">200</tspan></text>
<text id="text1" style="font-size:19px;font-family:DejaVu Sans"><tspan x="325.37552" y="38.5">40</tspan></text>
<text style="font-size:19px;font-family:DejaVu Sans"><tspan x="574.30951" y="38.5">80</tspan></text>
<text style="font-size:19px;font-family:DejaVu Sans"><tspan x="167.28203" y="485.08325">narrowband</tspan></text>
<text style="font-size:19px;font-family:DejaVu Sans"><tspan x="329.12265" y="485.08325">wideband</tspan></text>
<text style="font-size:19px;font-family:DejaVu Sans"><tspan x="464.8848" y="485.08325">&gt; wideband</tspan></text>
<text style="font-size:19px;font-family:DejaVu Sans"><tspan x="138.71498" y="444" style="font-size:15px;font-family:DejaVu Sans">Phone quality</tspan></text>
<text style="font-size:15px;font-family:DejaVu Sans"><tspan x="458.48438" y="444">High fidelity</tspan></text>
<text transform="matrix(0,1,-1,0,0,0)" style="font-size:15px;font-family:DejaVu Sans"><tspan x="95.674614" y="-662">Real-time (live)</tspan></text>
<text transform="matrix(0,1,-1,0,0,0)" style="font-size:15px;font-family:DejaVu Sans"><tspan x="276.49753" y="-662">Archival</tspan></text>
<text id="text2" style="font-size:23px;text-align:center;text-anchor:middle;font-family:DejaVu Sans"><tspan x="59.024021" y="254.70996"></tspan></text>
<use transform="translate(0,89)" xlink:href="#text2"/>
<text style="font-size:22px;font-weight:bold;text-align:center;text-anchor:middle;font-family:DejaVu Sans"><tspan x="351.97852" y="97.875977">Opus</tspan></text>
<text style="font-size:20px;text-align:center;text-anchor:middle;font-family:DejaVu Sans"><tspan x="115.64648" y="114.78027">G.729</tspan></text>
<text style="font-size:20px;text-align:center;text-anchor:middle;font-family:DejaVu Sans"><tspan x="210.20508" y="175.50781">Speex (NB, WB)</tspan></text>
<text style="font-size:22px;text-align:center;text-anchor:middle;font-family:DejaVu Sans"><tspan x="484.55859" y="170.0083">AAC-LD</tspan></text>
<text style="font-size:22px;text-align:center;text-anchor:middle;font-family:DejaVu Sans"><tspan x="294.98926" y="214.0083">G.722.1C</tspan></text>
<text style="font-size:22px;text-align:center;text-anchor:middle;font-family:DejaVu Sans"><tspan x="200.90283" y="240.0083">G.729.1</tspan></text>
<text style="font-size:22px;text-align:center;text-anchor:middle;font-family:DejaVu Sans"><tspan x="286.62097" y="299.01904">AMR-WB+</tspan></text>
<text style="font-size:22px;text-align:center;text-anchor:middle;font-family:DejaVu Sans"><tspan x="418.30029" y="396.0791">Vorbis, AAC, MP3</tspan></text>
</svg>

After

Width:  |  Height:  |  Size: 6.8 KiB

View file

@ -0,0 +1,121 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="1010" height="750">
<defs>
<marker orient="auto" id="Arrow1Lend" style="overflow:visible">
<path d="m 2,0 -17.5,5 5,-5 -5,-5 L 2,0"/>
</marker>
</defs>
<path d="M 54,601.25 54,11" style="stroke:#000000;stroke-width:2.5;marker-end:url(#Arrow1Lend)"/>
<path d="m 54,600 927,0" style="stroke:#000000;stroke-width:2.5;marker-end:url(#Arrow1Lend)"/>
<path d="m 56,140 880,0" id="path1" style="stroke:#808080"/>
<use transform="translate(0,324)" xlink:href="#path1"/>
<use transform="translate(0,173)" xlink:href="#path1"/>
<use transform="translate(0,61)" xlink:href="#path1"/>
<path d="m 66,545 c 0,0 59.53937,-39.58131 93,-51 34.49024,-11.77005 108,-17 108,-17" style="fill:none;stroke:#d40000;stroke-width:6.5"/>
<path d="m 742,589 0,23" style="stroke:#000000;stroke-width:1.5"/>
<path d="m 542,587.5 0,23" style="stroke:#000000;stroke-width:1.5"/>
<path d="m 152,589.5 0,23" style="stroke:#000000;stroke-width:1.5"/>
<path d="m 339,587.5 0,23" style="stroke:#000000;stroke-width:1.5"/>
<path d="m 110,533.5 c 0,0 88.0744,-86.98401 136,-126 29.99904,-24.42207 54.35606,-51.52254 94.49685,-67.36295 C 383.54121,323.15068 436.99962,326.5 436.99962,326.5" style="fill:none;stroke:#d40000;stroke-width:6.5"/>
<use transform="translate(125.979,-195.6211)" xlink:href="#circle1"/>
<path d="m 640,375.56288 47.05856,-27.73544 54.91886,-17.30053" style="fill:none;stroke:#0000FF;stroke-width:6.5"/>
<path d="m 54.5,590.5 c 0,0 119.29034,-92.17939 179.962775,-106.80834 30.80214,-21.04194 83.0768,-87.3015 132.29694,-121.58986 C 418.16799,327.15803 540.49963,324.5 540.49963,324.5" style="fill:none;stroke:#0000FF;stroke-width:6.5"/>
<path d="m 438.01129,364.51799 c 0,0 84.11186,-67.2359 129.05856,-96.73544 26.60255,-17.45985 82.91886,-47.30053 82.91886,-47.30053" style="fill:none;stroke:#000000;stroke-width:6.5"/>
<path d="m 541.01129,252.51799 c 0,0 58.89827,-43.72363 92.05856,-58.73544 34.12182,-15.4471 107.91885,-31.30053 107.91885,-31.30053" style="fill:none;stroke:#000000;stroke-width:6.5"/>
<text style="font-size:32px;fill:#0000FF;stroke:#0000FF;font-family:Sans">
<tspan x="686" y="384">G.722</tspan>
</text>
<text style="font-size:40px;fill:#0000FF;stroke:#0000FF;font-family:Sans">
<tspan x="555" y="96">Opus</tspan>
</text>
<text style="font-size:32px;fill:#0000FF;stroke:#0000FF;font-family:Sans">
<tspan x="376" y="404">Speex</tspan>
</text>
<text style="font-size:28px;fill:#d40000;stroke:#d40000;font-family:Sans">
<tspan x="368" y="319">AMR-WB</tspan>
</text>
<text style="font-size:28px;fill:#d40000;stroke:#d40000;font-family:Sans">
<tspan x="275.0625" y="472.66406">AMR-NB</tspan>
</text>
<text style="font-size:32px;fill:#000000;stroke:#000000;font-family:Sans">
<tspan x="684.64844" y="205.64844">G.719</tspan>
</text>
<text style="font-size:32px;fill:#000000;stroke:#000000;font-family:Sans">
<tspan x="625.17188" y="263.64844">G.722.1C</tspan>
</text>
<text style="font-size:32px;fill:#0000FF;stroke:#0000FF;font-family:Sans">
<tspan x="690.64844" y="514.64844">G.711</tspan>
</text>
<text style="font-size:28px;font-family:Sans">
<tspan x="320" y="679">bitrate (kb/s)</tspan>
</text>
<text style="font-size:28px;font-family:Sans">
<tspan x="142.77441" y="639.79102">8</tspan>
</text>
<text style="font-size:28px;font-family:Sans">
<tspan x="319.09961" y="639.19244">16</tspan>
</text>
<text style="font-size:28px;font-family:Sans">
<tspan x="523.52246" y="638.19244">32</tspan>
</text>
<text style="font-size:28px;font-family:Sans">
<tspan x="723.52246" y="638.19244">64</tspan>
</text>
<text x="302.36218" y="-8.0003748" transform="matrix(0,-1,1,0,0,0)" style="font-size:28px;font-family:Sans">
<tspan x="-379.68359" y="32.132812">Quality</tspan>
</text>
<text style="font-size:20px;font-family:Sans">
<tspan x="62" y="459">narrowband</tspan>
</text>
<text style="font-size:20px;font-family:Sans">
<tspan x="64.195312" y="307.45605">wideband</tspan>
</text>
<text style="font-size:20px;font-family:Sans">
<tspan x="63.855469" y="197.45605">super-wideband</tspan>
</text>
<text style="font-size:20px;font-family:Sans">
<tspan x="65.549797" y="136.51758">fullband</tspan>
</text>
<use transform="translate(126.979,-340.6211)" xlink:href="#circle1"/>
<use transform="translate(74.979004,-324.6211)" xlink:href="#circle1"/>
<use transform="translate(28.979004,-298.6211)" xlink:href="#circle1"/>
<path d="m 279.01129,489.51799 41.97742,-0.036" style="fill:none;stroke:#0000FF;stroke-width:6.5"/>
<use transform="translate(-295.021,-181.6211)" xlink:href="#circle1"/>
<use transform="translate(-334.021,-181.6211)" xlink:href="#circle1"/>
<text style="font-size:32px;fill:#0000FF;stroke:#0000FF;font-family:Sans">
<tspan x="266.28125" y="526.54688">iLBC</tspan>
</text>
<circle cx="616.021" cy="670.6210976" r="8.25" id="circle1" style="fill:#0000FF"/>
<text style="font-size:24px;font-family:Sans">
<tspan x="630.02148" y="677.62109">royalty-free, open-source</tspan>
</text>
<circle cx="616.021" cy="699.6210976" r="8.25" style="fill:#000000"/>
<text style="font-size:24px;font-family:Sans">
<tspan x="629.02148" y="706.62109">royalty-free, not open-source</tspan>
</text>
<circle cx="616.021" cy="728.6210976" r="8.25" style="fill:#d40000"/>
<text style="font-size:24px;font-family:Sans">
<tspan x="628.56055" y="735.62109">licensing fees, not open-source</tspan>
</text>
<use transform="translate(0,-85.91113)" xlink:href="#path1"/>
<text style="font-size:20px;font-family:Sans">
<tspan x="67.549797" y="50.606445">fullband stereo</tspan>
</text>
<path d="m 935.46484,589.58054 0,23" style="stroke:#000000;stroke-width:1.5"/>
<text style="font-size:28px;font-family:Sans">
<tspan x="906.9873" y="640.77295">128</tspan>
</text>
<path d="m 691.0113,129.51799 c 0,0 51.42122,-21.62916 78.05855,-29.735442 54.3019,-16.52516 165.91885,-38.30053 165.91885,-38.30053" style="fill:none;stroke:#0000FF;stroke-width:6.5"/>
<path d="m 614.0113,129.01799 c 0,0 76.8316,-24.55278 116.05855,-33.735442 66.90471,-15.66178 202.91885,-36.30053 202.91885,-36.30053" style="fill:none;stroke:#d40000;stroke-width:6.5"/>
<text style="font-size:32px;fill:#0000FF;stroke:#0000FF;font-family:Sans">
<tspan x="679.64844" y="156.64844">Vorbis</tspan>
</text>
<text style="font-size:32px;fill:#d40000;stroke:#d40000;font-family:Sans">
<tspan x="597.14062" y="161.20605">AAC</tspan>
</text>
<path d="m 106,564 c 0,0 108.62764,-130.93334 171.41061,-187.90905 104.57989,-94.9065 197.30824,-194.96992 339.16443,-253.9001 145.1082,-60.281132 204.73066,-56.202052 318.42497,-64.190852" style="fill:none;stroke:#0000FF;stroke-width:6.5"/>
<path d="m 763.0113,173.01799 c 0,0 71.82567,-66.35467 115.05855,-87.735442 17.32221,-8.56668 55.91885,-15.30053 55.91885,-15.30053" style="fill:none;stroke:#0000ff;stroke-width:6.5"/>
<text style="font-size:32px;fill:#0000ff;stroke:#0000ff;font-family:Sans">
<tspan x="850.14062" y="133.20605">MP3</tspan>
</text>
</svg>

After

Width:  |  Height:  |  Size: 7.4 KiB

View file

@ -0,0 +1,252 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="500" height="375" viewBox="0 0 500 375" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Gnuplot</title>
<desc>Produced by GNUPLOT 4.6 patchlevel 3 </desc>
<g id="gnuplot_canvas">
<rect x="0" y="0" width="500" height="375" fill="none"/>
<defs>
<circle id="gpDot" r="0.5" stroke-width="0.5"/>
<path id="gpPt0" stroke-width="0.167" stroke="currentColor" d="M-1,0 h2 M0,-1 v2"/>
<path id="gpPt1" stroke-width="0.167" stroke="currentColor" d="M-1,-1 L1,1 M1,-1 L-1,1"/>
<path id="gpPt2" stroke-width="0.167" stroke="currentColor" d="M-1,0 L1,0 M0,-1 L0,1 M-1,-1 L1,1 M-1,1 L1,-1"/>
<rect id="gpPt3" stroke-width="0.167" stroke="currentColor" x="-1" y="-1" width="2" height="2"/>
<rect id="gpPt4" stroke-width="0.167" stroke="currentColor" fill="currentColor" x="-1" y="-1" width="2" height="2"/>
<circle id="gpPt5" stroke-width="0.167" stroke="currentColor" cx="0" cy="0" r="1"/>
<use xlink:href="#gpPt5" id="gpPt6" fill="currentColor" stroke="none"/>
<path id="gpPt7" stroke-width="0.167" stroke="currentColor" d="M0,-1.33 L-1.33,0.67 L1.33,0.67 z"/>
<use xlink:href="#gpPt7" id="gpPt8" fill="currentColor" stroke="none"/>
<use xlink:href="#gpPt7" id="gpPt9" stroke="currentColor" transform="rotate(180)"/>
<use xlink:href="#gpPt9" id="gpPt10" fill="currentColor" stroke="none"/>
<use xlink:href="#gpPt3" id="gpPt11" stroke="currentColor" transform="rotate(45)"/>
<use xlink:href="#gpPt11" id="gpPt12" fill="currentColor" stroke="none"/>
</defs>
<g style="fill:none; color:white; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,352.6 L466.3,352.6 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M72.8,352.6 M466.3,352.6 h0.01"/> <g transform="translate(61.6,358.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>8</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,330.6 L466.3,330.6 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M72.8,330.6 M466.3,330.6 h0.01"/> <g transform="translate(61.6,336.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>7</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,308.6 L466.3,308.6 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M72.8,308.6 M466.3,308.6 h0.01"/> <g transform="translate(61.6,314.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>6</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,286.6 L466.3,286.6 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M72.8,286.6 M466.3,286.6 h0.01"/> <g transform="translate(61.6,292.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>5</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,264.6 L466.3,264.6 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M72.8,264.6 M466.3,264.6 h0.01"/> <g transform="translate(61.6,270.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>4</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,242.6 L466.3,242.6 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M72.8,242.6 M466.3,242.6 h0.01"/> <g transform="translate(61.6,248.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>3</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,220.6 L466.3,220.6 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M72.8,220.6 M466.3,220.6 h0.01"/> <g transform="translate(61.6,226.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>2</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,198.6 L466.3,198.6 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M72.8,198.6 M466.3,198.6 h0.01"/> <g transform="translate(61.6,204.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>1</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,176.5 L466.3,176.5 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M72.8,176.5 M466.3,176.5 h0.01"/> <g transform="translate(61.6,182.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>0</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,154.5 L466.3,154.5 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M72.8,154.5 M466.3,154.5 h0.01"/> <g transform="translate(61.6,160.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>1</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,132.5 L466.3,132.5 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M72.8,132.5 M466.3,132.5 h0.01"/> <g transform="translate(61.6,138.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>2</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,110.5 L466.3,110.5 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M72.8,110.5 M466.3,110.5 h0.01"/> <g transform="translate(61.6,116.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>3</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,88.5 L466.3,88.5 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M72.8,88.5 M466.3,88.5 h0.01"/> <g transform="translate(61.6,94.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>4</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,66.5 L466.3,66.5 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M72.8,66.5 M466.3,66.5 h0.01"/> <g transform="translate(61.6,72.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>5</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,44.5 L466.3,44.5 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M72.8,44.5 M466.3,44.5 h0.01"/> <g transform="translate(61.6,50.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>6</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,22.5 L466.3,22.5 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M72.8,22.5 M466.3,22.5 h0.01"/> <g transform="translate(61.6,28.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>7</tspan></text>
</g>
</g>
<g id="gnuplot_plot_1"><title>gnuplot_plot_1</title>
<g style="fill:none; color:white; stroke:black; stroke-width:4.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:4.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="red" d="M72.8,261.6 L76.8,245.7 L80.7,227.5 L84.7,207.5 L88.7,186.2 L92.7,164.3 L96.6,142.3 L100.6,121.0 L104.6,100.8 L108.6,82.3 L112.5,66.2 L116.5,52.7 L120.5,42.4 L124.5,35.3 L128.4,31.6 L132.4,31.4 L136.4,34.5 L140.4,40.7 L144.3,49.8 L148.3,61.3 L152.3,74.7 L156.3,89.4 L160.2,105.0 L164.2,120.8 L168.2,136.2 L172.2,150.6 L176.1,163.5 L180.1,174.5 L184.1,183.1 L188.1,189.1 L192.0,192.4 L196.0,192.8 L200.0,190.4 L204.0,185.4 L207.9,178.0 L211.9,168.6 L215.9,157.6 L219.9,145.6 L223.8,133.1 L227.8,120.6 L231.8,108.9 L235.8,98.3 L239.7,89.6 L243.7,83.1 L247.7,79.2 L251.7,78.3 L255.6,80.5 L259.6,86.0 L263.6,94.7 L267.6,106.5 L271.5,121.1 L275.5,138.2 L279.5,157.4 L283.5,178.1 L287.4,199.8 L291.4,221.8 L295.4,243.6 L299.4,264.4 L303.3,283.8 L307.3,301.1 L311.3,316.0 L315.3,328.0 L319.2,336.7 L323.2,342.1 L327.2,344.0 L331.2,342.6 L335.1,337.9 L339.1,330.2 L343.1,319.8 L347.1,307.3 L351.0,293.2 L355.0,277.9 L359.0,262.2 L363.0,246.5 L366.9,231.6 L370.9,217.9 L374.9,205.9 L378.9,196.0 L382.8,188.6 L386.8,184.0 L390.8,182.1 L394.8,183.2 L398.7,186.9 L402.7,193.1 L406.7,201.6 L410.7,211.8 L414.6,223.4 L418.6,235.7 L422.6,248.3 L426.6,260.5 L430.5,271.7 L434.5,281.4 L438.5,289.1 L442.5,294.3 L446.4,296.7 L450.4,296.1 L454.4,292.2 L458.4,285.1 L462.3,274.9 L466.3,261.6 h0.01"/></g>
</g>
<g id="gnuplot_plot_2"><title>gnuplot_plot_2</title>
<g style="fill:none; color:white; stroke:red; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:green; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(127, 127, 127)" d="M72.8,176.5 L72.8,264.6 M90.7,176.5 M108.6,176.5 L108.6,88.5 M126.5,176.5 L126.5,22.5 M144.3,176.5 L144.3,44.5 M162.2,176.5 L162.2,110.5 M180.1,176.5 M198.0,176.5 L198.0,198.6 M215.9,176.5 L215.9,154.5 M233.8,176.5 L233.8,110.5 M251.7,176.5 L251.7,88.5 M269.6,176.5 L269.6,110.5 M287.4,176.5 L287.4,198.6 M305.3,176.5 L305.3,286.6 M323.2,176.5 L323.2,352.6 M341.1,176.5 L341.1,330.6 M359.0,176.5 L359.0,264.6 M376.9,176.5 L376.9,198.6 M394.8,176.5 M412.6,176.5 L412.6,220.6 M430.5,176.5 L430.5,264.6 M448.4,176.5 L448.4,286.6 M466.3,176.5 L466.3,264.6 h0.01"/></g>
</g>
<g id="gnuplot_plot_3"><title>gnuplot_plot_3</title>
<g style="fill:none; color:white; stroke:rgb(127, 127, 127); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:blue; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<use xlink:href="#gpPt6" transform="translate(72.8,264.6) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(90.7,176.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(108.6,88.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(126.5,22.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(144.3,44.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(162.2,110.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(180.1,176.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(198.0,198.6) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(215.9,154.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(233.8,110.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(251.7,88.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(269.6,110.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(287.4,198.6) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(305.3,286.6) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(323.2,352.6) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(341.1,330.6) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(359.0,264.6) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(376.9,198.6) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(394.8,176.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(412.6,220.6) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(430.5,264.6) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(448.4,286.6) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(466.3,264.6) scale(4.80)" color="blue"/>
</g>
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 77 KiB

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 58 KiB

View file

@ -0,0 +1,5 @@
music - "The Show Must Be Go" by Kevin MacLeod, CC-BY 3.0
voice - LibriVox recording of "The Art of War" by Sun Tzu, Read by Moira Fogarty, Public Domain
Test\_mp3\_opus\_16kbps.wav - Audio sample by Shishirdasika, licensed under CC-BY-SA 4.0

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,255 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="500" height="375" viewBox="0 0 500 375" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Gnuplot</title>
<desc>Produced by GNUPLOT 4.6 patchlevel 3 </desc>
<g id="gnuplot_canvas">
<rect x="0" y="0" width="500" height="375" fill="none"/>
<defs>
<circle id="gpDot" r="0.5" stroke-width="0.5"/>
<path id="gpPt0" stroke-width="0.167" stroke="currentColor" d="M-1,0 h2 M0,-1 v2"/>
<path id="gpPt1" stroke-width="0.167" stroke="currentColor" d="M-1,-1 L1,1 M1,-1 L-1,1"/>
<path id="gpPt2" stroke-width="0.167" stroke="currentColor" d="M-1,0 L1,0 M0,-1 L0,1 M-1,-1 L1,1 M-1,1 L1,-1"/>
<rect id="gpPt3" stroke-width="0.167" stroke="currentColor" x="-1" y="-1" width="2" height="2"/>
<rect id="gpPt4" stroke-width="0.167" stroke="currentColor" fill="currentColor" x="-1" y="-1" width="2" height="2"/>
<circle id="gpPt5" stroke-width="0.167" stroke="currentColor" cx="0" cy="0" r="1"/>
<use xlink:href="#gpPt5" id="gpPt6" fill="currentColor" stroke="none"/>
<path id="gpPt7" stroke-width="0.167" stroke="currentColor" d="M0,-1.33 L-1.33,0.67 L1.33,0.67 z"/>
<use xlink:href="#gpPt7" id="gpPt8" fill="currentColor" stroke="none"/>
<use xlink:href="#gpPt7" id="gpPt9" stroke="currentColor" transform="rotate(180)"/>
<use xlink:href="#gpPt9" id="gpPt10" fill="currentColor" stroke="none"/>
<use xlink:href="#gpPt3" id="gpPt11" stroke="currentColor" transform="rotate(45)"/>
<use xlink:href="#gpPt11" id="gpPt12" fill="currentColor" stroke="none"/>
</defs>
<g style="fill:none; color:white; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,352.6 L466.3,352.6 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M50.4,352.6 M466.3,352.6 h0.01"/> <g transform="translate(39.2,358.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>0</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,330.6 L466.3,330.6 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M50.4,330.6 M466.3,330.6 h0.01"/> <g transform="translate(39.2,336.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>1</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,308.6 L466.3,308.6 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M50.4,308.6 M466.3,308.6 h0.01"/> <g transform="translate(39.2,314.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>2</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,286.6 L466.3,286.6 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M50.4,286.6 M466.3,286.6 h0.01"/> <g transform="translate(39.2,292.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>3</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,264.6 L466.3,264.6 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M50.4,264.6 M466.3,264.6 h0.01"/> <g transform="translate(39.2,270.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>4</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,242.6 L466.3,242.6 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M50.4,242.6 M466.3,242.6 h0.01"/> <g transform="translate(39.2,248.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>5</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,220.6 L466.3,220.6 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M50.4,220.6 M466.3,220.6 h0.01"/> <g transform="translate(39.2,226.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>6</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,198.6 L466.3,198.6 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M50.4,198.6 M466.3,198.6 h0.01"/> <g transform="translate(39.2,204.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>7</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,176.5 L466.3,176.5 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M50.4,176.5 M466.3,176.5 h0.01"/> <g transform="translate(39.2,182.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>8</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,154.5 L466.3,154.5 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M50.4,154.5 M466.3,154.5 h0.01"/> <g transform="translate(39.2,160.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>9</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,132.5 L466.3,132.5 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M50.4,132.5 M466.3,132.5 h0.01"/> <g transform="translate(39.2,138.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>10</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,110.5 L466.3,110.5 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M50.4,110.5 M466.3,110.5 h0.01"/> <g transform="translate(39.2,116.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>11</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,88.5 L466.3,88.5 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M50.4,88.5 M466.3,88.5 h0.01"/> <g transform="translate(39.2,94.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>12</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,66.5 L466.3,66.5 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M50.4,66.5 M466.3,66.5 h0.01"/> <g transform="translate(39.2,72.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>13</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,44.5 L466.3,44.5 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M50.4,44.5 M466.3,44.5 h0.01"/> <g transform="translate(39.2,50.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>14</tspan></text>
</g>
</g>
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,22.5 L466.3,22.5 h0.01"/></g>
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="black" d="M50.4,22.5 M466.3,22.5 h0.01"/> <g transform="translate(39.2,28.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
<text><tspan>15</tspan></text>
</g>
</g>
<g id="gnuplot_plot_1"><title>gnuplot_plot_1</title>
<g style="fill:none; color:white; stroke:black; stroke-width:4.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:red; stroke:currentColor; stroke-width:4.00; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="red" d="M50.4,187.5 L52.5,182.3 L54.6,177.1 L56.7,171.9 L58.8,166.8 L60.8,161.6 L62.9,156.5 L65.0,151.4 L67.1,146.3 L69.2,141.3 L71.3,136.3 L73.4,131.4 L75.5,126.5 L77.6,121.7 L79.7,116.9 L81.7,112.3 L83.8,107.7 L85.9,103.2 L88.0,98.7 L90.1,94.4 L92.2,90.1 L94.3,86.0 L96.4,81.9 L98.5,78.0 L100.6,74.1 L102.6,70.4 L104.7,66.8 L106.8,63.3 L108.9,59.9 L111.0,56.7 L113.1,53.6 L115.2,50.6 L117.3,47.7 L119.4,45.0 L121.5,42.5 L123.5,40.1 L125.6,37.8 L127.7,35.7 L129.8,33.7 L131.9,31.9 L134.0,30.3 L136.1,28.8 L138.2,27.4 L140.3,26.2 L142.4,25.2 L144.4,24.4 L146.5,23.7 L148.6,23.1 L150.7,22.8 L152.8,22.5 L154.9,22.5 L157.0,22.6 L159.1,22.9 L161.2,23.4 L163.3,24.0 L165.3,24.8 L167.4,25.7 L169.5,26.8 L171.6,28.1 L173.7,29.5 L175.8,31.1 L177.9,32.8 L180.0,34.7 L182.1,36.7 L184.2,38.9 L186.2,41.3 L188.3,43.8 L190.4,46.4 L192.5,49.2 L194.6,52.1 L196.7,55.1 L198.8,58.3 L200.9,61.6 L203.0,65.0 L205.1,68.6 L207.1,72.2 L209.2,76.0 L211.3,79.9 L213.4,83.9 L215.5,88.0 L217.6,92.2 L219.7,96.5 L221.8,100.9 L223.9,105.4 L226.0,110.0 L228.0,114.6 L230.1,119.3 L232.2,124.1 L234.3,128.9 L236.4,133.8 L238.5,138.8 L240.6,143.8 L242.7,148.8 L244.8,153.9 L246.9,159.0 L248.9,164.2 L251.0,169.3 L253.1,174.5 L255.2,179.7 L257.3,184.9 L259.4,190.2 L261.5,195.4 L263.6,200.6 L265.7,205.8 L267.8,210.9 L269.8,216.1 L271.9,221.2 L274.0,226.3 L276.1,231.3 L278.2,236.3 L280.3,241.3 L282.4,246.2 L284.5,251.0 L286.6,255.8 L288.7,260.5 L290.7,265.1 L292.8,269.7 L294.9,274.2 L297.0,278.6 L299.1,282.9 L301.2,287.1 L303.3,291.2 L305.4,295.2 L307.5,299.1 L309.6,302.9 L311.6,306.5 L313.7,310.1 L315.8,313.5 L317.9,316.8 L320.0,320.0 L322.1,323.0 L324.2,325.9 L326.3,328.7 L328.4,331.3 L330.5,333.8 L332.5,336.2 L334.6,338.4 L336.7,340.4 L338.8,342.3 L340.9,344.0 L343.0,345.6 L345.1,347.0 L347.2,348.3 L349.3,349.4 L351.4,350.3 L353.4,351.1 L355.5,351.7 L357.6,352.2 L359.7,352.5 L361.8,352.6 L363.9,352.6 L366.0,352.3 L368.1,352.0 L370.2,351.4 L372.3,350.7 L374.3,349.9 L376.4,348.9 L378.5,347.7 L380.6,346.3 L382.7,344.8 L384.8,343.2 L386.9,341.4 L389.0,339.4 L391.1,337.3 L393.2,335.0 L395.2,332.6 L397.3,330.1 L399.4,327.4 L401.5,324.5 L403.6,321.5 L405.7,318.4 L407.8,315.2 L409.9,311.8 L412.0,308.3 L414.1,304.7 L416.1,301.0 L418.2,297.1 L420.3,293.2 L422.4,289.1 L424.5,285.0 L426.6,280.7 L428.7,276.4 L430.8,271.9 L432.9,267.4 L435.0,262.8 L437.0,258.2 L439.1,253.4 L441.2,248.6 L443.3,243.7 L445.4,238.8 L447.5,233.8 L449.6,228.8 L451.7,223.7 L453.8,218.6 L455.9,213.5 L457.9,208.3 L460.0,203.2 L462.1,198.0 L464.2,192.8 L466.3,187.5 h0.01"/></g>
</g>
<g id="gnuplot_plot_2"><title>gnuplot_plot_2</title>
<g style="fill:none; color:white; stroke:red; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:green; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
<path stroke="rgb(127, 127, 127)" d="M50.4,176.5 M67.0,176.5 L67.0,154.5 M83.7,176.5 L83.7,110.5 M100.3,176.5 L100.3,66.5 M116.9,176.5 L116.9,44.5 M133.6,176.5 L133.6,22.5 M150.2,176.5 L150.2,22.5 M166.9,176.5 L166.9,22.5 M183.5,176.5 L183.5,44.5 M200.1,176.5 L200.1,66.5 M216.8,176.5 L216.8,88.5 M233.4,176.5 L233.4,132.5 M250.0,176.5 M266.7,176.5 L266.7,198.6 M283.3,176.5 L283.3,242.6 M299.9,176.5 L299.9,286.6 M316.6,176.5 L316.6,308.6 M333.2,176.5 L333.2,330.6 M349.8,176.5 L349.8,352.6 M366.5,176.5 L366.5,352.6 M383.1,176.5 L383.1,352.6 M399.8,176.5 L399.8,330.6 M416.4,176.5 L416.4,308.6 M433.0,176.5 L433.0,264.6 M449.7,176.5 L449.7,220.6 M466.3,176.5 L466.3,198.6 h0.01"/></g>
</g>
<g id="gnuplot_plot_3"><title>gnuplot_plot_3</title>
<g style="fill:none; color:white; stroke:rgb(127, 127, 127); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
<g style="fill:none; color:blue; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
<use xlink:href="#gpPt6" transform="translate(50.4,176.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(67.0,154.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(83.7,110.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(100.3,66.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(116.9,44.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(133.6,22.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(150.2,22.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(166.9,22.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(183.5,44.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(200.1,66.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(216.8,88.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(233.4,132.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(250.0,176.5) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(266.7,198.6) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(283.3,242.6) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(299.9,286.6) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(316.6,308.6) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(333.2,330.6) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(349.8,352.6) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(366.5,352.6) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(383.1,352.6) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(399.8,330.6) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(416.4,308.6) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(433.0,264.6) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(449.7,220.6) scale(4.80)" color="blue"/>
<use xlink:href="#gpPt6" transform="translate(466.3,198.6) scale(4.80)" color="blue"/>
</g>
</g>
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 21 KiB

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 351 KiB

View file

@ -0,0 +1,28 @@
[comment]: # (THEME = blood)
[comment]: # (CODE_THEME = base16/zenburn)
[comment]: # (controls: true)
[comment]: # (keyboard: true)
[comment]: # (markdown: { smartypants: true })
[comment]: # (hash: true)
[comment]: # (respondToHashChanges: true)
[comment]: # (slideNumber: 'c/t')
[comment]: # (Note for future me, add a system to concat Markdown files in the Makefile so that this shit is easier to parse)
[comment]: # (Probably a good starting structure [replace slidex with a better name, like 01-intro, 02-about, etc]:
.
├── media
│   ├── slide1
│   ├── slide2
│   ├── slide3
│   └── slide4
└── slides
├── slide1.md
├── slide2.md
└── slide3.md
)
# Audio Codecs
By Logan G
[comment]: # (!!!) <!--------------------------------------------------------->

View file

@ -0,0 +1,19 @@
<video width="960" height="540" controls>
<source src="media/output.webm" type="video/webm">
Your browser does not support the video tag.
</video>
<div style="font-size: 0.66em">
```bash
ffmpeg \
-i $INPUT \
-filter_complex "[0:a]pan=mono|c0=0.5*FL+0.5*FR,asplit=2[aout][audiovis]; \
[audiovis]showwaves=s=1920x1080:mode=p2p:colors=white,format=yuv420p[v]" \
-map "[v]" -map "[aout]" -c:v libx264 -crf 36 -c:a libaac -b:a 64k -ac 1
output.mp4
```
</div>
[comment]: # (!!!) <!--------------------------------------------------------->

View file

@ -0,0 +1,39 @@
### Digital Audio Representation
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
<div> <!-- Left pane -->
<!-- Title -->
![Picture of PCM encoded sine wave](media/sinewave.svg) <!-- .element: style="image-rendering: crisp-edges;background-color:white;" -->
<div style="font-size: 0.33em; line-height: 0.1em;">
Image by Aquegg
Licensed under [CC-BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/deed.en)
</div>
</div>
<div> <!-- Right pane -->
<!-- Title -->
![Picture of PCM encoded waveform](media/linear-PCM.svg) <!-- .element: style="image-rendering: crisp-edges;background-color:white;" -->
<div style="font-size: 0.33em; line-height: 0.1em;">
Image by Aquegg
Licensed under [CC-BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/deed.en)
</div>
</div>
</div>
Note:
Audio is typically represented in a digital form using Pulse Code Modulation, or PCM.
On the left there is an example of a sine wave. The red line represents the original analog signal, with the blue dots representing the data points
in the PCM encoded version. A similar idea is happening on the right, but with a more complex waveform.
During the conversion process from analog to digital, better know as "quantization", the amplitude of the analog signal is converted into digital data points
at regular intervals. In this example, a simple rounding algorithm is used. Do however note that there are more complicated algorithms,
but you could spend many hours just talking about those alone, and the specifics aren't particularly important here.
[comment]: # (|||) <!--------------------------------------------------------->

View file

@ -0,0 +1,22 @@
### Important Terminology
<div style="font-size: 0.8em;">
- Bit/Sampling Depth
- Number of bits that represent each data point
- Typically 16/24/32 bits
- Sampling Rate
- Number of data points per second
- Typically 44.1/48kHz
- Bit Rate
- Number of bits per second of audio
- Varies wildly
- Audio Channels
- Number of audio streams contained
- Typically 2 (Stereo)
</div>
Note:
[comment]: # (!!!) <!--------------------------------------------------------->

View file

@ -0,0 +1,13 @@
### Common Audio Codecs
- WAV
- FLAC
- ALAC
- WMA
- Dolby Digital
- MP3
- AAC
- Vorbis
- Opus
[comment]: # (|||) <!--------------------------------------------------------->

View file

@ -0,0 +1,33 @@
### "Lossless" vs "Lossy"
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
<div> <!-- Left pane -->
<!-- Title -->
##### Lossless
- Perfect representation of the digital input*
- Typically very large (>1Mbit/s)
</div>
<div>
##### Lossy
- Deliberately removes data to save space
- Typically very small (<128Kbit/s)
</div>
Note:
There are two main types of audio codecs, "Lossless", and "Lossy".
Lossless codecs perfectly duplicate whatever digital audio was put into them. Now, it is important
to note that since digital audio isn't a perfect representation of an audio signal, that does not mean that
it can perfectly replicate the original.
Compared to lossy codecs, which, deliberately destroy the signal in order to achieve a smaller file size.
This destruction isn't random through, lossy codecs specifically make changes to the original waveform that
are least likely to be perceived by a human listener.
[comment]: # (|||) <!--------------------------------------------------------->

View file

@ -0,0 +1,27 @@
### Common Audio Codecs
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
<div> <!-- Left pane -->
<!-- Title -->
###### Lossless
- WAV*
- FLAC
- ALAC
- WMA*
- Dolby Digital TrueHD
</div>
<div>
###### Lossy
- MP3
- AAC
- WMA*
- Dolby Digital
- Vorbis
- Opus
</div>
[comment]: # (!!!) <!--------------------------------------------------------->

View file

@ -0,0 +1,55 @@
### WAV
- Published in 1991
- Formerly patented
- Not really an audio codec
- Typically used as a container for raw audio
- Extremely easy to play
- Supported natively across many OSs
- Supports virtually any analog signal(s)
<br>
<br>
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
<div> <!-- Left pane -->
<!-- Title -->
##### Music
<audio controls src="media/samples/music.wav">WAV Music Sample</audio>
<div style="font-size: 0.33em; line-height: 0.1em;">
"The Show Must Be Go" by Kevin MacLeod
Licensed under [CC-BY 3.0](https://creativecommons.org/licenses/by/3.0/deed.en)
</div>
</div>
<div> <!-- Right pane -->
<!-- Title -->
##### Voice
<audio controls src="media/samples/voice.wav">WAV Voice Sample</audio>
<div style="font-size: 0.33em; line-height: 0.1em;">
LibriVox recording of "The Art of War" by Sun Tzu
Read by Moira Fogarty
</div>
</div>
</div>
Note:
The first codec I'm going to talk about this WAV. Now, WAV isn't actually an audio codec.
WAV is actually just an audio container for raw audio, which I'll talk more about later.
WAV was originally developed by IBM and Microsoft in 1991. It used to be a patented audio format
but the patent has since long expired.
Fun Fact: WAV is not just restricted to raw audio. It can represent many analog signals, up to 2.1GHz.
WAV is also extremely easy to parse since it's basically just raw audio.
[comment]: # (|||)

View file

@ -0,0 +1,66 @@
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
<div> <!-- Left pane -->
<!-- Title -->
<div style="font-size: 0.33em;">
| WAV/RIFF Header Format |
| :------: |
| FileTypeBlocID<br>4 bytes<br><br><br> |
| FileSize<br>4 bytes<br><br><br> |
| FileFormatID<br>4 bytes<br><br><br> |
| FormatBlocID<br>4 bytes<br><br><br> |
| BlocSize<br>4 bytes<br><br><br> |
| AudioFormat<br>2 bytes |
| NbrChannels<br>2 bytes |
| Frequence<br>4 bytes<br><br><br> |
| BytePerSec<br>4 bytes<br><br><br> |
| BytePerBloc<br>2 bytes |
| BitsPerSample<br>2 bytes |
</div>
</div>
<div> <!-- Right pane -->
<!-- Title -->
<div style="font-size: 0.33em;">
| WAV Data Chunk Format |
| :------: |
| DataBlocID<br>4 bytes<br><br><br> |
| DataSize<br>4 bytes<br><br><br> |
| SampledData<br>2-3 bytes typically<br><br><br> |
</div>
</div>
</div>
Note:
So easy in fact that I can just show you the entire format.
```
[Master RIFF chunk]
FileTypeBlocID (4 bytes) : Identifier « RIFF » (0x52, 0x49, 0x46, 0x46)
FileSize (4 bytes) : Overall file size minus 8 bytes
FileFormatID (4 bytes) : Format = « WAVE » (0x57, 0x41, 0x56, 0x45)
[Chunk describing the data format]
FormatBlocID (4 bytes) : Identifier « fmt␣ » (0x66, 0x6D, 0x74, 0x20)
BlocSize (4 bytes) : Chunk size minus 8 bytes, which is 16 bytes here (0x10)
AudioFormat (2 bytes) : Audio format (1: PCM integer, 3: IEEE 754 float)
NbrChannels (2 bytes) : Number of channels
Frequence (4 bytes) : Sample rate (in hertz)
BytePerSec (4 bytes) : Number of bytes to read per second (Frequence * BytePerBloc).
BytePerBloc (2 bytes) : Number of bytes per block (NbrChannels * BitsPerSample / 8).
BitsPerSample (2 bytes) : Number of bits per sample
[Chunk containing the sampled data]
DataBlocID (4 bytes) : Identifier « data » (0x64, 0x61, 0x74, 0x61)
DataSize (4 bytes) : SampledData size
SampledData
```
[comment]: # (!!!) <!--------------------------------------------------------->

View file

@ -0,0 +1,69 @@
### ALAC
<sup><sup>**A**pple **L**ossless **A**udio **C**odec</sup></sup>
<div style="font-size: 0.55em;">
- Developed in 2004
- Fully Open Source, Patent and Royalty Free
- Decent software support
- Supports:
- 32-bit sampling depth
- 384kHz sampling rate
- 8 audio channels
- Typically 50% the size of equivalent PCM audio
<br>
<br>
</div>
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
<div> <!-- Left pane -->
<!-- Title -->
##### Music
<audio controls src="media/samples/musicalac.m4a">ALAC Music Sample</audio>
<div style="font-size: 0.33em; line-height: 0.1em;">
"The Show Must Be Go" by Kevin MacLeod
Licensed under [CC-BY 3.0](https://creativecommons.org/licenses/by/3.0/deed.en)
</div>
</div>
<div> <!-- Right pane -->
<!-- Title -->
##### Voice
<audio controls src="media/samples/voicealac.m4a">ALAC Voice Sample</audio>
<div style="font-size: 0.33em; line-height: 0.1em;">
LibriVox recording of "The Art of War" by Sun Tzu
Read by Moira Fogarty
</div>
</div>
</div>
Note:
Distinct from Alcohol Advisory Council of New Zealand
Apache 2 license
Now, let's talk about actual audio codecs.
ALAC was first developed in 2004 by Apple.
Although originally proprietary, Apple eventually opened up the standard
and reference implementation under the Apache 2 license.
Software support for ALAC is decent. Most modern platforms can play it, although Firefox is
not one of them.
It also has decent capabilities, such as a 32-bit sampling depth, 384kHz sampling rate and up to 8 full bandwidth audio channels.
One thing that many lossless codecs, like ALAC, do, is compress raw audio. Specialzied audio codecs
are more efficient at this job than say gzip, as they can achieve compression ratios of around 50% without
any degradation of the audio signal.
[comment]: # (!!!) <!--------------------------------------------------------->

View file

@ -0,0 +1,11 @@
### WMA
<sup><sup>**W**indows **M**edia **A**udio</sup></sup>
- Proprietary and Garbage
Note:
Now, let's talk about WMA
It's shit.
[comment]: # (|||) <!--------------------------------------------------------->

View file

@ -0,0 +1,33 @@
### WMA
<sup><sup>**W**indows **M**edia **A**udio</sup></sup>
- Developed in 1999 by Microsoft
- Very poor software support
- Patented with royalties
- Lossless and Lossy versions
- Supports:
- 24-bit sampling depth
- 96kHz sampling rate
- 8* audio channels
Note:
Okay there's a little more to say about it.
WMA was originally developed in 1999 by none other than Microsoft in
order to replace MP3 and WAV. Software support is extremely poor, so poor in fact
that I could not even make audio samples for this presentation, let alone play them.
This may surprise you, but WMA is both patented and has royalties for its use.
WMA does come in both lossy and lossless versions, but they both are kinda garbage.
It does however support up to 24-bit sampling depth, 96kHz sampling rate and up to 8 channels,
as long as you're using the lossy version.
Designed to replace MP3 and WAV
WMA Lossless only supports 6 channels
Microsoft lied about the audio quality
FFmpeg only supportes WMAv1 lossy and WMAv2 lossy
[comment]: # (!!!) <!--------------------------------------------------------->

View file

@ -0,0 +1,55 @@
### Dolby Digital
<sup><sup>Doesn't stand for anything</sup></sup>
<div style="font-size: 0.6em;">
- Patented with royalties
- Some software support
<br>
<br>
</div>
<div style="font-size: 0.6em; text-align: center; display: grid; grid-template-columns: 1fr 1fr 1fr;">
<div>
##### Dolby AC-3
- Lossy
- 16-bit sampling depth
- Up to 48kHz sampling rate
- Up to 5+1 audio channels
- Up to 640 kbit/s*
</div>
<div>
##### Dolby Digital Plus
- Lossy
- 16-bit sampling depth
- Up to 48kHz sampling rate
- Up to 15+1 audio channels
- Up to 6144 kbit/s
</div>
<div>
##### Dolby TrueHD
- Lossless
- 24-bit sampling depth
- Up to 192kHz sampling rate
- Up to 7+1 audio channels
</div>
Note:
Now, I'm gonna briefly talk about Dolby Digital. I only mentioned this one and not
its competitor, DTS, because you can actually use this one.
It's a proprietary format developed by Dolby, although it does have some software support.
For instance, FFmpeg can both encode and decode AC-3 audio.
Commonly seen on BluRays
Mention DTS
[comment]: # (!!!) <!--------------------------------------------------------->

View file

@ -0,0 +1,66 @@
### FLAC
<sup><sup>**F**ree **L**ossless **A**udio **C**odec</sup></sup>
<div style="font-size: 0.55em;">
- Developed in 2001 by Josh Coalson, later merged into Xiph.Org
- Fully Open Source, Patent and Royalty Free
- Very good software support
- Supports:
- 32-bit sampling depth
- 192kHz sampling rate
- 8 audio channels
- Typically slightly better than ALAC
<br>
<br>
</div>
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
<div> <!-- Left pane -->
<!-- Title -->
##### Music
<audio controls src="media/samples/music.flac">FLAC Music Sample</audio>
<div style="font-size: 0.33em; line-height: 0.1em;">
"The Show Must Be Go" by Kevin MacLeod
Licensed under [CC-BY 3.0](https://creativecommons.org/licenses/by/3.0/deed.en)
</div>
</div>
<div> <!-- Right pane -->
<!-- Title -->
##### Voice
<audio controls src="media/samples/voice.flac">FLAC Voice Sample</audio>
<div style="font-size: 0.33em; line-height: 0.1em;">
LibriVox recording of "The Art of War" by Sun Tzu
Read by Moira Fogarty
</div>
</div>
</div>
Note:
Now, for the holy grail of lossless audio codecs, FLAC.
FLAC was originally made in 2001 by Josh Coalson, but was later adopted by the Xiph.Org
foundation, who you will hear about several times throughout this presentation.
It started as a fully open standard with no royalties, and is the most popular lossless codec
for music.
Many things are able to play it, even some lower end music players have FLAC support.
Similar capabilities to ALAC as well.
Made by Xiph Foundation
[comment]: # (!!!) <!--------------------------------------------------------->

View file

@ -0,0 +1,26 @@
### Lossy Codecs Comparison
<div style="font-size: 0.33em">
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
<div>
![Picture of various lossy audio codecs and their dynamic range at certain bitrates](media/Opus_quality_comparison_colorblind_compatible.svg) <!-- .element: style="width: 80%;image-rendering: crisp-edges;background-color:white;" -->
Image by Jean-Marc Valin
Licensed under [CC-BY 3.0](https://creativecommons.org/licenses/by/3.0/deed.en)
</div>
<div>
![Chart of various audio codecs showcasing audio delay, processing power and bitrate](media/Opus_bitrate+latency_comparison.svg) <!-- .element: style="width: 80%;image-rendering: crisp-edges;background-color:white;" -->
Image by Jean-Marc Valin and Flugaal
Licensed under [CC-BY 3.0](https://creativecommons.org/licenses/by/3.0/deed.en)
</div>
[comment]: # (!!!) <!--------------------------------------------------------->

View file

@ -0,0 +1,56 @@
### MP3
<sup><sup>**MP**EG-1 Audio Layer **3**</sup></sup>
<div style="font-size: 0.55em;">
- Developed in 1992
- Formerly patented with royalties
- Extremely good software support
- Supports:
- 16-bit sampling depth?
- 48kHz sampling rate
- 2 audio channels
- 320 kbit/s bitrate
<br>
<br>
</div>
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
<div> <!-- Left pane -->
<!-- Title -->
##### Music
<audio controls src="media/samples/music.mp3">MP3 Music Sample</audio>
<div style="font-size: 0.33em; line-height: 0.1em;">
"The Show Must Be Go" by Kevin MacLeod
Licensed under [CC-BY 3.0](https://creativecommons.org/licenses/by/3.0/deed.en)
</div>
</div>
<div> <!-- Right pane -->
<!-- Title -->
##### Voice
<audio controls src="media/samples/voice.mp3">MP3 Voice Sample</audio>
<div style="font-size: 0.33em; line-height: 0.1em;">
LibriVox recording of "The Art of War" by Sun Tzu
Read by Moira Fogarty
</div>
</div>
</div>
Note:
Runs on toaster
Prominent in less than legitimate music obtaining sources
There is also MPEG-2 and MPEG-3 but they are for low bitrate and kinda suck
[comment]: # (!!!) <!--------------------------------------------------------->

View file

@ -0,0 +1,57 @@
### AAC
<sup><sup>**A**dvanced **A**udio **C**odec</sup></sup>
<div style="font-size: 0.55em;">
- Developed in 1998
- Open standard with royalties
- Also sometimes called "MP4 Audio"
- Very good software support
- Supports:
- 24-bit sampling depth
- 96kHz sampling rate
- 48* audio channels
- 256 kbit/s/channel bitrate
<br>
<br>
</div>
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
<div> <!-- Left pane -->
<!-- Title -->
##### Music
<audio controls src="media/samples/musicaac.m4a">AAC Music Sample</audio>
<div style="font-size: 0.33em; line-height: 0.1em;">
"The Show Must Be Go" by Kevin MacLeod
Licensed under [CC-BY 3.0](https://creativecommons.org/licenses/by/3.0/deed.en)
</div>
</div>
<div> <!-- Right pane -->
<!-- Title -->
##### Voice
<audio controls src="media/samples/voiceaac.m4a">AAC Voice Sample</audio>
<div style="font-size: 0.33em; line-height: 0.1em;">
LibriVox recording of "The Art of War" by Sun Tzu
Read by Moira Fogarty
</div>
</div>
</div>
Note:
48 channels have up to 96kHz sampling rate, plus 16 channels with 120Hz sampling rate, plus 16 "dialog" channels, plus 16 digital data channels
Used in bluray movies
Fairly common bluetooth audio format
[comment]: # (!!!) <!--------------------------------------------------------->

View file

@ -0,0 +1,61 @@
### Vorbis
<sup><sup>It doesn't stand for anything :(</sup></sup>
<div style="font-size: 0.55em;">
- Developed in 2000 by Xiph.Org Foundation
- Fully Open Standard and Royalty Free
- Extremely good software support
- Supports:
- Floating point samples
- 655.36kHz sampling rate
- 255 audio channels
- Superseded by Opus
<br>
<br>
</div>
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
<div> <!-- Left pane -->
<!-- Title -->
##### Music
<audio controls src="media/samples/music.ogg">Vorbis Music Sample</audio>
<div style="font-size: 0.33em; line-height: 0.1em;">
"The Show Must Be Go" by Kevin MacLeod
Licensed under [CC-BY 3.0](https://creativecommons.org/licenses/by/3.0/deed.en)
</div>
</div>
<div> <!-- Right pane -->
<!-- Title -->
##### Voice
<audio controls src="media/samples/voice.ogg">Vorbis Voice Sample</audio>
<div style="font-size: 0.33em; line-height: 0.1em;">
LibriVox recording of "The Art of War" by Sun Tzu
Read by Moira Fogarty
</div>
</div>
</div>
Note:
Encodes with quality presets, not constant/variable/target bitrates
Floating point samples makes Vorbis very flexible, it's 32-bit floats though
Fairly popular audiobook format
Commonly paired with Therora video format
Created because of a licensing dispute with MP3
FSF approved
Standard is public domain
Apple are weird and don't support it
[comment]: # (!!!) <!--------------------------------------------------------->

View file

@ -0,0 +1,58 @@
### Opus
<sup><sup>It doesn't stand for anything either >:(</sup></sup>
<div style="font-size: 0.55em;">
- Developed in 2012 by Xiph.Org
- Fully Open Standard and Royalty Free
- Very good software support
- Low latency, music or speech optimized audio codec
- Supports:
- 16-bit sampling depth only
- 48kHz sampling rate
- 255 audio channels
- 256 kbit/s/channel bitrate
<br>
<br>
</div>
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
<div> <!-- Left pane -->
<!-- Title -->
##### Music
<audio controls src="media/samples/music.opus">Opus Music Sample</audio>
<div style="font-size: 0.33em; line-height: 0.1em;">
"The Show Must Be Go" by Kevin MacLeod
Licensed under [CC-BY 3.0](https://creativecommons.org/licenses/by/3.0/deed.en)
</div>
</div>
<div> <!-- Right pane -->
<!-- Title -->
##### Voice
<audio controls src="media/samples/voice.opus">Opus Voice Sample</audio>
<div style="font-size: 0.33em; line-height: 0.1em;">
LibriVox recording of "The Art of War" by Sun Tzu
Read by Moira Fogarty
</div>
</div>
</div>
Note:
Commonly used for low latency voice applications (Discord, Skype (new), Teams, Source Engine 1&2, Zoom, basically anything WebRTC)
Also commonly used for music playback (YouTube, Spotify)
Typical latency is 27ms for default frame size
2-way Bluetooth audio codec
[comment]: # (!!!) <!--------------------------------------------------------->

View file

@ -0,0 +1,14 @@
### Weird Audio Codecs
- Codec2
- Lyra
- Speex
- Full Rate
- G.7xx
- SILK
Note:
Full Rate and G.7xx is for telephony
SILK is Skype
[comment]: # (!!!) <!--------------------------------------------------------->

View file

@ -0,0 +1,51 @@
### Speex
<div style="font-size: 0.55em;">
- Developed in 2003 by Xiph.Org
- Speech optimized, low latency audio codec
- Fully Open Standard and Royalty Free
- Okay software support
- Supports:
- 16-bit sampling depth
- 32kHz sampling rate
- 2 audio channels
- 44 kbit/s bitrate
</div>
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
<div> <!-- Left pane -->
<!-- Title -->
##### Music
<audio controls src="media/samples/music.spx">Speex Music Sample</audio>
<div style="font-size: 0.33em; line-height: 0.1em;">
"The Show Must Be Go" by Kevin MacLeod
Licensed under [CC-BY 3.0](https://creativecommons.org/licenses/by/3.0/deed.en)
</div>
</div>
<div> <!-- Right pane -->
<!-- Title -->
##### Voice
<audio controls src="media/samples/voice.spx">Speex Voice Sample</audio>
<div style="font-size: 0.33em; line-height: 0.1em;">
LibriVox recording of "The Art of War" by Sun Tzu
Read by Moira Fogarty
</div>
</div>
</div>
Note:
asd
[comment]: # (!!!) <!--------------------------------------------------------->

View file

@ -0,0 +1,53 @@
### Codec2
<!-- Samples encoded at 2400 bit/s -->
<div style="font-size: 0.55em;">
- Developed in 2010 by David Grant Rowe
- Speech optimized, ultra low bandwidth audio codec
- Fully Open Standard and Royalty Free
- Very poor software support
- Supports:
- 16-bit sampling depth only
- 8kHz sampling rate only
- 1 audio channel
- 3.2 kbit/s bitrate
</div>
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
<div> <!-- Left pane -->
<!-- Title -->
##### Music
<audio controls src="media/samples/musicc2.flac">Codec2 Music Sample</audio>
<div style="font-size: 0.33em; line-height: 0.1em;">
"The Show Must Be Go" by Kevin MacLeod
Licensed under [CC-BY 3.0](https://creativecommons.org/licenses/by/3.0/deed.en)
</div>
</div>
<div> <!-- Right pane -->
<!-- Title -->
##### Voice
<audio controls src="media/samples/voicec2.flac">Codec2 Voice Sample</audio>
<div style="font-size: 0.33em; line-height: 0.1em;">
LibriVox recording of "The Art of War" by Sun Tzu
Read by Moira Fogarty
</div>
</div>
</div>
Note:
Officially supported 700 bit/s - 3200 bit/s, but a white paper exists for 450 bit/s
Developer worked on Speex
[comment]: # (|||) <!--------------------------------------------------------->

View file

@ -0,0 +1,7 @@
![QR code containing a Codec2 encoded recording](media/voiceqrcode.svg) <!-- .element: style="width:50%; image-rendering: pixelated;" -->
```bash
cat $FILE | c2dec 700C - - | ffplay -f s16le -ar 8000 -
```
[comment]: # (!!!) <!--------------------------------------------------------->

View file

@ -0,0 +1,71 @@
### Low Bitrate Comparison
Original:
<div style="font-size: 0.3em">
<audio controls src="media/samples/voice.flac">FLAC Voice Sample</audio>
LibriVox recording of "The Art of War" by Sun Tzu
<span style="padding-right: 5em"></span>
Read by Moira Fogarty
</div>
---------
<div style="font-size: 0.5em; text-align: center; display: grid; grid-template-columns: 1fr 1fr 1fr;">
<div>
##### Codec2
2400 bit/s:
<audio controls src="media/samples/voicec2.flac">C2 2400 bit/s Voice Sample</audio>
----------
1600 bit/s:
<audio controls src="media/samples/voicec2lb.flac">C2 1600 bit/s Voice Sample</audio>
</div>
<div>
##### Speex
16000 bit/s:
<audio controls src="media/samples/voice.spx">Speex 16kbit/s 8kHz Voice Sample</audio>
----------
8000 bit/s:
<audio controls src="media/samples/voicelb.spx">Speex 8kbit/s 8kHz Voice Sample</audio>
</div>
<div>
##### Opus
32000 bit/s:
<audio controls src="media/samples/voicemb.opus">Opus 32kbit/s Voice Sample</audio>
----------
16000 bit/s:
<audio controls src="media/samples/voicelb.opus">Opus 16kbit/s Voice Sample</audio>
----------
8000 bit/s:
<audio controls src="media/samples/voiceulb.opus">Opus 8kbit/s Voice Sample</audio>
</div>
</div>
[comment]: # (!!!) <!--------------------------------------------------------->

View file

@ -0,0 +1,18 @@
### Multimedia Containers
- Many audio formats cannot be stored "as-is" on disk
- Common audio containers:
- RIFF/WAV (wav)
- MPEG-4 (mp4/m4a)
- OGG (ogg)
- Uncommon audio containers:
- WebM (webm)
- Matroska (mka)
Note:
MPEG-4 supports AAC, FLAC, MP3, ALAC, and Opus
OGG supports Vorbis, Opus, Speex, and FLAC
WebM supports Vorbis and Opus, and is a subset of Matroska apparently
Matroska supports everything made maybe ever
[comment]: # (!!!) <!--------------------------------------------------------->

View file

@ -0,0 +1,9 @@
### Useful Resources
https://trac.ffmpeg.org/wiki/Encode/HighQualityAudio
https://en.wikipedia.org/wiki/Comparison_of_audio_coding_formats
https://en.wikipedia.org/wiki/Codec_listening_test
[comment]: # (!!!) <!--------------------------------------------------------->

View file

@ -0,0 +1,11 @@
![Presentation Source QR](media/presentationsourceqr2.svg) <!-- .element: style="width:30%; image-rendering: pixelated;" -->
[Presentation Source](https://git.qtechofficial.com/logan/presentations/src/branch/master/audiocodecs)
<br>
This presentation is licensed under [CC-BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.en)
![CC-BY-NC-SA Icon](media/Cc-by-nc-sa_icon.svg)
[comment]: # (!!!) <!--------------------------------------------------------->

View file

@ -0,0 +1,10 @@
## Fun Facts:
This presentation took 23 hours
LibreOffice crashed 6 times, so I stopped using it
<br>
Made with mdslides + reveal.js
[comment]: # (!!!) <!--------------------------------------------------------->