- 2014 spring: a growing feature list suggests a redesign.
- 2014–10–17 six months of mulling blossoms into to an architectural document, almost entirely in crayon, drawn while attending a fetish event.
- 2014–10–23 coding begins
- 2014–10–26 first check-in to source control; basically the old c code but with the player wrapped in c++ objects.
- 2014–10–27 work begins on football c++ interface.
- 2014–11–21 football comm layers are stable, users operational. major refactoring of command and audio engine begins.
- 2014–12–02 first audio after major refactoring!
- 2014–12–03 clean shutdowns, playing for long periods, track history/queue in place including requests.
- 2014–12–04 tone generator created as a test source. turns out to be fantastic for testing through much of the rest of the project.
- 2014–12–08 adapted and reused track filter I wrote for mserv in 2005.
- 2014–12–12 built the media manager; first mixes from multiple audio sources.
- 2014–12–22 multiple rooms with separate users/audio functional.
- 2014–12–27 first build and audio output on linux.
- 2015–01–07 created pianod console.
- 2015–01–11 user data persistence and restore functional, including datasets for source settings, preferences, etc..
- 2014–01–23 implement querylist, designed in december while waiting for a flight, that converts filter expressions into a list of queries based on source capabilities. the seemingly insurmountable problem was conquered with pen, paper and time to think.
- 2015–01–29 filter adapted to filter songs, albums, artists, or playlists.
- 2015–02–09 passed unit test, running on os/x and linux. first alpha release.
- 2015–02–11 installed onto my home automation server
- 2015–02–27 filesystem audio source working, ffmpeg/libav code cleaned up, taglib woes solved and my home music server is shuffling an excellent mix of collection and Pandora. Experience joy as Westminster chimes play on each machine around my house, seconds apart, as a release candidate performs unit tests after successfully building on each platform with the new publication script, which eventually reported:
pianod2-84: tarball is pianod2-84.tar.gz Starting local and remote builds and checks... pianod2-84.tar.gz 100% 558KB 557.5KB/s 00:00 pianod2-84.tar.gz 100% 558KB 557.5KB/s 00:00 Waiting for remote runs to complete... Build status: stefanie success hedonpc success --with-tonegenerator --with-pandora --with-filesystem frank success --with-tonegenerator --with-pandora --with-filesystem Looks good, moving release to development publications etc.
2015–03–18 Added Pandora artist and song seeds via tracks played from my personal collection.
2015–03–25 Implemented the last of the essential Playlist CRUD functions.
2015–03–27 first beta released. On my home automation box, r110 had an uptime over 10 days before being updated to r115.
2015–11–22 Finished implementing AVFoundation support (alternative to ffmpeg/libav), libsdl driver (OS X alternative to libao), libavdevice (another libao alternative, although it turns out I can’t test or debug it because none of my devices are supported), mbedTLS (next generation PolarSSL, alternative to gnutls).
2015–11–23 Updating behind-the-scenes build stuff for client and testing/publishing releases, following major refactoring of configure.ac.
2015–12–01 Implemented ffmpeg/libav and AVFoundation metadata readers;
taglibis now optional for the filesystem source.
2015–12–07 Crossfading! This goal of moving architectures was finally possible.
2015–12–29 Considering r172 for first stable release. Meanwhile, resolved OS X packaging hassles and a Stefanie-built Orchid runs on Hal.
2015–12–31 First non-beta, stable pianod2 release: r172.
2016–02–03 Refactored filter to C++ to address edit fatigue.
2016–02–05 Audio output via libav/libavdevice on a Raspberry Pi.
2016–04–12 Football TLS dependencies made flexible, supporting 4 different packages. Shuffle modes were recently added too.
2016–08–10 First audio with gstreamer!
2016–12–16 Client conversion to TypeScript is nearing completion. Work effort:
- About 1 month of revising code (including adjusting makefiles and boning up on TypeScript as I worked)
- 3 or 4 days of debugging and additional refactoring; there are likely to be a few more bugs that were missed but will show up with usage.
2018–01–27 First release after migrating to Linux.
2020–03–15 Replace XML files with JSON.
2020–04–11 Rewrite Pandora to use new JSON parser and new protocol.
2020–12–06 Replace Football parser with a new Parsnip one: a precursor to supporting JSON protocol.
2020–12–30 JSON requests allowed (all responses are still original protocol).
2021–01–09 SLOCcount estimates pianod2 development costs at $1,008,474—breaking the million-dollar mark.
2021–02–02 First JSON responses!