From 74c04918f5f2c73c7b9993e3df309d50f646989f Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 7 Jun 2024 09:14:04 -0400 Subject: [PATCH 01/37] =?UTF-8?q?Took=20a=20first=20pass=20at=20a=20multim?= =?UTF-8?q?edia=20Canvas=20recipe=201=EF=B8=8F=E2=83=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Initial commit to version control ⚡️ --- recipe/0489-multimedia-canvas/index.md | 50 +++++++++++++++++++++ recipe/0489-multimedia-canvas/manifest.json | 49 ++++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 recipe/0489-multimedia-canvas/index.md create mode 100644 recipe/0489-multimedia-canvas/manifest.json diff --git a/recipe/0489-multimedia-canvas/index.md b/recipe/0489-multimedia-canvas/index.md new file mode 100644 index 000000000..0cebd1cf3 --- /dev/null +++ b/recipe/0489-multimedia-canvas/index.md @@ -0,0 +1,50 @@ +--- +title: Multimedia Canvas +id: 499 +layout: recipe +tags: Complex Object +summary: "tbc" +viewers: + - Annona + - UV + - Mirador + - Clover + - Glycerine +topic: + - complex +--- + +## Use Case + +You want to engage in some form of digital storytelling with one or more AV resources painted onto the same Canvas as a still image that will serve as a background. You want part of the still image to remain visible behind any video AV resources while they play. This storytelling might happen in the context of teaching narrative techniques in curricular settings, as a component of scholarly communications around research output, or for other reasons and in other contexts. + +## Implementation Notes + +This recipe pulls together techniques and structures described in previous recipes. +Multiple `item`s on one Canvas as in 0036 +Differing dimensions of a resource and Canvas as in 0004 but sizing and placing the resource +New: Mixing video (AV) and still image resources + +## Restrictions + +No restrictions known. + +## Example + +Describe the solution in prose and provide an example. +The example json document must be an external document, and imported with the following: + +{% include manifest_links.html manifest="manifest.json" %} + +{% include jsonviewer.html src="manifest.json" %} + +The direct link to the fixture is a useful convenience. + +## Related Recipes + +* [Simple Image Manifest][0001] +* [Image and Canvas with Differing Dimensions][0004] for thinking through relative dimensioning of a resource and a Canvas + +{% include acronyms.md %} +{% include links.md %} + diff --git a/recipe/0489-multimedia-canvas/manifest.json b/recipe/0489-multimedia-canvas/manifest.json new file mode 100644 index 000000000..1942bd727 --- /dev/null +++ b/recipe/0489-multimedia-canvas/manifest.json @@ -0,0 +1,49 @@ +{ + "@context": "http://iiif.io/api/presentation/3/context.json", + "id": "{{ id.url }}", + "type": "Manifest", + "label": { "en": [ "Multimedia Canvas" ] }, + "items": [ + { + "id": "{{ id.path }}/canvas", + "type": "Canvas", + "height": 1800, + "width": 1200, + "items": [ + { + "id": "{{ id.path }}/page/p1/1", + "type": "AnnotationPage", + "items": [ + { + "id": "{{ id.path }}/annotation/p0001-image", + "type": "Annotation", + "motivation": "painting", + "body": { + "id": "http://iiif.io/api/presentation/2.1/example/fixtures/resources/page1-full.png", + "type": "Image", + "format": "image/png", + "height": 1800, + "width": 1200 + }, + "target": "{{ id.path }}/canvas" + }, + { + "id": "{{ id.path }}/annotation/p0002-video q", + "type": "Annotation", + "motivation": "painting", + "body": { + "id": "https://fixtures.iiif.io/video/indiana/lunchroom_manners/high/lunchroom_manners_1024kb.mp4", + "type": "Video", + "height": 360, + "width": 480, + "duration": 572.034, + "format": "video/mp4" + }, + "target": "{{ id.path }}/canvas#xywh=200,200,480,360" + } + ] + } + ] + } + ] + } From ed1e3ce8e28f91e622947b16c6103231256c2447 Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 7 Jun 2024 09:58:07 -0400 Subject: [PATCH 02/37] =?UTF-8?q?Replaced=20original=20resources=20with=20?= =?UTF-8?q?more=20nearly=20preferred=20ones=20=F0=9F=9A=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/manifest.json | 33 +++++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/recipe/0489-multimedia-canvas/manifest.json b/recipe/0489-multimedia-canvas/manifest.json index 1942bd727..eb0958baa 100644 --- a/recipe/0489-multimedia-canvas/manifest.json +++ b/recipe/0489-multimedia-canvas/manifest.json @@ -7,8 +7,8 @@ { "id": "{{ id.path }}/canvas", "type": "Canvas", - "height": 1800, - "width": 1200, + "height": 3024, + "width": 4032, "items": [ { "id": "{{ id.path }}/page/p1/1", @@ -19,11 +19,18 @@ "type": "Annotation", "motivation": "painting", "body": { - "id": "http://iiif.io/api/presentation/2.1/example/fixtures/resources/page1-full.png", + "id": "https://iiif.io/api/image/3.0/example/reference/918ecd18c2592080851777620de9bcb5-gottingen/full/max/0/default.jpg", "type": "Image", - "format": "image/png", - "height": 1800, - "width": 1200 + "format": "image/jpeg", + "height": 3024, + "width": 4032, + "service": [ + { + "id": "https://iiif.io/api/image/3.0/example/reference/918ecd18c2592080851777620de9bcb5-gottingen", + "profile": "level1", + "type": "ImageService3" + } + ] }, "target": "{{ id.path }}/canvas" }, @@ -32,14 +39,14 @@ "type": "Annotation", "motivation": "painting", "body": { - "id": "https://fixtures.iiif.io/video/indiana/lunchroom_manners/high/lunchroom_manners_1024kb.mp4", - "type": "Video", - "height": 360, - "width": 480, - "duration": 572.034, - "format": "video/mp4" + "id": "https://fixtures.iiif.io/video/indiana/donizetti-elixir/vae0637_accessH264_low_act_1.mp4", + "type": "Video", + "format": "video/mp4", + "height": 360, + "width": 480, + "duration": 3971.24 }, - "target": "{{ id.path }}/canvas#xywh=200,200,480,360" + "target": "{{ id.path }}/canvas#xywh=200,200,480,360&t=27,57" } ] } From 50e776aa89de73a27458260e85d4606d30c57057 Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 7 Jun 2024 09:58:53 -0400 Subject: [PATCH 03/37] =?UTF-8?q?Set=20topic=20to=20real=20matrix=20option?= =?UTF-8?q?=20=F0=9F=94=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/0489-multimedia-canvas/index.md b/recipe/0489-multimedia-canvas/index.md index 0cebd1cf3..911112f7a 100644 --- a/recipe/0489-multimedia-canvas/index.md +++ b/recipe/0489-multimedia-canvas/index.md @@ -11,7 +11,7 @@ viewers: - Clover - Glycerine topic: - - complex + - annotation --- ## Use Case From 6f08ad050dabc754e147f45e6d68a2723b8c5a51 Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 7 Jun 2024 10:39:13 -0400 Subject: [PATCH 04/37] =?UTF-8?q?Added=20recipe=20to=20TOC=20=F0=9F=93=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _includes/links.md | 1 + index.md | 1 + 2 files changed, 2 insertions(+) diff --git a/_includes/links.md b/_includes/links.md index 3f4bb003e..a35b9ff36 100644 --- a/_includes/links.md +++ b/_includes/links.md @@ -71,6 +71,7 @@ [0377]: {{ site.cookbook_url | absolute_url }}/recipe/0377-image-in-annotation/ "Image in annotation" [0434]: {{ site.cookbook_url | absolute_url }}/recipe/0434-choice-av/ "Multiple Choice of Audio Formats in a Single View (Canvas)" +[0489]: {{ site.cookbook_url | absolute_url }}/recipe/0489-multimedia-canvas/ "Complex Multimedia Canvas" [cookbook-process]: {{site.cookbook_url | absolute_url }}/recipe diff --git a/index.md b/index.md index ff51db561..9743dc5d0 100644 --- a/index.md +++ b/index.md @@ -113,6 +113,7 @@ _(leading on to segmentation examples later)_ * [Multiple choice of images in a single view][0033] (29) * [Foldouts, Flaps, and Maps][0035] * [Composition from Multiple Images][0036] (30,31) +* [Complex Multimedia Canvas][0489] * Multiple images and multiple choices (32,33,34) * [Annotating part of an image to a Canvas][recipe-segment-image-part] (e.g., crop out scanner) (35,36,37,38) * [Image Rotation Two Ways][0040] From 4dce5d9fb8c7603cc5d40bca8c57b5934c5d6fa4 Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 7 Jun 2024 10:39:47 -0400 Subject: [PATCH 05/37] =?UTF-8?q?Corrected=20Glycerine=20to=20full=20prope?= =?UTF-8?q?r=20name=20=F0=9F=9B=A0=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/0489-multimedia-canvas/index.md b/recipe/0489-multimedia-canvas/index.md index 911112f7a..60b05e095 100644 --- a/recipe/0489-multimedia-canvas/index.md +++ b/recipe/0489-multimedia-canvas/index.md @@ -9,7 +9,7 @@ viewers: - UV - Mirador - Clover - - Glycerine + - Glycerine Viewer topic: - annotation --- From 795330fe9a6e98e1b82b00e9a260762e6d416e1f Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 7 Jun 2024 10:40:34 -0400 Subject: [PATCH 06/37] =?UTF-8?q?Added=20duration=20property=20as=20in=20r?= =?UTF-8?q?eference=20example=20=E2=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/manifest.json | 1 + 1 file changed, 1 insertion(+) diff --git a/recipe/0489-multimedia-canvas/manifest.json b/recipe/0489-multimedia-canvas/manifest.json index eb0958baa..432371b4d 100644 --- a/recipe/0489-multimedia-canvas/manifest.json +++ b/recipe/0489-multimedia-canvas/manifest.json @@ -9,6 +9,7 @@ "type": "Canvas", "height": 3024, "width": 4032, + "duration": 120, "items": [ { "id": "{{ id.path }}/page/p1/1", From 8b767f27c2161ea3909b6046d400192308948951 Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Tue, 25 Jun 2024 10:30:48 -0400 Subject: [PATCH 07/37] =?UTF-8?q?Remove=20typo=20=F0=9F=9A=AE=F0=9F=A4=A6?= =?UTF-8?q?=F0=9F=8F=BB=E2=80=8D=E2=99=82=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Stephen Fraser --- recipe/0489-multimedia-canvas/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/0489-multimedia-canvas/manifest.json b/recipe/0489-multimedia-canvas/manifest.json index 432371b4d..4412ef7ed 100644 --- a/recipe/0489-multimedia-canvas/manifest.json +++ b/recipe/0489-multimedia-canvas/manifest.json @@ -36,7 +36,7 @@ "target": "{{ id.path }}/canvas" }, { - "id": "{{ id.path }}/annotation/p0002-video q", + "id": "{{ id.path }}/annotation/p0002-video", "type": "Annotation", "motivation": "painting", "body": { From 905009982ae8e5012ef38bad09e1e8c42ce907cd Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 12 Jul 2024 10:07:39 -0400 Subject: [PATCH 08/37] =?UTF-8?q?Created=20a=20decent=20working=20example?= =?UTF-8?q?=20=F0=9F=98=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/manifest.json | 40 +++++++++++++++++---- 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/recipe/0489-multimedia-canvas/manifest.json b/recipe/0489-multimedia-canvas/manifest.json index 4412ef7ed..daa2bf645 100644 --- a/recipe/0489-multimedia-canvas/manifest.json +++ b/recipe/0489-multimedia-canvas/manifest.json @@ -9,7 +9,7 @@ "type": "Canvas", "height": 3024, "width": 4032, - "duration": 120, + "duration": 41, "items": [ { "id": "{{ id.path }}/page/p1/1", @@ -33,21 +33,47 @@ } ] }, - "target": "{{ id.path }}/canvas" + "target": "{{ id.path }}/canvas#t=11,41" }, { "id": "{{ id.path }}/annotation/p0002-video", "type": "Annotation", "motivation": "painting", "body": { - "id": "https://fixtures.iiif.io/video/indiana/donizetti-elixir/vae0637_accessH264_low_act_1.mp4", + "id": "https://fixtures.iiif.io/video/indiana/30-minute-clock/medium/30-minute-clock.mp4", "type": "Video", - "format": "video/mp4", "height": 360, - "width": 480, - "duration": 3971.24 + "width": 640, + "duration": 1801.055, + "format": "video/mp4" }, - "target": "{{ id.path }}/canvas#xywh=200,200,480,360&t=27,57" + "target": "{{ id.path }}/canvas#xywh=200,200,360,640&t=11,41" + }, + { + "id": "{{ id.path }}/annotation/p0004-text", + "type": "Annotation", + "motivation": "painting", + "body": { + "id": "{{ id.path }}/annotation/p0004-text-body", + "type": "TextualBody", + "format": "text/html", + "value": "

