[Tool]Pokitto Music Tracker

I tested the speed of the both file systems by reading a 200 kb file in 1 kb blocks:

  • PetitFatFS: 264 kb/s
  • SDFileSystem: 80 kb/s

I am using Samsung 1GB MicroSD card in Pokitto.

I have updated Tracker project (made a pull request).

Changes:

  • Use different background color for different modes
  • Added a help menu to the bottom of the screen
  • saveSong() works
  • loadSong() works with a Core::filemenu() as a file selector.
  • Each channel can be muted

I also tried to experiment with the mixer as the sound quality drops drastically on HW when there is more than one channel active. What I tried was to make sure there are enough bits for saving the result before truncating it to 8-bits. I still could not improve the quality. That is the biggest problem with Tracker but I do not know if anything can be done about it.

3 Likes

Please elaborate what you tried.

Basically the same what you have done recently: used 32-bit variables in the mixer. I also tested calculating the average of the channels.

One thing that could still be tested is recording the output in Simulator, which is good quality, making it a wav file, and playing that on HW. If that wav sounds clearly better than the mixer output, then there is something wrong with the HW code.

@Hanski :

I now have the EEPROM working exactly like I want. I am now continuing work on the Tracker & sound effects calls. I see you have done alot of good work on the Tracker. I will also pull in the Mode 1 speedups by @FManga, they will come in handy.

Expect a release soon, this time a fully functional Tracker.

2 Likes

Great! A player library is also needed to be able to integrate the tracker songs to games.

  • Fixed cursor scrolling
  • Made the help bar smaller to fit last row properly
  • Added active block numbers to “Track 1” headings to be able to follow the song flow better
  • runs at 44.1 kHz sample rate now

It’s almost done @Hanski … we only need the save file etc

Nope. There is a serious bug somewhere. The playback gets out of sync after a while

2 Likes

I have implemented saving already :slight_smile:

5 Likes

ARPEGGIOOOOOO! :laughing:

#binary
tracker.bin (87.5 KB)

#song
song.rbs (43.9 KB)

note:
at the moment, the program loads and saves “song.rbs” from the SD card. We still need to implement the file dialog

This tracker thing jumped straight to my top3 list on the pokitto. Even though its still cumbersome, it is a really fun toy if you like trackers.

1 Like

Now I’m curious…

1 Like

just implemented file load & save as. i will next add saving & loading last filename used to a cookie and the file io will be almost complete

2 Likes

Excellent progress! I don’t want to sound negative in any way, but it does sound a little rough, is this something that my improve in the future, or is it more to do with the limitations of Pokitto itself?

1 Like

Hahaha ! What did you expect, Berlin Philharmonics :wink: ?

As with everything else, there is a high likelihood it will improve a lot over time. The mixing routines, the waveform routines all originate from atmega328 code (= veeeery tight).

In fact I already know a couple of places that need to be fixed.

But with that said:

#first fully functional version:

tracker.bin (88.9 KB)

4 Likes

A question that relates to both the tracker and my video player. Can audio be disabled while reading SD? The squeaking is quite unpleasant.

I believe Pokitto can do better quality mixing. I have seen (or actually heard :slight_smile: ) a device with a comparable CPU doing mixing with better quality (Nokia 9210). Anyway, we have now a good base where mixing works and we can start improving on it.

I think its clipping. If you play only 1 sound, each sound is relatively clean

Check out the “amp” commands under Pokitto::Sound