Compare commits

..

50 Commits

Author SHA1 Message Date
fa518379d1 Remove paragraph after orchestra
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 3m39s
2026-01-22 11:04:48 +10:30
d0cf6187c0 Remove top margin
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 3m13s
2026-01-22 10:49:33 +10:30
6132ebae45 Add sheet music page, some slight changes
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 20m17s
2026-01-22 10:36:19 +10:30
9335d19031 Make background colour consistent when page doesn't fully cover screen 2026-01-22 10:31:52 +10:30
ca6f0de553 Remove recognition page, adjust section on index
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 3m2s
2025-12-17 09:17:36 +10:30
b8b4ddd059 Animate player image
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 2m33s
2025-12-11 15:24:55 +10:30
4acbf3ef8a Add hover zoom to images in projects/MDX
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 2m45s
2025-12-11 11:11:38 +10:30
5a83282da4 Add blurred artwork to player if available
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 2m49s
2025-12-11 09:29:11 +10:30
7e887f8bb1 Update README.md to include note about CI/CD
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 12m12s
2025-12-10 09:05:33 +10:30
2666a680ab Wind orchestra, not just orchestra, is clearer
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 4m7s
2025-11-27 09:50:54 +10:30
16d14adb32 and
Some checks failed
Build and Deploy to Web Server / deploy (push) Has been cancelled
2025-11-27 09:49:01 +10:30
d714ed3e3b Minor fixes to about page
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 4m31s
2025-11-27 09:42:22 +10:30
4caf5665be A tag on new line caused additional space
Some checks failed
Build and Deploy to Web Server / deploy (push) Has been cancelled
2025-11-27 09:39:48 +10:30
4fe49e3bea Clarify some of MWM:DU and add links
Some checks failed
Build and Deploy to Web Server / deploy (push) Has been cancelled
2025-11-27 09:37:24 +10:30
06cb8f28db Inline not inline block for links 2025-11-27 09:36:37 +10:30
27c2342bf4 Credit Tommy Woods Photography
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 4m28s
2025-11-26 18:18:49 +10:30
978ff3e0c6 Specify width for IMG component as equal to page project page width
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 4m29s
2025-11-26 18:04:31 +10:30
3f2e1fa340 Post about MWM:DU, LI component
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 5m1s
2025-11-26 17:48:11 +10:30
01153e087a Don't round corners of player on small screens 2025-11-26 17:17:06 +10:30
f0b80c6e0d Add photos for MWM:DU, add some recent concerts
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 18m50s
2025-11-26 08:26:56 +10:30
07fcb0ff75 Reduce top margin on player text
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 9m0s
2025-09-28 14:13:31 +09:30
d2b668ba12 Inset player on large screens 2025-09-28 14:11:22 +09:30
01a39c10cb Astro is wrong, should have public
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 8m31s
2025-09-22 11:26:57 +09:30
c577838aaf Add theme colour, Inter font import fix
Some checks failed
Build and Deploy to Web Server / deploy (push) Failing after 2m48s
2025-09-22 11:22:51 +09:30
5312e8648b Change player seek bar to pointer on hover
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 4m23s
2025-09-11 16:54:44 +09:30
ed71825ae2 Change some headers back to Lutschine
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 4m51s
2025-09-11 16:32:57 +09:30
9a3a597be4 Change body font from Roboto to Inter 2025-09-11 16:29:33 +09:30
513504d175 Should cache Astro build folders, not dist
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 3m47s
2025-09-08 16:19:46 +09:30
6542cb42a2 More consistent shadow on about image
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 9m25s
2025-09-08 16:05:50 +09:30
5c5a7524ab Try cache implementation (may need server-side configuration)
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 12m4s
2025-09-08 13:41:05 +09:30
c9357ce1cd Change Awoken on front page to Hollow Knight: Silksong
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 19m48s
2025-09-05 18:06:45 +09:30
51db7a18f7 Add Hollow Knight: Silksong and Submerged: Hidden Depths to About page
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 20m56s
2025-09-05 11:31:31 +09:30
e629567d32 Declare some image heights for better responsiveness 2025-09-05 11:24:58 +09:30
b3064609cf Add Hollow Knight: Silksong 🧵
Some checks are pending
Build and Deploy to Web Server / deploy (push) Has started running
2025-09-05 11:20:44 +09:30
85234ce522 Sync package-lock.json as well
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 16m0s
2025-09-01 10:34:07 +09:30
f743618b5f Don't delete node_modules to hopefully speed up remote deployment 2025-09-01 10:19:50 +09:30
ce6dffbaf5 Better handle project URLs
Some checks failed
Build and Deploy to Web Server / deploy (push) Has been cancelled
2025-08-29 15:02:25 +09:30
d0c1319258 Why did I do package-lock and not package?
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 19m33s
2025-08-29 14:12:06 +09:30
7c8ab1c988 Better handle contact form JS
Some checks failed
Build and Deploy to Web Server / deploy (push) Failing after 11m57s
2025-08-29 12:52:22 +09:30
52362b748b Add SSR deployment method
Some checks are pending
Build and Deploy to Web Server / deploy (push) Has started running
2025-08-29 12:43:07 +09:30
e46a4a560a Add SSR contact form
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 18m1s
2025-08-29 11:36:58 +09:30
1c3b37a70c Merge branch 'main' of git.nathancummins.com.au:encie22/portfolio
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 16m51s
2025-08-28 16:06:56 +09:30
ca15fa782d Expand DNDT, add TrackInline, more tracks 2025-08-28 16:03:29 +09:30
ba8eec5879 Add colour options for primary colour 2025-08-28 16:02:32 +09:30
0802b69c56 Add Y space to tokens on projects page
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 15m56s
2025-08-26 13:45:39 +09:30
c74299c2b1 Add links and key figures to project pages
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 16m35s
2025-08-25 17:49:45 +09:30
982589927f Allow filtering of projects
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 15m24s
2025-08-25 11:18:39 +09:30
025914083c Add MWM, fix max-h
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 16m13s
2025-08-25 09:45:23 +09:30
69a17c48f3 Fix about page black padding
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 15m55s
2025-08-22 17:09:25 +09:30
352a9c18f5 Flesh out about a little more, still temporary
All checks were successful
Build and Deploy to Web Server / deploy (push) Successful in 15m49s
2025-08-22 16:42:08 +09:30
171 changed files with 3245 additions and 159 deletions

