MP3 Trigger V2 Adds Support for FAT32 SDHC microSD Cards

by

Just posted MP3 Trigger V2 firmware version 2.50 on the support page. This latest version supports MP3 playback from FAT32 formatted SDHC microSD cards as well as the older FAT16 formatted SDSC cards. Also, code optimization allows for 192kbps stereo MP3 playback over a wider range of cards than before.

All the new features of version 2.40 beta are included. Please read important info about these features here.

Please note that if you’re updating an existing MP3 Trigger V2 with this new firmware, you’ll need to do so, now and in the future, with a FAT16 SDHC microSD card. This is because the resident bootloader does not support FAT32 SDHC cards, and updating the firmware does not update the bootloader. Newly manufactured MP3 Triggers will eventually come with a FAT32 capable bootloader, but your existing units don’t. So hang on to at least one FAT16 card for future updates.

0

MP3 Trigger Firmware Version 2.40 Beta

by

Updated 5/31/2011

There have been many good suggestions for improvements and features over the past year. One reason they haven’t been incorporated is simply that I’ve been extremely busy with other work. The second reason is that each time I add a new feature or improve performance, I’ve had to make multiple version for different baudrates, alternate trigger functions, etc. A big pain. Clearly, what’s been missing is a way to set these options at run time.

So here is a beta release of a new version of MP3 Trigger firmware with the following features:

  • An MP3TRIGR.INI file (optional) that allows setting the baud rate and individual options for all 18 triggers, including regular, random, next and previous triggering functions as well as a restart lockout feature.
  • The ability to reprogram trigger inputs to control volume up and down.
  • A modified trigger file naming scheme that allows for more flexible track names.
  • Increased compatibility with SDSC (2GB or less) microSD cards.

New File Names

Previous firmware versions required that tracks associated with triggers be named “TRACKnnn.MP3″, where nnn was the trigger number. Beginning with version 2.40, the only requirement is that the track names begin with nnn.  So the following are both valid file names for trigger number 14:

“014Track.mp3″

“014 Breaking Glass.mp3″

The old style file names will no longer be associated with trigger inputs beginning with this version.

Flash Card Follies

I’ve spent a fair amount of time studying the microSD flash card situation. There are currently two basic types now available:  SDSC cards (2GB or less), and SDHC cards (greater than 2GB). Before the industry acceptance of SDHC, some manufacturers made larger capacity (>2GB) cards that were not SDHC compliant, and I’m discounting those in this discussion.

SDHC cards are only formatted FAT32 and cannot be formatted FAT16. Currently the MP3 Trigger V2 does not support FAT32, nor does it recognize the SDHC card during initialization. So don’t even think about trying to use one for the time being.

SDSC cards are only formatted FAT16 and these are what the current firmware is designed to use.  In this new version, I have found and fixed an issue that prevented certain SDSC cards from being recognized. (The Master Boot Record can sometimes be in sector 0 and sometimes not. I did not know that!) Also, I have found some PNY 2GB cards which are simply too slow to play 192kbps mp3 audio. File access measurements indicate that these cards are around 8% slower than “normal”, enough to introduce clicks and pops at the higher bits rates. Encoding the same audio at 128kbps allowed these cards to work.

So the message here is this: Use SDSC cards, and if you have trouble with 192kbps you probably have a slow card. In that case, either get another card or use a lower bitrate encoding.  If you find an SDSC card that is not recognized, please let me know.

Init File

The init file must be named “MP3TRIGR.INI” and must, like all the mp3 files, be in the root directory. The file is optional. If it does not exist, then the MP3 Trigger defaults to normal operation at 38.4Kbaud and all triggers starting their respect tracks (with the new names!).

Init file commands must begin with the “#” character and be followed by a space. Currently, the following three commands are supported:

#BAUD N      where N can be 2400, 9600, 19200, 31250 or 38400

#RAND N      where N can be 1 to 255

This function excludes the first N MP3 files from the random trigger function

#TRIG N, F, L     where N = trigger number (1 – 18), F = function type, and L = restart lockout enable

The allowable function types are as follows: F = 0 Normal trigger operation, F = 1 Next (same as nav forward),  F = 2 Random,  F = 3 Previous (same as nav back), F = 4 Start, F = 5 Stop, F = 6 Volume Up, F = 7 Volume Down.

The lockout feature, when enabled  (L = 1), will prevent the trigger from doing anything while audio is playing. This allows you to have tracks which cannot be restarted until they have completed.

For example, the following line will set trigger number 7 to be a random select, with restart lockout enabled:

#TRIG 07, 2, 1

All commands are optional. If you want 38.4Kbaud, you don’t need the #BAUD command. If you don’t want to change the behavior of a trigger input, you don’t need an entry for that trigger.  So for example, I use a single line in the init file to make trigger 18 be sequential (next), then I jumper that trigger and my MP3 Trigger powers up and continuously loops through all the tracks on the card:

#TRIG 18, 1, 0

Here is a sample MP3TRIGR.INI file that includes all of the documentation for the commands.