Press Play

", + "language": "fr" + }, + "target": "{{ id.path }}/canvas#xywh=1920,1640,500,500&t=0,1" + }, + { + "id": "{{ id.path }}/annotation/p0005-text", + "type": "Annotation", + "motivation": "painting", + "body": { + "id": "{{ id.path }}/annotation/p0005-text-body", + "type": "TextualBody", + "format": "text/html", + "value": "

When this text goes away, the clock will start. When it starts, you will have 30 seconds in which to take notes on the image you see. After 30 seconds, everything will disappear.

", + "language": "fr" + }, + "target": "{{ id.path }}/canvas#xywh=1920,1640,500,500&t=1,11" } ] } From 659d884cff29c892be732a3fcafbcdf0d8045bc6 Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 12 Jul 2024 10:26:34 -0400 Subject: [PATCH 09/37] =?UTF-8?q?Sketched=20out=20a=20direction=20for=20th?= =?UTF-8?q?e=20text.=20=E2=9C=8F=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/index.md | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/recipe/0489-multimedia-canvas/index.md b/recipe/0489-multimedia-canvas/index.md index 60b05e095..cf4154860 100644 --- a/recipe/0489-multimedia-canvas/index.md +++ b/recipe/0489-multimedia-canvas/index.md @@ -5,25 +5,23 @@ layout: recipe tags: Complex Object summary: "tbc" viewers: - - Annona - - UV - - Mirador - - Clover - - Glycerine Viewer topic: - annotation --- ## Use Case -You want to engage in some form of digital storytelling with one or more AV resources painted onto the same Canvas as a still image that will serve as a background. You want part of the still image to remain visible behind any video AV resources while they play. This storytelling might happen in the context of teaching narrative techniques in curricular settings, as a component of scholarly communications around research output, or for other reasons and in other contexts. +You want to create a digital assignment by providing students with a IIIF image resource to analyze in a fixed amount of time, a timer to show students how long they have, and text instructions for how to complete the assignment. You want to keep everything in one IIIF viewer. ## Implementation Notes -This recipe pulls together techniques and structures described in previous recipes. +This recipe pulls together techniques and structures described in previous recipes, but also adds new elements. + Multiple `item`s on one Canvas as in 0036 + Differing dimensions of a resource and Canvas as in 0004 but sizing and placing the resource -New: Mixing video (AV) and still image resources + +The new elements include mixing AV and image IIIF resources, setting an image to be visible for an amount of time, and resizing an AV resource. ## Restrictions @@ -31,8 +29,7 @@ No restrictions known. ## Example -Describe the solution in prose and provide an example. -The example json document must be an external document, and imported with the following: +[Theseus Viewer temporary link](https://theseus-viewer.netlify.app/?iiif-content={{ id.path }}/manifest.json) {% include manifest_links.html manifest="manifest.json" %} From 10f2d775d6742b15c075a7bee0fbbbbd75acfb70 Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Thu, 18 Jul 2024 10:45:19 -0400 Subject: [PATCH 10/37] =?UTF-8?q?Temporarily=20suppress=20validation=20?= =?UTF-8?q?=E2=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/preview.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml index 79e41ad02..36d624717 100644 --- a/.github/workflows/preview.yml +++ b/.github/workflows/preview.yml @@ -70,8 +70,8 @@ jobs: python -m pip install --upgrade pip pip install -r scripts/requirements.txt - - name: validate - run: scripts/validate.sh +# - name: validate +# run: scripts/validate.sh - name: add URL to config run: .github/bin/addURL.sh From 4344ffc00e99611164d74ea00c8d9eeef7705de4 Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Thu, 18 Jul 2024 08:42:43 -0400 Subject: [PATCH 11/37] =?UTF-8?q?Corrected=20an=20ID=20=F0=9F=93=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/manifest.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/recipe/0489-multimedia-canvas/manifest.json b/recipe/0489-multimedia-canvas/manifest.json index daa2bf645..2238ec3e0 100644 --- a/recipe/0489-multimedia-canvas/manifest.json +++ b/recipe/0489-multimedia-canvas/manifest.json @@ -54,7 +54,6 @@ "type": "Annotation", "motivation": "painting", "body": { - "id": "{{ id.path }}/annotation/p0004-text-body", "type": "TextualBody", "format": "text/html", "value": "

