November 23, 2024, 03:25:38 AM

News:

Be sure to checkout our Vixen interfaces in the Library forum -- if you want PC automation at near zero cost, EFX-TEK and Vixen is a great combination of tools.


AP-16+ Version 1.90 Beta

Started by JonnyMac, January 31, 2016, 10:56:59 PM

Previous topic - Next topic

JonnyMac

January 31, 2016, 10:56:59 PM Last Edit: February 01, 2016, 06:48:14 AM by JonnyMac
The attached image is, on the surface, a small update to the AP-16+. Under the hood, though, it's a complete, from the ground up rewrite of the AP-16+. It's an important step toward version 2.0 and version 1.0 of the AP-8+ that will use the same infrastructure.

Improvements:
-- New firmware loader does better validation of new EEPROM image
-- New firmware loader is 8x faster than in previous versions -- loads update in about 3 seconds
-- "Gotchas" when set to random (?) mode and SELECT is 0 or 1 have been corrected
-- Added a hold/release command to pause and resume the file that is playing (does not affect AMBIENT.WAV)
-- Some support for long file names

The playing hold/release feature is through the "H" command.

  SEROUT Sio, Baud, ("!AP16", %00, "H", 1)      ' hold on
  SEROUT Sio, Baud, ("!AP16", %00, "H", 0)      ' hold off (release)


They key to using long file names with the new firmware is to ensure that the first six characters of your file names are unique. When a file with a long name is created a DOS 8.3 name is created along with it; this short name uses the first six characters followed by a tilde and then a digit. We can only work with the first of these files. If you have...

  LONGFILENAME.WAV

...the file system will create

  LONGFI~1.WAV

When you send a long file name in the "PW" (play named WAV") command the new AP-16+ will attempt to open the ~1 short file name version. This isn't perfect for all situations, but it's what we can do with the file system available to us.

Easter Egg: With our Propeller-based products we include test code inside the production code. If you have a Prop-Plug and the Propeller Tool you can run the test -- this lets you checkout the hardware and many of the software features.

Inside Propeller Tool press the F12 button to open PST (Parallax Serial Terminal). Set the COM port to your Prop-Plug, the baud rate to 115200, then enable it. Now check and uncheck the DTR box (this resets the Propeller) and immediately start tapping on the "t" key. In a second or so you will be presented with the main test menu.

To install the new firmware copy the EEPROM image to your SD card and then rename to AP16.PGM. Insert the SD card and power up the AP-16+. I've attached the current production image just in case you change your mind about working with the new code.
Jon McPhalen
EFX-TEK Hollywood Office

JonnyMac

February 01, 2016, 07:29:26 AM #1 Last Edit: October 11, 2016, 11:40:50 AM by JonnyMac
Of course, less that 12 hours after releasing I found two issues, though only you hardcore types doing rigorous testing would notice this: the Levels and Speed commands do not check the address you pass to then, hence any address will work. This would only be problematic on systems connected to mutliple AP-16+s. I have corrected the code which will be released later.

What will probably be next is the ability to restart the ambient file at the point it was interrupted by a play command. This will be controlled by a file on the SD card called ARESUME.TXT (ambient resume). Like NORELAY.TXT, this is just an empty file.

In version 2.0, these elements will part of a unified configuration file called CONFIG.TXT

I have a parser demo working, but I'm looking for feedback so I can wrap this up before Transworld. Here's a list of the commands that I am implementing -- but the door is open to suggestions. A command word is BOLD, a parameter (value or string) is in italics.

AMBIENT PLAY filename

This lets us set the file to play when the loop switch is turned on.

AMBIENT VOLUME left_level, right_level
AMBIENT VOLUME level


This lets us set the volume for the ambient file, without having to open the file in an editor (like Audacity). We can set individual channels, or the same on both using just one value.

AMBIENT RESUME YES/NO

This allows us to enable or disable the resumption of the ambient file when it is interrupted by a play command.

SELECT position PLAY filename

This allows us to specify the filename to play for a position of the SELECT switch. The cool thing about this is that we can assign the same file to multiple position, and modify the file play behavior with other commands.

SELECT position PREPLAY seconds

This command allows us to override the setting of the PRE pot on the board and create and individual pre-play delay by SELECT switch position. The resolution of this command is 0.1 seconds.

SELECT position POSTPLAY seconds

This command allows us to override the setting of the POST pot on the board and create and individual post-play re-trigger hold-off by SELECT switch position. The resolution of this command is 0.1 seconds.

SELECT position VOLUME left_level, right_level
SELECT position VOLUME level


This command allows us to set volume by SELECT position.

SELECT position RELAY YES/NO

This command enables/disables the relay output by SELECT position.

SELECT position RELAY POSTSTART seconds

This command allows us to have an offset start of the relay output. If, for example, you wanted the f.ile to play to three seconds before the relay kicks in, you would specify a POSTSTART value of 3.0.

SELECT position RELAY PRESTOP seconds

This command allows us to kill the relay output before the audio stops.

Most of the SELECT commands will be duplicated for the AUX inputs.
Jon McPhalen
EFX-TEK Hollywood Office