? Potential for SmileNet, a smilebasic based net service. (using sound analysis) (Page 2) ● SmileBASIC Source Forums

Sign In

Register
*Usernames are case-sensitive
Forgot my password

Potential for SmileNet, a smilebasic based net service. (using sound analysis)

1 2 3
  • #21 ✎ 172 CoinzReturns Update Video below https://www.youtube.com/watch?v=HeFgy8g6VKo So that's what is working right now. It's kind of neat . I've been at this point with SmileNet for two days now. There's a slight issue with getting the letters to interprete uniquely. I'm going to attempt changing that as we speak. I'm just working on A and B right now. The issue mainly is that frequencies that are playing drop into the next 'listening' window, even as they are dying down. This dying down of audio causes the stopping sound part of a previously playing frequency to actually be interpreted (using zero crossings) as a totally different frequency so when playing for instance, the B tone into SmileBasic, as the tone stops: My algorithm seems to detect the tone at the next 'listening' window as a B input. This is input pollution and I haven't found a strong way to fix it yet without either creating extra delays between listens or somehow throttling it. There's a better solution and the solution I'm going to try next is pair-inputs. Pair inputs is a cool idea and I'm not sure it's widely used anymore but at one point or another it probably was. Basically you get initial input of a signal. Then you expect the same input to repeat once, to confirm that the signal is not lossy or bad. If you can't get a pair input that matches both times then you assume some interference, and start over. This is fine if operated by a human because the human can just repeat the input seeing that it failed the first time. For more broad and real-time applications it isn't an ideal way to deal with signal loss. I haven't gotten to dealing with the PC-end of things yet so perhaps after I do I can come up with a nice error-correction ratio. I'm considering using a sigmoid function on the pc end.. or better yet. An adjustable tone-frame rate. Yes.. that's right. An adjustable tone frame rate would allow SB to send the "same" data in the same tones backwards to the PC end. This tells the pc program "This is the signal I have. " The pc program can then compare the signal it used to the signal SmileNet's framework interpreted on that frame and issue a sync-wait. This sync-wait can be used to better tune the pc program and the SmileNet framework to work together in synchronicity. The goal this week is to get SmileNet to an input state that can allow me to type "Hello World" using my pc and to see the letters come up on the 3ds screen interpreted from a real time analog signal. if I can achieve this then I can move into trying to shrink the frame-window of the signal. This is strictly speaking, a time domain issue at best. So it's not going to be too hard to solve. It's been done a lot and there are a variety of solutions that are reasonably quick that do not require FFT. This means that probably on the 3ds end I'm going to try my hardest not to force people to use the dlc until I absolutely can't speed it up anymore. At which point the features will be available without dlc, but enhanced with dlc so you will have two options as a SmileNet user. Wish me luck. and yes eventually we will get SmileNet working with Twitch chat. ;) Posted
  • #22 ✎ 172 CoinzReturns Update Below: The word "Login" is seen typed into Smilenet's basic interface. I used my computer keyboard to do this at a blazing 1 letter every two seconds (roughly) That's okay though because here's a hello World: SmileNet is making headway. Basically after this test I can attempt now to speed up the input by (alot probably) The error ratio is going to go up with speed so I'll need to formulate a better error-checking thing than using pairing. Pairing is nice. Uh even with pairing right now at really high speeds it's very error-prone. I may modify the method smile-net uses but for the time being.. it's staying where it's at. If anyone has any questions about this let me know. I'm very pleased with myself that I even got this far. It's not practical yet.. but it is a proof of concept. also it still is somewhat error prone even at slower speeds. We have right now about one character a second.. It isn't horrible. It's not the greatest though. I'll try to speed it up. Still one character on a 3ds game can be used to represent a lot if you get creative (several bits infact) Which if you know anything about game-states you would have a byte table like this first message: 01010101 or whatever Then set the bits like so: 01001010 or however you want Where each bit in the byte actually represents 8 possible values in a truth table, telling the game (system) about a specific state. Ie what mode of online link you are using with someone else? Though yeahh it needs work. Keep posted. I mean.. you know. Posted
  • #23 ✎ 172 CoinzReturns Update Okay everyone who's been eager to see something real! Here is a ground-breaking proof of concept working. Spoiler below sorry for shaky cam https://www.youtube.com/watch?v=8TDGBl__154 Please enjoy!! This is still not fully humanly usable but i've optimized it as close as I can for tonight! I am PLEASED. Posted
  • #24 ✎ 184 MZ952 Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength Drawing I like to draw! Hobbies Reading I like to read books! Hobbies The implications of something like this are incredible, I admire your work here! Posted
  • #25 ✎ 194 Perska Summer 2016 Contest Winner I won the SmileBASICSource Summer 2016 Contest! Programming Contest Expert Programmer Programming no longer gives me any trouble. Come to me for help, if you like! Programming Strength Great Page Hidden Achievements
    Update Okay everyone who's been eager to see something real! Here is a ground-breaking proof of concept working. Spoiler below sorry for shaky cam https://www.youtube.com/watch?v=8TDGBl__154 Please enjoy!! This is still not fully humanly usable but i've optimized it as close as I can for tonight! I am PLEASED.
    That's pretty nice! *∞
    Posted
  • #26 ✎ 172 CoinzReturns
    The implications of something like this are incredible, I admire your work here!
    Thank you :D
    Posted
  • #27 ✎ 172 CoinzReturns
    Update Okay everyone who's been eager to see something real! Here is a ground-breaking proof of concept working. Spoiler below sorry for shaky cam https://www.youtube.com/watch?v=8TDGBl__154 Please enjoy!! This is still not fully humanly usable but i've optimized it as close as I can for tonight! I am PLEASED.
    That's pretty nice! *∞
    Yeah I thought so too.. can't wait to get twitch chat running lol lol lol
    Posted
  • #28 ✎ 172 CoinzReturns Update WITH KEY Okay so this is just the key 7EENX3ZJ You still need the pc program which, I'll upload later. For the time being anyone feeling adventurous can experiment with an online tone generator alternatively.. use your splitter and play music into it and watch the letters flow. (seriously check it out!) and no its not just random it really reads tones as letters. It now supports the space and newline keys. Have fun looking for "hidden secret messages" in music. Posted
  • #29 ✎ 416 ElzoBro First Day Joined on the very first day of SmileBASIC Source Website Video Games I like to play video games! Hobbies Drawing I like to draw! Hobbies Awesome! I like this idea! I knew that something like this was possible! Posted
  • #30 ✎ 43 a_load_of_barnacles Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength Good Page Hidden Achievements Avatar Taboo I didn't change my avatar for 180 days Website Is process still being made on this, it has great potential! Posted
  • #31 ✎ 172 CoinzReturns
    Is process still being made on this, it has great potential!
    Progress will be made when my math abilities improve a little. It doesn't seem like I have the math knowledge needed to apply the fft algorithm. I'll be working on it. Buying the fft dlc is also an option I might check.. I'm uncertain at this stage. o.0
    Posted
  • #32 ✎ 172 CoinzReturns
    So I'm currently working on something similar where it would be a plug-in to the 3ds and the computer would hook up to a server I'm currently trying to hook up. It looks like you're actually quite a bit ahead of me in the audio transmission. The grand plan of mine was to hook up a raspberry pi to work as a game style server (not a website server) and to be able to create an internet service, similarly to what you described. If you want to work together to where you handle the SmileBasic side and I handle the computer side then I would be more than delighted to do that. Cheers
    I wouldn't mind doing that, but there's some issues with noise isolation that still make this a bit infeasible. Also.. a 3ds running smilenet would not be able to run a real time game and also do streaming unless this method of communication can be sped up in real time (at higher rates) with lower error ratios. The speed causes error ratios to spike dramatically. If I were to get the DLC for SmileBasic that includes the FFT library already I may not have as much of a problem but I wanted this to work for everyone without money. Anywho.. message me in the chat if you want to catch me I hang out there alot. I am currently in over my head right now with some other*ahem* projects nearing completion. One of them is a virtual machine that runs in SmileBasic soo yeah.. that'll be fun!!
    Posted
  • #33 ✎ 14 benjymous Expert Programmer Programming no longer gives me any trouble. Come to me for help, if you like! Programming Strength Day Person I like the warm sunshine and wake up early! Express Yourself Reading I like to read books! Hobbies I've considered doing something very similar, though personally I planned to reverse engineer the Petit Modem source, as that already has the fast data transfer algorithms created. Rei does grant permission on his site for people to reverse engineer and modify his code, so that shouldn't be an issue. I have emailed him to see if he'll release the source to his PC app (which I believe is written in VB.Net) but for now it's possible to decompile the .exe using .net decomplilers (and thankfully he uses English function names, so the code is fairly easy to follow) My main hurdle is I need to get/make a suitable cable for the two way comms - My laptop has a 4-pole combined mic/headphone jack, so it's not as simple as the regular splitter cables. My plan was just to allow a dropbox style "sync" between a local folder and a SB project folder - this way you'd just run the SB app and the PC app, then would be able to open up the files locally in your favourite text editor and paint programs, and have them converted/synced back to SB automatically. You could even pretty easily have run and debug options straight from the PC. I guess, the first person to get something that's actually usable at a decent speed should try and make their solution "plug-in-able" - I.e. keep their send/receive code as isolated as possible in its own library, so other tools can piggyback off it and add additional functionality. Posted
  • #34 ✎ 172 CoinzReturns
    I'm kinda stuck with PetNet so far so as a kind of side-project I'm currently working on SmileBasic Minecraft. I am making progress with Minecraft but if you could give me your sound-analysis code it would be much-appreciated. Thanks
    I can't do that at the moment but I'll try to see what I can do... the sound-analysis code I'm using relies on specific frequencies though within a set range. It also relies on a pc program that uses pre-recorded audio samples, and each pre-recorded audio sample matches roughly that frequency range and represents a letter from A-Z.
    Posted
  • #35 ✎ 172 CoinzReturns
    Oh, okay then. I didn't understand how you were doing it at first but now that you have really explained it I can see some improvements that could be made. For one, I plan to ditch the whole frequency idea and use the ADC instead, which should allow for faster data transmission. However, I must admit that for text transmission your system seems pretty genius because if the signal strength decays it won't ruin the data.
    That's because I use a frequency range instead of a specific frequency. I had to manually test what ranges were good, as well.
    Posted
  • #36 ✎ 260 Shelly Hypothetically using that frequency generator code couldn't you choose values which gave you 2250 Hz, and 1250 Hz (or whatever the tones used are) for a 300 baud dial-up connection? Then, all you would have to do is use something such as a mobile-phone (or really anything with the correct audio jack) and call into a dial-up service? BAM, dial-up internet in SmileBasic, with the user free to implement whatever TCP/ IP stuff they want. Posted
  • #37 ✎ 1571 12Me21 Head Admin Syntax Highlighter Received for creating the code syntax highlighter on SBS Night Person I like the quiet night and sleep late. Express Yourself Second Year My account is over 2 years old Website Cell phones have extremely poor quality audio. I doubt you'd be able to get any decent speeds that way. Posted
  • #38 ✎ 408 kenchic Avatar Taboo I didn't change my avatar for 180 days Website Second Year My account is over 2 years old Website Good Page Hidden Achievements Not to mention you would need to set up a dedicated cell service for that a network to exist Posted
  • #39 ✎ 260 Shelly I actually would, since 300 baud internet uses FSK, not the kind used for 56k. In other words, it doesn't rely on analog values, just very rough frequencies. Posted
  • #40 ✎ 260 Shelly
    Not to mention you would need to set up a dedicated cell service for that a network to exist
    Well seeing that there are currently no alternatives with even the slightest amount of practicality, I'd say this is pretty good. Also, could you please explain what you mean for "dedicated cell service"?
    Posted Edited by Shelly
1 2 3