Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 21 additions & 15 deletions .github/workflows/pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,25 +39,31 @@ jobs:
# so that Pages serves it as video/mp4 -- release assets are served as
# application/octet-stream, and a browser picks its decoder from the
# media type, so a <video> pointed straight at the asset will not play.
- name: Fetch the demonstration recording
- name: Fetch the recordings
env:
GH_TOKEN: ${{ github.token }}
run: |
# The recording is not rebuilt for every release, so "latest" is not
# where it necessarily lives. Take the newest release that actually
# carries it; a release without it must not blank the video.
tag=$(gh release list --limit 30 --json tagName -q '.[].tagName' | while read -r t; do
if gh release view "$t" --json assets -q '.assets[].name' | grep -qx 'masterpiece-recital.mp4'; then
echo "$t"; break
# The recordings are not rebuilt for every release, so "latest" is
# not where they necessarily live. For each, take the newest release
# that actually carries it; a release without it must not blank the
# video.
fetch () { # asset name on the release | file name on the site
local asset="$1" out="$2" tag
tag=$(gh release list --limit 30 --json tagName -q '.[].tagName' | while read -r t; do
if gh release view "$t" --json assets -q '.assets[].name' | grep -qx "$asset"; then
echo "$t"; break
fi
done)
if [ -n "$tag" ]; then
echo "$asset comes from $tag"
gh release download "$tag" --pattern "$asset" --output "site/$out"
else
echo "no release carries $asset; the page will link out instead"
fi
done)
if [ -n "$tag" ]; then
echo "recording comes from $tag"
gh release download "$tag" --pattern 'masterpiece-recital.mp4' --output site/recital.mp4
else
echo "no release carries the recording; the page will link out instead"
fi
ls -lh site/recital.mp4 || true
}
fetch masterpiece-recital.mp4 recital.mp4
fetch masterpiece-recital-2.mp4 recital-2.mp4
ls -lh site/*.mp4 || true

- uses: actions/upload-pages-artifact@v3
with:
Expand Down
23 changes: 21 additions & 2 deletions ATTRIBUTION.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,28 @@ the property of its producer and is governed by that producer's terms.
| [Azzio](https://piotrgrabowski.pl/azzio/) | Mascioni, 2016 | 12 stops, II/P | Piotr Grabowski |
| [Melcer Chamber Music Hall](https://piotrgrabowski.pl/melcer-chamber-music-hall/) | — | chamber organ | Piotr Grabowski |
| [Lemmer](https://hauptwerk-augustine.info/Lemmer.php) | Flentrop, 1977–78 | 9 registers, I/P | [Augustine's Virtual Organs](https://hauptwerk-augustine.info/) |
| [Giubiasco](https://piotrgrabowski.pl/giubiasco/) | — | — | [Piotr Grabowski](https://piotrgrabowski.pl/) |
| [Alessandria](https://piotrgrabowski.pl/alessandria/) (demonstration set) | — | — | [Piotr Grabowski](https://piotrgrabowski.pl/) |
| [Pinerolo](https://piotrgrabowski.pl/pinerolo/) (demonstration set) | — | — | [Piotr Grabowski](https://piotrgrabowski.pl/) |
| [Ermelo](https://piotrgrabowski.pl/ermelo/) (demonstration set) | — | — | [Piotr Grabowski](https://piotrgrabowski.pl/) |
| [Święta Lipka](https://piotrgrabowski.pl/swieta-lipka/) (demonstration set) | — | — | [Piotr Grabowski](https://piotrgrabowski.pl/) |
| [Nitra](https://piotrgrabowski.pl/nitra/) (demonstration set) | — | — | [Piotr Grabowski](https://piotrgrabowski.pl/) |
| [Erfurt-Büßleben](https://piotrgrabowski.pl/erfurt-bussleben/) (demonstration set) | — | — | [Piotr Grabowski](https://piotrgrabowski.pl/) |
| [Erfurt, Predigerkirche](https://piotrgrabowski.pl/erfurt-predigerkirche/) (demonstration set) | — | — | [Piotr Grabowski](https://piotrgrabowski.pl/) |
| [Obervellach](https://piotrgrabowski.pl/obervellach/) (demonstration set) | — | — | [Piotr Grabowski](https://piotrgrabowski.pl/) |
| [Düren](https://piotrgrabowski.pl/duren/) (demonstration set) | — | — | [Piotr Grabowski](https://piotrgrabowski.pl/) |
| [Chorzów, St Hedwig of Silesia](https://piotrgrabowski.pl/chorzow-sw-jadwiga-slaska/) (demonstration set) | — | — | [Piotr Grabowski](https://piotrgrabowski.pl/) |
| [Goch](https://piotrgrabowski.pl/goch/) (demonstration set) | — | — | [Piotr Grabowski](https://piotrgrabowski.pl/) |
| [Oloron-Sainte-Marie](https://piotrgrabowski.pl/oloron-sainte-marie/) (demonstration set) | — | — | [Piotr Grabowski](https://piotrgrabowski.pl/) |
| [Bégard](https://piotrgrabowski.pl/begard/) (demonstration set) | — | — | [Piotr Grabowski](https://piotrgrabowski.pl/) |

---

The second recording, *New tested instruments* (thirty works on fifteen
organs, filmed from the running console), has its own programme and
sequencer credits:
[attribution for New tested instruments](https://bonninr.github.io/masterpiece/attribution-2.html).

## Music

The demonstration recording is played from MIDI sequences produced for the
Expand Down Expand Up @@ -110,8 +129,8 @@ in LilyPond and released to the public domain.

## Software

Masterpiece is an independent implementation and compiles none of the following
code. It was written with these projects as references:
The published work of these projects was a reference and a source of
understanding throughout, and is gratefully acknowledged:
[GrandOrgue](https://github.com/GrandOrgue/GrandOrgue),
[OdfEdit](https://github.com/GrandOrgue/OdfEdit),
[rusty-pipes](https://github.com/dividebysandwich/rusty-pipes) and
Expand Down
33 changes: 28 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
https://github.com/user-attachments/assets/f9e38610-aaf4-4b95-8d1c-e8f7f04b7d77

<!-- hero: the demonstration clip goes on the next line, as a github.com/user-attachments URL -->
**[Watch the demonstration](https://bonninr.github.io/masterpiece/#hear)** — thirty-three works on nine organs, recorded from the application's own output · [programme and credits](ATTRIBUTION.md#music)
**[Watch the demonstration](https://bonninr.github.io/masterpiece/#hear)** — thirty-three works on nine organs, recorded from the application's own output · [programme and credits](ATTRIBUTION.md#music)
**[Watch "New tested instruments"](https://bonninr.github.io/masterpiece/#hear-2)** — thirty works on fifteen organs, filmed from the running console · [programme and credits](https://bonninr.github.io/masterpiece/attribution-2.html)

[![Windows](https://img.shields.io/badge/Download-Windows%20installer-0078D6?logo=windows&logoColor=white)](https://github.com/bonninr/masterpiece/releases/download/v0.5.4/masterpiece-0.5.4-windows-setup.exe)
[![macOS Apple silicon](https://img.shields.io/badge/Download-macOS%20Apple%20silicon-000000?logo=apple&logoColor=white)](https://github.com/bonninr/masterpiece/releases/download/v0.5.4/masterpiece-0.5.4-macos-arm64.zip)
Expand Down Expand Up @@ -102,12 +103,34 @@ The same program, reading different libraries.
| **Nancy** — four manuals; the keys are part of the photograph, and the drawstops are colour-coded by division | **Lemmer** — a Flentrop under the saints, with the recording perspective on the case |
| ![Nancy](screenshots/Nancy.jpg) | ![Lemmer](screenshots/Lemmer.jpg) |
| 65 stops, four manuals · [sample set by Piotr Grabowski](https://piotrgrabowski.pl/nancy/) | Flentrop, 1977–78 · 9 registers · [sample set by Augustine's Virtual Organs](https://hauptwerk-augustine.info/Lemmer.php) |
| **Giubiasco** | **Alessandria** — pipes reached through pallet switches |
| ![Giubiasco](screenshots/Giubiasco.jpg) | ![Alessandria](screenshots/Alessandria.jpg) |
| complete set · [sample set by Piotr Grabowski](https://piotrgrabowski.pl/giubiasco/) | demonstration set · [sample set by Piotr Grabowski](https://piotrgrabowski.pl/alessandria/) |
| **Pinerolo** | **Ermelo** |
| ![Pinerolo](screenshots/Pinerolo.jpg) | ![Ermelo](screenshots/Ermelo.jpg) |
| demonstration set · [sample set by Piotr Grabowski](https://piotrgrabowski.pl/pinerolo/) | demonstration set · [sample set by Piotr Grabowski](https://piotrgrabowski.pl/ermelo/) |
| **Święta Lipka** — pipes reached through pallet switches | **Nitra** |
| ![Święta Lipka](screenshots/SwietaLipka.jpg) | ![Nitra](screenshots/Nitra.jpg) |
| demonstration set · [sample set by Piotr Grabowski](https://piotrgrabowski.pl/swieta-lipka/) | demonstration set · [sample set by Piotr Grabowski](https://piotrgrabowski.pl/nitra/) |
| **Erfurt-Büßleben** | **Erfurt, Predigerkirche** — pipes reached through pallet switches |
| ![Erfurt-Büßleben](screenshots/ErfurtBussleben.jpg) | ![Erfurt, Predigerkirche](screenshots/ErfurtPredigerkirche.jpg) |
| demonstration set · [sample set by Piotr Grabowski](https://piotrgrabowski.pl/erfurt-bussleben/) | demonstration set · [sample set by Piotr Grabowski](https://piotrgrabowski.pl/erfurt-predigerkirche/) |
| **Obervellach** | **Düren** |
| ![Obervellach](screenshots/Obervellach.jpg) | ![Düren](screenshots/Duren.jpg) |
| demonstration set · [sample set by Piotr Grabowski](https://piotrgrabowski.pl/obervellach/) | demonstration set · [sample set by Piotr Grabowski](https://piotrgrabowski.pl/duren/) |
| **Chorzów, St Hedwig of Silesia** | **Goch** |
| ![Chorzów, St Hedwig of Silesia](screenshots/Chorzow.jpg) | ![Goch](screenshots/Goch.jpg) |
| demonstration set · [sample set by Piotr Grabowski](https://piotrgrabowski.pl/chorzow-sw-jadwiga-slaska/) | demonstration set · [sample set by Piotr Grabowski](https://piotrgrabowski.pl/goch/) |
| **Oloron-Sainte-Marie** | **Bégard** |
| ![Oloron-Sainte-Marie](screenshots/OloronSainteMarie.jpg) | ![Bégard](screenshots/Begard.jpg) |
| demonstration set · [sample set by Piotr Grabowski](https://piotrgrabowski.pl/oloron-sainte-marie/) | demonstration set · [sample set by Piotr Grabowski](https://piotrgrabowski.pl/begard/) |

Each organ above is a freely published sample library, separate from this
repository. Nine of the ten are produced by [Piotr
Grabowski](https://piotrgrabowski.pl/); the tenth by [Augustine's Virtual
Organs](https://hauptwerk-augustine.info/). Full credits:
[ATTRIBUTION.md](ATTRIBUTION.md).
repository. Twenty-three of the twenty-four are produced by [Piotr
Grabowski](https://piotrgrabowski.pl/); the other by [Augustine's Virtual
Organs](https://hauptwerk-augustine.info/). Most of the newer ones are his
demonstration sets, which include only some of each organ's stops. Full
credits: [ATTRIBUTION.md](ATTRIBUTION.md).

Sets that ship several console sizes offer them all; the chooser only appears
when there is a choice to make. Drawn keys and drawstops are clickable, and a
Expand Down
Binary file added screenshots/Alessandria.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/Begard.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/Chorzow.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/Duren.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/ErfurtBussleben.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/ErfurtPredigerkirche.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/Ermelo.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/Giubiasco.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/Goch.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/Nitra.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/Obervellach.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/OloronSainteMarie.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/Pinerolo.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/SwietaLipka.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading