Bytebeat

To bottom
Changelog / Common thread / SthephanShi / kOLbOSa_exe / lhphr / PortablePorcelain / HypernovaHeathen / BaenHoHoHo / SArpnt / hcdphobe / OnixIsThePewterGod / Zackx / GetDolphinedLol / psubscirbe / ChrisRM380 / Kouzerumatsu / MT2023 / Decent-Manager-6169 / Chasyxx / Glebguything / absolute197 / ANoUserXD / MarioFan171

CAPTCHA
 Deletion password
  • Supported file types are JPG, PNG, GIF, WEBP, WEBM, MP4 and MOV.
  • Limit: 4 files, 30 MB per file (60 MB for Passcode users).
  • Images greater than 250x250 will be thumbnailed.
  • 944 unique users on the board.

141 Reply
think speak heavy.png
(140.12KB, 680x361)
decided here would be the easiest place to post for now considering all the other stuff i have going on, going to answer some questions i probably have:

i deleted my reddit and youtube and other account because i'm trying to clean up all sorts of accounts for privacy reasons, i don't trust reddit with my account and i didn't enjoy posting there. i feel like i only had my point proven when everyone became unable to post. songs that i release should appear on my website when i get around to it so i don't feel like i've lost anything.

my website hasn't been updated in a long time because i've wanted to really do a proper cleanup for a long time so i can fix all the bugs and massively reduce the loading time (then post on things like 512 kb club, 256 kb club, etc)

the reason i've added funcbeat mode is for a few reasons:
- i wanted something that would be close to something like tinyrave, with a statement based syntax and sec t since it feels less like something ported from C and more fitting for javascript
- passing a function out and having the scope around it allows better performance since every variable outside of the returned function is only passed once
- because t is only passed into the last function, you can always easily take the last function and create a wrapper around it to warp time after the fact
- because of a few of the previous reasons and other practical differences it can be very useful to show off the music making aspects in a demonstration without having to explain things like sample rate and bytes and other programming concepts


anyways since the website isn't going to have a visible update for a long time i'll post this song here early:
Post too long. Click to view.
213
bagladesh.jpg
(107.43KB, 3555x2133)
2802
Screenshot 2023-12-18 at 05-10-23 Bytebeat compose
(59.86KB, 1024x320)
>>141
It's been over a year since your post and I finally decided to make a Funcbeat mode in my player, heh.
Here some tutorials how to convert bytebeat to funcbeat:

"42 melody" ported to funcbeat (play):
return (t,s)=>(t*=s,t*(42&t>>10)&255)/128-1

In this case, if you choose other sample rates, the sound will change. To prevent the sound from changing, you can set 8000 sample rate in the code, as in the original 42 melody (play):
return t=>(t*=8E3,t*(42&t>>10)&255)/128-1

Note that the funcbeat has a floatbeat range, from -1 to 1. Actually, (x&255)/128-1 is a conversion from bytebeat to floatbeat in the code above.
"stimmer" ported to funcbeat (play)
return (t,s)=>(t*=s,t*(4|t>>13&3)>>(~t>>11&1)&128|t*(t>>11&t>>13)*(~t>>9&3)&127)/128-1

In this case, the formula contains &127, so it’s enough to do x/128-1.

Also, some variation of my Dark Forest, ported to funcbeat: Attack in the Forest

Message edited: 18.12.23 Mon 06:31:37
2825
t/=48E3,s=s=>2**(('023578'[s%7|0]||10)/12+(s/7|0)+7.5),o=(t,b)=>(O=[O=t>12&&sin(b*200)/4+(t*s('0035'[t/3&3])/4%1>t/3%1)/4*b||0,O],(T=>{for(i=0;i<9;i++)(N=t-3/8*i)<0||(n=N*s(N%3*4-(N/3&2)+7),O[i%2]+=N<132&&T(n+N%3/9*T(n/((N/3&3)+1)))*(1-N*4%1)/3*.6**i)})(t=>abs(t%1*4-2)-1),O),t>127?o(t+4):o(t>48?(a=t%1,x=t*2&7,(t/4|0)*3+(t>96?(t&3)+a-(x>3):[a,(t&3)+[a%(1/12),(a-1)**2,a,a-.5,a*3/2,a*2/3,a-1,a-1][x],[a*3/2,a,a*3/2,(a-1)**2,a,a-.5,a*2/3,a*2/4][x]][t/16-3|0])):t,t<24||(t*(t/8-13|0?2:1)%1)**.4)

