Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
lynx:abcmusic [2021/01/25 08:45] – Karri Kaksonen | lynx:abcmusic [2021/01/25 12:17] – Karri Kaksonen | ||
---|---|---|---|
Line 61: | Line 61: | ||
When we combine these three sounds we get an irritating background tune that will annoy you just as much as the Flappy Bird game. | When we combine these three sounds we get an irritating background tune that will annoy you just as much as the Flappy Bird game. | ||
+ | In Atari Lynx we use proprietary ABC codes to set the hardware for the tune. I try to describe the recognized operators. | ||
+ | |||
+ | '' | ||
+ | T10 - Tempo - number of VBL interrupts that makes up a single time slot. The smaller you set this number, the faster the music plays. | ||
+ | X7 - waveform. This describes how the feedback links are connected to the polyphonic sound generator. - I don't get it either. | ||
+ | I0 - a letter I plus zero means a square wave, a one means a triangle wave. Triange has a smoother sound. | ||
+ | V100 - volume. Max is 127, min is 0 | ||
+ | O2 - octave from 0 to 5. 5 is very low and 0 very high. You can also change octave in the middle of the tune. O2 A is the same as O3 a. | ||
+ | R0 - envelope ramp up | ||
+ | H0 - envelope hold note | ||
+ | K3 - envelope ramp down | ||
+ | These envelope parameters apply to the volume of a note. | ||
+ | '' | ||
In ABCmusic we need to code every one of these 3 melodies to a string. You can omit white space and bar lines without repeats to save space. | In ABCmusic we need to code every one of these 3 melodies to a string. You can omit white space and bar lines without repeats to save space. | ||
- | char *melody = "G2 z2 g2 z2 | G2 z2 g2 z2 | G2 g2 G2 g2..."; | + | '' |
- | char *bass = "D,4 G,4 | D,4 G,4 | D,4 G,4 | D,4 G, | + | char *bass = "X7O2I1V100T10R0H0K3 |
- | char *percussion = "D2 G G D2 G2 | D2 G G D2 G2 | D2 G G D2 G2..." | + | char *percussion = "X7O4I1V40T10R0H0K6 |
+ | '' | ||
After this we can play the combined tune by making a call to abcplay() | After this we can play the combined tune by making a call to abcplay() | ||
- | abcplay(0, melody); | + | '' |
abcplay(1, bass); | abcplay(1, bass); | ||
abcplay(2, percussion); | abcplay(2, percussion); | ||
+ | '' | ||
This is how the note part works. But we still have to choose the instrument, the tempo and the volume of the music. | This is how the note part works. But we still have to choose the instrument, the tempo and the volume of the music. | ||
{{ : | {{ : |