View File

@@ -16,12 +16,19 @@ jobs:
with:
lfs: true
- name: Cache Astro build cache folder
uses: actions/cache@v4
with:
path: |
node_modules/.astro/
node_modules/.vite/
key: ${{ runner.os }}-buildcache
- name: Setup Node
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: 22
cache: npm
cache-dependency-path: "./package-lock.json"
- name: Install
shell: "bash"
@@ -47,4 +54,12 @@ jobs:
- name: Deploy via rsync
run: |
rsync -avz --delete --exclude '.git' --exclude '.gitea' --exclude 'README.md' --exclude 'LICENSE.md' --exclude 'LICENSE' --exclude '.github' --exclude '.gitignore' --exclude '.gitattributes' --exclude 'deploy.yml' ./dist/ ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }}:${{ secrets.DEPLOY_DIRECTORY }}
rsync -avz --delete --exclude 'node_modules/' ./dist/ ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }}:${{ secrets.DEPLOY_DIRECTORY }}
- name: Copy package.json via rsync
run: |
rsync -avz ./package*.json ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }}:${{ secrets.DEPLOY_DIRECTORY }}
- name: Install and restart service
run: |
ssh ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }} '/home/deployers/${{ secrets.DEPLOY_USER }}/deploy.sh'

View File

@@ -17,5 +17,8 @@
],
"css.customData": [
".vscode/tailwind.json"
]
],
"[mdx]": {
"editor.wordWrap": "on"
}
}

View File

@@ -42,14 +42,14 @@ This website was built primarily with the following technologies:
1. Install prerequisites (Node.js)
2. Run `npm install`
3. From the root of the project directory, run `npm run dev` to start the development server which automatically refreshes on content changes
3. From the root of the project directory, run `npm run dev` to start the development server which automatically refreshes on content changes. Visual Studio Code will automatically deploy the development server when it opens.
## Building and Deploying
To build, as with most Astro projects, simply run `npm run build`, which currently outputs the built website to the `dist` folder.
Eventually, this website will automatically deploy via my custom-built deployment system and self-hosted server environment (todo!).
Changes made to this repository are automatically deployed via my custom-built CI/CD and self-hosted server environment.
## Show your support
You sharing my website is all the support I need.
However, if you'd like to support me in any other way, please feel free to get in touch!
However, if you'd like to support me in any other way or would like to work with me on a project, please feel free to get in touch!

View File

@@ -14,6 +14,8 @@ import robotsTxt from "astro-robots-txt";
import { transformerMetaHighlight } from "@shikijs/transformers";
import node from "@astrojs/node";
// https://astro.build/config
export default defineConfig({
vite: {
@@ -51,12 +53,15 @@ export default defineConfig({
},
site: "https://www.nathancummins.com.au",
trailingSlash: "always",
image: {
responsiveStyles: false
},
output: "static"
});
output: "static",
adapter: node({
mode: "standalone"
})
});

1650
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -10,6 +10,7 @@
},
"dependencies": {
"@astrojs/mdx": "^4.3.1",
"@astrojs/node": "^9.4.3",
"@astrojs/sitemap": "^3.4.2",
"@iconify-json/fa": "^1.2.1",
"@iconify-json/fa7-brands": "^1.2.0",
@@ -22,6 +23,7 @@
"astro-robots-txt": "^1.0.0",
"astro-seo-schema": "^5.1.0",
"get-audio-duration": "^4.0.1",
"nodemailer": "^7.0.5",
"schema-dts": "^1.1.5",
"tailwindcss": "^4.1.11"
},
@@ -29,6 +31,7 @@
"@cspell/dict-en-au": "^1.1.4",
"@shikijs/transformers": "^3.9.2",
"@types/howler": "^2.2.12",
"@types/nodemailer": "^7.0.1",
"@typescript-eslint/eslint-plugin": "^8.38.0",
"@typescript-eslint/parser": "^8.38.0",
"eslint": "^9.32.0",

View File

