Libraries, utilities, bootloaders...
by FreddyWild » Fri Jun 17, 2016 3:09 pm
Thanks Rodot.
Yes I plan for instrument support. Tracks are already supported
![Smile :)](./images/smilies/icon_e_smile.gif)
-
![User avatar](./download/file.php?avatar=1793_1465772812.jpg)
FreddyWild
-
- Posts: 12
- Joined: Thu Jun 09, 2016 8:00 pm
- Location: Denmark
-
by rodot » 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
![Sad :(](./images/smilies/icon_e_sad.gif)
-
![User avatar](./download/file.php?avatar=2_1505825079.jpg)
rodot
- Site Admin
-
- Posts: 1290
- Joined: Mon Nov 19, 2012 11:54 pm
- Location: France
-
by FreddyWild » 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
![Smile :)](./images/smilies/icon_e_smile.gif)
Don't be sad, we are all the best at something
![Wink ;)](./images/smilies/icon_e_wink.gif)
-
![User avatar](./download/file.php?avatar=1793_1465772812.jpg)
FreddyWild
-
- Posts: 12
- Joined: Thu Jun 09, 2016 8:00 pm
- Location: Denmark
-
by Awot » 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
-
Awot
-
- Posts: 39
- Joined: Wed Jan 18, 2017 4:32 pm
-
by erico » 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.
![Smile :)](./images/smilies/icon_e_smile.gif)
-
![User avatar](./download/file.php?avatar=293_1411019334.png)
erico
-
- Posts: 671
- Joined: Thu Mar 27, 2014 9:29 pm
- Location: Brazil
-
by FreddyWild » 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
![Smile :)](./images/smilies/icon_e_smile.gif)
-
![User avatar](./download/file.php?avatar=1793_1465772812.jpg)
FreddyWild
-
- Posts: 12
- Joined: Thu Jun 09, 2016 8:00 pm
- Location: Denmark
-
by FreddyWild » Sun Mar 12, 2017 8:51 pm
Hey Rodot
![Smile :)](./images/smilies/icon_e_smile.gif)
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: Select all
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
}
-
![User avatar](./download/file.php?avatar=1793_1465772812.jpg)
FreddyWild
-
- Posts: 12
- Joined: Thu Jun 09, 2016 8:00 pm
- Location: Denmark
-
by Sorunome » 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.
-
![User avatar](./download/file.php?avatar=1544_1461863552.png)
Sorunome
-
- Posts: 629
- Joined: Sun Mar 01, 2015 1:58 pm
-
by FreddyWild » 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: Select all
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
}
-
![User avatar](./download/file.php?avatar=1793_1465772812.jpg)
FreddyWild
-
- Posts: 12
- Joined: Thu Jun 09, 2016 8:00 pm
- Location: Denmark
-
by Sorunome » 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
![Wink ;)](./images/smilies/icon_e_wink.gif)
-
![User avatar](./download/file.php?avatar=1544_1461863552.png)
Sorunome
-
- Posts: 629
- Joined: Sun Mar 01, 2015 1:58 pm
-
Return to Software Development
Who is online
Users browsing this forum: No registered users and 122 guests