Press Play

", @@ -67,7 +66,6 @@ "type": "Annotation", "motivation": "painting", "body": { - "id": "{{ id.path }}/annotation/p0005-text-body", "type": "TextualBody", "format": "text/html", "value": "

When this text goes away, the clock will start. When it starts, you will have 30 seconds in which to take notes on the image you see. After 30 seconds, everything will disappear.

", From 2fb9bdbaf0bda973ec9c6606f2e90ebd9ee77e2d Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Thu, 18 Jul 2024 08:43:09 -0400 Subject: [PATCH 12/37] =?UTF-8?q?Began=20fleshing=20out=20the=20implementa?= =?UTF-8?q?tion=20notes=20=F0=9F=93=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/index.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/recipe/0489-multimedia-canvas/index.md b/recipe/0489-multimedia-canvas/index.md index cf4154860..33c539755 100644 --- a/recipe/0489-multimedia-canvas/index.md +++ b/recipe/0489-multimedia-canvas/index.md @@ -15,13 +15,7 @@ You want to create a digital assignment by providing students with a IIIF image ## Implementation Notes -This recipe pulls together techniques and structures described in previous recipes, but also adds new elements. - -Multiple `item`s on one Canvas as in 0036 - -Differing dimensions of a resource and Canvas as in 0004 but sizing and placing the resource - -The new elements include mixing AV and image IIIF resources, setting an image to be visible for an amount of time, and resizing an AV resource. +This recipe pulls together techniques and structures described in other recipes, and adds new elements. In other recipes, this cookbook shows [how to place multiple resources on a single Canvas][0036] and how to work with [a resource with different dimensions than its Canvas][0004]. In the Use Case for this recipe, the aim is to mix AV and image IIIF resources, set an image to be visible for an amount of time, and resize and position an AV resource on a Canvas. ## Restrictions From 1f22f9edfa203c9837643f4402f266cc9ea4fb4d Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 19 Jul 2024 12:35:15 -0400 Subject: [PATCH 13/37] =?UTF-8?q?Replaced=20image=20with=20museum=20one=20?= =?UTF-8?q?for=20authenticity=20=F0=9F=94=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Conformed other elements as well --- recipe/0489-multimedia-canvas/manifest.json | 44 ++++++++++----------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/recipe/0489-multimedia-canvas/manifest.json b/recipe/0489-multimedia-canvas/manifest.json index 2238ec3e0..d374e2cb8 100644 --- a/recipe/0489-multimedia-canvas/manifest.json +++ b/recipe/0489-multimedia-canvas/manifest.json @@ -7,8 +7,8 @@ { "id": "{{ id.path }}/canvas", "type": "Canvas", - "height": 3024, - "width": 4032, + "height": 31722, + "width": 70399, "duration": 41, "items": [ { @@ -17,23 +17,23 @@ "items": [ { "id": "{{ id.path }}/annotation/p0001-image", - "type": "Annotation", - "motivation": "painting", - "body": { - "id": "https://iiif.io/api/image/3.0/example/reference/918ecd18c2592080851777620de9bcb5-gottingen/full/max/0/default.jpg", - "type": "Image", - "format": "image/jpeg", - "height": 3024, - "width": 4032, - "service": [ - { - "id": "https://iiif.io/api/image/3.0/example/reference/918ecd18c2592080851777620de9bcb5-gottingen", + "type": "Annotation", + "motivation": "painting", + "body": { + "id": "https://iiif.io/api/image/3.0/example/reference/36ca0a3370db128ec984b33d71a1543d-100320001004/full/full/0/default.jpg", + "type": "Image", + "format": "image/jpeg", + "height": 31722, + "width": 70399, + "service": [ + { + "id": "https://iiif.io/api/image/3.0/example/reference/36ca0a3370db128ec984b33d71a1543d-100320001004", "profile": "level1", "type": "ImageService3" - } - ] - }, - "target": "{{ id.path }}/canvas#t=11,41" + } + ] + }, + "target": "{{ id.path }}/canvas#t=11,42" }, { "id": "{{ id.path }}/annotation/p0002-video", @@ -47,7 +47,7 @@ "duration": 1801.055, "format": "video/mp4" }, - "target": "{{ id.path }}/canvas#xywh=200,200,360,640&t=11,41" + "target": "{{ id.path }}/canvas#xywh=1000,500,5000,6000&t=11,42" }, { "id": "{{ id.path }}/annotation/p0004-text", @@ -56,10 +56,10 @@ "body": { "type": "TextualBody", "format": "text/html", - "value": "

Press Play

", + "value": "

Press Play

", "language": "fr" }, - "target": "{{ id.path }}/canvas#xywh=1920,1640,500,500&t=0,1" + "target": "{{ id.path }}/canvas#xywh=30200,10200,15000,5000&t=0,1" }, { "id": "{{ id.path }}/annotation/p0005-text", @@ -68,10 +68,10 @@ "body": { "type": "TextualBody", "format": "text/html", - "value": "

When this text goes away, the clock will start. When it starts, you will have 30 seconds in which to take notes on the image you see. After 30 seconds, everything will disappear.

", + "value": "

In 10 seconds, this text will be replaced by a clock and an image. You will have 30 seconds (shown on the clock) in which to take notes on the image you see. After 30 seconds, the image will be replaced by the start screen. You will not be responsible for the part of the image covered by the clock.

", "language": "fr" }, - "target": "{{ id.path }}/canvas#xywh=1920,1640,500,500&t=1,11" + "target": "{{ id.path }}/canvas#xywh=20220,5000,30000,5000&t=1,11" } ] } From c5e82844dfb1cf51cda95c810295a8825a901e2e Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 19 Jul 2024 12:37:08 -0400 Subject: [PATCH 14/37] =?UTF-8?q?Corrected=20language=20for=20text=20annot?= =?UTF-8?q?ations=20=F0=9F=A4=A6=F0=9F=8F=BB=E2=80=8D=E2=99=82=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/manifest.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipe/0489-multimedia-canvas/manifest.json b/recipe/0489-multimedia-canvas/manifest.json index d374e2cb8..cc3e8a0e6 100644 --- a/recipe/0489-multimedia-canvas/manifest.json +++ b/recipe/0489-multimedia-canvas/manifest.json @@ -57,7 +57,7 @@ "type": "TextualBody", "format": "text/html", "value": "

Press Play

", - "language": "fr" + "language": "en" }, "target": "{{ id.path }}/canvas#xywh=30200,10200,15000,5000&t=0,1" }, @@ -69,7 +69,7 @@ "type": "TextualBody", "format": "text/html", "value": "

In 10 seconds, this text will be replaced by a clock and an image. You will have 30 seconds (shown on the clock) in which to take notes on the image you see. After 30 seconds, the image will be replaced by the start screen. You will not be responsible for the part of the image covered by the clock.

