Level 26 Chipist
bytebeat 1k

39th Σ4.823

32nd Σ5.068

36th Σ4.871

15th Σ5.230

Rarity in Pants 
31st Σ4.843

1k dance
  29th/112   Σ24.835   Mar 10th 2019 4:13pm
1007 characters (less if i remove all line breaks), although the .txt file itself is 1023 bytes big, so there's that.

i'm proud of this, not so much because of the song itself (it sux), but because i pretty much made this from scratch, figuring stuff out by myself (while on other entries i based myself on code from jimmyoshi/greggman, not really trying too much to understand what was Actually going on in it).

so yeah, i hope you like it!
Creative Commons License

previous entry
MovieMovies1 - I Still Love You

nextious entry
EXPL0Si0NTiM3R - Todomaru
Level 26 Chipist
post #108974 :: 2019.03.10 4:13pm :: edit 2019.03.10 4:13pm
and here's a link
to greggman's website! play in 11khz if it isn't already
Level 24 Chipist
Yung Gotenks
post #108975 :: 2019.03.10 5:08pm
  raphaelgoulart liēkd this
i really like that chord progression. very impressive! i just wish it was longer, but 1k doesnt leave much room i guess.
Level 26 Chipist
post #108978 :: 2019.03.10 5:42pm
  pigdevil2010 and tennisers liēkd this
Level 24 Chipist
Yung Gotenks
post #109014 :: 2019.03.10 8:31pm
  raphaelgoulart liēkd this
Been listening to this on repeat, such a good song..
I've always wanted to know how those variables with the list of pitches (numbers) worked.
Seems like it creates an actual sequence of notes you can change individually rather than one note or something.
Level 26 Chipist
post #109019 :: 2019.03.11 8:10am :: edit 2019.03.11 8:11am
  Yung Gotenks and kleeder liēkd this
so, messing around with bytebeat you probably noticerd that putting only "t" will generate a sawtooth wave at a fixed frequency.
you might also have noticed that multiplying t with something will change its frequency.

if we want to make a sawtooth that changes notes over time, we will need some kind of time reference. of course we can use t itself, but for me its simpler to divide it with some number, and use a "beat counter" or something.

so based on that, here's some small code:
beat = t/1000,
notes = [4,0,4,4.5,5,5,4,0,5.3,5.3,5,0,4.5,4.5,5.3,0,5,5,4,0,3,3,2.8,0,2.65,2.65,2.65,2.65,2.65,0,2.65,2.8],
t * notes[floor(beat % 32)] % 128

"beat" is the "beat counter" i mentioned above
"notes" is an array representing which number should t be multiplied with at each moment in the song
"t * notes[floor(beat % 32)]" means t multiplied by the number found in the position "floor(beat % 32)" inside the "notes" array. wtf is that position?
"beat % 32" ensures that the value loops from 0 to 31, since the "notes" array has 32 values in it
"floor(beat % 32)" ensures that the number gets rounded down; since you can access the 3rd position of an array, but not the 3.85649084rd (reminder that beat = t/1000 and t/1000 will not necessarily be a whole number)
lastly "% 128" in the end just halves the volume of the saw, but also doubles its pitch (test with t%128), this is useful because we cannot have more than one track if this one track's volume is maximum

this is the base of my track really, all it changes is that i used different instruments other than sawtooth, but the way notes are stored are pretty much that

i hope this explanation is decent enough! i just woke up so some parts may be poorly written, if you have any questions feel free to ask etc
Level 26 Chipist
post #109020 :: 2019.03.11 8:24am :: edit 2019.03.11 8:24am
  Yung Gotenks liēkd this
also here's a 44khz render
, because why not
Level 9 Playa
post #109447 :: 2019.03.31 9:13am
  raphaelgoulart liēkd this
Very nice :)
Level 7 Signalist
post #133419 :: 2020.12.27 3:32am
  raphaelgoulart liēkd this
excellent song, nice code, should have won.

LOGIN or REGISTER to add your own comments!