Prototyping/2019-2020/T3: Difference between revisions

From XPUB & Lens-Based wiki
No edit summary
Line 140: Line 140:
* https://trac.ffmpeg.org/wiki/AudioChannelManipulation#VirtualBinauralAcoustics
* https://trac.ffmpeg.org/wiki/AudioChannelManipulation#VirtualBinauralAcoustics


==03==
== PLAYER ==
PLAYER


Radio webpage
Radio webpage
Line 155: Line 154:
* html5 media fragments, and javascript
* html5 media fragments, and javascript


==04==
== BOTS ==
BOTS


Cross system / bots (2 parts?)
Cross system / bots (2 parts?)
Line 171: Line 169:
See: https://vnsmatrix.net/projects/corpusfantastica-moo-and-lambda-projects
See: https://vnsmatrix.net/projects/corpusfantastica-moo-and-lambda-projects


==05==
== LEAVE A MESSAGE / RECORDER ==
PLEASE [[Leave a message]]
 
See [[Leave a message]]


* https://mdn.github.io/web-dictaphone/ https://github.com/mdn/web-dictaphone/ (+ javascript looping / instrument) ... now how to save / submit ... (
* https://mdn.github.io/web-dictaphone/ https://github.com/mdn/web-dictaphone/ (+ javascript looping / instrument) ... now how to save / submit ... (
Line 181: Line 180:
* IDEA: Limit recordings to a fixed duration (data size)...
* IDEA: Limit recordings to a fixed duration (data size)...


==06==
== UNCATEGORIZED ;) ==
* [https://docs.gitea.io/en-us/webhooks/ gitea webhooks]
* [https://docs.gitea.io/en-us/webhooks/ gitea webhooks]
* CGI to receive a JSON post
* CGI to receive a JSON post
Line 189: Line 188:


MIDI
MIDI
* David Cope https://computerhistory.org/blog/algorithmic-music-david-cope-and-emi/ http://artsites.ucsc.edu/faculty/cope/5000.html
* David Cope https://computerhistory.org/blog/algorithmic-music-david-cope-and-emi/ http://artsites.ucsc.edu/faculty/cope/5000.html
* Corneluis Cardew: [http://www.ubu.com/papers/cardew_ethics.html  Towards an Ethic of Improvisation] [https://britishmusiccollection.org.uk/score/great-learning The Great Learning]
* Corneluis Cardew: [http://www.ubu.com/papers/cardew_ethics.html  Towards an Ethic of Improvisation] [https://britishmusiccollection.org.uk/score/great-learning The Great Learning]

Revision as of 09:49, 12 May 2020

Prototyping session Spring 2020, in the context of Special Issue #12: Radio Implicancies

Construction.gif This page is currently being worked on.

01

In the work for the Special Issue, we will employ a strategy of working between systems

Proposition is to publish prototyping work alongside other developments of the Special Issue in a rolling fashion, ie following an "early and often" approach to publishing.

Focus on using the wiki as a "cookbook" -- a place to record useful techniques for others.


.gitignore

We will follow a "sources only" approach to using the git whereby only "source" files will get committed to a repo. The idea is that the tools are in place for anyone who clones the directory to "build" the other files using the makefile + tools.

For this reason the .gitignore file contains:

*.html

So that if you try to:

git add README.html

You will see:

The following paths are ignored by one of your .gitignore files:
README.html
Use -f if you really want to add them.

Why .gitignore

  • Lighter/smaller repos, faster to share, with less need for huge disk space just to change.
  • Less conflicts -- many "artificial" conflicts arise when files that get generated are also version controlled. It's simpler to track only the sources, and let programs like make take care of updating the rest from there.

more .gitignore

See the "live" .gitignore

  • Also ignoring media files (use scp to place... manage differently) -- goal: keep the core repository as "light" as possible. Git is not idea for managing big binary files (they don't then to change in a way that lends itself to diff-ing).
  • Temporary files (things like foo~)
  • Python derived files / cache (python generates __pycache__ folders as needed).


(why) make radio

Why use make? Makefiles are like "executable notebooks" are a really effective (and time tested) way to document and share scripts, workflows, and workarounds using diverse tools.

What's the catch? Make comes from free software programming culture and was created to support programming work rather than publishing. However, as managing programmers is like "herding cats", the tool is extremely flexible and porous, and well integrated with the command-line and BASH scripting. As such it's compatible with the richness of command-line tools available.

practical to do's

  • Update issue.xpub.nl to point http://issue.xpub.nl/12/ to (redirect to?) The working space of SI12.
  • Understand and make use of the git & make based workflow.
  • Familiarity using liquidsoap to create icecast streams.
  • Use liquidsoap to create flexible streams that can be interrupted
  • Use top to check the load on the sandbox
  • Use liquidsoap as an editing tool to assemble, mix, and filter audio
  • Explore some basic structural elements of liquidsoap (playlist, rotate, sequence).

Make Noise

Live or Fallback

  • liquidsoap fallbacks
  • mixing diverse sources of material...
  • working with silence
  • dynamics compression and loudness
  • test streaming to an interruptable mount point...

Mixing audio sources

Resources

Assignment(s) for next week

  • Make a "self-referential" radio program with liquidsoap... that is one where the content and the material of its transmission and its tools of production are reflected.
  • Document your use of liquidsoap, or other tool(s) in the xpub wiki in the style of a (code) "Cookbook" recipe.

Listen together

Listen with wget + liquidsoap

Also for next week, check out Radio Aporee.

02

VOICE

  • text to speech / speech synthesis

Specifically the case of [MBROLA](https://github.com/numediart/MBROLA) and the "free" but not "libre" voices. https://github.com/numediart/MBROLA-voices

Espeak + MBrola https://github.com/espeak-ng/espeak-ng/blob/master/docs/mbrola.md

Projects spɛl ænd spik. hellocatfood (antonio roberts) https://www.hellocatfood.com/spell-and-speak/

"real" VOICES http://librivox.org

  • microphones

HRTF

PLAYER

Radio webpage

(meta/way of working Publishing via git/githook TRY! )

  • random access media ?? (can an mp3 do a range request jump? or only ogg ??) depends on server, example of non-random access mp3
  • ubu audio player as anti-pattern ?!
  • html5 media fragments, and javascript

BOTS

Cross system / bots (2 parts?)

  • infobot
  • eliza
  • mud/moo
  • Bot / chatroom
  • Radio stream / schedule
  • mediawiki API (pull + push) .. example of epicpedia?
  • etherpad API (pull + push?) .. example of etherlamp (make js version?)

See: https://vnsmatrix.net/projects/corpusfantastica-moo-and-lambda-projects

LEAVE A MESSAGE / RECORDER

See Leave a message

UNCATEGORIZED ;)

  • gitea webhooks
  • CGI to receive a JSON post
  • php to receive JSON post (example on gitea webhooks page)
  • CGI (making a "helloworld" / printenv with python) See CGI checklist
  • Don't forget "sudo a2enmod cgi" and "sudo systemctl restart apache2" to enable the cgi module in Apache...

MIDI