", - "language": "fr" + "language": "en" }, "target": "{{ id.path }}/canvas#xywh=20220,5000,30000,5000&t=1,11" } From 00a5c732dcd509eaf7aad51c2de4387692035c78 Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 2 Aug 2024 11:36:47 -0400 Subject: [PATCH 15/37] =?UTF-8?q?Made=20more=20robust=20=F0=9F=93=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/index.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/recipe/0489-multimedia-canvas/index.md b/recipe/0489-multimedia-canvas/index.md index 33c539755..19f7938db 100644 --- a/recipe/0489-multimedia-canvas/index.md +++ b/recipe/0489-multimedia-canvas/index.md @@ -17,24 +17,29 @@ You want to create a digital assignment by providing students with a IIIF image This recipe pulls together techniques and structures described in other recipes, and adds new elements. In other recipes, this cookbook shows [how to place multiple resources on a single Canvas][0036] and how to work with [a resource with different dimensions than its Canvas][0004]. In the Use Case for this recipe, the aim is to mix AV and image IIIF resources, set an image to be visible for an amount of time, and resize and position an AV resource on a Canvas. +While other recipes have discussed [simple textual annotations][0266], this recipe changes the motivation for its textual annotations to `painting` to include the text directly and visibly on the Canvas. Each of the annotations in this recipe is bound both by its placement on the Canvas and by its time of visibility. + ## Restrictions No restrictions known. ## Example -[Theseus Viewer temporary link](https://theseus-viewer.netlify.app/?iiif-content={{ id.path }}/manifest.json) +In this example, a still image, a video, and plaintext annotations are combined on a single Canvas to simulate a classroom assignment designed to introduce students to image study and notetaking in a compressed period of time. Note that this example contains material pedagogical design flaws and is not to be used as is for a classroom assignment. + +A person using a viewer that supports this recipe is presented first with the instruction to "Press Play", added using a time-bound plaintext annotation. After pressing play, additional instructions appear, also created using a time-bound plaintext annotation. When the time elapses on this annotation, the person is presented with a clock video overlaid on top of a still image. In the hypothetical assignment, a student would follow the instructions and take notes on the still image while the clock counts up the time allotted. After 30 seconds passes, the still image and clock video disappear, replaced by text instructions to close the browser. + +[Theseus Viewer temporary link](https://theseus-viewer.netlify.app/?iiif-content=http://localhost:4000//recipe/0489-multimedia-canvas/manifest.json) {% include manifest_links.html manifest="manifest.json" %} {% include jsonviewer.html src="manifest.json" %} -The direct link to the fixture is a useful convenience. - ## Related Recipes -* [Simple Image Manifest][0001] -* [Image and Canvas with Differing Dimensions][0004] for thinking through relative dimensioning of a resource and a Canvas +* [Image and Canvas with Differing Dimensions][0004] for relative dimensioning of a resource and a Canvas +* [Simplest Annotation][0266] for a basic textual annotation +* [Composition from Multiple Images][0036] for using multiple IIIF resources on a single Canvas {% include acronyms.md %} {% include links.md %} From 58bf6a3616f08decf73548e2142009cf0ee1ef3e Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 2 Aug 2024 11:38:53 -0400 Subject: [PATCH 16/37] =?UTF-8?q?Added=20dummy=20final=20text=20to=20avoid?= =?UTF-8?q?=20immediate=20loop=20to=20start=20=F0=9F=96=BC=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/manifest.json | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/recipe/0489-multimedia-canvas/manifest.json b/recipe/0489-multimedia-canvas/manifest.json index cc3e8a0e6..af19e5815 100644 --- a/recipe/0489-multimedia-canvas/manifest.json +++ b/recipe/0489-multimedia-canvas/manifest.json @@ -9,7 +9,7 @@ "type": "Canvas", "height": 31722, "width": 70399, - "duration": 41, + "duration": 180, "items": [ { "id": "{{ id.path }}/page/p1/1", @@ -72,6 +72,18 @@ "language": "en" }, "target": "{{ id.path }}/canvas#xywh=20220,5000,30000,5000&t=1,11" + }, + { + "id": "{{ id.path }}/annotation/p0006-text", + "type": "Annotation", + "motivation": "painting", + "body": { + "type": "TextualBody", + "format": "text/html", + "value": "

Close your browser

", + "language": "en" + }, + "target": "{{ id.path }}/canvas#xywh=27000,10200,25000,5000&t=43,180" } ] } From 951af55da1a4cea00d62843720dc8e143b6b844a Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 2 Aug 2024 12:33:21 -0400 Subject: [PATCH 17/37] =?UTF-8?q?Stepped=20back=20the=20time=20when=20the?= =?UTF-8?q?=20closing=20instrux=20show=20=F0=9F=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/0489-multimedia-canvas/manifest.json b/recipe/0489-multimedia-canvas/manifest.json index af19e5815..89ad96822 100644 --- a/recipe/0489-multimedia-canvas/manifest.json +++ b/recipe/0489-multimedia-canvas/manifest.json @@ -83,7 +83,7 @@ "value": "

Close your browser

", "language": "en" }, - "target": "{{ id.path }}/canvas#xywh=27000,10200,25000,5000&t=43,180" + "target": "{{ id.path }}/canvas#xywh=27000,10200,25000,5000&t=42,180" } ] } From f517cb25e1f96b2e4435cd320ba368f2e4b77ae0 Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 2 Aug 2024 16:26:45 -0400 Subject: [PATCH 18/37] =?UTF-8?q?Added=20detail=20about=20not=20using=20ti?= =?UTF-8?q?mings=20for=20precision=20=F0=9F=93=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/index.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipe/0489-multimedia-canvas/index.md b/recipe/0489-multimedia-canvas/index.md index 19f7938db..0145e9ddc 100644 --- a/recipe/0489-multimedia-canvas/index.md +++ b/recipe/0489-multimedia-canvas/index.md @@ -19,6 +19,8 @@ This recipe pulls together techniques and structures described in other recipes, While other recipes have discussed [simple textual annotations][0266], this recipe changes the motivation for its textual annotations to `painting` to include the text directly and visibly on the Canvas. Each of the annotations in this recipe is bound both by its placement on the Canvas and by its time of visibility. +When using timing for showing and hiding resources on a Canvas, a high degree of precision is not likely to be achieved for all people viewing the Canvas. Resources may load slowly for many reasons, including on the IIIF image server side, for network traffic reasons, or from customizations in a person's browser. Except in a very predictable environment, timing should be considered approximate + ## Restrictions No restrictions known. @@ -27,7 +29,7 @@ No restrictions known. In this example, a still image, a video, and plaintext annotations are combined on a single Canvas to simulate a classroom assignment designed to introduce students to image study and notetaking in a compressed period of time. Note that this example contains material pedagogical design flaws and is not to be used as is for a classroom assignment. -A person using a viewer that supports this recipe is presented first with the instruction to "Press Play", added using a time-bound plaintext annotation. After pressing play, additional instructions appear, also created using a time-bound plaintext annotation. When the time elapses on this annotation, the person is presented with a clock video overlaid on top of a still image. In the hypothetical assignment, a student would follow the instructions and take notes on the still image while the clock counts up the time allotted. After 30 seconds passes, the still image and clock video disappear, replaced by text instructions to close the browser. +A person using a viewer that supports this recipe is presented first with the instruction to "Press Play", added using a time-bound plaintext annotation. After pressing play, additional instructions appear, also created using a time-bound plaintext annotation. When the time elapses on this annotation, the person is presented with a clock video overlaid on top of a still image. In the hypothetical assignment, a student would follow the instructions and take notes on the still image while the clock counts up the time allotted. After 30 seconds passes, the still image and clock video disappear, replaced by text instructions to close the browser. (These final instructions stay visible for approximately 2-1/2 minutes to avoid an immediate return to the initial instructions.) [Theseus Viewer temporary link](https://theseus-viewer.netlify.app/?iiif-content=http://localhost:4000//recipe/0489-multimedia-canvas/manifest.json) From 5944ad658cdb4fb805faec89622f2589b43c1bd5 Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Tue, 13 Aug 2024 09:52:08 -0400 Subject: [PATCH 19/37] =?UTF-8?q?Converted=20type=20size=20to=20px=20from?= =?UTF-8?q?=20em=20=F0=9F=85=B0=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/manifest.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipe/0489-multimedia-canvas/manifest.json b/recipe/0489-multimedia-canvas/manifest.json index 89ad96822..cb800a27c 100644 --- a/recipe/0489-multimedia-canvas/manifest.json +++ b/recipe/0489-multimedia-canvas/manifest.json @@ -56,7 +56,7 @@ "body": { "type": "TextualBody", "format": "text/html", - "value": "

