Spammimic: Fun, but how is the message encoded?

My guess, based on sibyl’s work, is that it takes the whole message as a number, and then converts that number to a different base (possibly a base which varies with the place value). If this is true, then changing the value of the plaintext by 1 will change only the tail end of the spamtext, except in cases where it rolls over. Testing this:

abcde returns

abcdf returns

…and, so much for that. I can’t spot the difference immediately, but it’s definitely not in the last line.

EDIT: The difference is the punctuation after "This is different than anything else you’ve seen ".

The author of spammimic may be Peter Wayner, and this book might have some clues, but the 3rd edition seems to cost $60. I’ll see if I can make any sense out of the 2nd edition (2002), available for much less. The spammimic program was first noticed here in 2004, so maybe the newer info isn’t all that important.

Peter Wayner has responded to my email, and I will post what he said here if he gives permission to do so.

Meanwhile…to paraphrase, he is not the author of the program, but says his book(s) may have been the inspiration, and provide the technique(s). I am hoping he will contribute a little more than that.

Please note that there seems to be a new, non backwards compatible algorithm at play now. (See the decode page)
I had the idea to use emoji’s as plain, which works as expected.
:grinning: as input gave me some text, notably including “71 weeks”, which i changed to 72, giving me :neutral_face:, as well as 73, giving :unamused:
The original emoji is utf-8 hex 1F600, 72:1F610, 73:1F612.
I think if you get enough data you could see the binary/hex change in predictable patterns.
The support of emoji would support the idea that it is working on hex/binary level.

Since i cannot edit anymore: it is not linear, 69:1F606.
Any other change of numbers, i.e. the “Title Section Part”, results in single OR multi char representations of weird characters, the weeks part seems to affect the lower bit changes.