https://dollchan.net/bytebeat#v3b64ZVJNb6MwEP0vSCQzYxN/JhAak1P3SKSqN8TBdLMSUhtWiw+RSv97h7a3PdieeX7z5sN+z16m39eszpIKvnp0cg5zaCwRwFZbty+rbTfn5aL7ZTEalbECZsU+inK3RzkFSHLA0MAldJeQGmM3m3m8wUBWM98LSDSzlnb7bZeU27ie0dw0bOeGTRqWRctLL+E5NO9/pn8wBv0wno4PoxAIbUiFUxWNeNLLArfQslybO/IFtCxnuRCUl27MbS9CezKOC3iGm2COOhJbCr6IDoVBRAJTtOTX1I52B2LhD4QUmjjMkHLDuhYLw5Io127K8wRJeKz5aHx1hhiYJe8hkd2UEpLyPAxy3GdzPJwhrYliAffGYd1F+Q10MQfDw0MJkcWJrIwyFru9jOQUO2SVY8Csq+/uvex+Ln4I/4d9BfDuV3rPozWHwvE7IdZJppP1PK1EXF9VGMbPtjaYrxo7j5nM5vj29/X6FBM/vq+01jJ7+/4Jv16nmIZrTNnHJw
3101
FtFB9K.gif
(3.16MB, 320x320)
i showered.png
(848.60KB, 1052x731)
i've done a bit of work on the website again! one of the big things is a new url system, shorter than ever before, and it'll almost certainly shrink further when i figure out how to generate a deflate dictionary.

did you know the url anchor has 89 valid characters? it took quite a bit of digging to find that, but i use every single one of them.

not a lot of changes are visible on the actual website, in fact i've removed some buttons, but the code has improved significantly and codemirror has been updated.

and yes, the version in the repo works. i encourage you to use the code as much as you want. in fact, please do steal the url code, it's even in its own folder. if you can, please DON'T put the code on github. i don't like that github is scraping all the repos to make copilot. i reccomend you use some other git host instead like https://codeberg.org/codeberg. i'd like to hear about any projects you make.

i have some song drafts sitting around but i haven't finished any of them yet. i did get some nice noise generation though!

here's just a noise generator:
https://bytebeat.ficial.net/#6@yHrD(4NRg{X7xq]s7YP\3ju~\E_HD]Ka4yzmXo#1&DqqbZ_4R-Iz(Uj0/?(4E:SoL5OFNz/Yw/0CEryA|TSw?'4SBT$WR3ihu#M[O

and here's a drum beat, with a pretty good snare and hat:
https://bytebeat.ficial.net/#6lU&OQss1K|uQ.3eBeV?e3G)k.\)eN$F|Qo[_m3Z#LezrJ)gI|H^gU2#Pq.iR5RZTOAoS:O*QE(X1n1HGw=kybPg0as7Njf\7l(?P*^M8PznRqx-qJ((?xC^Eds4qA~Bg?~+]IBi2gDQ2f33+0ltQ&SA'|Pc-m0sS+'kQFjwCp91r/pM:+ypmUVa&K7*
Post too long. Click to view.
3102
apparently the bulletin board does not use bbcode. it uses half of it and also uses markdown elsewhere.

codeberg
noise generator
drum beat

i might need to revert the url changes, i didn't see beforehand that it breaks markdown.