@@ -31,19 +31,61 @@ externalLinks:
]
---
_This page contains just a few details of my involvement in the project. I will continue to update it and add more details while the game develops (and when I get the time to!)_.
import TrackInline from "@components/TrackInline.astro";
<small>
_This page contains just a few details of my involvement in the project. I
will continue to update it and add more details while the game develops (and
when I get the time to!)_.
</small>
Since late 2023 I have had the pleasure of working with the team at Catalyst Games on the cozy-adventure RPG _Dungeons and Dining Tables_, a game where you play as an axolotl on a quest to decorate their house.
This little axolotl and the team around it have since become key figures in my life and I consider myself privileged to be a part of the project's development.
![The axolotl, which I affectionately name Frank after the axolotl of a friend](/src/assets/img/projects/dungeons-and-dining-tables/nathan-cummins-dungeons-and-dining-tables-13.jpg)
![The axolotl, which I affectionately name Frank after the axolotl of a friend. Screenshot from a development build.](/src/assets/img/projects/dungeons-and-dining-tables/nathan-cummins-dungeons-and-dining-tables-13.jpg)
# My Role
While I joined the team partway through the development of the project, I have still been involved since quite early in the development timeline as a composer, sound designer, and also as a programmer responsible for almost all integration of audio.
This has allowed me to deeply integrate both music and sound into the game and with cross-pollination of the two together, from birds that tweet the melody of the area that you are in, to music that mixes between highly orchestrated pieces to music for jazz quartet, to custom designed logic allowing sounds to be obscured by objects in the game-world.
# The Gameplay and My Approach
While I can't share too much currently, the [steam page](https://store.steampowered.com/app/2941630/Dungeons_and_Dining_Tables/) has a good overview of the the gameplay:
> Dungeons and Dining Tables is a Cozy-Adventure RPG where you play as an Axolotl on a quest to decorate their house and defeat the termites out to eat their furniture!
>
> Randomly generated dungeons to explore with puzzles to complete, enemies to defeat and rare furniture loot to collect. Travel through the World Tree, take on new rogue-like challenges and defeat bosses for the most epic of furnishings (maybe even a Legendary Bed of Maximum Health!)
>
> Furniture collected on a dungeon run can be used to decorate not only your humble home but also the homes of the cute and quirky characters of the town of Kindlerest! Decorating your home will give you comfy points that are used to level up your house, improve player stats, upgrade shops and other quality of life features for your dungeon runs.
Considering the gameplay, my approach to the audio has been to make it as dynamic and responsive to the gameplay as possible, with reactive music and sound design that not only compliments but heightens the user experience.
This is best exemplified by the music of the town _Kindlerest_, which is a cosy orchestral piece (with some hustle-and-bustle for good measure) that transitions seamlessly to a jazz quartet piece (_Pine for a Tune_) while you are decorating your house via some simple layering in FMOD.
<div class="my-4">
<TrackInline id="dndt-kindlerest" />
<TrackInline id="dndt-pine-for-a-tune" />
</div>
![The decoration mode. Screenshot from a development build.](/src/assets/img/projects/dungeons-and-dining-tables/nathan-cummins-dungeons-and-dining-tables-4.jpeg)
# My Inspiration
Throughout the project I have taken a lot of inspiration from games that have been significant to my development as a composer and as a sound designer.
The games that have inspired me the most include _Super Mario Galaxy_, and many games from the _The Legend of Zelda_ series, in particular the approach to sound design from _The Legend of Zelda: Breath of the Wild_.
Throughout the project my inspiration has been drawn from a variety of sources.
Primarily and probably unsurprisingly, I have drawn a lot of inspiration from the art style itself and in particular the animations done by the extremely talented Ty Hemi.
The art style and animations are so full of character that it is difficult not to be inspired by them and as a result my sound design work tries to reflect the same character and charm.
I have also of course taken a lot of inspiration from games that have been significant to my development as a composer and as a sound designer.
The games that have inspired me the most include _Super Mario Galaxy_ and many games from the _The Legend of Zelda_ series, in particular the approach to the sound design of _The Legend of Zelda: Breath of the Wild_.
It is also impossible to ignore the influence of the _Animal Crossing_ series, in particular _Animal Crossing: New Horizons_ which is most evident in the UI sounds.
# Listen
<div class="my-4">
<TrackInline id="dndt-lampshade-grove" />
<TrackInline id="dndt-kindlerest" />
<TrackInline id="dndt-pine-for-a-tune" />
<TrackInline id="dndt-the-couch-troll" />
<TrackInline id="dndt-the-couch-trolls-lair" />
<TrackInline id="dndt-gameplay-trailer" />
</div>

View File

@@ -0,0 +1,39 @@
---
title: "Hollow Knight: Silksong"
role: Orchestration and Typesetting
type: Video Game
date: 2025-09-04
slug: hollow-knight-silksong
description: "Discover a vast, haunted kingdom in Hollow Knight: Silksong! Explore, fight and survive as you ascend to the peak of a land ruled by silk and song."
keyFigure:
- title: Composed by
name: Christopher Larkin
href: https://composerlarkin.com
- title: Developed by
name: Team Cherry
href: https://www.teamcherry.com.au/
frontPage:
order: 2
images:
{
"hero":
{
"src": "nathan-cummins-hollow-knight-silksong-1.png",
"alt": "The main playable character of Hollow Knight: Silksong."
},
"other": "hollow-knight-silksong"
}
externalLinks:
[
{
"name": "Website",
"href": "https://hollowknightsilksong.com/",
"icon": "mdi:web"
},
{
"name": "Steam",
"href": "https://store.steampowered.com/app/1030300/Hollow_Knight_Silksong/",
"icon": "fa7-brands:steam"
}
]
---

