Hello. this is the first time I have posted on this site. Thank you for reading my query.
I am using Audacity 2.0.2 and have used its predecessors for several years. I now wish to take advantage of the very low cost of flash ROM to store waveforms as a set of binary values in either 8 or 16 bit numbers. For the purposes of this query, I will refer only to 8-bit numbers, but the principle for 16 remains similar.
The process I wish to undertake is to convert values which are readily obtainable from Audacity.
Normally the Audacity values are in the range minus 1 to plus 1. I wish to translate these into normalised numbers in the range 0 to 255 where 128 is the centre point. These translated values should then be converted into INHX32 codes (such as is standard for many ROM programmers, and is frequently the output code from microcontroller assemblers/compilers such as the PIC series of devices).
I have for some time achieved this objective by a very tortuous 5-step process which only deals with small (32768) volumes of data at a time.
STEP 1. I send a signal to Audacity and normalise it to the range plus and minus one, then export it to a file which I can then input to Microsoft Excel. Unfortunately Excel has a data limit of 32768 items, so this has to be a piecemeal approach.
STEP 2. I use Excel to multiply the values by 128 and then to convert these into hexadecimal.
STEP 3. I export the hexadecimal file to Microsoft Word, and then use various Word features to tidy up the data, insert commas, get rid of unwanted values and also get all the characters into the same font and size (Excel usually varies these for no given reason).
STEP 4. I segment the data and install it into a Microchip MPLAB assembler, which generates the INHX32 code strings.
STEP 5. I pass these strings to a ROM programmer which will program the values into the selected ROM.
Apart from the clumsiness of this long method, there is the snag that only 32Kb can be processed in Excel at any one time.
The ROMs I use are of the A25LQ032 series (and similar types but differing capacities). I have also used Microchip 25LC1024 ROMs.
An 8 Khz sample at eight bits, when packed into this type of memory, can last for up to 62.5 seconds with the 25LC1024, or 500 seconds with the A25LQ032. Improved sample rate or signal resolution will reduce these times proportionately.
What I am looking for is a scheme which can accomplish the STEP 1 to STEP 5 sequence above (by whatever means) so that I have an INHX32 file corresponding to the 8/16 bit normalised data which can then be fed directly to a ROM programmer.
Although I am using the Microchip MPLAB software to produce the INHX32 code because I happen to have it, I am not restricted to this.
I also have a Batronix programmer which operates independently of the Microchip route.
I hope that I have given sufficient information, and not said anything which is confusing or ambiguous. If anyone can assist in this endeavour I shall be very grateful.