In my previous test I tried encoding information using cusps to no avail. The tape player rounded off sharp changes at higher frequencies, but did a decent job at preserving the general shape of the waveform. The only major distortions that appeared were at zero-crossings near bit changes and during long runs of 1s or 0s.
I simplified the x^2 waveform to a triangle wave to avoid slope changes near zero when bit flips occur. I tested this waveform with the speeds I have tried in other tests: 300, 1200, 2400, 4800 bits/sec. I used a test pattern of "010100110000111100000000..." to see how the DC offset issue affects long runs of repeating bits.
At higher bit rates the DC centering seems to occur less, but is still an issue for long runs of the same bit. I decided to tests at 9600 bits/sec to see if even higher speeds would help more:
It appears that a simple triangle pulse shape might be a feasible start to high data rate tape storage. Because of the DC centering issues I'll be limited to fairly high data rates (for tape) of 2400 bits/sec and above. My script has some issues with creating smooth transitions at 9600 bits/sec, but I'm not really worried about that because soon I'll be starting encoder and decoder development in C. My next task will be finding a balanced line code to try and combat DC offset issues.