seems that youtube has decided to recommend everyone this video after 10 months, so let me just say thank you everyone!! this is now my most viewed video, surpassing my former most viewed video just today at the time of writing this comment! with this surge of viewers comes more comments, which means more questions... so i'll use this comment to serve as a *Q&A* as i've seen a lot of the same questions posted here: ----------------------------------- _"is this just an animation or did you really get windows to do this?"_ yes! this is an actual application that can runs on windows fully automatically; no animation was done in post ----------------------------------- _"why didn't you add the gray window from the original video?"_ to be honest i really just wanted the project to be completed by the time i got around to doing it, as it had already been taking forever to finish. hope you understand though ----------------------------------- _"what did you code this in?"_ i used the Godot game engine, specifically version 3.5.1 (this turned out to be a huge mistake though, which i'm about to get into) ----------------------------------- _"how did you make this?"_ it was a long process which has a lot to go over, but i'll try my best to explain it all i'll start with the easy part: the window animations themselves. each window was a separate "scene" in the Godot engine, each running their own script and having their own "nodes" which are the animated components themselves; if you want further explanation on that part specifically, you'll have to look into how the engine itself works. the way i made the animations move in time with the music was that every script had a long, multiline string assigned to it that essentially served as its "animation timeline." each line of the string had 16 text characters, all representing 1/16 beats of the song, so each line was equal to one beat. each different character would represent a different "action" that the animation would do at that time. i'll give an example, the first 4 beats that the red window follows: v . . . v . . v . v . v v . ^ . v . . . v . . v . v . v v > ^ . v . . . v . . v . v . v v . ^ . v . . . v . . v . v . v v > ^ L (spaces were added to compensate for the lack of a monospace font in youtube comments) watching the start of the video a couple times, you can tell which character makes the window pulse in what direction. each window would have their own animation timeline that looks different from each other, but easily by far the most complex one was the last window, the magenta one. that was the easy part, but it may surprise you to hear that the rest of this was actually a programming disaster for me. i made several terrible choices during the making of this, so let me start with the most significant mistake i made: using specifically Godot version 3.5.1. the reason this was a mistake is because 3.5.1 doesn't have support for a game or project having multiple windows/subwindows. at the time of making this, the beta version of the next major update to the engine had already been out, but i avoided using it because i sort of wanted to wait until the full version was out before i got used to all of the changes. it turns out that Godot 4.0 indeed _did_ have support for subwindows, and had i known this, i would have probably saved 10 or so hours on the entire project... but oh well. you now might be thinking, how did i even make it have multiple windows if the version i had been using didn't support them at all? i'll be blunt with the answer to that question and say: an incredibly stupid and clunky method, where i would actually have every window as a SEPARATE executable file, and have the first window (the red one) automatically open the rest of them at predetermined times. if you think this is bad, it gets worse... whenever i would open the first window, i made it so that it writes the exact unix timestamp in milliseconds of when the song started playing, to a file. the rest of the windows would then, on initialization, read the file and synchronize their own animations to that timestamp. it was the only way i could think of to have the windows communicate to each other, since they were all separate applications. another problem with this is that it was extremely laggy to run all of them at once, so what i did was record 3 or 4 of them at a time and stitch all of the recordings together in Premiere afterwards. but rest assured, if it weren't for my slow-ish computer, it would've worked fine... i hope this doesn't ruin the authenticity for you, i tried my best :3 ----------------------------------- _"can i download this? if not, can i see the source code?"_ for a lot of reasons already mentioned, no, i will not be posting a download nor a link to the source code. sorry everyone ----------------------------------- alright, i hope that answers everything... if you still have any other questions, do feel free to ask them in the reply of this comment, and i'll try to answer them. again, thank you everyone! i promise i'll upload something cool in the next year or two
id appreciate just the sources for the animation timelines because the need to do something mildly cool like this but my hyper hellscape adhd brain isn't looking forward to programming the timeline
Oh man, the little details like the directional nudges to the beat and melody, this is beautiful! Brings me nostalgia to the windows error remix videos popular back in the day. Good work!
Every major and minor point of progress in the song: 0:03 First window (bass? kick/hi-hat?) appears 0:05 First note is played 0:06 Second unique note is played 0:08 Third unique note is played 0:12 Second window (synth?) appears, all notes from the first window are used 0:13 First note from second window plays 0:18 Second unique note from second window plays, all second window notes are used so far 0:21 Third window (general phonetic) appears 0:25 Fourth window (grunt voice?) appears 0:29 First window of the second row (voice "a") appears 0:33 Sixth window (voice "ah" 1, "o") 0:38 Seventh window (voice "oo"/"u") 0:42 Eighth window (voice sample "d"/"eh") 0:47 Bass and synth cut out temporarily 0:51 First three windows of the third row appear at once (voice "ah" 2 plays first, then two other windows that I don't know what to label with play) 0:56 All inactive windows become active again 1:12 Twelfth window (phone) 1:31 Most windows cut out as 1st pink window (continuous bass 1) appears. New synth notes filling up the rest of the orange window are unlocked and played. The height of the rectangle in the 1st pink window determines vertical position of synth notes 1:49 2nd pink window (continuous bass 2) appears. Height of rectangles in the 2nd pink window are determined by height of the rectangle in the 1st pink window. Some windows become active again 2:06 All windows become active again 2:23 FINAL WINDOW (3rd pink window, miscellaneous) appears, all notes played 2:41 Song finishes with sole purple window's no signal(?) noise 2:43 All windows are exited out of, with the 1st pink window slightly lagging behind In all seriousness though this is actually so good
we all need pointing arrows, bars, flashing letters, circles, moving squares, corner triangles, more flashing stuff, s t a r , polygons, wave visualizers, pac-man, telephone dialing, eyes, and most importantly iPhone 15
me when the uhhh i uhhhh so uhhhh uhhhhhhhh i uhhhhh the uhhhhhh mulugeta uhhhhhhhh so uhhhhhhh when uhhhh the uhhhh i uhhhh maybe uhhhhh probably uhhhh certainly uhhhhhhh i uhhhhh
when you said "when the magenta window said ↪🔄↩🔄↔️🔃↕️↕️🔃↖️↗️🔝➡️🔝🔛🔙⬅️⬅️↗️↖️↗️⬅️🔄🔙🔜🔙⬅️⬅️⬅️↗️⬅️↗️⬅️↙️↘️↙️↘️↙️↘️↙️↙️➡️⬅️🔃↖️↕️🔃↔️🔄↩🔄↪🔃↪🔃↪🔃↔️↗️↔️↗️↕️↕️↗️↕️↘️↖️↖️➡️↖️↘️⬅️↘️⬅️↘️⬅️↖️↘️↕️🔃↔️🔃↔️🔃↩🔃↩↩↗️↪🔃⤴️↗️⤴️↗️↪↗️↪↪↗️↩↗️↔️↗️↔️↗️↔️➡️↔️↕️➡️↖️↘️↖️↘️↖️⬇️↖️⬇️↖️⬇️↖️⬇️⬅️⬅️⬇️↖️➡️↕️↗️↔️↔️↗️↩↗️↩↗️↩↗️↩↗️↩↪↗️↪↗️↪↗️↪⬆️⬅️ I felt that" I felt that
when you said "when the magenta window said 🔄⤵️➡️🔄🔃⬆️🔃➡️🔄⬆️↗️⤵️🔃🔃➡️⬆️↘️↔️↗️↔️↗️↕️➡️↖️↖️➡️↖️➡️↖️➡️↖️➡️↖️➡️⬅️🔃↙️↙️🔃⬇️🔄⬇️🔄⬇️🔄⬇️⬆️⬇️↙️⬆️↙️↗️⬅️↗️⬅️↖️➡️↖️➡️↖️➡️↖️➡️↖️➡️↕️↕️➡️↕️➡️↕️↘️↔️↘️↩↩↘️↩↘️↪⬇️↪↪⬇️⤴️⬇️↪↘️↩↩↘️↔️⬇️↕️⬇️↕️⬇️⬅️↙️⬅️➡️🔄↘️⬅️↘️⬅️↖️➡️↖️⬅️⬇️⬅️⬇️⬅️⬇️⬅️⬇️⬅️↙️⬅️⬅️↙️↖️↙️↖️↘️↕️↕️↘️↕️➡️↕️↗️↕️↕️↗️↕️↗️↕️⤵️↕️⬆️↕️↕️↔️⬆️↔️⬆️↔️↩⬆️↩⤵️↪⤵️↪🔃↪🔃↩🔃↔️🔃↔️↗️↔️↕️↘️↕️➡️↕️↔️↗️↔️↗️↔️⤵️↩⤵️↩⤵️↩🔃↔️🔃↔️↔️🔄↩🔄↩↗️↪↗️↩↗️↩↔️➡️↔️➡️↔️➡️↔️➡️↔️↗️↩↩↗️↩↗️↩↗️↩↗️↩↗️↩↗️↩↩↗️↗️↩↗️↩↗️↩↩🔃↩🔃↩🔃↩↗️↩↗️↩↩↗️↩↗️↪↗️↪↗️↪↗️↩↩↗️↩↗️↔️➡️↕️➡️↖️↖️↘️↖️⬇️↖️⬇️⬅️⬇️↖️↖️⬇️↕️↘️↕️➡️↔️↗️↔️↗️↩⬆️↩↪⬆️↪⬆️↪⤵️⤴️🔃⤴️↪↪↪↗️↩↗️↩↔️↗️↔️🔃↔️🔃↕️🔃↕️↕️↗️↕️⤵️↕️⬆️↕️⬆️↔️↔️⬆️↩↗️↩⬆️↩↩⬆️↪↗️↔️↔️↗️↔️↗️↔️↗️↔️↗️↔️↗️↔️↗️↔️↩↗️↩↗️↩↗️↩↗️↩↗️↩↗️↩↩↗️↩↗️↪↗️↪↪↗️↪↗️↪↗️↪↗️↪↗️↪↪⬆️↪↪⬆️↪⬆️↪⬆️↪⬆️↪⬆️↪⬆️↪⬆️↪⬆️↪⬆️↪⬆️↪⬆️↪⬆️↪⬆️↪⬆️↪↪⬆️↪⬆️↪⬆️↪↪↪⬆️↪↪⤴️🔃⤴️🔃⤴️🔃⤴️🔃↪🔃↩🔃↩🔃 I felt that" I felt that
no 16th grey box with japanese that encodes a secret message. unfaithful, 0/10 ok but in all seriousness, this is incredible. i can't even begin to think of how this works, much less how you _pulled it off._ amazing work -Hyper
so saddened by the fact that there was no grey box, expected a 1 year arg towards a location that gives free money from just a simple base 64 encoded code inside the grey box. on how it works (from what I've heard/seen), each box has its own string, with any character denoting any symbol/sound, and it being separated by periods (as in no sounds), and spaces to denote each new beat the windows don't play any sound, and open depebding on how long ago the first box was opened I may be incorrect
Pretty sure this is an animation, not a actual program, it would certainly be possible to do something like this, but would likely not be as smooth as this.
@@doge7831 it says in the description that it's made on actual windows, also things like this have been done before to good effect, like that one youtuber who made the geometry dash window move with move triggers