View File

@@ -8,14 +8,14 @@ keyFigure:
- title: Performed by
name: Woodville Concert Band
href: https://www.woodvillecb.com.au/2025/music-with-motion-down-under/
description: "Music With Motion: Down Under is a dynamic celebration of Australia's video game soundtracksperformed live by a full wind orchestra and synchronised in real time with stunning visuals on the big screen. Premiering all-new orchestrations created especially for this event by award-winning Artistic Director Dr Nathan Cummins, the performance showcases music from games developed across the country, including several from right here in South Australia. Many of these games have never had their music performed live, and you'll be among the very first to hear it."
frontPage: { "order": 2 }
description: "Music With Motion: Down Under is the largest ever celebration of Australia's video game soundtracks, performed live by a full wind orchestra and synchronised in real time with stunning visuals on the big screen. Premiering all-new orchestrations created especially for this event by award-winning Artistic Director Dr Nathan Cummins, the performance showcases music from games developed across the country, including several from right here in South Australia. Many of these games have never had their music performed live, and you'll be among the very first to hear it."
frontPage: { "order": 3 }
images:
{
"hero":
{
"src": "nathan-cummins-music-with-motion-down-under-1.png",
"alt": "The key poster and artwork for the concert Music With Motion: Down Under."
"src": "nathan-cummins-music-with-motion-down-under-1.jpg",
"alt": "Nathan on the conductor's podium acknowledging a guest soloist with applause."
},
"other": "music-with-motion-down-under"
}
@@ -28,3 +28,124 @@ externalLinks:
}
]
---
_Music With Motion_ and the [Woodville Concert Band](https://www.woodvillecb.com.au) have been part of my life for so long now that trying to sum up what the eighth iteration of the concert meant to me feels almost impossible.
Each year the concert grows and changes, but at its core it still has the same mission: to celebrate video games and their music, and to bring both art forms to audiences who might not yet realise how imaginative, bold, and moving they can be.
With _Music With Motion: Down Under_, that mission felt especially personal.
This year I wanted to shine a light on the remarkable talent in Australia's development community, particularly here in South Australia.
Our local scene is full of people and studios creating fun and ambitious projects, often with tiny teams but always with limitless creativity.
My hope was that this concert would help give these composers and these studios the attention they deserve.
Inevitably because of this vision, this year's concert again grew in scale and ambition, becoming the largest _Music With Motion_ event yet.
It was, to my knowledge, the largest live video game music concert ever held in Australia that focused exclusively on Australian games.
The concert showcased a talented ensemble that grew to 54 musicians and also featured live choir and guest soloists, all with real-time audio-visual synchronisation created just for this event (special thanks to Daytime Devs for the opening sequence!).
![Some of the Woodville Concert Band and Woodville High School Senior Choir on stage](/src/assets/img/projects/music-with-motion-down-under/nathan-cummins-music-with-motion-down-under-4.jpg)
Across 12 projects from 11 studios, we presented 19 pieces, 17 of them world premieres.
All projects featured were developed right here in Australia, with 8 of them being from South Australia.
With the exception of _Goldstained_ by Tommy Raets, who arranged his own work, I worked closely with the composers and developers to ensure that my orchestrations translated their visions truthfully to wind orchestra.
Many of these composers had never heard their work performed by a large ensemble before, which made the process even more meaningful.
The programme included:
- _**Main Title / Haunting Horrors**_ from _Super BAWK BAWK Chicken_ by Daytime Devs - [Chris Norton](https://www.therealchrisnorton.com/) (SA)
- _**The Sacred Acorn**_ from _The Sacred Acorn_ by A Few Dragons - William D H Parry (SA)
- _**Main Theme**_ from _Demonlore_ by Barrel Smash Studios - [Hew Wagner](https://www.hewwagner.com/) (VIC)
- _**Seeds of the Future**_ from _Project Regolith_ by Regolith Interactive - [Simon Stemberger](https://www.stembergercompositions.com/) (VIC)
- _**White Palace**_ from _Hollow Knight_ by Team Cherry - [Christopher Larkin](https://composerlarkin.com/) (SA)
- _**Hydra**_ from _Roc's Odyssey_ by Sunshine Festival Studios - my own score (SA)
- _**Main Theme**_ from _TOYA_ by The RnD Department - [Chris Norton](https://www.therealchrisnorton.com/) (SA)
- _**Threads of a Dream**_ demonstrating FMOD by Firelight Technologies - [Aaron C. Edwards](https://aaroncedwards.audio/) (VIC)
- _**Alluvion**_ from _Submerged: Hidden Depths_ by Uppercut Games - [Jeff van Dyck](https://jeffvandyck.com/) (QLD)
- _**Goldstained**_ from _Goldstained_ by Lantern Jump - Tommy Raets (SA)
- _**Enter Pharloom / Trobbio Medley**_ from _Hollow Knight: Silksong_ by Team Cherry - [Christopher Larkin](https://composerlarkin.com/) (SA)
- _**Dungeons and Dining Tables Medley**_ from _Dungeons and Dining Tables_ by Catalyst Games - my own score (SA)
The night also featured brilliant guest performers.
Joshua Julian and Maverick Pov of [Akira Slide](https://linktr.ee/akiraslide) joined us on electric guitar for my piece _Hydra_ from _Roc's Odyssey_.
Ed Kriek graciously agreed to perform _Trobbio_ from _Hollow Knight: Silksong_.
Their musicianship elevated the night in ways I'm incredibly grateful for.
It was also a pleasure to collaborate with the Woodville High School Senior Choir, who joined us for a few pieces and added a depth to the sound world of the night that we'd never had before.
<div class="grid grid-cols-1 gap-4 md:grid-cols-2">
<div>
![Guest electric guitarist Joshua Julian performing "Hydra" from "Roc's
Odyssey"](/src/assets/img/projects/music-with-motion-down-under/nathan-cummins-music-with-motion-down-under-10.jpg)
</div>
<div>
![Guest electric guitarist Maverick Pov performing "Hydra" from "Roc's
Odyssey"](/src/assets/img/projects/music-with-motion-down-under/nathan-cummins-music-with-motion-down-under-8.jpg)
</div>
</div>
Beyond the music on stage, it was important to me that the wider community was part of the celebration and that other local developers, not just those featured in the concert, had a chance to showcase their work.
During the hour before the concert and throughout the interval, we ran a small convention-style showcase featuring:
- Catalyst Games
- South Australian Games Association (SAGA)
- Paper Cactus Games
- Royal Reign Studios
- The RnD Department
- StarSword Games
- Wayward Skies Studio
- Bad Plan Studios
- Academy of Interactive Entertainment (AIE)
- Avery Andruwskiewicz (artist)
Most of these teams are up-and-coming developers, many of them young, and it was wonderful seeing audiences play their games, chat with them, and discover what's happening right here in Adelaide.
<div class="grid grid-cols-1 gap-4 md:grid-cols-3">
<div>
![Attendees playing games at the showcase prior to the
concert](/src/assets/img/projects/music-with-motion-down-under/nathan-cummins-music-with-motion-down-under-13.jpg)
</div>
<div>
![A child playing "End of Ember" by Bad Plan
Studios](/src/assets/img/projects/music-with-motion-down-under/nathan-cummins-music-with-motion-down-under-12.jpg)
</div>
<div>
![Haydn Richards-Pudney managing our merch
stand](/src/assets/img/projects/music-with-motion-down-under/nathan-cummins-music-with-motion-down-under-14.jpg)
</div>
</div>
The concert sold out.
Over 600 people filled the Woodville Town Hall.
Seeing that many people choose to spend their evening celebrating local games and music was incredibly heartwarming.
More than the numbers, it felt like a community gathering to support the creators behind these works as well and the vision that the Woodville Concert Band and I have been developing for so long.
I'm enormously proud of the Woodville Concert Band.
Performing a full programme of premieres—much of it intricate and stylistically diverse—was a monumental task that took many months of intense preparation and rehearsal.
It has been incredible to observe their growth over the year and the community that has been fostered there.
Their committee and volunteers worked tirelessly behind the scenes to ensure everything ran smoothly, from managing the doors, to managing publicity, the transportation of equipment, the setup and control of the audiovisual equipment, and keeping me sane, fed, and watered on the day.
![Me applauding special guest pianist Ed Kriek, who premiered "Trobbio" from "Hollow Knight: Silksong" composed by Christopher Larkin](/src/assets/img/project-heros/nathan-cummins-music-with-motion-down-under-1.jpg)
There is a long list of people I want to thank, too many to list here, from our own volunteers, those close to us, and our supporters and sponsors.
My gratitude to both Chris Norton and Christopher Larkin, who both individually stepped in to provide invaluable support via other preparations such as the inclusion of additional sounds, instruments, and last minute audio recording, is immeasurable.
Thank you to [Tommy Woods Photography](https://www.tommywoodsphotography.com/) for the fantastic photos from the night, some of which you can see here.
A special thank you goes to Catalyst Games for sponsoring the event via the creation and printing of Hannah Ewart's brilliantly hand-drawn key art, featured prominently in the poster and other marketing materials, and her design of the stunning event programme.
[Gelista Gelati](https://www.gelista.com.au/) generously donated free ice-cream for the entire audience and helped make the evening feel truly festive.
It was also a pleasure to work with and have the support of the [South Australian Games Association (SAGA)](https://sagames.org/) as well as our other sponsors.
While not a sponsor, the West Torrens Library Service also deserves special mention for their support in promoting the event, helping connect us with the local community, and for their work supporting the local industry.
Most importantly I'd like to thank my partner Camille, whose unwavering support and patience kept me going through the long months of preparation, and whose contributions to the event logistics were invaluable.
<div class="m-auto max-w-xl">
![The poster by Hannah Ewart featuring characters from various South
Australian video games including "Hollow Knight", "Hollow Knight: Silksong",
"Dungeons and Dining Tables", and "Super BAWK BAWK
Chicken"](/src/assets/img/other/nathan-cummins-music-with-motion-down-under-poster-1.png)
</div>
On a personal note, it took hundreds of hours to bring _Music With Motion: Down Under_ to life.
This concert was my way of supporting, uplifting, and giving back to the community that has shaped so much of my own creative path.
Seeing these works come alive with wind orchestra, and seeing the pride and joy on the faces of the composers, developers, the performers, and even the audience, made every moment worth it.
Thank you to everyone who attended, performed, collaborated, showcased, or was otherwise involved in some way.
I'm deeply grateful.
![Most of the full ensemble including special guests accepting the final applause](/src/assets/img/projects/music-with-motion-down-under/nathan-cummins-music-with-motion-down-under-23.jpg)
![A view from behind the stage of the full venue](/src/assets/img/projects/music-with-motion-down-under/nathan-cummins-music-with-motion-down-under-17.jpg)
![An audience member dressed as Hornet from "Hollow Knight: Silksong"](/src/assets/img/projects/music-with-motion-down-under/nathan-cummins-music-with-motion-down-under-19.jpg)

View File

@@ -0,0 +1,29 @@
---
title: "Music With Motion: Level Up"
role: Conductor / Artistic Director
type: Concert
date: 2023-06-02
slug: music-with-motion-level-up
keyFigure:
- title: Performed by
name: Woodville Concert Band
href: https://www.woodvillecb.com.au/2023/music-with-motion-level-up/
description: "Experience a brand new Music With Motion, featuring all new original arrangements and all new visuals from your favourite video games like youve never seen before! Level Up takes video game music to a whole other level! It's bigger, it's better, and it's for one night only! You won't hear this anywhere else, so you do not want to miss this."
images:
{
"hero":
{
"src": "nathan-cummins-music-with-motion-level-up-1.jpg",
"alt": 'Nathan standing on the conductor''s podium with the words "Level Up" on the screen behind him.'
},
"other": "music-with-motion-level-up"
}
externalLinks:
[
{
"name": "Website",
"href": "https://www.woodvillecb.com.au/2023/music-with-motion-level-up/",
"icon": "mdi:web"
}
]
---

View File

@@ -0,0 +1,29 @@
---
title: "Music With Motion: Next Gen"
role: Conductor / Artistic Director
type: Concert
date: 2024-05-03
slug: music-with-motion-next-gen
keyFigure:
- title: Performed by
name: Woodville Concert Band
href: https://www.woodvillecb.com.au/2024/music-with-motion-next-gen/
description: "Featuring new original arrangements, plus returning fan favourites, Next Gen is the newest evolution for the 40+ members of the Woodville Concert Band. It's bigger, it's better, and it's for one night only!"
images:
{
"hero":
{
"src": "nathan-cummins-music-with-motion-next-gen-1.jpg",
"alt": 'Nathan standing in front of the Woodville Concert Band, who are all standing for applause. The words "Music With Motion: Next Gen" are displayed on the screen behind them.'
},
"other": "music-with-motion-next-gen"
}
externalLinks:
[
{
"name": "Website",
"href": "https://www.woodvillecb.com.au/2024/music-with-motion-next-gen/",
"icon": "mdi:web"
}
]
---

View File

@@ -5,7 +5,7 @@ type: Concert
date: 2025-03-09
slug: pixelated-symphonies
description: "A symphonic exploration of video game music with 14 commissioned arrangements. Experience the magic of these legendary symphonic video game soundtracks like never before! Join [the Adelaide Wind Orchestra] for an unforgettable concert of musical enchantment as video game industry insider and composer Dr Nathan Cummins and AWO take you on a wild ride through this iconic music. From the epic adventures of Super Mario to the heartwarming melodies of The Legend of Zelda, immerse yourself and be swept away by the brilliance of Australia's leading symphonic wind orchestra."
frontPage: { "order": 3 }
frontPage: { "order": 4 }
keyFigure:
- title: Performed by
name: Adelaide Wind Orchestra
@@ -16,6 +16,7 @@ images:
{
"src": "nathan-cummins-pixelated-symphonies-1.jpg",
"alt": "The key artwork for the concert Pixelated Symphonies."
}
},
"other": "pixelated-symphonies"
}
---

View File

@@ -5,7 +5,7 @@ type: Video Game
date: 2025-02-21
slug: rocs-odyssey
description: Explore vast landscapes and get lost in a beautiful yet dangerous world in Roc's Odyssey. Filled with intense combat, strange allies, platforming, enemies, treasures, secrets, upgrades, friendships and lore this hand drawn action adventure will have you hooked!
frontPage: { "order": 4 }
frontPage: { "order": 6 }
keyFigure:
- title: Developed by
name: Sunshine Festival Studios

View File

@@ -0,0 +1,29 @@
---
title: "Water Stories"
role: Conductor / Artistic Director
type: Concert
date: 2025-05-16
slug: wcb-water-stories
keyFigure:
- title: Performed by
name: Woodville Concert Band
href: https://www.woodvillecb.com.au/2025/water-stories/
description: "Immerse yourself in an evening of flowing melodies and shimmering reflections with the Woodville Concert Band on Friday 16 May, as they present Water Stories. This captivating wind orchestra concert journeys through the deep connection between water, nature, and society, featuring an eclectic blend of classical, contemporary, and traditional pieces that celebrate water's power and beauty."
images:
{
"hero":
{
"src": "nathan-cummins-wcb-water-stories-1.png",
"alt": "Nathan asking the combined ensemble of Woodville Concert Band and Woodville High School Wind Ensemble to stand for applause."
},
"other": "wcb-water-stories"
}
externalLinks:
[
{
"name": "Website",
"href": "https://www.woodvillecb.com.au/2025/water-stories/",
"icon": "mdi:web"
}
]
---

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,148 @@
/* Variable fonts usage:
:root { font-family: "Inter", sans-serif; }
@supports (font-variation-settings: normal) {
:root { font-family: "InterVariable", sans-serif; font-optical-sizing: auto; }
} */
@font-face {
font-family: InterVariable;
font-style: normal;
font-weight: 100 900;
font-display: swap;
src: url("InterVariable.woff2") format("woff2");
}
@font-face {
font-family: InterVariable;
font-style: italic;
font-weight: 100 900;
font-display: swap;
src: url("InterVariable-Italic.woff2") format("woff2");
}
/* static fonts */
@font-face { font-family: "Inter"; font-style: normal; font-weight: 100; font-display: swap; src: url("Inter-Thin.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: italic; font-weight: 100; font-display: swap; src: url("Inter-ThinItalic.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 200; font-display: swap; src: url("Inter-ExtraLight.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: italic; font-weight: 200; font-display: swap; src: url("Inter-ExtraLightItalic.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 300; font-display: swap; src: url("Inter-Light.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: italic; font-weight: 300; font-display: swap; src: url("Inter-LightItalic.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url("Inter-Regular.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: italic; font-weight: 400; font-display: swap; src: url("Inter-Italic.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url("Inter-Medium.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: italic; font-weight: 500; font-display: swap; src: url("Inter-MediumItalic.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url("Inter-SemiBold.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: italic; font-weight: 600; font-display: swap; src: url("Inter-SemiBoldItalic.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 700; font-display: swap; src: url("Inter-Bold.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: italic; font-weight: 700; font-display: swap; src: url("Inter-BoldItalic.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 800; font-display: swap; src: url("Inter-ExtraBold.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: italic; font-weight: 800; font-display: swap; src: url("Inter-ExtraBoldItalic.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 900; font-display: swap; src: url("Inter-Black.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: italic; font-weight: 900; font-display: swap; src: url("Inter-BlackItalic.woff2") format("woff2"); }
@font-face { font-family: "InterDisplay"; font-style: normal; font-weight: 100; font-display: swap; src: url("InterDisplay-Thin.woff2") format("woff2"); }
@font-face { font-family: "InterDisplay"; font-style: italic; font-weight: 100; font-display: swap; src: url("InterDisplay-ThinItalic.woff2") format("woff2"); }
@font-face { font-family: "InterDisplay"; font-style: normal; font-weight: 200; font-display: swap; src: url("InterDisplay-ExtraLight.woff2") format("woff2"); }
@font-face { font-family: "InterDisplay"; font-style: italic; font-weight: 200; font-display: swap; src: url("InterDisplay-ExtraLightItalic.woff2") format("woff2"); }
@font-face { font-family: "InterDisplay"; font-style: normal; font-weight: 300; font-display: swap; src: url("InterDisplay-Light.woff2") format("woff2"); }
@font-face { font-family: "InterDisplay"; font-style: italic; font-weight: 300; font-display: swap; src: url("InterDisplay-LightItalic.woff2") format("woff2"); }
@font-face { font-family: "InterDisplay"; font-style: normal; font-weight: 400; font-display: swap; src: url("InterDisplay-Regular.woff2") format("woff2"); }
@font-face { font-family: "InterDisplay"; font-style: italic; font-weight: 400; font-display: swap; src: url("InterDisplay-Italic.woff2") format("woff2"); }
@font-face { font-family: "InterDisplay"; font-style: normal; font-weight: 500; font-display: swap; src: url("InterDisplay-Medium.woff2") format("woff2"); }
@font-face { font-family: "InterDisplay"; font-style: italic; font-weight: 500; font-display: swap; src: url("InterDisplay-MediumItalic.woff2") format("woff2"); }
@font-face { font-family: "InterDisplay"; font-style: normal; font-weight: 600; font-display: swap; src: url("InterDisplay-SemiBold.woff2") format("woff2"); }
@font-face { font-family: "InterDisplay"; font-style: italic; font-weight: 600; font-display: swap; src: url("InterDisplay-SemiBoldItalic.woff2") format("woff2"); }
@font-face { font-family: "InterDisplay"; font-style: normal; font-weight: 700; font-display: swap; src: url("InterDisplay-Bold.woff2") format("woff2"); }
@font-face { font-family: "InterDisplay"; font-style: italic; font-weight: 700; font-display: swap; src: url("InterDisplay-BoldItalic.woff2") format("woff2"); }
@font-face { font-family: "InterDisplay"; font-style: normal; font-weight: 800; font-display: swap; src: url("InterDisplay-ExtraBold.woff2") format("woff2"); }
@font-face { font-family: "InterDisplay"; font-style: italic; font-weight: 800; font-display: swap; src: url("InterDisplay-ExtraBoldItalic.woff2") format("woff2"); }
@font-face { font-family: "InterDisplay"; font-style: normal; font-weight: 900; font-display: swap; src: url("InterDisplay-Black.woff2") format("woff2"); }
@font-face { font-family: "InterDisplay"; font-style: italic; font-weight: 900; font-display: swap; src: url("InterDisplay-BlackItalic.woff2") format("woff2"); }
@font-feature-values InterVariable {
@character-variant {
cv01: 1; cv02: 2; cv03: 3; cv04: 4; cv05: 5; cv06: 6; cv07: 7; cv08: 8;
cv09: 9; cv10: 10; cv11: 11; cv12: 12; cv13: 13;
alt-1: 1; /* Alternate one */
alt-3: 9; /* Flat-top three */
open-4: 2; /* Open four */
open-6: 3; /* Open six */
open-9: 4; /* Open nine */
lc-l-with-tail: 5; /* Lower-case L with tail */
simplified-u: 6; /* Simplified u */
alt-double-s: 7; /* Alternate German double s */
uc-i-with-serif: 8; /* Upper-case i with serif */
uc-g-with-spur: 10; /* Capital G with spur */
single-story-a: 11; /* Single-story a */
compact-lc-f: 12; /* Compact f */
compact-lc-t: 13; /* Compact t */
}
@styleset {
ss01: 1; ss02: 2; ss03: 3; ss04: 4; ss05: 5; ss06: 6; ss07: 7; ss08: 8;
open-digits: 1; /* Open digits */
disambiguation: 2; /* Disambiguation (with zero) */
disambiguation-except-zero: 4; /* Disambiguation (no zero) */
round-quotes-and-commas: 3; /* Round quotes &amp; commas */
square-punctuation: 7; /* Square punctuation */
square-quotes: 8; /* Square quotes */
circled-characters: 5; /* Circled characters */
squared-characters: 6; /* Squared characters */
}
}
@font-feature-values Inter {
@character-variant {
cv01: 1; cv02: 2; cv03: 3; cv04: 4; cv05: 5; cv06: 6; cv07: 7; cv08: 8;
cv09: 9; cv10: 10; cv11: 11; cv12: 12; cv13: 13;
alt-1: 1; /* Alternate one */
alt-3: 9; /* Flat-top three */
open-4: 2; /* Open four */
open-6: 3; /* Open six */
open-9: 4; /* Open nine */
lc-l-with-tail: 5; /* Lower-case L with tail */
simplified-u: 6; /* Simplified u */
alt-double-s: 7; /* Alternate German double s */
uc-i-with-serif: 8; /* Upper-case i with serif */
uc-g-with-spur: 10; /* Capital G with spur */
single-story-a: 11; /* Single-story a */
compact-lc-f: 12; /* Compact f */
compact-lc-t: 13; /* Compact t */
}
@styleset {
ss01: 1; ss02: 2; ss03: 3; ss04: 4; ss05: 5; ss06: 6; ss07: 7; ss08: 8;
open-digits: 1; /* Open digits */
disambiguation: 2; /* Disambiguation (with zero) */
disambiguation-except-zero: 4; /* Disambiguation (no zero) */
round-quotes-and-commas: 3; /* Round quotes &amp; commas */
square-punctuation: 7; /* Square punctuation */
square-quotes: 8; /* Square quotes */
circled-characters: 5; /* Circled characters */
squared-characters: 6; /* Squared characters */
}
}
@font-feature-values InterDisplay {
@character-variant {
cv01: 1; cv02: 2; cv03: 3; cv04: 4; cv05: 5; cv06: 6; cv07: 7; cv08: 8;
cv09: 9; cv10: 10; cv11: 11; cv12: 12; cv13: 13;
alt-1: 1; /* Alternate one */
alt-3: 9; /* Flat-top three */
open-4: 2; /* Open four */
open-6: 3; /* Open six */
open-9: 4; /* Open nine */
lc-l-with-tail: 5; /* Lower-case L with tail */
simplified-u: 6; /* Simplified u */
alt-double-s: 7; /* Alternate German double s */
uc-i-with-serif: 8; /* Upper-case i with serif */
uc-g-with-spur: 10; /* Capital G with spur */
single-story-a: 11; /* Single-story a */
compact-lc-f: 12; /* Compact f */
compact-lc-t: 13; /* Compact t */
}
@styleset {
ss01: 1; ss02: 2; ss03: 3; ss04: 4; ss05: 5; ss06: 6; ss07: 7; ss08: 8;
open-digits: 1; /* Open digits */
disambiguation: 2; /* Disambiguation (with zero) */
disambiguation-except-zero: 4; /* Disambiguation (no zero) */
round-quotes-and-commas: 3; /* Round quotes &amp; commas */
square-punctuation: 7; /* Square punctuation */
square-quotes: 8; /* Square quotes */
circled-characters: 5; /* Circled characters */
squared-characters: 6; /* Squared characters */
}
}

View File

@@ -1,2 +1,2 @@
Nathan Cummins is an award-winning composer, orchestrator, sound designer, and conductor known for his vibrant music across video games, film, and live performance.
Based in Adelaide, he brings classical craft, bold creativity, and technical innovation to every project—from the playful music of _Dungeons and Dining Tables_, to the orchestration of _Awoken_ (composed by Christopher Larkin), and to directing multimedia concert events that bring game music to life on stage.
Based in Adelaide, he brings classical craft, bold creativity, and technical innovation to every project—from the playful music of _Dungeons and Dining Tables_, to the orchestration of _Hollow Knight: Silksong_ (composed by Christopher Larkin), and to directing multimedia concert events that bring game music to life on stage.

Some files were not shown because too many files have changed in this diff Show More