Libraries, utilities, bootloaders...
Fri Jun 17, 2016 3:09 pm
Thanks Rodot.
Yes I plan for instrument support. Tracks are already supported
Sat Jun 18, 2016 7:11 am
Really cool, I'll have to give it a try... too bad I don't know how to compose music
Sat Jun 18, 2016 7:44 am
Well i'm not any good with cords and all that either. I always used trackers for making sound effects and tiny melodies. The Mario melody is just copied from a old mod file i had lying around. I think a tracker is very useful even if you don't know how to compose a whole piece of music
Don't be sad, we are all the best at something
Wed Jan 18, 2017 8:19 pm
Nice work !
could you provide a file ready to import (like the mario theme), or a quick tutorial to help ?
Thanks
Tue Jan 24, 2017 2:40 am
Hey Freddy, I have been wanting to check this out for a veeery long time!
Hopefully I´m going to be a free man later this week and can give a go.
A tracker is the best way imho to try music, even if one have no idea about such.
Sun Mar 12, 2017 8:46 pm
Hey, Awot, I will provide a example for the soon to come 1.0 release. Erico please wait a bit for the new release, it will be a much better experience
Sun Mar 12, 2017 8:51 pm
Hey Rodot
If you see this, is there any good reason to reinit the commands when we play a new pattern?
I would like to keep my commands between patterns, when playing a track. See code below.
- Code:
void Sound::playPattern(const uint16_t* pattern, uint8_t channel) {
#if(NUM_CHANNELS > 0)
if (channel >= NUM_CHANNELS)
return;
stopPattern(channel);
patternData[channel] = (uint16_t*)pattern;
patternCursor[channel] = 0;
patternIsPlaying[channel] = true;
noteVolume[channel] = 9;
//reinit commands
volumeSlideStepDuration[channel] = 0;
arpeggioStepDuration[channel] = 0;
tremoloStepDuration[channel] = 0;
//Serial.print("play pattern\n");
#endif
}
Tue Mar 14, 2017 12:26 am
While I am not rodot....yes there is a good reason. Patterns should be independent of each other, so that you could just take a pattern and play it anywhere else yielding the exact same result. Thus you need to set all the effects etc. to the defualt value.
Wed Mar 15, 2017 2:01 pm
Ok, I see. Maybe we could disable this while playing a track. It would be nice to set a effect in the beginning of a track, and then reset it only when the track ends, or another pattern/track/note is played. Or maybe disable by command??
- Code:
void Sound::playPattern(const uint16_t* pattern, uint8_t channel) {
#if(NUM_CHANNELS > 0)
if (channel >= NUM_CHANNELS)
return;
stopPattern(channel);
patternData[channel] = (uint16_t*)pattern;
patternCursor[channel] = 0;
patternIsPlaying[channel] = true;
if (!trackIsPlaying[channel])
{
noteVolume[channel] = 9;
//reinit commands
volumeSlideStepDuration[channel] = 0;
arpeggioStepDuration[channel] = 0;
tremoloStepDuration[channel] = 0;
}
//Serial.print("play pattern\n");
#endif
}
Wed Mar 15, 2017 6:10 pm
Again, that would change the entire idea of patterns.
Just place all your setting-commands at the beginning of a pattern, it is only a few bytes and allows for way more flexibility
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.