Just for the record: I'm the primary author of wavethresh and I also think wmtsa is a fine package.
The code that you originally wrote for wavethresh should work. I just tried it on an arbitrary data set of length 512 (because I don't have access to your data!) and it seemed to work ok and the `basis' array containing 215 elements. The function plot(coeffs) also produced a time-frequency plot so one can see the particular tiling of the time-frequency plane.
Referring to your two posts. The function `drawwp.default' actually does precisely what you mention in your second post. To get a picture (or vector of values) of the particular wavelet packet a sequence containing all zeros and one one is inverted. This is a well-known trick generally and has been in wavethresh since 1993 for wavelets (in the function draw()).
What draw and drawwp.default won't do is get the translate right. It tries to pick a nice value of the translate so you get a nice picture. That's why the argument to drawwp.default contains the scale level, the `number of oscillations parameter' but not the translate value. However, it is simple to translate the wavelet up or down the axis and how you do it will depend on what boundary conditions you're assuming.
There did appear (to me at least) to be one typo in your original post. The object wave' in line 3 becomes
wave.th' in line 4. However, I ignored this and took them to be the same object. I guess you might have been doing some thresholding which was not relevant to this discussion :)
All the best,
Guy Nason