Press Play

", + "value": "

Press Play

", "language": "en" }, "target": "{{ id.path }}/canvas#xywh=30200,10200,15000,5000&t=0,1" @@ -68,7 +68,7 @@ "body": { "type": "TextualBody", "format": "text/html", - "value": "

In 10 seconds, this text will be replaced by a clock and an image. You will have 30 seconds (shown on the clock) in which to take notes on the image you see. After 30 seconds, the image will be replaced by the start screen. You will not be responsible for the part of the image covered by the clock.

", + "value": "

In 10 seconds, this text will be replaced by a clock and an image. You will have 30 seconds (shown on the clock) in which to take notes on the image you see. After 30 seconds, the image will be replaced by the start screen. You will not be responsible for the part of the image covered by the clock.

", "language": "en" }, "target": "{{ id.path }}/canvas#xywh=20220,5000,30000,5000&t=1,11" @@ -80,7 +80,7 @@ "body": { "type": "TextualBody", "format": "text/html", - "value": "

Close your browser

", + "value": "

Close your browser

", "language": "en" }, "target": "{{ id.path }}/canvas#xywh=27000,10200,25000,5000&t=42,180" From 53e17c6f1064087d06f373ce83bc9ab126f0facf Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Tue, 13 Aug 2024 09:54:11 -0400 Subject: [PATCH 20/37] =?UTF-8?q?Added=20summary=20=F0=9F=93=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/0489-multimedia-canvas/index.md b/recipe/0489-multimedia-canvas/index.md index 0145e9ddc..353f04092 100644 --- a/recipe/0489-multimedia-canvas/index.md +++ b/recipe/0489-multimedia-canvas/index.md @@ -3,7 +3,7 @@ title: Multimedia Canvas id: 499 layout: recipe tags: Complex Object -summary: "tbc" +summary: "Paint a still image, a video with sound, and text onto a single Canvas" viewers: topic: - annotation From 5d3bc67a5b01e5e7cc348f778a5f061445c8f86f Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Tue, 13 Aug 2024 10:29:01 -0400 Subject: [PATCH 21/37] =?UTF-8?q?Reworded=20sentence=20=F0=9F=93=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Edit means recipe readers don't have to go to the linked textual annotations recipe to understand what's different in this one --- recipe/0489-multimedia-canvas/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/0489-multimedia-canvas/index.md b/recipe/0489-multimedia-canvas/index.md index 353f04092..05a498195 100644 --- a/recipe/0489-multimedia-canvas/index.md +++ b/recipe/0489-multimedia-canvas/index.md @@ -17,7 +17,7 @@ You want to create a digital assignment by providing students with a IIIF image This recipe pulls together techniques and structures described in other recipes, and adds new elements. In other recipes, this cookbook shows [how to place multiple resources on a single Canvas][0036] and how to work with [a resource with different dimensions than its Canvas][0004]. In the Use Case for this recipe, the aim is to mix AV and image IIIF resources, set an image to be visible for an amount of time, and resize and position an AV resource on a Canvas. -While other recipes have discussed [simple textual annotations][0266], this recipe changes the motivation for its textual annotations to `painting` to include the text directly and visibly on the Canvas. Each of the annotations in this recipe is bound both by its placement on the Canvas and by its time of visibility. +While other recipes have discussed [simple textual annotations][0266], this recipe uses a `painting` motivation for its textual annotations (rather than `commenting` as in that recipe) to include the text directly and visibly on the Canvas. Each of the annotations in this recipe is bound both by its placement on the Canvas and by its time of visibility. When using timing for showing and hiding resources on a Canvas, a high degree of precision is not likely to be achieved for all people viewing the Canvas. Resources may load slowly for many reasons, including on the IIIF image server side, for network traffic reasons, or from customizations in a person's browser. Except in a very predictable environment, timing should be considered approximate From 60f2d2473149861dabb157b87ace43dafa40780f Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Tue, 13 Aug 2024 10:30:58 -0400 Subject: [PATCH 22/37] =?UTF-8?q?Edited=20sentence=20for=20readability=20?= =?UTF-8?q?=F0=9F=93=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/0489-multimedia-canvas/index.md b/recipe/0489-multimedia-canvas/index.md index 05a498195..87b7b42db 100644 --- a/recipe/0489-multimedia-canvas/index.md +++ b/recipe/0489-multimedia-canvas/index.md @@ -19,7 +19,7 @@ This recipe pulls together techniques and structures described in other recipes, While other recipes have discussed [simple textual annotations][0266], this recipe uses a `painting` motivation for its textual annotations (rather than `commenting` as in that recipe) to include the text directly and visibly on the Canvas. Each of the annotations in this recipe is bound both by its placement on the Canvas and by its time of visibility. -When using timing for showing and hiding resources on a Canvas, a high degree of precision is not likely to be achieved for all people viewing the Canvas. Resources may load slowly for many reasons, including on the IIIF image server side, for network traffic reasons, or from customizations in a person's browser. Except in a very predictable environment, timing should be considered approximate +When using timing for showing and hiding resources on a Canvas, a high degree of precision is not likely to be achieved for all people viewing the Canvas. Resources may load slowly for many reasons, including image server issues, network traffic, or browser and client customizations. Except in a very predictable environment, timing should be considered approximate ## Restrictions From 7e61c555ef93f4ac9e96b1bc7594fa001c03f49e Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Tue, 13 Aug 2024 10:32:10 -0400 Subject: [PATCH 23/37] =?UTF-8?q?Edited=20sentence=20for=20clarity=20?= =?UTF-8?q?=F0=9F=93=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/0489-multimedia-canvas/index.md b/recipe/0489-multimedia-canvas/index.md index 87b7b42db..a2241bf86 100644 --- a/recipe/0489-multimedia-canvas/index.md +++ b/recipe/0489-multimedia-canvas/index.md @@ -17,7 +17,7 @@ You want to create a digital assignment by providing students with a IIIF image This recipe pulls together techniques and structures described in other recipes, and adds new elements. In other recipes, this cookbook shows [how to place multiple resources on a single Canvas][0036] and how to work with [a resource with different dimensions than its Canvas][0004]. In the Use Case for this recipe, the aim is to mix AV and image IIIF resources, set an image to be visible for an amount of time, and resize and position an AV resource on a Canvas. -While other recipes have discussed [simple textual annotations][0266], this recipe uses a `painting` motivation for its textual annotations (rather than `commenting` as in that recipe) to include the text directly and visibly on the Canvas. Each of the annotations in this recipe is bound both by its placement on the Canvas and by its time of visibility. +While other recipes have discussed [simple textual annotations][0266], this recipe uses a `painting` motivation for its textual annotations (rather than `commenting` as the linked recipe does) to include the text directly and visibly on the Canvas. Each of the annotations in this recipe is bound both by its placement on the Canvas and by its time of visibility. When using timing for showing and hiding resources on a Canvas, a high degree of precision is not likely to be achieved for all people viewing the Canvas. Resources may load slowly for many reasons, including image server issues, network traffic, or browser and client customizations. Except in a very predictable environment, timing should be considered approximate From 5564d79e12474e82fd33aabb5bfb71a6b3316bdc Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Tue, 13 Aug 2024 10:41:48 -0400 Subject: [PATCH 24/37] =?UTF-8?q?Edited=20to=20reduce=20wordiness=20?= =?UTF-8?q?=F0=9F=93=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipe/0489-multimedia-canvas/index.md b/recipe/0489-multimedia-canvas/index.md index a2241bf86..b5757b320 100644 --- a/recipe/0489-multimedia-canvas/index.md +++ b/recipe/0489-multimedia-canvas/index.md @@ -15,9 +15,9 @@ You want to create a digital assignment by providing students with a IIIF image ## Implementation Notes -This recipe pulls together techniques and structures described in other recipes, and adds new elements. In other recipes, this cookbook shows [how to place multiple resources on a single Canvas][0036] and how to work with [a resource with different dimensions than its Canvas][0004]. In the Use Case for this recipe, the aim is to mix AV and image IIIF resources, set an image to be visible for an amount of time, and resize and position an AV resource on a Canvas. +This recipe pulls together techniques and structures described in other recipes, and adds new elements. In other recipes, this cookbook shows [how to place multiple resources on a single Canvas][0036] and how to work with [a resource with different dimensions than its Canvas][0004]. Here, the aim is to mix AV and image IIIF resources, restrict Annotations' visibility by time ranges, and resize and position an AV resource on a Canvas. -While other recipes have discussed [simple textual annotations][0266], this recipe uses a `painting` motivation for its textual annotations (rather than `commenting` as the linked recipe does) to include the text directly and visibly on the Canvas. Each of the annotations in this recipe is bound both by its placement on the Canvas and by its time of visibility. +Likewise, while other recipes have discussed [simple textual annotations][0266], this recipe uses a `painting` motivation for its textual annotations (rather than `commenting` as the linked recipe does) to include the text directly and visibly on the Canvas. When using timing for showing and hiding resources on a Canvas, a high degree of precision is not likely to be achieved for all people viewing the Canvas. Resources may load slowly for many reasons, including image server issues, network traffic, or browser and client customizations. Except in a very predictable environment, timing should be considered approximate From 221c611188121ecd176dec5557d7de190bf41b2e Mon Sep 17 00:00:00 2001 From: Glen Robson Date: Tue, 13 Aug 2024 18:17:28 +0100 Subject: [PATCH 25/37] Update preview.yml Turnning on validation --- .github/workflows/preview.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml index 36d624717..79e41ad02 100644 --- a/.github/workflows/preview.yml +++ b/.github/workflows/preview.yml @@ -70,8 +70,8 @@ jobs: python -m pip install --upgrade pip pip install -r scripts/requirements.txt -# - name: validate -# run: scripts/validate.sh + - name: validate + run: scripts/validate.sh - name: add URL to config run: .github/bin/addURL.sh From fcdf7d7b3a65cbb09e24bb30fbe11eae00b3dd4e Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 16 Aug 2024 08:28:06 -0400 Subject: [PATCH 26/37] =?UTF-8?q?Changed=20recipe=20title=20per=20editors?= =?UTF-8?q?=20=F0=9F=93=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _includes/links.md | 2 +- index.md | 2 +- recipe/0489-multimedia-canvas/index.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/_includes/links.md b/_includes/links.md index b8b0bd4d7..5a59ae11d 100644 --- a/_includes/links.md +++ b/_includes/links.md @@ -75,7 +75,7 @@ [0466]: {{ site.cookbook_url | absolute_url }}/recipe/0466-link-for-loading-manifest/ "Loading a manifest with a viewer using a link" [0434]: {{ site.cookbook_url | absolute_url }}/recipe/0434-choice-av/ "Multiple Choice of Audio Formats in a Single View (Canvas)" -[0489]: {{ site.cookbook_url | absolute_url }}/recipe/0489-multimedia-canvas/ "Complex Multimedia Canvas" +[0489]: {{ site.cookbook_url | absolute_url }}/recipe/0489-multimedia-canvas/ "Teaching with a Multimedia Canvas" [cookbook-process]: {{site.cookbook_url | absolute_url }}/recipe diff --git a/index.md b/index.md index 80f922c9a..4c479986a 100644 --- a/index.md +++ b/index.md @@ -114,7 +114,7 @@ _(leading on to segmentation examples later)_ * [Multiple choice of images in a single view][0033] (29) * [Foldouts, Flaps, and Maps][0035] * [Composition from Multiple Images][0036] (30,31) -* [Complex Multimedia Canvas][0489] +* [Teaching with a Multimedia Canvas][0489] * Multiple images and multiple choices (32,33,34) * [Annotating part of an image to a Canvas][recipe-segment-image-part] (e.g., crop out scanner) (35,36,37,38) * [Image Rotation Two Ways][0040] diff --git a/recipe/0489-multimedia-canvas/index.md b/recipe/0489-multimedia-canvas/index.md index b5757b320..7376dd639 100644 --- a/recipe/0489-multimedia-canvas/index.md +++ b/recipe/0489-multimedia-canvas/index.md @@ -1,5 +1,5 @@ --- -title: Multimedia Canvas +title: Teaching with a Multimedia Canvas id: 499 layout: recipe tags: Complex Object From b5795edf0fa527ce27e3bf93d75a50ec229e9184 Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 16 Aug 2024 08:35:08 -0400 Subject: [PATCH 27/37] =?UTF-8?q?Moved=20graf=20and=20expanded=20it=20per?= =?UTF-8?q?=20editors=20=F0=9F=93=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Editors considered timing limitations to be restrictions and requested additional text noting that manifests cannot strictly dictate what people can do with the Manifest because those capabilities are dependent as much on the viewer as on the Manifest. --- recipe/0489-multimedia-canvas/index.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/recipe/0489-multimedia-canvas/index.md b/recipe/0489-multimedia-canvas/index.md index 7376dd639..0459e08b9 100644 --- a/recipe/0489-multimedia-canvas/index.md +++ b/recipe/0489-multimedia-canvas/index.md @@ -19,11 +19,9 @@ This recipe pulls together techniques and structures described in other recipes, Likewise, while other recipes have discussed [simple textual annotations][0266], this recipe uses a `painting` motivation for its textual annotations (rather than `commenting` as the linked recipe does) to include the text directly and visibly on the Canvas. -When using timing for showing and hiding resources on a Canvas, a high degree of precision is not likely to be achieved for all people viewing the Canvas. Resources may load slowly for many reasons, including image server issues, network traffic, or browser and client customizations. Except in a very predictable environment, timing should be considered approximate - ## Restrictions -No restrictions known. +When using timing for showing and hiding resources on a Canvas, a high degree of precision is not likely to be achieved for all people viewing the Canvas. Resources may load slowly for many reasons, including image server issues, network traffic, or browser and client customizations. Except in a very predictable environment, timing should be considered approximate. As well, people interacting with a multimedia Canvas may have greater or lesser control over the Canvas timeline. Consequently, creators cannot assume rigid implementation of timeline manipulation restrictions, even implied ones as in this recipe. ## Example From 55461cca4ac072e1d88862dbe5f41e32b93ccbe9 Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 16 Aug 2024 08:36:22 -0400 Subject: [PATCH 28/37] =?UTF-8?q?Removed=20bounding=20parens=20per=20edito?= =?UTF-8?q?rs=20=F0=9F=93=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/0489-multimedia-canvas/index.md b/recipe/0489-multimedia-canvas/index.md index 0459e08b9..1b66cb7e1 100644 --- a/recipe/0489-multimedia-canvas/index.md +++ b/recipe/0489-multimedia-canvas/index.md @@ -27,7 +27,7 @@ When using timing for showing and hiding resources on a Canvas, a high degree of In this example, a still image, a video, and plaintext annotations are combined on a single Canvas to simulate a classroom assignment designed to introduce students to image study and notetaking in a compressed period of time. Note that this example contains material pedagogical design flaws and is not to be used as is for a classroom assignment. -A person using a viewer that supports this recipe is presented first with the instruction to "Press Play", added using a time-bound plaintext annotation. After pressing play, additional instructions appear, also created using a time-bound plaintext annotation. When the time elapses on this annotation, the person is presented with a clock video overlaid on top of a still image. In the hypothetical assignment, a student would follow the instructions and take notes on the still image while the clock counts up the time allotted. After 30 seconds passes, the still image and clock video disappear, replaced by text instructions to close the browser. (These final instructions stay visible for approximately 2-1/2 minutes to avoid an immediate return to the initial instructions.) +A person using a viewer that supports this recipe is presented first with the instruction to "Press Play", added using a time-bound plaintext annotation. After pressing play, additional instructions appear, also created using a time-bound plaintext annotation. When the time elapses on this annotation, the person is presented with a clock video overlaid on top of a still image. In the hypothetical assignment, a student would follow the instructions and take notes on the still image while the clock counts up the time allotted. After 30 seconds passes, the still image and clock video disappear, replaced by text instructions to close the browser. These final instructions stay visible for approximately 2-1/2 minutes to avoid an immediate return to the initial instructions. [Theseus Viewer temporary link](https://theseus-viewer.netlify.app/?iiif-content=http://localhost:4000//recipe/0489-multimedia-canvas/manifest.json) From 0750ded27a4a2bb3aa8082180cfe85a53fef64e4 Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 16 Aug 2024 08:40:21 -0400 Subject: [PATCH 29/37] =?UTF-8?q?Swapped=20temp=20Theseus=20viewer=20link?= =?UTF-8?q?=20for=20anticipated=20format=20=F0=9F=93=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/index.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/recipe/0489-multimedia-canvas/index.md b/recipe/0489-multimedia-canvas/index.md index 1b66cb7e1..89ff3ca3a 100644 --- a/recipe/0489-multimedia-canvas/index.md +++ b/recipe/0489-multimedia-canvas/index.md @@ -5,6 +5,7 @@ layout: recipe tags: Complex Object summary: "Paint a still image, a video with sound, and text onto a single Canvas" viewers: + - Theseus topic: - annotation --- @@ -29,8 +30,6 @@ In this example, a still image, a video, and plaintext annotations are combined A person using a viewer that supports this recipe is presented first with the instruction to "Press Play", added using a time-bound plaintext annotation. After pressing play, additional instructions appear, also created using a time-bound plaintext annotation. When the time elapses on this annotation, the person is presented with a clock video overlaid on top of a still image. In the hypothetical assignment, a student would follow the instructions and take notes on the still image while the clock counts up the time allotted. After 30 seconds passes, the still image and clock video disappear, replaced by text instructions to close the browser. These final instructions stay visible for approximately 2-1/2 minutes to avoid an immediate return to the initial instructions. -[Theseus Viewer temporary link](https://theseus-viewer.netlify.app/?iiif-content=http://localhost:4000//recipe/0489-multimedia-canvas/manifest.json) - {% include manifest_links.html manifest="manifest.json" %} {% include jsonviewer.html src="manifest.json" %} From 6e66cbcc365ebebb2733be569b06636b4d79eccc Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 16 Aug 2024 09:12:52 -0400 Subject: [PATCH 30/37] =?UTF-8?q?Added=20discussion=20around=20time-based?= =?UTF-8?q?=20resources=20per=20editors=20=F0=9F=93=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/recipe/0489-multimedia-canvas/index.md b/recipe/0489-multimedia-canvas/index.md index 89ff3ca3a..6ed10ed45 100644 --- a/recipe/0489-multimedia-canvas/index.md +++ b/recipe/0489-multimedia-canvas/index.md @@ -20,6 +20,10 @@ This recipe pulls together techniques and structures described in other recipes, Likewise, while other recipes have discussed [simple textual annotations][0266], this recipe uses a `painting` motivation for its textual annotations (rather than `commenting` as the linked recipe does) to include the text directly and visibly on the Canvas. +Once there is an AV resource included on a Canvas, there exists a notional timeline whose duration and time range can then be used in targeting resources to the Canvas. When resources' appearance on a Manifest are governed in part by time, they can be entered in in the Manifest in any order. If a `target` value includes a `t` parameter, the associated resource can be expected to be shown only for that span of time on the timeline. (See "Restrictions" below for caveats.) + +The `t` parameter of the `target` value can also serve to trim an AV resource to be displayed for something other than its whole duration. An AV resource can thus have a `target` that governs its placement on the Canvas, its dimensions relative to the Canvas, its appearance duration, and the amount of its total running time that is used. AV resources can also take [a `timeMode` property](https://iiif.io/api/presentation/3.0/#timemode) that governs its rendering in conjunction with the `t` parameter of the target. + ## Restrictions When using timing for showing and hiding resources on a Canvas, a high degree of precision is not likely to be achieved for all people viewing the Canvas. Resources may load slowly for many reasons, including image server issues, network traffic, or browser and client customizations. Except in a very predictable environment, timing should be considered approximate. As well, people interacting with a multimedia Canvas may have greater or lesser control over the Canvas timeline. Consequently, creators cannot assume rigid implementation of timeline manipulation restrictions, even implied ones as in this recipe. From 54ab4ccfad68693418bf1d022c16fd8043156980 Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 16 Aug 2024 09:13:25 -0400 Subject: [PATCH 31/37] =?UTF-8?q?Added=20layering=20order=20note=20?= =?UTF-8?q?=F0=9F=93=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/recipe/0489-multimedia-canvas/index.md b/recipe/0489-multimedia-canvas/index.md index 6ed10ed45..a16386287 100644 --- a/recipe/0489-multimedia-canvas/index.md +++ b/recipe/0489-multimedia-canvas/index.md @@ -32,6 +32,8 @@ When using timing for showing and hiding resources on a Canvas, a high degree of In this example, a still image, a video, and plaintext annotations are combined on a single Canvas to simulate a classroom assignment designed to introduce students to image study and notetaking in a compressed period of time. Note that this example contains material pedagogical design flaws and is not to be used as is for a classroom assignment. +The simultaneously visible resources are listed in the Manifest from the foreground to the background. The timer video comes first in the Manifest, as the only currently capable viewer places resources on the Canvas so that the first resource is the most foregrounded. + A person using a viewer that supports this recipe is presented first with the instruction to "Press Play", added using a time-bound plaintext annotation. After pressing play, additional instructions appear, also created using a time-bound plaintext annotation. When the time elapses on this annotation, the person is presented with a clock video overlaid on top of a still image. In the hypothetical assignment, a student would follow the instructions and take notes on the still image while the clock counts up the time allotted. After 30 seconds passes, the still image and clock video disappear, replaced by text instructions to close the browser. These final instructions stay visible for approximately 2-1/2 minutes to avoid an immediate return to the initial instructions. {% include manifest_links.html manifest="manifest.json" %} From fff3e89e69df80f5a3250c2ac4ad5caf74ecfc54 Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 16 Aug 2024 09:13:52 -0400 Subject: [PATCH 32/37] =?UTF-8?q?Added=20related=20recipe=20for=20simple?= =?UTF-8?q?=20time=20range=20=F0=9F=93=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/recipe/0489-multimedia-canvas/index.md b/recipe/0489-multimedia-canvas/index.md index a16386287..051727fa9 100644 --- a/recipe/0489-multimedia-canvas/index.md +++ b/recipe/0489-multimedia-canvas/index.md @@ -43,6 +43,7 @@ A person using a viewer that supports this recipe is presented first with the in ## Related Recipes * [Image and Canvas with Differing Dimensions][0004] for relative dimensioning of a resource and a Canvas +* [Table of Contents for Multiple A/V Files on a Single Canvas][0064] for time ranges in `target`s * [Simplest Annotation][0266] for a basic textual annotation * [Composition from Multiple Images][0036] for using multiple IIIF resources on a single Canvas From b2f826f109ccdb45e51478cae154ea170222ece6 Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 27 Sep 2024 09:40:17 -0400 Subject: [PATCH 33/37] =?UTF-8?q?Added=20highlighting=20=E2=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/0489-multimedia-canvas/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/0489-multimedia-canvas/index.md b/recipe/0489-multimedia-canvas/index.md index 051727fa9..80a1d2a2c 100644 --- a/recipe/0489-multimedia-canvas/index.md +++ b/recipe/0489-multimedia-canvas/index.md @@ -38,7 +38,7 @@ A person using a viewer that supports this recipe is presented first with the in {% include manifest_links.html manifest="manifest.json" %} -{% include jsonviewer.html src="manifest.json" %} +{% include jsonviewer.html src="manifest.json" config='data-line="16,40,49-51,54,59,66,71,78,83,90"' %} ## Related Recipes From 9249c6416175a02f44b61f4f0fda309e00c62266 Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 27 Sep 2024 10:55:20 -0400 Subject: [PATCH 34/37] =?UTF-8?q?Reworked=20some=20discussion=20about=20ti?= =?UTF-8?q?meline=20per=20TRC=20comments=20=F0=9F=93=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit h/t @kirschbombe --- recipe/0489-multimedia-canvas/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipe/0489-multimedia-canvas/index.md b/recipe/0489-multimedia-canvas/index.md index 80a1d2a2c..522e57e34 100644 --- a/recipe/0489-multimedia-canvas/index.md +++ b/recipe/0489-multimedia-canvas/index.md @@ -20,9 +20,9 @@ This recipe pulls together techniques and structures described in other recipes, Likewise, while other recipes have discussed [simple textual annotations][0266], this recipe uses a `painting` motivation for its textual annotations (rather than `commenting` as the linked recipe does) to include the text directly and visibly on the Canvas. -Once there is an AV resource included on a Canvas, there exists a notional timeline whose duration and time range can then be used in targeting resources to the Canvas. When resources' appearance on a Manifest are governed in part by time, they can be entered in in the Manifest in any order. If a `target` value includes a `t` parameter, the associated resource can be expected to be shown only for that span of time on the timeline. (See "Restrictions" below for caveats.) +A Canvas containing a `duration` property has a notional timeline that can be used to target resources to a time point or range of the Canvas. If a resource's `target` value includes a `t` parameter, the resource can be expected to be shown during only and all of that span of time on the timeline. (See "Restrictions" below for caveats and see [the Presentation specification][prezi3] for more detail about time and IIIF resources, including [the `duration` property][https://iiif.io/api/presentation/3.0/#duration].) -The `t` parameter of the `target` value can also serve to trim an AV resource to be displayed for something other than its whole duration. An AV resource can thus have a `target` that governs its placement on the Canvas, its dimensions relative to the Canvas, its appearance duration, and the amount of its total running time that is used. AV resources can also take [a `timeMode` property](https://iiif.io/api/presentation/3.0/#timemode) that governs its rendering in conjunction with the `t` parameter of the target. +The `t` parameter of the `target` value can also serve to trim an AV resource to be displayed for something other than its whole duration. An AV resource can thus have a `target` that governs its placement on the Canvas, its dimensions relative to the Canvas, its appearance duration, and the amount of its total running time that is used. An AV resource can also take [a `timeMode` property](https://iiif.io/api/presentation/3.0/#timemode) that governs its rendering in conjunction with the `t` parameter of its `target` and the `duration` property of a Canvas. ## Restrictions From 16030850320ccce184181cb6904eb8291148aad6 Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 27 Sep 2024 10:57:12 -0400 Subject: [PATCH 35/37] =?UTF-8?q?Changed=20title=20per=20TRC=20comments=20?= =?UTF-8?q?=F0=9F=93=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit h/t @kirschbombe --- recipe/0489-multimedia-canvas/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/0489-multimedia-canvas/index.md b/recipe/0489-multimedia-canvas/index.md index 522e57e34..fa4236294 100644 --- a/recipe/0489-multimedia-canvas/index.md +++ b/recipe/0489-multimedia-canvas/index.md @@ -1,5 +1,5 @@ --- -title: Teaching with a Multimedia Canvas +title: Rendering Multiple Media Types on a Time-Based Canvas id: 499 layout: recipe tags: Complex Object From 48dd5b578d4f2a04195f8e28179ee53f02535d25 Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 27 Sep 2024 11:00:32 -0400 Subject: [PATCH 36/37] =?UTF-8?q?Changed=20title=20per=20TRC=20comments=20?= =?UTF-8?q?=F0=9F=93=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit h/t @kirschbombe --- _includes/links.md | 2 +- index.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_includes/links.md b/_includes/links.md index 5a59ae11d..de47259c0 100644 --- a/_includes/links.md +++ b/_includes/links.md @@ -75,7 +75,7 @@ [0466]: {{ site.cookbook_url | absolute_url }}/recipe/0466-link-for-loading-manifest/ "Loading a manifest with a viewer using a link" [0434]: {{ site.cookbook_url | absolute_url }}/recipe/0434-choice-av/ "Multiple Choice of Audio Formats in a Single View (Canvas)" -[0489]: {{ site.cookbook_url | absolute_url }}/recipe/0489-multimedia-canvas/ "Teaching with a Multimedia Canvas" +[0489]: {{ site.cookbook_url | absolute_url }}/recipe/0489-multimedia-canvas/ "Rendering Multiple Media Types on a Time-Based Canvas" [cookbook-process]: {{site.cookbook_url | absolute_url }}/recipe diff --git a/index.md b/index.md index 4c479986a..45b478a7c 100644 --- a/index.md +++ b/index.md @@ -114,7 +114,7 @@ _(leading on to segmentation examples later)_ * [Multiple choice of images in a single view][0033] (29) * [Foldouts, Flaps, and Maps][0035] * [Composition from Multiple Images][0036] (30,31) -* [Teaching with a Multimedia Canvas][0489] +* [Rendering Multiple Media Types on a Time-Based Canvas][0489] * Multiple images and multiple choices (32,33,34) * [Annotating part of an image to a Canvas][recipe-segment-image-part] (e.g., crop out scanner) (35,36,37,38) * [Image Rotation Two Ways][0040] From bb4e212549d390121b055ea9616ae749e1011cea Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Fri, 27 Sep 2024 11:01:36 -0400 Subject: [PATCH 37/37] =?UTF-8?q?Rework=20comment=20about=20resource=20ord?= =?UTF-8?q?er=20=F0=9F=93=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit h/t @zimeon --- recipe/0489-multimedia-canvas/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/0489-multimedia-canvas/index.md b/recipe/0489-multimedia-canvas/index.md index fa4236294..ee8aafc43 100644 --- a/recipe/0489-multimedia-canvas/index.md +++ b/recipe/0489-multimedia-canvas/index.md @@ -20,7 +20,7 @@ This recipe pulls together techniques and structures described in other recipes, Likewise, while other recipes have discussed [simple textual annotations][0266], this recipe uses a `painting` motivation for its textual annotations (rather than `commenting` as the linked recipe does) to include the text directly and visibly on the Canvas. -A Canvas containing a `duration` property has a notional timeline that can be used to target resources to a time point or range of the Canvas. If a resource's `target` value includes a `t` parameter, the resource can be expected to be shown during only and all of that span of time on the timeline. (See "Restrictions" below for caveats and see [the Presentation specification][prezi3] for more detail about time and IIIF resources, including [the `duration` property][https://iiif.io/api/presentation/3.0/#duration].) +A Canvas containing a `duration` property has a notional timeline that can be used to target resources to a time point or range of the Canvas. If a resource's `target` value includes a `t` parameter, the resource can be expected to be shown during only and all of that span of time on the timeline. The order in which resources appear on the Canvas is governed by the `t` parameter of the `target` when specified; they can be entered in the Manifest in any order. (See "Restrictions" below for caveats and see [the Presentation specification][prezi3] for more detail about time and IIIF resources, including [the `duration` property][https://iiif.io/api/presentation/3.0/#duration].) The `t` parameter of the `target` value can also serve to trim an AV resource to be displayed for something other than its whole duration. An AV resource can thus have a `target` that governs its placement on the Canvas, its dimensions relative to the Canvas, its appearance duration, and the amount of its total running time that is used. An AV resource can also take [a `timeMode` property](https://iiif.io/api/presentation/3.0/#timemode) that governs its rendering in conjunction with the `t` parameter of its `target` and the `duration` property of a Canvas.