Bytebeat is like composing music with the tools of a programmer’s toolkit. Instead of piano keys, you have operators like >>, |, and &. It’s like giving your CPU a guitar and letting it shred! 🤘
>> (Shift Right): Divides by powers of 2. Great for slowing down a melody or adding rhythm.<< (Shift Left): Multiplies by powers of 2. Use it for some ear-shattering crescendos.| (Bitwise OR): Combines two patterns into a new one. Perfect for harmony (or chaos).& (Bitwise AND): Filters out parts of a waveform. Adds a rhythmic, gated effect.^ (Bitwise XOR): Creates interesting contrasts. Great for glitchy, alien sounds.+ (Addition): Adds layers or increases pitch. Use for uplifting melodies.- (Subtraction): Introduces subtle variation. Or not-so-subtle destruction.* (Multiplication): Scales things up, often quite dramatically. Ideal for intensity./ (Division): Calms things down. Use sparingly unless you like silence.% (Modulo): Repeats patterns. The heart of rhythmic loops.<, > (Less/Greater Than): Use to make your tracks conditionally moody.== (Equality): Create periodic breaks or enforce strict rules on chaotic sounds.() liberally to group operations and ensure your melody doesn’t sound like a confused robot.Composing with Bytebeat is half music, half math, and all fun. Here’s how to get started:
Begin with a single pattern, like a square wave:
```python
(t * (t >> 10 | t >> 8)) & 128
```
Experiment with small tweaks:
```python
(t * (t >> 8 | t >> 12)) & 128
```
Combine multiple patterns using addition or bitwise OR:
```python
((t >> 7 | t >> 6) * (t >> 5 | t >> 8)) & 255
```
Use % to create repeating patterns or arpeggios:
```python
(t * ((t >> 5 | t >> 8) & 63)) & 255
```
Let the CPU surprise you! Sometimes, the weirdest expressions produce the best sounds:
```python
(t * (t >> 9 | t >> 7) & t >> 11) & 255
```
Here are some examples to get you started:
```python
(t * (t >> 10 | t >> 8)) & 255
```
```python
(t * ((t >> 5 | t >> 8) & 63)) & 255
```
```python
(t * (t >> 9 | t >> 8)) & 127 + (t >> 4 & 7)
```
```python
(t >> 6 | t >> 8 | t % 32) & 255
```
```python
((t >> 7 | t >> 6) * (t >> 5 | t >> 8)) & 255
```
```python
((t >> 4 | t % 13) * (t >> 7 & t >> 8)) & 255
```
```python
(t * (5 + ((t >> 9) & 7))) & 255
```
t >> 10 to t >> 5 or t * 4 instead of t * 16.