/ocarina.party

Link's Ocarina simulator / React components demo 🎼 👾

Primary LanguageJavaScript

Ocarina Party

Link's Ocarina

"The flow of time is always cruel: its speed seems different for each person, but no one can change it. A thing that does not change with time is a memory of younger days." -Sheik

Preview

Link's Ocarina simulator preview

Available Songs

Running

$ make

Contributing

You can find Zelda songs and sound effects in sound banks like this one.

Adding Songs

  1. Add .mp3 file to src/sounds/songs (rename to match style if needed).
  2. Add song reference to src/components/audio/Soundtrack.js.
  3. Add song keys to matchSong() in public/main.js.
  • -> 119
  • -> 97
  • -> 115
  • -> 100
  • -> 103

PRs that solve the song matching better are super welcomed!

Song matching caveat: at this time, songs are limited to 6 keys. It's hardcoded at playSong() in public/main.js.

Adding Instruments / Transformations

I thought of adding Link's transformations (Zora, Goron and Deku) as "game modes" that you can change pressing a key. If you'd like to help with that, you'll need to:

  • Propose an UI for showing modes
  • Change src/images/link.png depending on the mode
  • Load the new instrument:
    1. Make a directory in src/sounds with the instrument name in lowercase
    2. Add .wav files in a way similar to src/sounds/ocarina
    3. Change Instrument's name value in src/App.js depending on the mode

"Deploying"

Github Pages is configured to serve files from the /docs folder. It seems that it cannot be changed the source folder name, so you should follow these hacky steps before submitting a PR:

$ make build

Credits


Zura Guerra made this project in early 2017 as a fun way to learn React while messing a bit with the first tutorial of Javascript30.

You can reach her at zura@mazing.studio.


A Mazing project

Mazing Studio

Sponsored by Mazing Studio

We love to solve problems using Go, Elixir and React.

Have a project you need help with? Tell us about it!