#BAUD 38400
#RAND 2
#TRIG 01, 0, 0
#TRIG 02, 0, 0
#TRIG 03, 0, 0
#TRIG 04, 0, 0
#TRIG 05, 0, 0
#TRIG 06, 0, 0
#TRIG 07, 0, 0
#TRIG 08, 0, 0
#TRIG 09, 0, 0
#TRIG 10, 0, 0
#TRIG 11, 0, 0
#TRIG 12, 0, 0
#TRIG 13, 0, 0
#TRIG 14, 0, 0
#TRIG 15, 0, 0
#TRIG 16, 0, 0
#TRIG 17, 0, 0
#TRIG 18, 0, 0

*********************** ALL INIT COMMANDS THIS LINE ************************

This is a sample init file for the MP3 Trigger V2, firmware version 2.40.

The init file is optional. If not present, the default parameters will be
in effect: 38.4Kbaud, and all triggers will start their corresponding
tracks with restart lockout disabled. If it is present, it must be named
MP3TRIGR.INI and be located in the root directory.

Only the first 512 bytes of the file are examined for commands, and the first
occurrence of the '*' character is treated as the end of file by the parser.
Comments are not allowed in the command section, but there is no restriction
on the length of the comments that follow the first '*'.

All commands must begin with the '#' character and be followed by a space,
then the command parameters separated by commas. White space is ignored. All
parameters are decimal numbers. Leading zeros are acceptable. See the above
examples - which are redundant since they are all default values.

The following commands are supported in firmware version 2.40:

#BAUD N

    where N is one of the following: 2400, 9600, 19200, 31250 or 38400

#RAND N

    where N is from 1 to 255

    The default behavior of the random trigger function is to play a random
    track from all the MP3 files on the flash card. The #RAND function will
    exclude the first N tracks (in the directory) from the random trigger
    function. So if there are 18 MP3 files on the card and N=4, then the
    first 4 MP3 files will be excluded from the random trigger function.

#TRIG N, F, L

    where:   N is the trigger number (1 - 18)
    F is the trigger function type (see below)
    L is the restart lockout enable

    The defined trigger function types (F) are as follows:

    F = 0: Normal operation
    F = 1: Next (same as the forward Nav switch)
    F = 2: Random
    F = 3: Previous (same as the back Nav switch)
    F = 4: Start (restarts the current track)
    F = 5: Stop
    F = 6: Volume Up
    F = 7: Volume Down

    The restart lockout feature, if enabled, will prevent that trigger
    from working if audio is currently playing. Use this if you want
    to prevent restarts before the track has reached the end. This
    feature does not apply to function types 5 - 7.

    L = 0: Restart lockout disabled (default)
    L = 1: Restart lockout enabled

You only need to include entries for triggers that are to be non-default.
As an example, I use the following single-line init file to make trigger
18 be a "Next" function, then hard-wire the trigger so that my MP3 Trigger
powers up and loops continuously through all the tracks on the card.

#TRIG 18, 1, 0

I’m currently working on updating the user manual for the new features and will post it here once the new firmware version is officially released. I wanted to get a beta release version out there to solicit some testing and feedback.

48

Guitar Clinic with Sam Broussard

by

As part of the 2009 Strawberry Park Cajun/Zydeco Music Festival, the supremely talented songwriter/singer/guitarist Sam Broussard held a clinic, during which he played a lot of material from his newly released, and highly recommended solo CD “Veins”. At one point, he asked me to grab a guitar and play rhythm for a couple of solo demos, including one of my favorites from The Mamou Playboys’ song “Domino”. Here’s a very short clip.

Sam Broussard 2009 Strawberry Park Guitar Clinic from Jamie Robertson on Vimeo.

All kinds of fun.

0

All current MP3 Trigger firmware files are now on the Support page

by

Just a quick note to say that all files for the most up-to-date version of the MP3 Trigger firmware can now be found on the support page of this site. All future updates will be posted there.

2

Random Trigger Function for the MP3 Trigger

by

Here’s an alternate version of the latest firmware for the MP3 Trigger that changes the behavior of TRIG17 and TRIG18. In this version:

TRIG17 is a sequential trigger. It will loop through all of the tracks on the flash card, one track per activation. (Same as the “Forward” navigation switch function.)

TRIG18 is a random trigger. It will play a random track from the flash card, one track per activation.

Here’s one example of how a combination of jumpering and buttons can be used to good effect: Let’s say that TRACK001.MP3 is background music, and all the other tracks are spoken messages. If you jumper TRIG01 and put a button on TRIG18, then as soon as the MP3 Trigger is powered up it will start looping the background music. Every time the button is pushed, you’ll get a random spoken message after which it will go back to looping the background music. (You could also do this with the button on TRIG17, in which case the spoken messages will cycle through in a particular order.)

UPDATE: If you grabbed this version before 8/21/2010 please reprogram your unit with this file. There was a bug in the random track generator algorithm that made it not work properly when there were only one or two tracks on your flash card. All fixed now. Sorry for any inconvenience.

