logo

blog

My website can't be that messy, right? git clone https://hacktivis.me/git/blog.git

linux-audio-output-current.svg (39355B)


  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2. <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  3. "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
  4. <!-- Generated by graphviz version 5.0.1 (20220820.1526)
  5. -->
  6. <!-- Title: Linux Audio Output APIs (current&#45;only) Pages: 1 -->
  7. <svg width="1645pt" height="734pt"
  8. viewBox="0.00 0.00 1645.00 734.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  9. <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 730)">
  10. <title>Linux Audio Output APIs (current&#45;only)</title>
  11. <polygon fill="white" stroke="none" points="-4,4 -4,-730 1641,-730 1641,4 -4,4"/>
  12. <text text-anchor="middle" x="818.5" y="-37.8" font-family="Times,serif" font-size="14.00">Linux Audio Output APIs (current&#45;only)</text>
  13. <text text-anchor="middle" x="818.5" y="-22.8" font-family="Times,serif" font-size="14.00"> CC&#45;BY 4.0 © 2020&#45;2021 Haelwenn (lanodan) Monnier</text>
  14. <text text-anchor="middle" x="818.5" y="-7.8" font-family="Times,serif" font-size="14.00"> https://hacktivis.me/articles/linux&#45;audio&#45;output</text>
  15. <g id="clust1" class="cluster">
  16. <title>cluster_legend</title>
  17. <polygon fill="none" stroke="black" points="529,-643 529,-718 792,-718 792,-643 529,-643"/>
  18. <text text-anchor="middle" x="660.5" y="-702.8" font-family="Times,serif" font-size="14.00">Legend</text>
  19. </g>
  20. <!-- server -->
  21. <g id="node1" class="node">
  22. <title>server</title>
  23. <polygon fill="orange" stroke="black" points="784.35,-661.54 784.35,-676.46 763.64,-687 734.36,-687 713.65,-676.46 713.65,-661.54 734.36,-651 763.64,-651 784.35,-661.54"/>
  24. <text text-anchor="middle" x="749" y="-665.3" font-family="Times,serif" font-size="14.00">server</text>
  25. </g>
  26. <!-- driver -->
  27. <g id="node2" class="node">
  28. <title>driver</title>
  29. <polygon fill="yellow" stroke="black" points="695.55,-669 677.27,-687 640.73,-687 622.45,-669 640.73,-651 677.27,-651 695.55,-669"/>
  30. <text text-anchor="middle" x="659" y="-665.3" font-family="Times,serif" font-size="14.00">driver</text>
  31. </g>
  32. <!-- hardware -->
  33. <g id="node3" class="node">
  34. <title>hardware</title>
  35. <polygon fill="cyan" stroke="black" points="604.5,-687 537.5,-687 537.5,-651 604.5,-651 604.5,-687"/>
  36. <text text-anchor="middle" x="571" y="-665.3" font-family="Times,serif" font-size="14.00">hardware</text>
  37. </g>
  38. <!-- sound card -->
  39. <g id="node4" class="node">
  40. <title>sound card</title>
  41. <polygon fill="cyan" stroke="black" points="966,-89 890,-89 890,-53 966,-53 966,-89"/>
  42. <text text-anchor="middle" x="928" y="-67.3" font-family="Times,serif" font-size="14.00">sound card</text>
  43. </g>
  44. <!-- phone modem -->
  45. <g id="node5" class="node">
  46. <title>phone modem</title>
  47. <polygon fill="cyan" stroke="black" points="1215.5,-89 1120.5,-89 1120.5,-53 1215.5,-53 1215.5,-89"/>
  48. <text text-anchor="middle" x="1168" y="-67.3" font-family="Times,serif" font-size="14.00">phone modem</text>
  49. </g>
  50. <!-- bluetooth -->
  51. <g id="node6" class="node">
  52. <title>bluetooth</title>
  53. <polygon fill="cyan" stroke="black" points="1067,-89 999,-89 999,-53 1067,-53 1067,-89"/>
  54. <text text-anchor="middle" x="1033" y="-67.3" font-family="Times,serif" font-size="14.00">bluetooth</text>
  55. </g>
  56. <!-- portaudio -->
  57. <g id="node7" class="node">
  58. <title>portaudio</title>
  59. <g id="a_node7"><a xlink:href="https://app.assembla.com/spaces/portaudio/git/source/master/src/hostapi/" xlink:title="portaudio">
  60. <ellipse fill="lightgrey" stroke="black" cx="621" cy="-523" rx="44.39" ry="18"/>
  61. <text text-anchor="middle" x="621" y="-519.3" font-family="Times,serif" font-size="14.00">portaudio</text>
  62. </a>
  63. </g>
  64. </g>
  65. <!-- ALSA -->
  66. <g id="node8" class="node">
  67. <title>ALSA</title>
  68. <g id="a_node8"><a xlink:href="https://alsa-project.org/wiki/Asoundrc#Plugins" xlink:title="ALSA">
  69. <polygon fill="yellow" stroke="black" points="1035.05,-450 1015.53,-468 976.47,-468 956.95,-450 976.47,-432 1015.53,-432 1035.05,-450"/>
  70. <text text-anchor="middle" x="996" y="-446.3" font-family="Times,serif" font-size="14.00">ALSA</text>
  71. </a>
  72. </g>
  73. </g>
  74. <!-- portaudio&#45;&gt;ALSA -->
  75. <g id="edge1" class="edge">
  76. <title>portaudio&#45;&gt;ALSA</title>
  77. <path fill="none" stroke="black" d="M660.38,-514.44C676.38,-511.42 695.06,-507.96 712,-505 737.17,-500.6 914.09,-473.72 939,-468 945.21,-466.57 951.73,-464.85 958.07,-463.05"/>
  78. <polygon fill="black" stroke="black" points="959.17,-466.37 967.78,-460.2 957.2,-459.66 959.17,-466.37"/>
  79. </g>
  80. <!-- JACK -->
  81. <g id="node9" class="node">
  82. <title>JACK</title>
  83. <g id="a_node9"><a xlink:href="https://jackaudio.org/" xlink:title="JACK">
  84. <polygon fill="orange" stroke="black" points="1319.35,-296.54 1319.35,-311.46 1298.64,-322 1269.36,-322 1248.65,-311.46 1248.65,-296.54 1269.36,-286 1298.64,-286 1319.35,-296.54"/>
  85. <text text-anchor="middle" x="1284" y="-300.3" font-family="Times,serif" font-size="14.00">JACK</text>
  86. </a>
  87. </g>
  88. </g>
  89. <!-- portaudio&#45;&gt;JACK -->
  90. <g id="edge2" class="edge">
  91. <title>portaudio&#45;&gt;JACK</title>
  92. <path fill="none" stroke="black" d="M638.97,-506.19C662.36,-486.34 705.21,-452.41 747,-432 849.47,-381.95 882.11,-385.66 993,-359 1079.07,-338.3 1181.08,-321.01 1238.6,-311.91"/>
  93. <polygon fill="black" stroke="black" points="1239.47,-315.31 1248.81,-310.31 1238.39,-308.4 1239.47,-315.31"/>
  94. </g>
  95. <!-- sndio -->
  96. <g id="node10" class="node">
  97. <title>sndio</title>
  98. <g id="a_node10"><a xlink:href="http://www.sndio.org/" xlink:title="sndio">
  99. <polygon fill="orange" stroke="black" points="634.22,-296.54 634.22,-311.46 615.35,-322 588.65,-322 569.78,-311.46 569.78,-296.54 588.65,-286 615.35,-286 634.22,-296.54"/>
  100. <text text-anchor="middle" x="602" y="-300.3" font-family="Times,serif" font-size="14.00">sndio</text>
  101. </a>
  102. </g>
  103. </g>
  104. <!-- portaudio&#45;&gt;sndio -->
  105. <g id="edge3" class="edge">
  106. <title>portaudio&#45;&gt;sndio</title>
  107. <path fill="none" stroke="black" d="M619.51,-504.97C616.23,-467.51 608.36,-377.68 604.39,-332.26"/>
  108. <polygon fill="black" stroke="black" points="607.87,-331.91 603.51,-322.25 600.9,-332.52 607.87,-331.91"/>
  109. </g>
  110. <!-- ALSA&#45;&gt;sound card -->
  111. <g id="edge49" class="edge">
  112. <title>ALSA&#45;&gt;sound card</title>
  113. <path fill="none" stroke="green" d="M968.82,-438.92C944.62,-427.98 913,-407.96 913,-378 913,-378 913,-378 913,-157 913,-137.46 916.89,-115.76 920.71,-99.18"/>
  114. <polygon fill="green" stroke="green" points="924.2,-99.64 923.17,-89.1 917.4,-97.99 924.2,-99.64"/>
  115. </g>
  116. <!-- ALSA&#45;&gt;JACK -->
  117. <g id="edge51" class="edge">
  118. <title>ALSA&#45;&gt;JACK</title>
  119. <path fill="none" stroke="black" d="M1037.56,-441.22C1054.16,-438.2 1073.46,-434.8 1091,-432 1147.73,-422.94 1171.15,-445.79 1219,-414 1234.42,-403.76 1257.59,-360.01 1271.71,-331.15"/>
  120. <polygon fill="black" stroke="black" points="1036.82,-437.79 1027.62,-443.04 1038.08,-444.68 1036.82,-437.79"/>
  121. <polygon fill="black" stroke="black" points="1274.93,-332.53 1276.12,-322 1268.62,-329.49 1274.93,-332.53"/>
  122. </g>
  123. <!-- PulseAudio -->
  124. <g id="node11" class="node">
  125. <title>PulseAudio</title>
  126. <g id="a_node11"><a xlink:href="https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/" xlink:title="PulseAudio">
  127. <polygon fill="orange" stroke="black" points="1114.06,-369.54 1114.06,-384.46 1081.22,-395 1034.78,-395 1001.94,-384.46 1001.94,-369.54 1034.78,-359 1081.22,-359 1114.06,-369.54"/>
  128. <text text-anchor="middle" x="1058" y="-373.3" font-family="Times,serif" font-size="14.00">PulseAudio</text>
  129. </a>
  130. </g>
  131. </g>
  132. <!-- ALSA&#45;&gt;PulseAudio -->
  133. <g id="edge50" class="edge">
  134. <title>ALSA&#45;&gt;PulseAudio</title>
  135. <path fill="none" stroke="black" d="M1005.13,-431.81C1011.9,-423 1021.21,-412.13 1030.19,-402.46"/>
  136. <polygon fill="black" stroke="black" points="1032.91,-404.68 1037.27,-395.03 1027.84,-399.86 1032.91,-404.68"/>
  137. </g>
  138. <!-- bluez -->
  139. <g id="node12" class="node">
  140. <title>bluez</title>
  141. <polygon fill="yellow" stroke="black" points="1070.55,-158 1051.77,-176 1014.23,-176 995.45,-158 1014.23,-140 1051.77,-140 1070.55,-158"/>
  142. <text text-anchor="middle" x="1033" y="-154.3" font-family="Times,serif" font-size="14.00">BlueZ</text>
  143. </g>
  144. <!-- ALSA&#45;&gt;bluez -->
  145. <g id="edge16" class="edge">
  146. <title>ALSA&#45;&gt;bluez</title>
  147. <path fill="none" stroke="black" d="M990.4,-431.93C980.56,-399.38 962.51,-326.41 977,-267 984.36,-236.84 1001.73,-205.7 1015.19,-184.66"/>
  148. <polygon fill="black" stroke="black" points="1018.12,-186.57 1020.68,-176.29 1012.27,-182.73 1018.12,-186.57"/>
  149. </g>
  150. <!-- PipeWire -->
  151. <g id="node15" class="node">
  152. <title>PipeWire</title>
  153. <g id="a_node15"><a xlink:href="http://pipewire.org/" xlink:title="PipeWire">
  154. <polygon fill="orange" stroke="black" points="1281.68,-223.54 1281.68,-238.46 1253.75,-249 1214.25,-249 1186.32,-238.46 1186.32,-223.54 1214.25,-213 1253.75,-213 1281.68,-223.54"/>
  155. <text text-anchor="middle" x="1234" y="-227.3" font-family="Times,serif" font-size="14.00">PipeWire</text>
  156. </a>
  157. </g>
  158. </g>
  159. <!-- ALSA&#45;&gt;PipeWire -->
  160. <g id="edge11" class="edge">
  161. <title>ALSA&#45;&gt;PipeWire</title>
  162. <path fill="none" stroke="black" d="M1034.59,-437.26C1060.91,-428.17 1095.79,-413.93 1123,-395 1159.65,-369.51 1166.91,-358.92 1192,-322 1205.56,-302.05 1216.84,-277.04 1224.28,-258.45"/>
  163. <polygon fill="black" stroke="black" points="1033.32,-433.99 1024.95,-440.49 1035.55,-440.63 1033.32,-433.99"/>
  164. <polygon fill="black" stroke="black" points="1227.55,-259.7 1227.91,-249.11 1221.03,-257.16 1227.55,-259.7"/>
  165. </g>
  166. <!-- JACK&#45;&gt;PipeWire -->
  167. <g id="edge12" class="edge">
  168. <title>JACK&#45;&gt;PipeWire</title>
  169. <path fill="none" stroke="black" d="M1266.04,-277.5C1261.46,-271 1256.54,-264.01 1251.96,-257.5"/>
  170. <polygon fill="black" stroke="black" points="1263.28,-279.65 1271.9,-285.81 1269,-275.62 1263.28,-279.65"/>
  171. <polygon fill="black" stroke="black" points="1254.61,-255.19 1245.99,-249.03 1248.89,-259.22 1254.61,-255.19"/>
  172. </g>
  173. <!-- sndio&#45;&gt;ALSA -->
  174. <g id="edge32" class="edge">
  175. <title>sndio&#45;&gt;ALSA</title>
  176. <path fill="none" stroke="black" d="M638.06,-318.31C693.92,-338.9 804.78,-379.71 899,-414 918.73,-421.18 940.74,-429.13 958.8,-435.63"/>
  177. <polygon fill="black" stroke="black" points="639.2,-315 628.61,-314.82 636.78,-321.56 639.2,-315"/>
  178. <polygon fill="black" stroke="black" points="957.8,-438.99 968.39,-439.08 960.17,-432.4 957.8,-438.99"/>
  179. </g>
  180. <!-- PulseAudio&#45;&gt;sound card -->
  181. <g id="edge5" class="edge">
  182. <title>PulseAudio&#45;&gt;sound card</title>
  183. <path fill="none" stroke="green" d="M1050.64,-358.78C1028.96,-308.1 965.27,-159.16 939.26,-98.33"/>
  184. <polygon fill="green" stroke="green" points="942.43,-96.84 935.28,-89.03 935.99,-99.6 942.43,-96.84"/>
  185. </g>
  186. <!-- PulseAudio&#45;&gt;ALSA -->
  187. <g id="edge4" class="edge">
  188. <title>PulseAudio&#45;&gt;ALSA</title>
  189. <path fill="none" stroke="black" d="M1048.73,-395.37C1041.85,-404.31 1032.39,-415.34 1023.32,-425.07"/>
  190. <polygon fill="black" stroke="black" points="1020.56,-422.89 1016.18,-432.53 1025.62,-427.72 1020.56,-422.89"/>
  191. </g>
  192. <!-- PulseAudio&#45;&gt;JACK -->
  193. <g id="edge6" class="edge">
  194. <title>PulseAudio&#45;&gt;JACK</title>
  195. <path fill="none" stroke="black" d="M1103.87,-366.22C1131.19,-359.96 1166.4,-351.12 1197,-341 1214.48,-335.22 1233.42,-327.56 1249.15,-320.79"/>
  196. <polygon fill="black" stroke="black" points="1250.72,-323.92 1258.49,-316.71 1247.92,-317.5 1250.72,-323.92"/>
  197. </g>
  198. <!-- PulseAudio&#45;&gt;sndio -->
  199. <g id="edge33" class="edge">
  200. <title>PulseAudio&#45;&gt;sndio</title>
  201. <path fill="none" stroke="black" d="M1006.58,-367.99C915.69,-353.84 728.33,-324.67 644.35,-311.59"/>
  202. <polygon fill="black" stroke="black" points="644.81,-308.12 634.39,-310.04 643.74,-315.04 644.81,-308.12"/>
  203. </g>
  204. <!-- PulseAudio&#45;&gt;bluez -->
  205. <g id="edge7" class="edge">
  206. <title>PulseAudio&#45;&gt;bluez</title>
  207. <path fill="none" stroke="black" d="M1056.04,-358.97C1051.72,-321.51 1041.37,-231.68 1036.14,-186.26"/>
  208. <polygon fill="black" stroke="black" points="1039.61,-185.78 1034.99,-176.25 1032.65,-186.58 1039.61,-185.78"/>
  209. </g>
  210. <!-- ofono -->
  211. <g id="node13" class="node">
  212. <title>ofono</title>
  213. <polygon fill="yellow" stroke="black" points="1155.05,-304 1137.02,-322 1100.98,-322 1082.95,-304 1100.98,-286 1137.02,-286 1155.05,-304"/>
  214. <text text-anchor="middle" x="1119" y="-300.3" font-family="Times,serif" font-size="14.00">ofono</text>
  215. </g>
  216. <!-- PulseAudio&#45;&gt;ofono -->
  217. <g id="edge8" class="edge">
  218. <title>PulseAudio&#45;&gt;ofono</title>
  219. <path fill="none" stroke="black" d="M1085.15,-359.77C1092.33,-354.48 1099.58,-348.12 1105,-341 1107.18,-338.14 1109.06,-334.9 1110.67,-331.56"/>
  220. <polygon fill="black" stroke="black" points="1113.98,-332.72 1114.52,-322.13 1107.5,-330.07 1113.98,-332.72"/>
  221. </g>
  222. <!-- PulseAudio&#45;&gt;PipeWire -->
  223. <g id="edge10" class="edge">
  224. <title>PulseAudio&#45;&gt;PipeWire</title>
  225. <path fill="none" stroke="black" d="M1102.48,-358.62C1122.51,-349.52 1145.72,-337.1 1164,-322 1164.79,-321.35 1194,-283.68 1214.43,-257.29"/>
  226. <polygon fill="black" stroke="black" points="1100.97,-355.46 1093.23,-362.7 1103.79,-361.87 1100.97,-355.46"/>
  227. <polygon fill="black" stroke="black" points="1217.36,-259.23 1220.71,-249.18 1211.82,-254.95 1217.36,-259.23"/>
  228. </g>
  229. <!-- bluez&#45;&gt;bluetooth -->
  230. <g id="edge17" class="edge">
  231. <title>bluez&#45;&gt;bluetooth</title>
  232. <path fill="none" stroke="green" d="M1033,-139.8C1033,-128.16 1033,-112.55 1033,-99.24"/>
  233. <polygon fill="green" stroke="green" points="1036.5,-99.18 1033,-89.18 1029.5,-99.18 1036.5,-99.18"/>
  234. </g>
  235. <!-- ofono&#45;&gt;phone modem -->
  236. <g id="edge15" class="edge">
  237. <title>ofono&#45;&gt;phone modem</title>
  238. <path fill="none" stroke="green" d="M1130.9,-285.93C1146.47,-262.45 1172.95,-218.28 1183,-176 1189.16,-150.07 1183.41,-119.87 1177.33,-98.71"/>
  239. <polygon fill="green" stroke="green" points="1180.66,-97.64 1174.37,-89.11 1173.97,-99.7 1180.66,-97.64"/>
  240. </g>
  241. <!-- X11 bell -->
  242. <g id="node14" class="node">
  243. <title>X11 bell</title>
  244. <ellipse fill="lightgrey" stroke="black" cx="888" cy="-450" rx="41.69" ry="18"/>
  245. <text text-anchor="middle" x="888" y="-446.3" font-family="Times,serif" font-size="14.00">X11 bell</text>
  246. </g>
  247. <!-- X11 bell&#45;&gt;PulseAudio -->
  248. <g id="edge9" class="edge">
  249. <title>X11 bell&#45;&gt;PulseAudio</title>
  250. <path fill="none" stroke="black" d="M916.84,-436.96C943.76,-425.71 984.3,-408.78 1015.03,-395.94"/>
  251. <polygon fill="black" stroke="black" points="1016.76,-399.02 1024.64,-391.93 1014.06,-392.56 1016.76,-399.02"/>
  252. </g>
  253. <!-- PipeWire&#45;&gt;bluez -->
  254. <g id="edge13" class="edge">
  255. <title>PipeWire&#45;&gt;bluez</title>
  256. <path fill="none" stroke="black" d="M1199.77,-218.28C1168.31,-207.46 1120.44,-190.87 1079,-176 1075.87,-174.88 1072.63,-173.7 1069.39,-172.52"/>
  257. <polygon fill="black" stroke="black" points="1070.32,-169.13 1059.73,-168.97 1067.91,-175.7 1070.32,-169.13"/>
  258. </g>
  259. <!-- gstreamer -->
  260. <g id="node16" class="node">
  261. <title>gstreamer</title>
  262. <ellipse fill="lightgrey" stroke="black" cx="1567" cy="-523" rx="46.29" ry="18"/>
  263. <text text-anchor="middle" x="1567" y="-519.3" font-family="Times,serif" font-size="14.00">gstreamer</text>
  264. </g>
  265. <!-- gstreamer&#45;&gt;ALSA -->
  266. <g id="edge57" class="edge">
  267. <title>gstreamer&#45;&gt;ALSA</title>
  268. <path fill="none" stroke="black" d="M1526.82,-514.03C1510.47,-510.96 1491.37,-507.57 1474,-505 1315.38,-481.57 1125.83,-462.91 1040.96,-455.05"/>
  269. <polygon fill="black" stroke="black" points="1041.17,-451.55 1030.89,-454.12 1040.53,-458.52 1041.17,-451.55"/>
  270. </g>
  271. <!-- gstreamer&#45;&gt;JACK -->
  272. <g id="edge58" class="edge">
  273. <title>gstreamer&#45;&gt;JACK</title>
  274. <path fill="none" stroke="black" d="M1574.56,-505.15C1589.18,-469.68 1616.45,-386.73 1575,-340 1558.98,-321.94 1406.87,-311.43 1329.18,-307.19"/>
  275. <polygon fill="black" stroke="black" points="1329.36,-303.7 1319.19,-306.66 1328.99,-310.69 1329.36,-303.7"/>
  276. </g>
  277. <!-- gstreamer&#45;&gt;sndio -->
  278. <g id="edge34" class="edge">
  279. <title>gstreamer&#45;&gt;sndio</title>
  280. <path fill="none" stroke="black" d="M1540.55,-508.15C1478.95,-476.51 1320.42,-398.61 1179,-359 1078.24,-330.78 760.29,-312.77 644.61,-307.01"/>
  281. <polygon fill="black" stroke="black" points="644.54,-303.5 634.38,-306.5 644.2,-310.49 644.54,-303.5"/>
  282. </g>
  283. <!-- gstreamer&#45;&gt;PulseAudio -->
  284. <g id="edge59" class="edge">
  285. <title>gstreamer&#45;&gt;PulseAudio</title>
  286. <path fill="none" stroke="black" d="M1532.12,-511.09C1449.16,-485.17 1244.57,-421.41 1213,-413 1180.69,-404.39 1144.23,-396.09 1114.79,-389.73"/>
  287. <polygon fill="black" stroke="black" points="1115.2,-386.24 1104.69,-387.57 1113.73,-393.08 1115.2,-386.24"/>
  288. </g>
  289. <!-- gstreamer&#45;&gt;PipeWire -->
  290. <g id="edge14" class="edge">
  291. <title>gstreamer&#45;&gt;PipeWire</title>
  292. <path fill="none" stroke="black" d="M1594.26,-508.19C1613.92,-496.08 1637,-476.45 1637,-451 1637,-451 1637,-451 1637,-303 1637,-268.38 1403.38,-245.32 1291.89,-236.29"/>
  293. <polygon fill="black" stroke="black" points="1292.06,-232.79 1281.81,-235.48 1291.5,-239.77 1292.06,-232.79"/>
  294. </g>
  295. <!-- sox -->
  296. <g id="node17" class="node">
  297. <title>sox</title>
  298. <g id="a_node17"><a xlink:href="http://sox.sourceforge.net/Docs/Features" xlink:title="sox">
  299. <ellipse fill="lightgrey" stroke="black" cx="498" cy="-596" rx="27" ry="18"/>
  300. <text text-anchor="middle" x="498" y="-592.3" font-family="Times,serif" font-size="14.00">sox</text>
  301. </a>
  302. </g>
  303. </g>
  304. <!-- sox&#45;&gt;ALSA -->
  305. <g id="edge20" class="edge">
  306. <title>sox&#45;&gt;ALSA</title>
  307. <path fill="none" stroke="black" d="M525.12,-595.76C583.41,-596.33 723.65,-591.81 826,-541 846.84,-530.66 844.46,-517.62 864,-505 893.18,-486.16 930.01,-471.75 957.35,-462.58"/>
  308. <polygon fill="black" stroke="black" points="958.55,-465.87 966.96,-459.44 956.37,-459.22 958.55,-465.87"/>
  309. </g>
  310. <!-- sox&#45;&gt;sndio -->
  311. <g id="edge21" class="edge">
  312. <title>sox&#45;&gt;sndio</title>
  313. <path fill="none" stroke="black" d="M470.87,-594.02C366.95,-589.9 0,-571.98 0,-524 0,-524 0,-524 0,-376 0,-319.59 422.3,-307.87 559.5,-305.55"/>
  314. <polygon fill="black" stroke="black" points="559.69,-309.04 569.63,-305.38 559.58,-302.04 559.69,-309.04"/>
  315. </g>
  316. <!-- sox&#45;&gt;PulseAudio -->
  317. <g id="edge19" class="edge">
  318. <title>sox&#45;&gt;PulseAudio</title>
  319. <path fill="none" stroke="black" d="M512.08,-570.34C524.55,-550.38 544.42,-522.76 568,-505 602.81,-478.78 708.35,-444.8 750,-432 787.83,-420.37 798.1,-420.32 837,-413 889.95,-403.03 950.39,-393.59 994.67,-387.03"/>
  320. <polygon fill="black" stroke="black" points="509.07,-568.54 506.88,-578.91 515.06,-572.17 509.07,-568.54"/>
  321. <polygon fill="black" stroke="black" points="995.33,-390.48 1004.71,-385.55 994.31,-383.55 995.33,-390.48"/>
  322. </g>
  323. <!-- libao -->
  324. <g id="node18" class="node">
  325. <title>libao</title>
  326. <g id="a_node18"><a xlink:href="https://www.xiph.org/ao/" xlink:title="libao">
  327. <ellipse fill="lightgrey" stroke="black" cx="454" cy="-523" rx="28.7" ry="18"/>
  328. <text text-anchor="middle" x="454" y="-519.3" font-family="Times,serif" font-size="14.00">libao</text>
  329. </a>
  330. </g>
  331. </g>
  332. <!-- sox&#45;&gt;libao -->
  333. <g id="edge18" class="edge">
  334. <title>sox&#45;&gt;libao</title>
  335. <path fill="none" stroke="black" d="M488.02,-578.89C482.5,-569.99 475.54,-558.75 469.35,-548.77"/>
  336. <polygon fill="black" stroke="black" points="472.19,-546.7 463.94,-540.05 466.24,-550.39 472.19,-546.7"/>
  337. </g>
  338. <!-- libao&#45;&gt;ALSA -->
  339. <g id="edge22" class="edge">
  340. <title>libao&#45;&gt;ALSA</title>
  341. <path fill="none" stroke="black" d="M481.59,-517.5C504.65,-513.83 538.41,-508.68 568,-505 732.44,-484.55 776.42,-500.05 939,-468 945.32,-466.75 951.94,-465.11 958.34,-463.33"/>
  342. <polygon fill="black" stroke="black" points="959.53,-466.63 968.14,-460.46 957.56,-459.91 959.53,-466.63"/>
  343. </g>
  344. <!-- libao&#45;&gt;sndio -->
  345. <g id="edge26" class="edge">
  346. <title>libao&#45;&gt;sndio</title>
  347. <path fill="none" stroke="black" d="M448.01,-505.23C442.36,-486.49 436.21,-455.67 447,-432 471.34,-378.6 530.91,-340.42 568.71,-320.6"/>
  348. <polygon fill="black" stroke="black" points="570.5,-323.62 577.82,-315.96 567.32,-317.38 570.5,-323.62"/>
  349. </g>
  350. <!-- libao&#45;&gt;PulseAudio -->
  351. <g id="edge23" class="edge">
  352. <title>libao&#45;&gt;PulseAudio</title>
  353. <path fill="none" stroke="black" d="M476.12,-511.56C524.09,-489.41 641.75,-437.72 746,-413 829.27,-393.26 927.76,-384.56 991.48,-380.8"/>
  354. <polygon fill="black" stroke="black" points="992,-384.27 1001.79,-380.21 991.6,-377.28 992,-384.27"/>
  355. </g>
  356. <!-- NAS -->
  357. <g id="node19" class="node">
  358. <title>NAS</title>
  359. <g id="a_node19"><a xlink:href="http://radscan.com/nas.html" xlink:title="Network Audio System/Server">
  360. <polygon fill="orange" stroke="black" points="400.39,-442.54 400.39,-457.46 324.59,-468 217.41,-468 141.61,-457.46 141.61,-442.54 217.41,-432 324.59,-432 400.39,-442.54"/>
  361. <text text-anchor="middle" x="271" y="-446.3" font-family="Times,serif" font-size="14.00">Network Audio System/Server</text>
  362. </a>
  363. </g>
  364. </g>
  365. <!-- libao&#45;&gt;NAS -->
  366. <g id="edge24" class="edge">
  367. <title>libao&#45;&gt;NAS</title>
  368. <path fill="none" stroke="black" d="M430.08,-512.72C403.42,-502.38 359.48,-485.33 324.52,-471.77"/>
  369. <polygon fill="black" stroke="black" points="325.51,-468.4 314.92,-468.04 322.98,-474.92 325.51,-468.4"/>
  370. </g>
  371. <!-- RoarAudio -->
  372. <g id="node20" class="node">
  373. <title>RoarAudio</title>
  374. <g id="a_node20"><a xlink:href="http://roaraudio.keep-cool.org/" xlink:title="RoarAudio">
  375. <ellipse fill="lightgrey" stroke="black" cx="506" cy="-450" rx="50.09" ry="18"/>
  376. <text text-anchor="middle" x="506" y="-446.3" font-family="Times,serif" font-size="14.00">RoarAudio</text>
  377. </a>
  378. </g>
  379. </g>
  380. <!-- libao&#45;&gt;RoarAudio -->
  381. <g id="edge25" class="edge">
  382. <title>libao&#45;&gt;RoarAudio</title>
  383. <path fill="none" stroke="black" d="M465.54,-506.24C472.09,-497.31 480.42,-485.92 487.83,-475.81"/>
  384. <polygon fill="black" stroke="black" points="490.68,-477.84 493.77,-467.7 485.03,-473.7 490.68,-477.84"/>
  385. </g>
  386. <!-- RoarAudio&#45;&gt;sndio -->
  387. <g id="edge27" class="edge">
  388. <title>RoarAudio&#45;&gt;sndio</title>
  389. <path fill="none" stroke="black" d="M514.26,-432C525.34,-409.9 546.29,-370.5 569,-340 571.96,-336.02 575.32,-332.01 578.74,-328.19"/>
  390. <polygon fill="black" stroke="black" points="581.47,-330.39 585.73,-320.69 576.35,-325.62 581.47,-330.39"/>
  391. </g>
  392. <!-- RoarAudio&#45;&gt;PulseAudio -->
  393. <g id="edge28" class="edge">
  394. <title>RoarAudio&#45;&gt;PulseAudio</title>
  395. <path fill="none" stroke="black" d="M547.99,-440.07C586.97,-432.05 646.69,-420.41 699,-413 800.64,-398.59 919.33,-388.29 991.54,-382.73"/>
  396. <polygon fill="black" stroke="black" points="992.15,-386.2 1001.85,-381.95 991.62,-379.22 992.15,-386.2"/>
  397. </g>
  398. <!-- libcanberra -->
  399. <g id="node21" class="node">
  400. <title>libcanberra</title>
  401. <g id="a_node21"><a xlink:href="http://git.0pointer.net/libcanberra.git/tree/src/driver-order.c" xlink:title="libcanberra">
  402. <ellipse fill="lightgrey" stroke="black" cx="1419" cy="-596" rx="50.09" ry="18"/>
  403. <text text-anchor="middle" x="1419" y="-592.3" font-family="Times,serif" font-size="14.00">libcanberra</text>
  404. </a>
  405. </g>
  406. </g>
  407. <!-- libcanberra&#45;&gt;ALSA -->
  408. <g id="edge30" class="edge">
  409. <title>libcanberra&#45;&gt;ALSA</title>
  410. <path fill="none" stroke="black" d="M1369.13,-593.72C1278.08,-590.46 1089.54,-579.17 1038,-541 1017.61,-525.9 1006.79,-498.43 1001.26,-477.79"/>
  411. <polygon fill="black" stroke="black" points="1004.65,-476.91 998.9,-468.01 997.85,-478.55 1004.65,-476.91"/>
  412. </g>
  413. <!-- libcanberra&#45;&gt;PulseAudio -->
  414. <g id="edge29" class="edge">
  415. <title>libcanberra&#45;&gt;PulseAudio</title>
  416. <path fill="none" stroke="black" d="M1411.32,-578.15C1401.23,-557.87 1381.62,-524.14 1355,-505 1309,-471.91 1281.99,-496.47 1233,-468 1212.89,-456.31 1212.87,-446.89 1195,-432 1184,-422.84 1181.77,-419.46 1169,-413 1151.19,-403.99 1130.61,-396.73 1112.04,-391.2"/>
  417. <polygon fill="black" stroke="black" points="1112.82,-387.78 1102.25,-388.39 1110.89,-394.51 1112.82,-387.78"/>
  418. </g>
  419. <!-- libcanberra&#45;&gt;gstreamer -->
  420. <g id="edge31" class="edge">
  421. <title>libcanberra&#45;&gt;gstreamer</title>
  422. <path fill="none" stroke="black" d="M1447.89,-581.14C1471.16,-569.98 1504.06,-554.19 1529.39,-542.04"/>
  423. <polygon fill="black" stroke="black" points="1531.19,-545.06 1538.69,-537.58 1528.16,-538.75 1531.19,-545.06"/>
  424. </g>
  425. <!-- OpenAL -->
  426. <g id="node22" class="node">
  427. <title>OpenAL</title>
  428. <g id="a_node22"><a xlink:href="https://www.openal-soft.org/" xlink:title="OpenAL">
  429. <ellipse fill="lightgrey" stroke="black" cx="837" cy="-596" rx="41.69" ry="18"/>
  430. <text text-anchor="middle" x="837" y="-592.3" font-family="Times,serif" font-size="14.00">OpenAL</text>
  431. </a>
  432. </g>
  433. </g>
  434. <!-- OpenAL&#45;&gt;portaudio -->
  435. <g id="edge38" class="edge">
  436. <title>OpenAL&#45;&gt;portaudio</title>
  437. <path fill="none" stroke="black" d="M797.59,-590.04C764.93,-585.06 717.77,-575.79 679,-560 669.12,-555.98 659.02,-550.33 650.07,-544.71"/>
  438. <polygon fill="black" stroke="black" points="651.85,-541.68 641.56,-539.14 648.02,-547.54 651.85,-541.68"/>
  439. </g>
  440. <!-- OpenAL&#45;&gt;ALSA -->
  441. <g id="edge36" class="edge">
  442. <title>OpenAL&#45;&gt;ALSA</title>
  443. <path fill="none" stroke="black" d="M873.77,-587.33C901.37,-579.83 938.33,-565.8 962,-541 978.52,-523.69 987.2,-497.57 991.64,-477.92"/>
  444. <polygon fill="black" stroke="black" points="995.08,-478.54 993.64,-468.04 988.22,-477.15 995.08,-478.54"/>
  445. </g>
  446. <!-- OpenAL&#45;&gt;JACK -->
  447. <g id="edge39" class="edge">
  448. <title>OpenAL&#45;&gt;JACK</title>
  449. <path fill="none" stroke="black" d="M878.62,-594.66C1013.73,-593.12 1433.73,-584.83 1474,-541 1507.59,-504.45 1511.14,-483.37 1431,-359 1409.38,-325.45 1364.21,-312.62 1329.61,-307.78"/>
  450. <polygon fill="black" stroke="black" points="1329.6,-304.25 1319.25,-306.52 1328.76,-311.2 1329.6,-304.25"/>
  451. </g>
  452. <!-- OpenAL&#45;&gt;sndio -->
  453. <g id="edge40" class="edge">
  454. <title>OpenAL&#45;&gt;sndio</title>
  455. <path fill="none" stroke="black" d="M795.88,-592.91C727.8,-588.49 596.34,-575.59 568,-541 554.91,-525.02 582.9,-390.52 595.87,-332.01"/>
  456. <polygon fill="black" stroke="black" points="599.33,-332.54 598.1,-322.01 592.5,-331.01 599.33,-332.54"/>
  457. </g>
  458. <!-- OpenAL&#45;&gt;PulseAudio -->
  459. <g id="edge35" class="edge">
  460. <title>OpenAL&#45;&gt;PulseAudio</title>
  461. <path fill="none" stroke="black" d="M797.8,-589.57C768.69,-583.26 730.89,-569.74 712,-541 703.21,-527.63 705.32,-519.54 712,-505 717.2,-493.69 785.99,-437.81 797,-432 858.16,-399.73 936.86,-386.73 991.78,-381.5"/>
  462. <polygon fill="black" stroke="black" points="992.1,-384.99 1001.75,-380.62 991.48,-378.02 992.1,-384.99"/>
  463. </g>
  464. <!-- SoundIO -->
  465. <g id="node23" class="node">
  466. <title>SoundIO</title>
  467. <g id="a_node23"><a xlink:href="http://libsound.io/" xlink:title="SoundIO">
  468. <ellipse fill="lightgrey" stroke="black" cx="1089" cy="-523" rx="42.49" ry="18"/>
  469. <text text-anchor="middle" x="1089" y="-519.3" font-family="Times,serif" font-size="14.00">SoundIO</text>
  470. </a>
  471. </g>
  472. </g>
  473. <!-- OpenAL&#45;&gt;SoundIO -->
  474. <g id="edge37" class="edge">
  475. <title>OpenAL&#45;&gt;SoundIO</title>
  476. <path fill="none" stroke="black" d="M874.75,-588.27C907.02,-582.12 954.5,-572.17 995,-560 1013.61,-554.41 1033.78,-546.88 1050.65,-540.16"/>
  477. <polygon fill="black" stroke="black" points="1052.21,-543.31 1060.17,-536.31 1049.59,-536.82 1052.21,-543.31"/>
  478. </g>
  479. <!-- SoundIO&#45;&gt;ALSA -->
  480. <g id="edge43" class="edge">
  481. <title>SoundIO&#45;&gt;ALSA</title>
  482. <path fill="none" stroke="black" d="M1069.28,-506.94C1056.44,-497.14 1039.47,-484.19 1025.1,-473.22"/>
  483. <polygon fill="black" stroke="black" points="1027.06,-470.31 1016.99,-467.02 1022.81,-475.87 1027.06,-470.31"/>
  484. </g>
  485. <!-- SoundIO&#45;&gt;JACK -->
  486. <g id="edge41" class="edge">
  487. <title>SoundIO&#45;&gt;JACK</title>
  488. <path fill="none" stroke="black" d="M1116.57,-509.24C1154.97,-490.02 1224,-449.96 1261,-395 1273.56,-376.35 1279.26,-351.32 1281.85,-332.39"/>
  489. <polygon fill="black" stroke="black" points="1285.34,-332.65 1283.01,-322.32 1278.39,-331.85 1285.34,-332.65"/>
  490. </g>
  491. <!-- SoundIO&#45;&gt;PulseAudio -->
  492. <g id="edge42" class="edge">
  493. <title>SoundIO&#45;&gt;PulseAudio</title>
  494. <path fill="none" stroke="black" d="M1085.32,-504.92C1080.01,-480.23 1070.13,-434.35 1063.82,-405.04"/>
  495. <polygon fill="black" stroke="black" points="1067.2,-404.1 1061.67,-395.06 1060.36,-405.57 1067.2,-404.1"/>
  496. </g>
  497. <!-- RtAudio -->
  498. <g id="node24" class="node">
  499. <title>RtAudio</title>
  500. <g id="a_node24"><a xlink:href="https://www.music.mcgill.ca/~gary/rtaudio/apinotes.html" xlink:title="RtAudio">
  501. <ellipse fill="lightgrey" stroke="black" cx="1190" cy="-523" rx="40.89" ry="18"/>
  502. <text text-anchor="middle" x="1190" y="-519.3" font-family="Times,serif" font-size="14.00">RtAudio</text>
  503. </a>
  504. </g>
  505. </g>
  506. <!-- RtAudio&#45;&gt;ALSA -->
  507. <g id="edge44" class="edge">
  508. <title>RtAudio&#45;&gt;ALSA</title>
  509. <path fill="none" stroke="black" d="M1159.26,-510.75C1125.08,-498.24 1069.87,-478.04 1033.26,-464.64"/>
  510. <polygon fill="black" stroke="black" points="1034.05,-461.2 1023.46,-461.05 1031.65,-467.77 1034.05,-461.2"/>
  511. </g>
  512. <!-- RtAudio&#45;&gt;JACK -->
  513. <g id="edge45" class="edge">
  514. <title>RtAudio&#45;&gt;JACK</title>
  515. <path fill="none" stroke="black" d="M1216.23,-509.15C1247.41,-492.24 1297.87,-459.26 1319,-414 1331.84,-386.5 1316.91,-353.01 1302.76,-330.48"/>
  516. <polygon fill="black" stroke="black" points="1305.67,-328.53 1297.24,-322.12 1299.83,-332.39 1305.67,-328.53"/>
  517. </g>
  518. <!-- RtAudio&#45;&gt;PulseAudio -->
  519. <g id="edge46" class="edge">
  520. <title>RtAudio&#45;&gt;PulseAudio</title>
  521. <path fill="none" stroke="black" d="M1175.37,-506.04C1152.45,-481.03 1107.89,-432.43 1080.76,-402.82"/>
  522. <polygon fill="black" stroke="black" points="1083.26,-400.38 1073.93,-395.37 1078.1,-405.11 1083.26,-400.38"/>
  523. </g>
  524. <!-- JUCE -->
  525. <g id="node25" class="node">
  526. <title>JUCE</title>
  527. <ellipse fill="lightgrey" stroke="black" cx="1281" cy="-523" rx="31.7" ry="18"/>
  528. <text text-anchor="middle" x="1281" y="-519.3" font-family="Times,serif" font-size="14.00">JUCE</text>
  529. </g>
  530. <!-- JUCE&#45;&gt;ALSA -->
  531. <g id="edge47" class="edge">
  532. <title>JUCE&#45;&gt;ALSA</title>
  533. <path fill="none" stroke="black" d="M1256.54,-511.04C1251.16,-508.86 1245.44,-506.71 1240,-505 1170.66,-483.14 1087.54,-466.76 1038.4,-458.05"/>
  534. <polygon fill="black" stroke="black" points="1038.9,-454.59 1028.45,-456.31 1037.69,-461.48 1038.9,-454.59"/>
  535. </g>
  536. <!-- JUCE&#45;&gt;JACK -->
  537. <g id="edge48" class="edge">
  538. <title>JUCE&#45;&gt;JACK</title>
  539. <path fill="none" stroke="black" d="M1303.21,-509.87C1331.68,-492.84 1379.43,-458.83 1397,-414 1409.57,-381.93 1397.54,-365.14 1374,-340 1362.14,-327.33 1345.15,-319.19 1329.13,-313.98"/>
  540. <polygon fill="black" stroke="black" points="1329.91,-310.56 1319.33,-311.1 1327.94,-317.28 1329.91,-310.56"/>
  541. </g>
  542. <!-- SDL2 -->
  543. <g id="node26" class="node">
  544. <title>SDL2</title>
  545. <g id="a_node26"><a xlink:href="https://hg.libsdl.org/SDL/file/355a4f94a782" xlink:title="libSDL&#45;2.0">
  546. <ellipse fill="lightgrey" stroke="black" cx="137" cy="-523" rx="50.89" ry="18"/>
  547. <text text-anchor="middle" x="137" y="-519.3" font-family="Times,serif" font-size="14.00">libSDL&#45;2.0</text>
  548. </a>
  549. </g>
  550. </g>
  551. <!-- SDL2&#45;&gt;ALSA -->
  552. <g id="edge52" class="edge">
  553. <title>SDL2&#45;&gt;ALSA</title>
  554. <path fill="none" stroke="black" d="M186.61,-518.97C355.83,-508.57 901.9,-474.7 939,-468 945.34,-466.86 951.97,-465.26 958.37,-463.5"/>
  555. <polygon fill="black" stroke="black" points="959.56,-466.8 968.18,-460.65 957.6,-460.08 959.56,-466.8"/>
  556. </g>
  557. <!-- SDL2&#45;&gt;JACK -->
  558. <g id="edge53" class="edge">
  559. <title>SDL2&#45;&gt;JACK</title>
  560. <path fill="none" stroke="black" d="M125.86,-505.18C114.17,-485.24 99.84,-452.18 118,-432 196.19,-345.15 1048.02,-336.31 1164,-322 1188.72,-318.95 1216.24,-315.09 1238.68,-311.81"/>
  561. <polygon fill="black" stroke="black" points="1239.22,-315.27 1248.6,-310.36 1238.2,-308.35 1239.22,-315.27"/>
  562. </g>
  563. <!-- SDL2&#45;&gt;sndio -->
  564. <g id="edge56" class="edge">
  565. <title>SDL2&#45;&gt;sndio</title>
  566. <path fill="none" stroke="black" d="M95.99,-512.35C82.85,-507.11 69.72,-499.12 62,-487 48.87,-466.38 46.82,-451.16 62,-432 124.26,-353.39 442.57,-318.63 559.14,-308.4"/>
  567. <polygon fill="black" stroke="black" points="559.8,-311.86 569.46,-307.52 559.2,-304.89 559.8,-311.86"/>
  568. </g>
  569. <!-- SDL2&#45;&gt;PulseAudio -->
  570. <g id="edge55" class="edge">
  571. <title>SDL2&#45;&gt;PulseAudio</title>
  572. <path fill="none" stroke="black" d="M129.77,-504.9C122.51,-484.68 114.76,-451.34 133,-432 147.74,-416.38 782.11,-389.22 991.62,-380.66"/>
  573. <polygon fill="black" stroke="black" points="992.02,-384.15 1001.87,-380.25 991.73,-377.16 992.02,-384.15"/>
  574. </g>
  575. <!-- SDL2&#45;&gt;NAS -->
  576. <g id="edge54" class="edge">
  577. <title>SDL2&#45;&gt;NAS</title>
  578. <path fill="none" stroke="black" d="M164.12,-507.63C182.99,-497.63 208.49,-484.12 229.86,-472.8"/>
  579. <polygon fill="black" stroke="black" points="231.53,-475.87 238.73,-468.1 228.25,-469.69 231.53,-475.87"/>
  580. </g>
  581. <!-- phonon -->
  582. <g id="node27" class="node">
  583. <title>phonon</title>
  584. <ellipse fill="lightgrey" stroke="black" cx="1567" cy="-596" rx="37.09" ry="18"/>
  585. <text text-anchor="middle" x="1567" y="-592.3" font-family="Times,serif" font-size="14.00">phonon</text>
  586. </g>
  587. <!-- phonon&#45;&gt;PulseAudio -->
  588. <g id="edge62" class="edge">
  589. <title>phonon&#45;&gt;PulseAudio</title>
  590. <path fill="none" stroke="black" d="M1586.69,-580.67C1609.41,-562.38 1641.31,-530.11 1622,-505 1561.76,-426.69 1260.62,-393.72 1124.73,-382.66"/>
  591. <polygon fill="black" stroke="black" points="1124.69,-379.15 1114.45,-381.84 1124.14,-386.13 1124.69,-379.15"/>
  592. </g>
  593. <!-- phonon&#45;&gt;gstreamer -->
  594. <g id="edge60" class="edge">
  595. <title>phonon&#45;&gt;gstreamer</title>
  596. <path fill="none" stroke="black" d="M1567,-577.81C1567,-569.79 1567,-560.05 1567,-551.07"/>
  597. <polygon fill="black" stroke="black" points="1570.5,-551.03 1567,-541.03 1563.5,-551.03 1570.5,-551.03"/>
  598. </g>
  599. <!-- VLC -->
  600. <g id="node28" class="node">
  601. <title>VLC</title>
  602. <g id="a_node28"><a xlink:href="https://code.videolan.org/videolan/vlc/-/tree/master/modules/audio_output" xlink:title="VLC">
  603. <ellipse fill="lightgrey" stroke="black" cx="1436" cy="-523" rx="28.7" ry="18"/>
  604. <text text-anchor="middle" x="1436" y="-519.3" font-family="Times,serif" font-size="14.00">VLC</text>
  605. </a>
  606. </g>
  607. </g>
  608. <!-- phonon&#45;&gt;VLC -->
  609. <g id="edge61" class="edge">
  610. <title>phonon&#45;&gt;VLC</title>
  611. <path fill="none" stroke="black" d="M1543.28,-582.14C1521.54,-570.36 1489.26,-552.86 1465.79,-540.14"/>
  612. <polygon fill="black" stroke="black" points="1467.41,-537.04 1456.95,-535.36 1464.08,-543.2 1467.41,-537.04"/>
  613. </g>
  614. <!-- VLC&#45;&gt;ALSA -->
  615. <g id="edge68" class="edge">
  616. <title>VLC&#45;&gt;ALSA</title>
  617. <path fill="none" stroke="black" d="M1408.48,-517.56C1334.01,-505.54 1128.15,-472.32 1038.57,-457.87"/>
  618. <polygon fill="black" stroke="black" points="1038.92,-454.38 1028.49,-456.24 1037.8,-461.29 1038.92,-454.38"/>
  619. </g>
  620. <!-- VLC&#45;&gt;JACK -->
  621. <g id="edge69" class="edge">
  622. <title>VLC&#45;&gt;JACK</title>
  623. <path fill="none" stroke="black" d="M1436.99,-504.57C1437.99,-473.31 1436.5,-406.56 1410,-359 1393.99,-330.27 1358.54,-316.82 1329.31,-310.53"/>
  624. <polygon fill="black" stroke="black" points="1329.76,-307.05 1319.28,-308.59 1328.43,-313.92 1329.76,-307.05"/>
  625. </g>
  626. <!-- VLC&#45;&gt;sndio -->
  627. <g id="edge71" class="edge">
  628. <title>VLC&#45;&gt;sndio</title>
  629. <path fill="none" stroke="black" d="M1415.31,-510.36C1384.2,-492.93 1323.42,-459.21 1271,-432 1205.9,-398.21 1193.47,-379.32 1123,-359 950.7,-309.31 734.71,-304.13 644.57,-304.37"/>
  630. <polygon fill="black" stroke="black" points="644.45,-300.87 634.47,-304.43 644.48,-307.87 644.45,-300.87"/>
  631. </g>
  632. <!-- VLC&#45;&gt;PulseAudio -->
  633. <g id="edge70" class="edge">
  634. <title>VLC&#45;&gt;PulseAudio</title>
  635. <path fill="none" stroke="black" d="M1412.44,-512.4C1406.15,-509.92 1399.34,-507.3 1393,-505 1343.71,-487.13 1327.47,-492.27 1281,-468 1257.36,-455.66 1255.53,-446.27 1233,-432 1217.72,-422.32 1213.89,-419.48 1197,-413 1171.05,-403.05 1141.29,-395.12 1115.98,-389.34"/>
  636. <polygon fill="black" stroke="black" points="1116.68,-385.91 1106.16,-387.16 1115.16,-392.75 1116.68,-385.91"/>
  637. </g>
  638. <!-- ClanLib -->
  639. <g id="node29" class="node">
  640. <title>ClanLib</title>
  641. <g id="a_node29"><a xlink:href="https://github.com/sphair/ClanLib/tree/master/Sources/Sound/Platform/Linux" xlink:title="ClanLib">
  642. <ellipse fill="lightgrey" stroke="black" cx="913" cy="-523" rx="39.79" ry="18"/>
  643. <text text-anchor="middle" x="913" y="-519.3" font-family="Times,serif" font-size="14.00">ClanLib</text>
  644. </a>
  645. </g>
  646. </g>
  647. <!-- ClanLib&#45;&gt;ALSA -->
  648. <g id="edge63" class="edge">
  649. <title>ClanLib&#45;&gt;ALSA</title>
  650. <path fill="none" stroke="black" d="M931.01,-506.59C941.96,-497.23 956.17,-485.08 968.5,-474.52"/>
  651. <polygon fill="black" stroke="black" points="970.96,-477.03 976.28,-467.87 966.41,-471.71 970.96,-477.03"/>
  652. </g>
  653. <!-- allegro -->
  654. <g id="node30" class="node">
  655. <title>allegro</title>
  656. <g id="a_node30"><a xlink:href="https://github.com/liballeg/allegro5/tree/master/addons/audio" xlink:title="allegro">
  657. <ellipse fill="lightgrey" stroke="black" cx="837" cy="-669" rx="35.19" ry="18"/>
  658. <text text-anchor="middle" x="837" y="-665.3" font-family="Times,serif" font-size="14.00">allegro</text>
  659. </a>
  660. </g>
  661. </g>
  662. <!-- allegro&#45;&gt;PulseAudio -->
  663. <g id="edge65" class="edge">
  664. <title>allegro&#45;&gt;PulseAudio</title>
  665. <path fill="none" stroke="black" d="M871.13,-664.39C972.1,-652.92 1265.83,-613.78 1322,-541 1331.78,-528.33 1331.6,-517.8 1322,-505 1286.72,-457.97 1248.38,-492.63 1195,-468 1184.09,-462.96 1127.9,-425.37 1090.96,-400.39"/>
  666. <polygon fill="black" stroke="black" points="1092.72,-397.36 1082.48,-394.65 1088.8,-403.16 1092.72,-397.36"/>
  667. </g>
  668. <!-- allegro&#45;&gt;OpenAL -->
  669. <g id="edge64" class="edge">
  670. <title>allegro&#45;&gt;OpenAL</title>
  671. <path fill="none" stroke="black" d="M837,-650.81C837,-642.79 837,-633.05 837,-624.07"/>
  672. <polygon fill="black" stroke="black" points="840.5,-624.03 837,-614.03 833.5,-624.03 840.5,-624.03"/>
  673. </g>
  674. <!-- allegro&#45;&gt;SDL2 -->
  675. <g id="edge66" class="edge">
  676. <title>allegro&#45;&gt;SDL2</title>
  677. <path fill="none" stroke="black" d="M817.88,-653.83C811.27,-649.63 803.6,-645.5 796,-643 654.43,-596.54 608.64,-640.44 462,-614 360.21,-595.65 244.13,-559.76 181.96,-539.29"/>
  678. <polygon fill="black" stroke="black" points="182.69,-535.84 172.09,-536.01 180.49,-542.48 182.69,-535.84"/>
  679. </g>
  680. <!-- telepathy -->
  681. <g id="node31" class="node">
  682. <title>telepathy</title>
  683. <ellipse fill="lightgrey" stroke="black" cx="1131" cy="-158" rx="42.79" ry="18"/>
  684. <text text-anchor="middle" x="1131" y="-154.3" font-family="Times,serif" font-size="14.00">telepathy</text>
  685. </g>
  686. <!-- telepathy&#45;&gt;phone modem -->
  687. <g id="edge67" class="edge">
  688. <title>telepathy&#45;&gt;phone modem</title>
  689. <path fill="none" stroke="black" d="M1138.31,-140.21C1143.5,-128.29 1150.56,-112.06 1156.5,-98.42"/>
  690. <polygon fill="black" stroke="black" points="1159.8,-99.62 1160.58,-89.05 1153.38,-96.82 1159.8,-99.62"/>
  691. <text text-anchor="middle" x="1155.5" y="-110.8" font-family="Times,serif" font-size="14.00" fill="red">?</text>
  692. </g>
  693. <!-- pcaudiolib -->
  694. <g id="node32" class="node">
  695. <title>pcaudiolib</title>
  696. <g id="a_node32"><a xlink:href="https://github.com/espeak-ng/pcaudiolib" xlink:title="pcaudiolib">
  697. <ellipse fill="lightgrey" stroke="black" cx="769" cy="-523" rx="48.19" ry="18"/>
  698. <text text-anchor="middle" x="769" y="-519.3" font-family="Times,serif" font-size="14.00">pcaudiolib</text>
  699. </a>
  700. </g>
  701. </g>
  702. <!-- pcaudiolib&#45;&gt;ALSA -->
  703. <g id="edge72" class="edge">
  704. <title>pcaudiolib&#45;&gt;ALSA</title>
  705. <path fill="none" stroke="black" d="M792.78,-507.29C805.73,-499.88 822.27,-491.36 838,-486 881.16,-471.28 894.64,-478.53 939,-468 945.2,-466.53 951.72,-464.78 958.05,-462.97"/>
  706. <polygon fill="black" stroke="black" points="959.15,-466.29 967.76,-460.11 957.18,-459.58 959.15,-466.29"/>
  707. </g>
  708. <!-- pcaudiolib&#45;&gt;PulseAudio -->
  709. <g id="edge73" class="edge">
  710. <title>pcaudiolib&#45;&gt;PulseAudio</title>
  711. <path fill="none" stroke="black" d="M777.26,-504.91C788.08,-484.37 809.02,-450.4 837,-432 883.27,-401.57 945.15,-388.28 991.66,-382.47"/>
  712. <polygon fill="black" stroke="black" points="992.11,-385.95 1001.64,-381.31 991.3,-378.99 992.11,-385.95"/>
  713. </g>
  714. </g>
  715. </svg>