Shawzin music compiler
Hi, this app will translate musical notes into shawzin code that you can copy&paste to play your favorite songs.
Made by DANser-freelancer (github), danser.3_3 (discord).
Rules/Tips:
-
App notes explanation:
- The structure of the notes is such: (1-4096)+(A/B/C/D/E/F/G/H/I/J/K/L)?(+)(A/B/C/D/E/F/G/H/I/J/K/L).
- Each note must be separated by a comma (2A, 34F,...).
- You must add number (1-4096) before each note to indicate it's position on the timeline, you can start from any position.
- The notes positions must always be in ascending order (25A,2B,3C...) is not a valid structure.
- The input field is case insensitive, you can write "A" or "a". Also you can use spaces and newlines, and you can resize it.
-
To play a combination of notes in the same moment you must write them using '+'
with only one timing indication, and with no repeating notes.
e.g. (25A+B+C, ...)✔️|||(25C+A+B, ...)✔️|||(25C+A+B+B, ...)❌|||(25A,25B,25C, ...)❌|||(25A+25B+25C, ...)❌.
Unfortunately not all notes can be played together, more info here. - You will need to approximate the melody, use the 'Transpose notes' feature as a visual aid, it will display the line numbers in the 'Iteractable note sheet' as well. Line 2 is where you would find the clef 🎼.
- Notes written on the transposable scale do not carry the actual musical names, they are intended for easier visualisation. To see true note relations visit this table, or hover over note names in the transposable note scale and 'Interactable note sheet'.
- For meaning of musical symbols read this page.
-
Shawzin explanation:
- Shawzin has a concrete set of notes for each scale, you cannot transition over to the other scale mid-play as you would do with a piano for example. Unless you don't use autoplay, then you can press tab a bunch of times at the right moment. (at that point you're better off fiddling with a midi bot)
- Shawzin fast mode sets the play speed to 240bpm, slow mode sets the play speed to 120bpm, max amount of notes at any speed is always 4096, max length of the track is therefore 8min 32sec.
- Switching between fast and slow mode changes the max track length and the amount on notes you can shove into one second.
- Duration of a sixteenth note (in seconds) = (60 seconds) / (BPM) / 4, this formula will allow you to understand the available miminum distance between notes.
- Ultimately all shawzin notes have the exact same duration of "hit the chord" moment, you only think that you seem to be playing notes of different durations, based on the empty space between them. Think of it like playing drums.
- You cannot "stretch" the note out like a piano or a violin because of how shawzin codes work, if you don't use autoplay then you can use whammy but it will lower the notes by a semitone.
- Note that while note spacing is small, the note sounds can be quite long, in particular the sounds of Void's song, Aristei prime, and Lonesome shawzins.
- The shawzin codes can be used with autoplay for killing time in a defence mission for example. Or they can just be used as a guide, the notes will show up on the track and you can learn to play the song by hand.
-
Interactable note sheet explanation:
-
'Interactable note sheet' heat map:
-
1
11
- From 1 to 11 color it shows the amount of combinations that have this particular note.
- If you see more than one note of the same "heat" it usually means that all the notes in that color must be active to produce valid shawzin code.
- If you aren't sure, you can always click [Translate sheet] and see if you get any errors.
-
- You can add notes to the 'Interactable note sheet' by clicking on cells, the small numbers below represent the timeline position of notes (1-4096) and position of a 4/4 bar(measure) in "{}" brackets, e.g. sixteenth notes n1-n16 in bar n{1} sixteenth notes n17-n32 in bar n{2}.
- [Slow mode] toggle will move the bar brackets "{}" making the bars 16 long on slow mode and 32 long on regular mode. Since the regular mode shawzin runs at 240 bpm we technically transition from 16th notes to 32nd notes, because the speed is doubled.
- The left and right skip buttons will skip 4 notes (columns) per click forwards or backwards, you can change the skip amount in the number field near the [Slow mode] toggle.
- You are able to make and copy a functional shawzin code using this tool.
-
To scroll with your mouse wheel
Hold[Shift]
thenScroll
. -
Copy-paste note chunk:
- You can copy a chunk of notes from one timeline position to the other.
- You have to define the chunk edges in the 'from' input, your chunk start and end can vary from 1-1 to 1-4096 to 4096-4096.
- You have to define the new start of your chunk copy in the 'to' input, it can vary from 1 to 4096. In case your new start position doesn't leave enough space for pasting the full copy, it will be cut off when reaching the end of the note sheet.
- The numbers are of 'including' type, so "from 23-27 to 34" means "copy notes (including)23, 24, 25, 26, (including)27 and paste them at (including)34, 35, 36, 37, 38".
- e.g. (from 1-1 to 2)✔️|||(from 1-56 to 2)✔️|||(from 7-56 to 2)✔️|||(from 67-1 to 2)❌|||(from 0-14 to 2)❌|||(from 4090-4097 to 67000)❌.
-
'Interactable note sheet' heat map:
-
Progress explanation:
-
All progress on the page is saved and can be reset(deleted).
Text field notes Set music volume Notes transposition Note sheet notes Selected scale Set skip amount Selected shawzin Playhead position Toggled slow mode All persist even if you close the window.
- The page doesn't reload after you reset the progress, as your last failsafe, you can click and change the windows and selections you want to be saved again.
- Whenever I use the word "overwrite" it means both the app inputs and the saved progress will be changed for good, unless mentioned otherwise.
- The new versions of the app should (most likely) be compatible with saved progress, unless the 'Patchnotes' section specifically mentions changes related to it.
-
This app uses localStorage of your browser to save the progress as non-expiring data, with limited max size. If you get "QuotaExceededError" you might want to clear entries you received on other websites that you don't visit anymore.
- Export progress to see how much space this particular app occupies (the size of the file will be approximately equal to current localStorage usage).
-
-
Export/Import feature explanation:
- You can click [Export Progress] to save a file containing current app version number, and everything that is saved as "progress".
- You can click [Import Progress] to load your or someone else's saved file.
- [Check version compatibility] toggle will stop the app from importing old save files, they can potentially break your progress completely. I recommend you first export your current progress before importing anything.
- The app only makes use of one file, in case you select multiple files it will use the one that has been created/changed most recently.
- I have placed some safeguards for imported files, however I can't guarantee the safety of your progress if you import invalid files, so... just don't do it?
- The name of the exported file is always "ShawzinMC_{date in your local format}.json", however you can rename them as there are no name restrictions for imported files (except for ".json" extention, don't touch that).
- If you don't like the automatic download and want a dialogue window to appear - you should look in your browser's settings, it's unrelated to this app.
- You can click [Import Shawzin Code] to interpret shawzin code as notes.
- To import shawzin code you need to paste the code in the note field before clicking the button. This process will overwrite the note field, the scale selector, and the 'Interactable note sheet'.
- When importing the app will freeze for a few seconds, be patient.
- After the import you will be able to change the notes to your liking and create a new shawzin code and a new progress export.
-
Database explanation
- The database shows name of the song + name of the band + approximate length of the track in (minutes:seconds) format.
- The songs are automatically sorted in alphabetical order.
- Length of the track may vary if you enable slow mode.
- When searching for a song - click on the field and write the song or band name. If you clear the search bar it will show every code we have.
- "N/A" means "not available", it is used when I can't find the author or the name of the song.
- "Database" in this case is just a fancy word for "text file". Live servers cost money you know, so it will be updated with new versions of the app. If you want to add a code don't hesitate even if we already have the song you want to add, come over to the discord server (big logo, top of the page).
-
Keyboard combinations: *(may lag when held down)
Hold[Shift]
+Press/Hold[🡒]
skip forwards x notes.Hold[Shift]
+Press/Hold[🡐]
skip backwards x notes.Hold[Shift]
+Press/Hold[🡑]
increase skip amount.Hold[Shift]
+Press/Hold[🡓]
decrease skip amount.Hold[Shift]
+Press/Hold[P]
play/pause note sheet.Hold[V]
+Press/Hold[+]
increase volume.Hold[V]
+Press/Hold[-]
decrease volume.Hold[T]
+Press/Hold[+]
transpose notes up.Hold[T]
+Press/Hold[-]
transpose notes down.-
If something is broken or the version of this app changed you should refresh the page without cache,
Hold[Ctrl]
+Press[F5]
. If something is still broken, tell me. -
To select all text in the note field click on it then
Hold[Ctrl]
+Press[A]
.
- Keep an eye on the 'Patchnotes' section, this app is still in development.
- Click on the logo (top of the page) to join discord server for Warframe musical stuff.
Low ============================>> High
Shawzin codes database:
Interactable note sheet: