maj-6
Level 9 Signalist
 
bytebeat
1st/9

 
springiness 
46th Σ4.939

 
equinox 
54th Σ5.225

 
germinations 
45th Σ5.279

 
flower power 
59th Σ5.208

 
spring in pants 
55th Σ5.201

 
Something New
 
  47th/272   Σ25.852   Apr 13th 2022 1:58am
 
 
I found out about bytebeat recently and spent a while tinkering with it; figured out a bunch of cool stuff independently from any of the examples online. I worked out a formula to generate all of the notes of a Pythagorean scale in terms of the number of steps away from the base pitch, and I have done some fun things with it here. It's all done a little weirdly but I love how it turned out.

To me the beauty of this is that all of the musical information is "implicit" in the formulas. (no arrays, no tests for equality, etc.)

https://greggman.com/downloads/examples/html5bytebeat/html5bytebeat.html#t=0&e=0&s=32000&bb=5d00000100480700000000000000178a8027783ef0ceec2081020684f6ed3bab26ae21ade44566935e8df6220e831a76539974e0095646a51b37c87ffbb9db273707264cc663af154aca168ab322083898778127b26e3830f4a51eeff6de8053d119441acd3de8d2c6416eb055d23fb9e1ace0a3c7066c36adb8fded78bd4da4c6e4e16393ee727ff8d136d1af2116a78ec7888236e85486f16e8cb78ca572753775d63b9ab0ec2c6e5135d35a6dc9f26ff557306fa902aa111deef94d907a6f2656738bc8acbb3880b4a79c4d1ec6b7ea762ea1e7b6b968c7041040a3434d4b1f2a41769372e2e2dfdd9197d3573f7cdda7135f8f945b9bb1ff9083972c24c6831e30808df97863f6e7cb204c90a1a82800ff7546025cdcc780dc0d3b2cc87cb209433dd3da1343a71d70f049a7cf32f818333561d241193d84e4b0c7fd14755374db3381c4dfc91ddae2c78aa33cac55bbdbbbdb219fe81743927a8f4efd01eca309ad09290932be9243954cff500529cf8b5400626ad64aaafe7bb5b104afc6a89e61d79fdb06b0df6a52f86ba060950679b23dae6e5585347c7bf134c3191f388f137ab2a06f8856d115222d2a855f79321c40b535ba7c8d25ae0f62e65037b19aa12f83d1148c0cd88c98eb535267beb4cc88bc64f776b4ef94d60a9997c307292e42c6775dc8d41c277d4beac2c6e75c44af151149bed7c69751e41b3086e892872150bbb21e82cdf09972104b2a85a3e10567212bdece63e3cc6b2b4742453098bad1bc0ebcd6bed14c8a2da979e7ccdab4053c1ea8cb9b954c44d1e5b82c92b9bf99060fb4ef0e4eebdbf0de765805a6fea83c262ea556ad9b9e239e0d792b8d56ef490e34cbd226c5035c03e8b82058dabcb2c4e866852431ba86bf2abe1e4aca3b8b96ffa75f29a02b96900bc8ce59d1ff91d92daf8d8d404dcaf26645ca303046424210904d16346ef5c0880367d0fca6c6a32077fc39558c1d2545fbdb341d93c7dd89aed13becd82dc48cdb7ad79a9ba069e971b924c78d8a8fd0a07dbd53f913d2acc0f53af3f9ea0b470acf73c7ffa2c49980
Creative Commons License
53
15
17
10
16
 


previous entry
ipi - Redirect


nextious entry
Bravoman - A Call from the Valley
 
155748
Level 27 Chipist
hanna
 
 
 
post #155748 :: 2022.05.06 5:20pm
  
  maj-6 and damifortune liēkd this
i really like this, it's so cool and chill
 
 
156879
Level 20 Chipist
kilowatt64
 
 
 
post #156879 :: 2022.05.27 12:51pm
  
  maj-6 liēkd this
very cool! I've never seen a signalist in the wild
 
 
156976
Level 10 Signalist
SthephanShi
 
 
post #156976 :: 2022.05.30 3:13am :: edit 2022.05.30 3:14am
  
  maj-6 liēkd this
I really like your tune. And it's cool that you generate notes and chords mathematically. I also compose bytebeat music, but relying on arrays and conditions. But you managed without them, awesome! This is a good challenge!
 
 
157017
Level 9 Signalist
maj-6
 
 
post #157017 :: 2022.05.30 7:29pm
  
  SthephanShi liēkd this
Thanks! That constraint was the most interesting part; it takes a lot of tweaking to create something that sounds like a coherent pleasing structure without explicitly notating anything.

My original aim was to make it as close to C-compatible as possible, so there is a ton of unnecessarily duplicated code and parts that could have been done a lot more neatly using functions. But this was a fun experiment. I've been putting together something a lot more elegant to submit for the summer one.
 
 
157134
Level 10 Signalist
SthephanShi
 
 
post #157134 :: 2022.06.03 12:34pm :: edit 2022.06.03 12:35pm
  
  maj-6 liēkd this
