Libraries, utilities, bootloaders...
Post a reply

Re: Rboy Tracker alpha release 0.03 [FIXED]

Sun Feb 08, 2015 11:46 pm

Skyrunner65 wrote:Rodot, I have an idea on what you could do, though I'm not sure how to say it.
Basically do what the folks over at the Raspberry Pi Foundation did and release a newer model at the same price.


The problem is, all these components have been around for years, so I don't see things dropping in price enough to make an upgraded model at the same price :(

Re: Rboy Tracker alpha release 0.03 [FIXED]

Fri Feb 13, 2015 7:50 pm

cyberic wrote:Great stuff! That sounds great!

Jonnection, are you confident that the actual gamebuino will be able to do all that in realtime?

Thx a lot!


Here's an answer to your question:

3 saw waves, each with arpeggio. And still turning in 22 FPS.

... this is before optimization. The little atmega328 is just amazing.

Image

Re: Rboy Tracker alpha release 0.03 [FIXED]

Mon Feb 16, 2015 12:27 am

A major milestone was reached today. I now have working export functions.

The only thing remaining is to get the song update loop to read these tables.

This is what an Rboy tracker song will look like on the Gamebuino. My aim is to make the data so simple to read that in worst case scenario, you can fix any mistakes directly from the file, without needing to go to tracker and exporting again.

Each pattern can contain 3 blocks. Each block contains 4 phrases of 16 notes each, a note is 2 bytes. Each instrument is 13 bytes. Song header is 5 bytes. Each pattern entry takes 3 bytes.

This means that a song of 10 different blocks and 10 instruments and 10 patterns in sequence will be 10 * 64 * 2 + 10 * 13 + 10 * 3 + 5 = 1610 bytes in flash memory.

I've also figured a way to do note by note pitch slides and volume slides without the need for extra memory, but I'll get to that later.

And oh yeah, after a bit of heavy optimization, I'm now getting around 39 FPS in Operation Fox even when music is playing 8-)

Code:
// Rboy Tracker song .c export file
// Rbtracker version :0.030000
#include <Arduino.h>
#include <songs.h>

// Song data
const prog_uchar Song[200] PROGMEM = {
0, // Song length
0, // Loop to
3, // Number of blocks used
5, // Number of patches used
230, // BPM
// Sequence
0,1,2,// Pattern 0
// Block data
255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,// Block 0 phrase 1
255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,// Block 0 phrase 2
255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,// Block 0 phrase 3
255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,// Block 0 phrase 4
//
255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,// Block 1 phrase 1
255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,// Block 1 phrase 2
255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,// Block 1 phrase 3
255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,// Block 1 phrase 4
//
255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,// Block 2 phrase 1
255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,// Block 2 phrase 2
255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,// Block 2 phrase 3
255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,// Block 2 phrase 4
//
}; // end of song data

// Patches data
const prog_uchar Patches[65] PROGMEM = {
// Patch 1
1, // Waveform
127, // Volume
0x0, // Pitch bend rate UPPER BYTE
0x0, // Pitch bend rate LOWER BYTE
0x0, // Pitch bend max UPPER BYTE
0x0, // Pitch bend max LOWER BYTE
0, // Transpose
0, // Arp mode
0, // Options ADSR off LOOP off ECHO off OVERDRIVE off NORMALIZE off
0, // Attack
20, // Decay
0, // Sustain
0, // Release
// Patch 2
1, // Waveform
127, // Volume
0x0, // Pitch bend rate UPPER BYTE
0x0, // Pitch bend rate LOWER BYTE
0x0, // Pitch bend max UPPER BYTE
0x0, // Pitch bend max LOWER BYTE
0, // Transpose
0, // Arp mode
0, // Options ADSR off LOOP off ECHO off OVERDRIVE off NORMALIZE off
0, // Attack
20, // Decay
0, // Sustain
0, // Release
}; // end of patches data

Re: Rboy Tracker alpha release 0.03 [FIXED]

Mon Feb 16, 2015 1:40 am

Hopefully we'll be able to keep the same format, so that we don't have to remake the songs.
But if you did, would you still support the old format (or at least let us be able to convert it)?

Re: Rboy Tracker alpha release 0.03 [FIXED]

Mon Feb 16, 2015 2:49 am

jonnection wrote:I've also figured a way to do note by note pitch slides and volume slides without the need for extra memory, but I'll get to that later.


Keep up the good work. Music is one of my favorite parts of making a game, so I'm pumped that you got this working. Pitch slides adds SO much character to a piece.

Re: Rboy Tracker alpha release 0.03 [FIXED]

Sun Mar 29, 2015 10:21 pm

jonnection wrote:A major milestone was reached today. I now have working export functions.
The only thing remaining is to get the song update loop to read these tables.

Hello jonnection!
Did you release a new version of the tracker?

Re: Rboy Tracker alpha release 0.03 [FIXED]

Mon Mar 30, 2015 12:30 am

What? any video of the latest improvements?
Would be funky to see(hear)! ;)
keep it up!

Re: Rboy Tracker alpha release 0.03 [FIXED]

Sun Apr 05, 2015 6:51 pm

No news. Sorry.

Actually, I almost gave up on all of this Gamebuino related stuff, because I was so totally overworked with other things. But I will slowly try to get back to speed.

Re: Rboy Tracker alpha release 0.03 [FIXED]

Sun Apr 05, 2015 7:43 pm

really?
It looked really promising!
I hope you will be able to find some more time to work on it!

Re: Rboy Tracker alpha release 0.03 [FIXED]

Sun Apr 05, 2015 9:06 pm

jonnection wrote:...
Actually, I almost gave up on all of this Gamebuino related stuff, because I was so totally overworked with other things. But I will slowly try to get back to speed.


Your projects are superb! Don´t give up.
Hope things work out fine on your busy end. :)
Post a reply