@@ -120,7 +120,7 @@ Another response would be to say that when or if machines listen, they listen ![ | |||||
# Footnotes | # Footnotes | ||||
[^Cella, Serizel, Ellis]: LIBRARY: Cella, Serizel, Ellis | |||||
[^Cella, Serizel, Ellis]: ![](bib:7c769ce6-5e9e-40d3-96ef-1838a7f57365) | |||||
[^Alper]: Meryl Alper, *Giving Voice: Mobile Communication, Disability*, and Inequality (MIT Press, 2017) | [^Alper]: Meryl Alper, *Giving Voice: Mobile Communication, Disability*, and Inequality (MIT Press, 2017) | ||||
[^Rowe, Maier]: LIBRARY; Stefan Maier: [*Machine Listening*](https://technosphere-magazine.hkw.de/p/Machine-Listening-kmgQVZVaQeugBaizQjmZnY), Technosphere Magazine (2018) | [^Rowe, Maier]: LIBRARY; Stefan Maier: [*Machine Listening*](https://technosphere-magazine.hkw.de/p/Machine-Listening-kmgQVZVaQeugBaizQjmZnY), Technosphere Magazine (2018) | ||||
[^intelligent_audio_analysis]: ![](bib:827d1f44-5a35-4278-a527-4df67e5ba321) | [^intelligent_audio_analysis]: ![](bib:827d1f44-5a35-4278-a527-4df67e5ba321) | ||||
@@ -129,11 +129,11 @@ Another response would be to say that when or if machines listen, they listen ![ | |||||
[^kathy_audio_1]: Interview with [Kathy Reid](https://blog.kathyreid.id.au) on August 11, 2020 | [^kathy_audio_1]: Interview with [Kathy Reid](https://blog.kathyreid.id.au) on August 11, 2020 | ||||
[^andre_audio_1]: Interview with [André Dao](https://andredao.com/) on September 4, 2020 | [^andre_audio_1]: Interview with [André Dao](https://andredao.com/) on September 4, 2020 | ||||
[^exemplary projects]: See for instance [Data 4 Black Lives](https://d4bl.org/programs.html), [Feminist Data Manifest-No](https://www.manifestno.com/) [add] | [^exemplary projects]: See for instance [Data 4 Black Lives](https://d4bl.org/programs.html), [Feminist Data Manifest-No](https://www.manifestno.com/) [add] | ||||
[^Crawford and Joler]: LIBRARY Anatomy of an AI | |||||
[^Crawford and Joler]: ![](bib:3f8dd486-3e28-45ef-929f-65086850870e) | |||||
[^Goldenfein]: LIBRARY (if jake's willing to share?) Jake Goldenfein, *Monitoring Laws: Profiling and Identity in the World State* (Cambridge University Press, 2019) https://doi.org/10.1017/9781108637657 | [^Goldenfein]: LIBRARY (if jake's willing to share?) Jake Goldenfein, *Monitoring Laws: Profiling and Identity in the World State* (Cambridge University Press, 2019) https://doi.org/10.1017/9781108637657 | ||||
[^McQuillan]: LIBRARY Data Science as Machinic Neoplatonism | |||||
[^McQuillan]: ![](bib:c58be9a5-a599-4a4b-b58f-a07721fc1721) | |||||
[^halcyon_audio_1]: Interview with [Halcyon Lawrence](http://www.halcyonlawrence.com/) on August 31, 2020. | [^halcyon_audio_1]: Interview with [Halcyon Lawrence](http://www.halcyonlawrence.com/) on August 31, 2020. | ||||
[^Virilio]: LIBRARY Paul Virilio, *Sightless Vision* | |||||
[^Faroki, Paglen]: LIBRARY; Mark Andrejevic, [Operational Listening (Eavesdropping)](https://youtu.be/OxOKlgsc3_M), recorded on August 10, 2018 | |||||
[^Billy Li]: LIBRARY: Li et al, Adversarial Music: Real world Audio Adversary against Wake-word Detection System (2019). For a good introduction to adversarialism, see LIBRARY Goodfellow | |||||
[^Virilio]: ![](bib:8558647f-101d-43ff-a531-5df8eb87199a) p.53 | |||||
[^Faroki, Paglen]: Mark Andrejevic, [Operational Listening (Eavesdropping)](https://youtu.be/OxOKlgsc3_M), recorded on August 10, 2018 | |||||
[^Billy Li]: ![](bib:fac6c1a2-946f-43c4-83f5-e54fd7185c18) For a good introduction to adversarialism, see LIBRARY Goodfellow | |||||
[^YS]: ![](bib:26f7b730-9064-464b-b905-fbe63c5d4e4b) | [^YS]: ![](bib:26f7b730-9064-464b-b905-fbe63c5d4e4b) |
@@ -10,7 +10,7 @@ disableKinds = ["RSS", "sitemap"] | |||||
images = ["/images/ml.gif"] | images = ["/images/ml.gif"] | ||||
title = "Machine Listening Curriculum" | title = "Machine Listening Curriculum" | ||||
giturl = "http://git.metadada.xyz/machinelistening/curriculum-test" | giturl = "http://git.metadada.xyz/machinelistening/curriculum-test" | ||||
home = "curriculum" | |||||
home = "/curriculum/" | |||||
catalogprefix = "/library/" | catalogprefix = "/library/" | ||||
[outputFormats] | [outputFormats] | ||||
@@ -1,17 +1,12 @@ | |||||
{{ $s := partialCached "scratch.html" . }} | {{ $s := partialCached "scratch.html" . }} | ||||
{{ $currentNode := . }} | |||||
{{ $currentDir := "" }} | |||||
{{ with .File }} | |||||
{{ $currentDir = .Dir }} | |||||
{{ end }} | |||||
{{ $currentFile := (printf "/%s" .File) }} | {{ $currentFile := (printf "/%s" .File) }} | ||||
{{ $scratch := $s.Get $currentFile }} | {{ $scratch := $s.Get $currentFile }} | ||||
{{ if eq hugo.Environment "preview" }} | {{ if eq hugo.Environment "preview" }} | ||||
{{- $gitUrl := .Site.Params.giturl -}} | {{- $gitUrl := .Site.Params.giturl -}} | ||||
<div class="headiter"> | <div class="headiter"> | ||||
<a class="edit-button" target="_blank" href="{{ $gitUrl }}/_edit/master/content/{{ $currentNode.File }}">edit_this</a> | |||||
<a class="edit-button" target="_blank" href="{{ $gitUrl }}/_edit/master/content/{{ .File }}">edit_this</a> | |||||
<a class="edit-button" target="_blank" href="{{ $gitUrl }}/_new/master/content/{{ $scratch.mantle }}/">add_new_{{ $scratch.mantle }}</a> | <a class="edit-button" target="_blank" href="{{ $gitUrl }}/_new/master/content/{{ $scratch.mantle }}/">add_new_{{ $scratch.mantle }}</a> | ||||
<a class="edit-button" target="_blank" href="{{ $gitUrl }}/_new/master/content/{{ $scratch.crust }}/">add_new_{{ $scratch.crust }}</a> | <a class="edit-button" target="_blank" href="{{ $gitUrl }}/_new/master/content/{{ $scratch.crust }}/">add_new_{{ $scratch.crust }}</a> | ||||
<a class="edit-button" target="_blank" href="{{ $gitUrl }}/_edit/master/PUBLISH.trigger.md">publish</a> | <a class="edit-button" target="_blank" href="{{ $gitUrl }}/_edit/master/PUBLISH.trigger.md">publish</a> | ||||
@@ -24,20 +19,25 @@ | |||||
<img src="/images/bibliotheke.svg" /> | <img src="/images/bibliotheke.svg" /> | ||||
</a> | </a> | ||||
<div class="breadcrumbs"> | <div class="breadcrumbs"> | ||||
{{ if ne $scratch.depth "core" }} | |||||
<a href="{{ with $.GetPage (printf "/%s/index.md" ($scratch.core)) }}{{ .RelPermalink }}{{ end }}{{ if eq hugo.Environment "offline" }}index.html{{ end }}"><span class="sup">{{ with $.GetPage (printf "/%s/index.md" ($scratch.core)) }}{{ substr .Title 0 1 }}</span><i>{{ substr .Title 1 }}</i></a>{{ end }} | |||||
{{ end }} | |||||
{{ if eq $scratch.depth "mantle" }} | {{ if eq $scratch.depth "mantle" }} | ||||
{{ if isset $scratch "is_in" }} | |||||
<a href="{{ with (index $scratch.is_in 0) }}{{ .RelPermalink }}{{ end }}{{ if eq hugo.Environment "offline" }}index.html{{ end }}"><span class="sup">{{ with (index $scratch.is_in 0) }}{{ substr .Title 0 1 }}</span><i>{{ substr .Title 1 }}</i></a>{{ end }} | |||||
{{ end }} | |||||
<span class="mantlebar"><i> » <a href="{{ .RelPermalink }}{{ if eq hugo.Environment "offline" }}index.html{{ end }}">{{ .Title }}</a></i></span> | <span class="mantlebar"><i> » <a href="{{ .RelPermalink }}{{ if eq hugo.Environment "offline" }}index.html{{ end }}">{{ .Title }}</a></i></span> | ||||
{{ end }} | {{ end }} | ||||
{{ if eq $scratch.depth "crust" }} | {{ if eq $scratch.depth "crust" }} | ||||
{{ if isset $scratch "is_in" }} | {{ if isset $scratch "is_in" }} | ||||
{{ $p := index $scratch.is_in 0 }} | |||||
<span><i> » <a href="{{ $p.RelPermalink }}{{ if eq hugo.Environment "offline" }}index.html{{ end }}">{{ $p.Title }}</a></i></span> | |||||
{{ end }} | |||||
<span class="mantlebar"><i> » <a href="{{ .RelPermalink }}{{ if eq hugo.Environment "offline" }}index.html{{ end }}">{{ .Title }}</a></i></span> | |||||
{{ $_ := index $scratch.is_in 0 }} | |||||
{{ $_ = $s.Get (printf "/%s" $_.File) }} | |||||
{{ if isset $_ "is_in" }} | |||||
{{ $home := index $_.is_in 0 }} | |||||
<a href="{{ $home.RelPermalink }}{{ if eq hugo.Environment "offline" }}index.html{{ end }}"><span class="sup">{{ substr $home.Title 0 1 }}</span><i>{{ substr $home.Title 1 }}</i></a> | |||||
{{ end }} | |||||
» <a href="{{ with (index $scratch.is_in 0) }}{{ .RelPermalink }}{{ end }}{{ if eq hugo.Environment "offline" }}index.html{{ end }}">{{ with (index $scratch.is_in 0) }}<i>{{ .Title }}</i></a>{{ end }} | |||||
{{ end }} | |||||
<span class="mantlebar"><i> » <a href="{{ .RelPermalink }}{{ if eq hugo.Environment "offline" }}index.html{{ end }}">{{ .Title }}</a></i></span> | |||||
{{ end }} | {{ end }} | ||||
</div> | </div> | ||||
</div> | </div> |
@@ -15,6 +15,14 @@ | |||||
{{ $.Scratch.SetInMap $pageFilePath "child_depth" "mantle" }} | {{ $.Scratch.SetInMap $pageFilePath "child_depth" "mantle" }} | ||||
{{ $.Scratch.SetInMap $pageFilePath "plural" (index $triad 1)}} | {{ $.Scratch.SetInMap $pageFilePath "plural" (index $triad 1)}} | ||||
{{ $.Scratch.SetInMap $pageFilePath "has" (slice (index $triad 2) (index $triad 3))}} | {{ $.Scratch.SetInMap $pageFilePath "has" (slice (index $triad 2) (index $triad 3))}} | ||||
{{ $gp := $.GetPage $pageFilePath }} | |||||
{{ $hasmantles := (slice) }} | |||||
{{ range index $gp.Params (printf "has_%s" (index $triad 3)) }} | |||||
{{ $hasmantles = $hasmantles | append ($.GetPage (printf "/%s/%s" (index $triad 2) . )) }} | |||||
{{ end }} | |||||
{{ $.Scratch.SetInMap $pageFilePath "has_children" $hasmantles }} | |||||
{{ range index $p.Params (printf "has_%s" (index $triad 3)) }} | {{ range index $p.Params (printf "has_%s" (index $triad 3)) }} | ||||
{{ $childPath := printf "/%s/%s" (index $triad 2) . }} | {{ $childPath := printf "/%s/%s" (index $triad 2) . }} | ||||
{{ with $.Scratch.Get $childPath }} | {{ with $.Scratch.Get $childPath }} | ||||
@@ -33,6 +41,14 @@ | |||||
{{ $.Scratch.SetInMap $pageFilePath "child_depth" "crust" }} | {{ $.Scratch.SetInMap $pageFilePath "child_depth" "crust" }} | ||||
{{ $.Scratch.SetInMap $pageFilePath "plural" (index $triad 3)}} | {{ $.Scratch.SetInMap $pageFilePath "plural" (index $triad 3)}} | ||||
{{ $.Scratch.SetInMap $pageFilePath "has" (slice (index $triad 4) (index $triad 5))}} | {{ $.Scratch.SetInMap $pageFilePath "has" (slice (index $triad 4) (index $triad 5))}} | ||||
{{ $gp := $.GetPage $pageFilePath }} | |||||
{{ $hascrusts := (slice) }} | |||||
{{ range index $gp.Params (printf "has_%s" (index $triad 5)) }} | |||||
{{ $hascrusts = $hascrusts | append ($.GetPage (printf "/%s/%s" (index $triad 4) . )) }} | |||||
{{ end }} | |||||
{{ $.Scratch.SetInMap $pageFilePath "has_children" $hascrusts }} | |||||
{{ range index $p.Params (printf "has_%s" (index $triad 5)) }} | {{ range index $p.Params (printf "has_%s" (index $triad 5)) }} | ||||
{{ $childPath := printf "/%s/%s" (index $triad 4) . }} | {{ $childPath := printf "/%s/%s" (index $triad 4) . }} | ||||
{{ with $.Scratch.Get $childPath }} | {{ with $.Scratch.Get $childPath }} | ||||
@@ -46,6 +62,7 @@ | |||||
{{ $.Scratch.SetInMap $childPath "is_in" (slice ($.GetPage $pageFilePath)) }} | {{ $.Scratch.SetInMap $childPath "is_in" (slice ($.GetPage $pageFilePath)) }} | ||||
{{ end }} | {{ end }} | ||||
{{ end }} | {{ end }} | ||||
{{ else if eq $t (index $triad 4) }} | {{ else if eq $t (index $triad 4) }} | ||||
{{ $.Scratch.SetInMap $pageFilePath "depth" "crust" }} | {{ $.Scratch.SetInMap $pageFilePath "depth" "crust" }} | ||||
{{ $.Scratch.SetInMap $pageFilePath "mantle_has" (index $triad 5) }} | {{ $.Scratch.SetInMap $pageFilePath "mantle_has" (index $triad 5) }} | ||||
@@ -1,6 +1,5 @@ | |||||
{{ $s := partialCached "scratch.html" . }} | {{ $s := partialCached "scratch.html" . }} | ||||
{{ $currentNode := . }} | |||||
{{ $currentDir := "" }} | {{ $currentDir := "" }} | ||||
{{ with .File }} | {{ with .File }} | ||||
{{ $currentDir = .Dir }} | {{ $currentDir = .Dir }} | ||||
@@ -19,15 +18,15 @@ | |||||
<div class="rightcolumn"> | <div class="rightcolumn"> | ||||
{{ if (not (eq $scratch.depth "crust")) }} | {{ if (not (eq $scratch.depth "crust")) }} | ||||
<div class="has"> | <div class="has"> | ||||
<span class="sup">has {{ index $scratch.has 1 }}⁄</span> | |||||
{{ if isset $scratch "has" }} | |||||
<span class="sup">has {{ index $scratch.has 1 }}⁄</span> | |||||
{{ end }} | |||||
</div> | </div> | ||||
<div class="afterhas"> | <div class="afterhas"> | ||||
{{ range index $currentNode.Params (printf "has_%s" (index $scratch.has 1) )}} | |||||
{{ with $.GetPage (printf "%s%s" (printf "/%s/" (index $scratch.has 0)) . ) }} | |||||
{{ range $scratch.has_children }} | |||||
<div class="{{ $scratch.child_depth }}"> | <div class="{{ $scratch.child_depth }}"> | ||||
<a href="{{ .RelPermalink }}{{ if eq hugo.Environment "offline" }}index.html{{ end }}">{{ .Title }}</a> | <a href="{{ .RelPermalink }}{{ if eq hugo.Environment "offline" }}index.html{{ end }}">{{ .Title }}</a> | ||||
</div> | </div> | ||||
{{ end }} | |||||
{{ end }} | {{ end }} | ||||
{{ end }} | {{ end }} | ||||