Oh, I'll be waiting! Maybe I'll write something too. :)
Yes, it immediately caught my eye that your code can be greatly optimized using functions. If you were C-style, you should have used pow() instead of **. And also int() in javascript floors and in C it truncates, you can use bitwise "| 0" instead.
And the melody is so really nice, with a nostalgic vibe, I am still listening! Also I have added your song into the library on my bytebeat player in the [Big JS] section:

https://dollchan.net/bytebeat
 
 
157167
Level 9 Signalist
maj-6
 
 
post #157167 :: 2022.06.03 10:11pm :: edit 2022.06.04 4:09pm
  
  SthephanShi liēkd this
Thank you! And thanks for the tips; I didn't know about the type coercion with bitwise operators.

Here's a link to a minimal example using functions. It includes a few of the different scale formulas I've come up with, which give the frequency ratio to the tonic pitch as a function of the degree of the scale. I hope other people might be able to do some interesting things with this, since it creates the potential to encode a lot of complex musical information in an extremely concise way. :)

edit: I'm allowed to use firki now

https://dollchan.net/bytebeat
 
 
157250
Level 10 Signalist
SthephanShi
 
 
post #157250 :: 2022.06.06 6:36am :: edit 2022.06.06 7:26am
  
  maj-6 liēkd this
maj-6, cool! It was very exciting to play with your code and to understand the musical theory in more detail, to get acquainted in depth with the information on various musical scales. So I modified your code to play custom tempo and custom sample rates. Also I brought all the formulas to a single correspondence with the absolute sound of notes in Hz. I will use your ideas in my songs.

"Something new" synchronized


And yes, congratulations on your victory and first place! It is well deserved, because your braintech is really cool :)
 
 
157287
Level 9 Signalist
maj-6
 
 
post #157287 :: 2022.06.07 11:39am :: edit 2022.06.07 11:51am
  
  SthephanShi liēkd this
Sthephan, Here
is an example using SArpnt's fork of your player, which supports stereo.

This is sort of a proof of concept for some of the ways that a lot of musical information can be compressed nicely into an "implicit" form. Note again the lack of arrays or other explicit notation.

There is still room for optimization here, but my last edits coincidentally ended up at 1,337 bytes and I thought that was just too perfect to mess up.

Oh, and the tweaks you did are nice. Being able to adjust the key and tempo independently is fun.
 
 
157290
Level 10 Signalist
SthephanShi
 
 
post #157290 :: 2022.06.07 12:21pm :: edit 2022.06.07 5:20pm
  
  maj-6 liēkd this
Wow, what a jaw-dropping banger track! Cool Arabic harmony! And as always, you calculate musical harmony and don't use arrays. That's your own code style feature. How did you write it so quickly? So much work has been done here to encrypt such a volume of musical information! I'm really looking forward to the full non-minified version! I especially liked the transitions to a higher key at 108 and 162 seconds, and so on. But after 2000-3000 seconds it starts to go out of line, and distortions appear.

Also, my player supports stereo too, check it out
! Even fixed some rendering bugs occured on sarpnt's. Added your song to the library in [Big js] section, with new "Stereo" info tag. And I'm just writing now my own first stereo track that would be interesting to listen to with headphones.

So bad that the Summer Chip XII competition doesn't allow bytebeats. It's a pity. :( In fact, there are only two big competitions on this site where you can post a bytebeat. Spring Tracks and Winter Chip...
 
 
157301
Level 9 Signalist
maj-6
 
 
post #157301 :: 2022.06.07 6:31pm :: edit 2022.06.07 6:32pm
  
  SthephanShi liēkd this
Thank you. (: How long has your player had stereo support? I seem to remember trying it a while ago and having no luck. (Also, thank you for all of your work on it; it is such a gift.)

I'm not sure which of the components is causing the distortion, but by the time it appears, the song has long since modulated to a far higher key than is meant to be listened to.

When rendering the track to mp3, I think I would fade it out around the 220 second mark, since that is about when all of the development has finished and it becomes fully repetitive except for some quasi-random variations.

The really lovely thing about the approach here is that when you break it down, it is based on simple principles and modular, easily reusable parts, which allow for quickly creating relatively complex arrangements using a minimum of "black magic" or obscure tricks. That makes it a lot of fun to play with. Also, while I think it is fun to try and make musical information "implicit" as much as possible, it is quite easy here to make use of direct notation in a way that still ends up being fairly elegant and concise.

When I have a little more time I will sit down and try to put together a template with some things that other people can use. I am hoping that other people might be able to do even more with it than I have, since it's an approach I haven't seen anywhere else that I think really makes bytebeat a bit more accessible as a creative medium.
 
 

LOGIN or REGISTER to add your own comments!