MP3 Trigger V2 Firmware v2.23r 2400 baud
MP3 Trigger V2 Firmware v2.23r 9600 baud
MP3 Trigger V2 Firmware v2.23r 38.4k baud

This version is the same as the latest v2.23 in all other regards.

0

A New MP3 Trigger Filename Proposal

by

I’m considering changing the filenaming conventions for the MP3 Trigger. Currently, the triggers require very restrictive 8.3 filenames in the form of “TRACKnnn.MP3″. The navigation switch and serial protocol will play all of the MP3 files on the card, regardless of names or namelengths, using simple directory offset index – the nth MP3 file in the directory.

Without getting into the FAT32 vs FAT16 issue, there are two major complaints about this arrangement: First, the trigger track names don’t allow any flexibility whatsoever. Second, the order in which the nav switch plays the tracks is by directory entry order, not by name, and you don’t have any control over this unless you format the flash card and copy the tracks in the order you want them played when you click “foward” or “reverse”.

I’m proposing the following change: All tracks that you want to play on the MP3 Trigger must start with a 3-digit number “nnn…”, such as “001horns.mp3″ or even “023 Train Whistle.mp3″. The triggers would map to the tracks starting with “001…” through “018…” (and up to “255…” over the serial control port). The navigation switch would play the tracks in numerical order, even if they weren’t consecutive”, but would not play or even recognize any file that did not start with a 3-digit number.

This method would support long filenames, since I would only be looking at the first 3 characters, but keep in mind that long filenames use multiple directory entries and reduce the total number of files that can fit on a FAT16 flash card.

The biggest downside to this idea is that if an unaware user copied a random mp3 file to the flash card without putting numbers in front of the filename, nothing would happen. The way it is now, the nav switch will play any mp3 file, but not in any controllable order.

Also, please keep in mind that features like full alphabetizing would add lots of overhead and make it much longer to start a track. This proposal is an attempt to strike a balance between ease of use and speed.

By the way, I also just recently added a feature whereby Trigger 18 starts a random track – basically a shuffle trigger. If you jumper it, then it shuffles continuously through all the files on the card. I’d be interested to hear if people think this is a worthwhile tradeoff for losing one dedicated trigger input. I think so.

I welcome feedback.

2

Yet Another MP3 Trigger Firmware Beta Release

by

And I thought I was pretty much done with this a long time ago…

An observant user pointed out to me that there are dropouts when playing higher bitrate MP3 files on the V2 player. He was right, and I dug into it to discover that the overhead of scanning the additional trigger inputs was the culprit. I streamlined the input scanning code and fixed the problem.

So if you are hearing artifacts when playing 192kbps stereo MP3 files, this update should fix the problem. This is a beta release. When I’m satisfied that I didn’t affect anything else, I’ll issue a formal release in the various baud rates as before. Just wanted to get this out there in case anyone else is noticing the issue.

MP3 Trigger V2 Firmware v2.23 beta 38.4k baud

0

MP3 Trigger Firmware Version 2.22 release

by

 

Fixes, Shorter Looping Gaps and New Features:

For some time I’ve been getting reports of users having issues with certain MP3 files, involving some kind of problem when the track finished – either hanging the MP3 Trigger or producing chirping or squeaking sounds. Finally, someone was helpful enough to email me one of these tracks and I was able to duplicate the problem here in the lab. As a result, I have not only fixed this issue but in the process also discovered the reason some folks were legitimately complaining about the length of the gap when looping sounds. There was indeed a bug in recognizing the end of MP3 files that produced a longer than necessary period of silence at the end of a track.

I have not yet measured it on the scope, but I would estimate that the audible gap when looping a track (that has no silence at the beginning or end) is now consistently around 100 msecs (a tenth of a second). It has similarly reduced the time it takes to send the “end-of-track” serial message following the completion of the track.

This latest version also incorporates “Quiet Mode”, an option that can be enabled via the serial control port. In this mode, the triggers don’t start tracks directly but instead produce a serial message indicating which triggers were activated. A host microcontroller (Arduino, for example) can thus monitor the trigger inputs and then start any track or sequence of tracks via the serial control port, making the triggers much more flexible. An updated User Guide includes the details of this new feature.

So here is the new firmware in the different baudrate versions. Please note that these updates are only for the MP3 Trigger V2.

MP3 Trigger V2 Firmware v2.22 38.4k baud
MP3 Trigger V2 Firmware v2.22 9600 baud
MP3 Trigger V2 Firmware v2.22 2400 baud

Instructions on how to update your V2 firmware are in the datasheet, but here’s a quick review:

1) Download and unzip one of the files above.

2) Copy the resulting hex file to a microSD card and rename it to: “MP3TRIGR.HEX”. It does not need to be the only file on the card – it just needs to have that precise filename.

3) Insert the microSD card into your MP3 Trigger V2 and turn the power on while holding down the center navigation switch.

4) Wait for the Status LED to go solid, then cycle the power. You’re now running the new firmware.

Please refer to the datasheet for a more detailed description of the Status LED indications when running the bootloader.

0