Home Forums Sparkfun MP3 Shield Library Support Forum Success recording OGG!


Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
  • #2184


    I would like to inform you that I modified the library to record OGG and it is woking very well for HIFI voice profile. I have not teste HIFI music profiles. The code is based on the VS1053B OGG VORBIS ENCODER application from VLSI.

    I added 4 new public methods to the class:

    uint8_t startRecordOgg(char* fileName); // Setting up recorder application and open the track file.

    uint16_t doRecordOgg(void); // Function to be called inside user’s application main loop, this function check for new data and stores it in the track file

    void stopRecording(void); // User call this function to sinalize the recorder to stop.

    uint8_t isRecording(void); // Function to check if the recorder is active.

    I also added methods for getting and setting bass/treble frequency and amplitude.

    int getTrebleFrequency(void);

    int getTrebleAmplitude(void);

    int getBassFrequency(void);

    int getBassAmplitude(void);

    void setTrebleFrequency(int frequency);

    void setTrebleAmplitude(int amplitude);

    void setBassFrequency(int frequency);

    void setBassAmplitude(int amplitude);


    As you can see, a lot of changes. I would like to share these modifications. How should I procced?

    If you prefer, I can make available a copy of the lib with these modifications in my website along with an example of use.

    Best regards!

    Miguel Moreto


    Sounds exciting

    Best way to contribute is to create a GITHUB account, then fork the library. And commit you changes. Then let us know. We can then review and merge applicable components of the forks.

    The wonders of community version control.


    Hello Michael,

    thank you. I am used to work with SVN but not with GIT. I do not fully understand GIT but I will study it a little bit to avoid messing up the repository.

    Best regards,



    Basically same thing as SVN. Nice thing about the GIT HUB’s forking and cloning from GitHub, is it is just too darn easy with the buttons/links on the web page.

    GitHub has a quaint GUI. but it hides a lot.  I recommend TortoiseGIT. If you don’t like command lines. (i don’t).

    I clone all to a local repository directory and then create symbolic links to the ..\arduino\library\.. directory for each actual libraries directory. For windows you can use the little known “junction” command to make “hard-links” (same thing).

    Basic steps;

    1. fork a repo from someone else on GitHub. This is basically cloning from their cloud to your space on their cloud.
    2. clone your repo locally.
    3. change it.
    4. commit changes.
    5. push changes, back to original/remote repo.
    6. Then from the GitHub page make a pull request back to the original fork. This is basically making and sending a Serial patch, back up to be merged back in.

    Hello Michael,


    thanks for the valuable tips, specially the “hard-links” in windows, they are very usefull!

    I finished organized the code and added some new features, like gain change during recording and a pointer to a function that is called when recording ends. To do that the user should use the function bindEndRecordHandler. I also added a class constructor to define some default variables.

    There is also a working demo where this features can be tested.

    I just sent a pull request.

    Best regards,

    Miguel Moreto


Viewing 5 posts - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.