ID:194278
 
After some stunning late-night revelations about the true nature of icon arithmetic, and the peculiarities of the .dmi format, I came up with an idea for a BYOND project that might sound ambitious, but actually proved to be quite simple to make.

You see, in order to conserve memory, the BYOND programs actually store some icon information on your monitor, instead of inside the computer, whenever possible. If you have an object currently being displayed, any reference to that object's icon will reference the pixels currently in use at that object's location instead of the stored version of that image. A neat but seemingly trivial bit of information, right? Wrong! Because, you see, whenever you, sitting in front of your computer, make a sound, this sets up a series of vibrations in the monitor screen (and everything else around you, for that matter)... these vibrations distort the images being displayed to a degree undetectable to us humans... but obvious to even the slowest modern PC.

So what my program does is place a "microphone" object in the center of the screen (it's not really a microphone, of course, just a microphone icon... you don't even need a microphone for this program to work!), and every server tick, this object's (potentially distorted) icon is stored into a variable. The default, stored version of the microphone icon is subtracted from this icon via icon arithmetic, resulting in an "icon" consisting only of the changes made to the original icon by the sound of your voice... in effect, a recording of any sounds made during that server tick! A little behind-the-scenes file manipulation changes the new "icon" extension from .dmi to .wav, which is all you need to do to get the computer to accept the sound and play it. That .wav can then be shared with other users on the system, and voila! Instant voice chat.

I'm in the process of adapting this project into a library format, so it can be added to any game being made or currently in existence... there are a few issues to work out, some of them have me stupmed, so if anyone has any idea, don't hesitate to shout them out:

1) The differences between the original icon and the distorted one are so tiny that the sound ends up being really faint... you have to turn your speakers all the way up to hear it. This isn't an issue, unless there's other sound (music, sound effects) in the game, which would end up being super-loud. I'm thinking this could maybe be fixed with multiplying the sound file by a high number, or maybe with more icon arithmetic, but these things aren't really my forte.

2) Monitors with speakers mounted on their side tend to create a feedback loop, both because of the proximity of the sound, and the magnetic distortion effect of the speakers "pulling" on the screen.

3) If your monitor has a 'degauss' button, pressing it while using the voice chat will cause a deafening bomb that will most likely blow out your speakers.

Since some of these bugs are potentially destructive, I'm not going to release this project until I've got them ironed out, and also until I've put in some failsafes to prevent the program from being used for evil. There are some serious privacy issues here, as this technique could be used to set up remote listening stations on any computer, anywhere.
Since some of these bugs are potentially destructive, I'm not going to release this project until I've got them ironed out, and also until I've put in some failsafes to prevent the program from being used for evil. There are some serious privacy issues here, as this technique could be used to set up remote listening stations on any computer, anywhere.

you could just giveit to me.. ill know what to do with it....()xxxxxxxxxxxxx):::::::::::::::::;;;;;;;;;;>
On 6/17/01 12:43 pm LexyBitch wrote:
After some stunning late-night revelations about the true nature of icon arithmetic, and the peculiarities of the .dmi format, I came up with an idea for a BYOND project that might sound ambitious, but actually proved to be quite simple to make.

I think you've been drinking what Jobe drinks...
In response to Deadron
On 6/17/01 2:43 pm Deadron wrote:
On 6/17/01 12:43 pm LexyBitch wrote:
After some stunning late-night revelations about the true nature of icon arithmetic, and the peculiarities of the .dmi format, I came up with an idea for a BYOND project that might sound ambitious, but actually proved to be quite simple to make.

I think you've been drinking what Jobe drinks...


she cant... i make mine myself... hehehe..
In response to Deadron
I think you've been drinking what Jobe drinks...

Not at all, Ron... I just thought I'd share a stunning breakthrough with some of the finer minds in the community, and see where they go with it.
This all renders my innovative discovery of how to send voice chat messages to your friends using nothing but a simple household telephone all but obselete!
..every server tick, this object's (potentially distorted) icon is stored into a variable. The default, stored version of the microphone icon is subtracted from this icon via icon arithmetic, resulting in an "icon" consisting only of the changes made to the original icon by the sound of your voice... in effect, a recording of any sounds made during that server tick!

It's well known in the digital recording industry that in order to represent a given frequency, you need to have a sampling rate of at least double that frequency. Seeing as how the typical human ear hears frequencies no lower than 30hz, it looks like you're going to need to set world.tick_lag down quite a bit from its default value, which gives ticks of 10hz.

In my (very rough) estimation, you're going to need a timing somewhere in the neighborhood of 400 ticks per second just to BEGIN to have speech intelligible.

Of course that's assuming a reasonable bit depth (say 12) is available. Sounds like those subtle monitor vibrations are not going to quite cut it in this category.

Nice idea though, LB... we need good thinkers like this.

Oh, and a note to the thick... yes, I know she was kidding. Go away.

/mob/skysaw
You've been playing a Son of Ether in Mage: the Ascension again, haven't you, Lexy?
In response to Shadowdarke
On 6/17/01 6:42 pm Shadowdarke wrote:
You've been playing a Son of Ether in Mage: the Ascension again, haven't you, Lexy?

WoD? ICK! ICK! ICK! UNCLEAN!
In response to Skysaw
Oh, and a note to the thick... yes, I know she was kidding. Go away.

Kidding???
3) If your monitor has a 'degauss' button, pressing it while using the voice chat will cause a deafening bomb that will most likely blow out your speakers.

Nice idea! I created it on my end, but accidentally did just that. Oops.


(Yes, I created my own implementation of the library in the span of 10 seconds. I can thank my underpaid, overworked clone slaves for that one. That, and my L337 N1NJ4 skilz.)
In response to Spuzzum
On 6/18/01 12:12 am Spuzzum wrote:
3) If your monitor has a 'degauss' button, pressing it while using the voice chat will cause a deafening bomb that will most likely blow out your speakers.

Nice idea! I created it on my end, but accidentally did just that. Oops.


(Yes, I created my own implementation of the library in the span of 10 seconds. I can thank my underpaid, overworked clone slaves for that one. That, and my L337 N1NJ4 skilz.)

See? Independent verification!
Hmm, sounds awesome...Have any of you noticed that when you stand back from a computer (about 10-30ft) and give it a big raspberry...You know Thhhptptptpttptptptptp...The monitor shudders? Anyone know what that is? Is that our voice disrupting the pixles? Or am I the butt of one of lexys jokes?
In response to Orinelly
Actually, if it is possible I would love to help produce it...I have to do a science project for physics next year and this would be awesome...