3078 Reply
Screenshot_2024-03-08-17-16-00-051.jpeg
(174.24KB, 1280x800)
x=(t,y=256)=>(t/4*(4|7&t>>15)>>(~t>>13&1)&128|t/4*(t>>13&t>>15)*(~t>>11&3)&127)%y,l=16,(t?f+=x(t)-f/l:f=0),[f/l,(x(t)+x(t+1)+x(t+2)+x(t+3)+x(t+4)+x(t+5)+x(t+6)+x(t+7)+x(t+8)+x(t+9)+x(t+10)+x(t+11)+x(t+12)+x(t+13)+x(t+14)+x(t+15))/16]

https://dollchan.net/bytebeat/#v3b64LY/BDoIwDIbfZYlLBzOsGxtIsvkOXo0HonDCaOIOENFnd9hd+jV///5p3+z6uA2sY7OHKBevrRM+QKzqAuq14TEEtCIE+G6d4Sg46nb9z0khR0EG5GYzNGK3yMmjkxCPY+lniGI/VlM3eiXkOXUSNq1MpUSCJhhCTbAER2gILeGQ11VmzsEchDkJc1Q6UlToLkyyV39/TsOpj+lxo5VSnx8
3085
3124
3160

22 Reply
Bytebeat guide.png
(314.33KB, 778x741)
I decided to make a guide because I didnt find a guide that i liked a lot, I put a lot of time and effort on this guide, so please take a look at it, also in the guide I left a part for things that are left to do or understand of bytebeat, I also recomend that if you consider yourself a bytebeat expert, you make a guide of your own, with all the advance learnings. (I'm not a native english speaker, so please forgive my grammar errors) the link https://drive.google.com/file/d/1uxgDR60iwMvvoN96s_OGl5nz5KEHDKN-/view?usp=sharing
23
Hi Ravary and other "bytecoders",
there is a demoscene related Discord server (specializing on sizecoding), where we have a dedicated channel for generative music. The organizers of Lovebyte are also there. So if you like to join, this is the invitation link: https://discord.gg/JrttMx2S
24
The Discord invite expired. Is invite still available? Interested in the community.
25
Oops, it expired. Here is a non expiring one: https://discord.gg/ZjENf3PhDb

And there is another Discord with a dedicated bytebeat channel here (down in the "Beauty of Math" section): > https://discord.gg/NBXBKEEg6D

220 Reply
Lovebyte Turbo @ Evoke 2022 (live capture with audience), YouTube.com
Hi, I made this as an entry for a 4-entry bytebeat "competition" (without voting) as part of the mentioned mini demo party "Lovebyte Turbo". It's been shown for 30 s to the crowd (check video), but you can run it for longer of course. The main requirement is to make the code not bigger than 256 bytes.
max(0,min(128,((b=(-t*1.0595**(("0010010030705503"[t>>13&15])-12+3*(t>>18&1))&255),c=(b**3)>>5,(sin(b*(.2+sin(t/6e6))*.2))*c+c)*(-t&8191)>>18)))-((sqrt(t&8183)<<6&64)*(((t>>15)&1)^(t>>13))-(t&15))*(t>2<<19)+((t&16383)*(-t>>3&511)/7e4)*random()*(t>1<<19)

Link to play
335
elder-scrolls-morrowind.gif
(1.28MB, 498x494)
>>220
Interesting event! I would love to attend such demoparty.
Your tune reminds me a doom soundtrack a bit, cool.
Also you should fix the amplitude of the drums to get rid of distortion.
358
ee37c38a19b258d4883f03779c32d689.webp
(18.45KB, 500x500)
>>220
Also, here the 238 bytes version:

max(0,min(128,(b=-t*1.0595**('0010010030705503'[t>>13&15]-12+3*(t>>18&1))&255,c=b**3>>5,sin(b*(.2+sin(t/6E6))*.2)*c+c)*(-t&8191)>>18))-((sqrt(t&8183)<<6&64)*(t>>15&1^t>>13)-(t&15))*(1048576<t)+(t&16383)*(-t>>3&511)/7E4*random()*(524288<t)


Added to the library!
394
Thanks for adding it. The drums actually got much more beefy by randomly distorting based on the hihat's amplitude.

The actual name of the track was "Visitors from the Dark Side". Could you please change it in the library?

If you like you might check out more of the different bytebeat entries released at some recent demoparties here:
https://demozoo.org/productions/tagged/bytebeat/

1899 Reply
bytebeatplayer.PNG
(16.72KB, 1078x560)
This is where I keep my changes on my bytebeat player.

Update (13/08/23):
Added sinf(), alongside with cosf() and tanf().
6 posts omitted. Click Reply to view.
2144
gruigigruigigruigigruigigruigi.png
(469.56KB, 1632x835)
HELP
2175
bytebeatplayerdifferentmode.PNG
(2.92KB, 345x72)
You can now change from:

value="bytebeat" (Bytebeat)
value="floatbeat" (Floatbeat)
value="bitbeat" (Bitbeat)

More modes added soon!

Helped by (u/Butterroach)[https://www.reddit.com/r/bytebeat/comments/1668ru7/comment/jynh9ip/?utm_source=reddit&utm_medium=web2x&context=3].
2232
>>2175
value="signedbytebeat" (Signed Bytebeat)
value="tanmode" (Tanmode)

"Tanmode" is basically the tan(input*PI/128) view of the code. (if that makes sense)

"Signed Bytebeat" is basically the 128 offset of "Bytebeat" mode.
2409
The visualizer has been added to the bytebeat player fun fact: the visualizer was actually taken from https://psub-scirbe1.neocities.org/visualizer

Made everything in the player glow.

Let me know if you want to update the library more often.
2414
>>2409
visualizer doesn't work on firefox.

2324 Reply
sparkle.png
(241B, 16x16)
3 posts omitted. Click Reply to view.
2329
>>2324
how?
2332
>>2329
its just pcm, basically audio converted to raw text data that the bytebeat can read and play

doing something like this isnt really that hard, you just need an audio file and convert it to the raw PCM text, and do this:

a=``, // insert pcm data between the backticks. doesnt matter if there are newlines
a.charCodeAt(t%a.length)


this one does multiply t by 4 and multiply the overall result by 3.8, but that's not important for all stuff
2341
2353
93AC70A7-7B77-4D83-84C0-804720F992C6.jpeg
(180.21KB, 491x469)
>>2324 how come whenever i change the speed in the code, which is the a.charCodeAt(t4%a.length) to something like a.charCodeAt(t3%a.length) it glitches out?
2355
>>2353
idk pcm is weird

415 Reply
kouzerublush.png
(64.37KB, 444x420)
XO-Tracker: Tsukite Moonhand The Bananafox Theme

this... is just some sort of tracker being ported in bytebeat js; and yes, it's not time independent.

Bout the music though, its literally the music theme of the character of mine, Tsukite :3

Post too long. Click to view.
24 posts omitted. Click Reply to view.
1859
>>1858
bruh what
ok never do change everytime to post
2201
chris-barbalis-ax4zu9rp7jo-unsplash.jpg
(2.49MB, 6000x4000)
2211
download (10).jpeg
(22.38KB, 540x470)
2212
Sakuya Izayoi Touhou Sticker - Sakuya izayoi Touho
(3.07MB, 479x498)
2255
selfie wa!.jpeg
(52.28KB, 720x527)

171 Reply
CEF93255-C7A7-4ABF-8515-9FF7F4B1DA68.jpeg
(111.44KB, 1609x413)
5B548BBE-D310-4A42-9511-F351E3506E30.jpeg
(84.40KB, 1594x405)
Hi everyone! I wanted to share my first actual bytebeat with you guys!
br>I'm somewhat new to the world of bytebeat, and I've been trying to learn how to make songs. However, after experimenting a lot, I've finally made one!

I recently figured out how to use arrays for sequencing, so I figured I could start making a song. What I ended up with was a Sierpinski melody + kicks from another bytebeat, and I think it turned out really well! The song is about 32.76 seconds long.

Here it is!
s=t>>17&1,t>>"45"[s]&t*"2256"[t>>13&3]|[1e4,[5e3,5e4][t>>13&1]][s]/(t%[4096,8192][s])

(dollchan / sarpnt)

And here's a badly annotated formatted version:
(dollchan / sarpnt)

I'm hoping I can sometime move away from classic bytebeat and into HQ songs like the ones under the Big JS and Floatbeat tabs. I always have you guys to help! ;)

Anyways, what do you guys think of my first song?
20 posts omitted. Click Reply to view.
942
1x1.png
(95B, 1x1)
I've looked at some bytebeats with reverb and I've tried to understand how it works. From what I understand, it seems to me that it works something like this:
- Declare an Array object and fill it with 0s

- Take your "melody" or whatever and add <Array>.shift() to it

- Push that divided by a number??? (like 3) maybe??? into the array

- Set the output to the "melody"

I still don't have a good idea of this. I tried doing this myself:
t?0:d=Array(2000).fill(0),main=sin(t/4)/4+d.shift(),d.push(main),main

Dollchan
it's messy lol xD

Dividing main by 2 or larger in d.push(main) gives a different result: I hear a bit of bounciness and the tone comes back. I turned the ample rate down to 8000 and I heard it wasn't a smooth decrease; it seems to "step". Lastly, I decided to use a number between 1 and 2 and the fading is slower, but I could still tell I did it wrong because of the "stepping".
Post too long. Click to view.
943
You aren't doing anything wrong with the reverb effect. It's just that the "melody" that you've put in doesn't change enough, as in there's no notable pitch nor volume changes within the code.

Here's an example where the delay is more clear.
977
IMG_1212.jpeg
(146.53KB, 1000x667)
t?0:v=Array(r=48e3).fill(0),f=floor,s=f(t/12e3),m=sin(t/((25+f(t/192e3)%4)-s%16))+v.shift(),b=sin((s%4?1e2:1e4)/(t%12e3)),n=!(f(t/6e3)%2)*(random()*((t/48e3%1)-1))/2,v.push(m/3),(m+b+(f(t/r)%2)*n)/3

Floatbeat | 48000hz
Chasyxx | Dollchan
You are traveling through space in your ship. There are plenty of dangers out there. Thankfully, all you can see ahead of you is the vast emptiness of space. Maybe no one has explored it yet. You think, this is why they call it the final frontier.

I decided I wanted to join in with the space lore stuff. Wish more people could do it too...
Also I just learned how to do reverb as well as no array arrays. My reverb isn't really that good but I still think it fits the space theme. I'm legitimately proud of this though, especially for keeping it under 200c. ;)
1027
a.png
(163B, 1x1)
sin(t/([25,25,22,23][0|t/48e3%4]-(0|t/12e3%2)))*(t/6e3%1-1)-sin(t/1e5)/1.5-1

Chasyxx only because I'm tired

interesting huh
1036
1x1.png
(95B, 1x1)
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

#define r 48000

//Set output length (in seconds) here!
#define time_seconds 30

int main(){
  double t;
  double out;
  double a[r]={0};

  FILE *f = fopen("bb.raw","wb");

  while(t<(r*time_seconds)){
    out=sin(t/(25-floor(fmod(t/12000,16))))/3+a[(int)fmod(t,r)];
    a[(int)fmod(t,r)]=out/1.4;
    fwrite(&out,sizeof(double),1,f);
    t++;
  }
  fclose(f);
  return 0;
}

Delete Post  
[Previous] [0] [1] [Next]

Changelog / Common thread / SthephanShi / kOLbOSa_exe / lhphr / PortablePorcelain / HypernovaHeathen / BaenHoHoHo / SArpnt / hcdphobe / OnixIsThePewterGod / Zackx / GetDolphinedLol / psubscirbe / ChrisRM380 / Kouzerumatsu / MT2023 / Decent-Manager-6169 / Chasyxx / Glebguything / absolute197 / ANoUserXD / MarioFan171
To top