| |
AKA :
JavaScript SID emulator and player
Website :
http://hermit.sidrip.com/jsSID.html
Credits :
Code | .... | Hermit of Samar Productions, SIDRIP Alliance, Singular |
Design | .... | Hermit of Samar Productions, SIDRIP Alliance, Singular |
Idea | .... | Hermit of Samar Productions, SIDRIP Alliance, Singular |
Concept | .... | Hermit of Samar Productions, SIDRIP Alliance, Singular |
Docs | .... | Hermit of Samar Productions, SIDRIP Alliance, Singular |
Test | .... | Hermit of Samar Productions, SIDRIP Alliance, Singular |
Download :
Look for downloads on external sites:
Pokefinder.org
User Comment Submitted by Yogibear on 21 March 2016 User Comment Submitted by Slajerek on 8 March 2016
This is really awesome. Great comments inside and these signal processig tricks :D | User Comment Submitted by ChristopherJam on 8 March 2016
Very nice work indeed. I agree with Pex, the CPU emulation's really tidy. | User Comment Submitted by Hermit on 7 March 2016
Thanks guys. My trick (if I can call it that way) for compactness is planning ahead on paper (sometimes for days) before coding anything at all (learned from iWoz and life), and of course the 8bit scene spirit to pursue simplicity... (Something is not the best when you can't add more to it, but when you can't take more from it. Something like this is what I read in a chipdesign book 1-2 years ago...)
And PC is no exception, no matter what resources it might have, I can never be sure how much machines my programs will be running on... | User Comment Submitted by Pex Mahoney Tufvesson on 7 March 2016
Cool stuff! I love the simplicity of your CPU emulation-js! | User Comment Submitted by mstram on 7 March 2016
Hermit, I'm in awe of your programming greatness ;) | User Comment Submitted by Hermit on 26 February 2016
New browser-related information: The 6581 cutoff-curve seems to have a bit of inconsistency around the treshold in Opera 35 while it's OK in Firefox. I guess it's something related to preciseness of Math.exp function) | User Comment Submitted by Hermit on 26 February 2016
Or not including examples at all, as readability is probably my weak point then... (Or I just had no time to make it properly, who can tell...) | User Comment Submitted by Oswald on 26 February 2016
btw you could do some formatting work on the example html page, its practically unreadable. align to left for a start. lot of unnecessary () brackets. put comments behind code lines etc etc. | User Comment Submitted by Hermit on 26 February 2016 User Comment Submitted by Hermit on 26 February 2016
Oh, I just see there's no need for thos kind of permissions at GitHub. Digger simply forked the code. Looking forward your work Digger... | User Comment Submitted by Hermit on 26 February 2016
I uploaded 0.9.1 sources to GitHub, and also added many comments, so feel free to make jsSID better.
https://github.com/hermitsoft/jsSID
I did what I planned, now I have to move onto other projects...
But I can help further, if needed, and if anyone needs access to the git repository, drop me a message somewhere... | User Comment Submitted by Hermit on 26 February 2016
Browser tests and feedbacks summarized:
-Firefox, Chrome, Safari seems to work with jsSID
-On my Lubuntu15.04 test system Firefox 33 and 37 sometimes aggregates the sound depending on system load, but the most frustratin thing was that sound generation just stopped after a while. But as no one reported the same sympthoms, this issue might only be present with this particular OS+browser combination...
-Opera 35 seems to work fine with the freshest zip. (The workaround for Opera was to only disconnect AudioContext in JS if it has already been connected.) It plays fine without stopping the sound or clicking...
(Opera is my favourite browser BTW, I used its v12.16, the latest one with Presto, but Web Audio API is only supported since Opera15...)
Opera on the other hand seems not to like XMLHttpRequests for the local files, it complains in the debugger about 'cross origin' request despite using relative links. But the http based requests online operate fine, so you can still use Opera for the online player. (In offline mode only the test.html browse button works in jsSID with Opera...) | User Comment Submitted by akaobi on 25 February 2016 User Comment Submitted by Slator on 25 February 2016
just wow, awesome work! sounds really nice, what a hell of work you did here :-D | User Comment Submitted by Hermit on 25 February 2016
Good idea. Hah, hah, haaa :)
Just a little clarification: For people who are not familiar with web programming, this might not be obvious: jsSID is built from scratch, doesn't need any external sources. I coded the SID engine just as the CPU engine and the SID loader logic from scratch. Otherwise it wouldn't fit into 14..15kbytes...
You just need a contemporary browser that supports Web Audio API, that's all. No flash, java, or any plugins are required... | User Comment Submitted by mankeli on 25 February 2016
Wonderful! Now someone should make a web interface that allows people to find all the good sids from HVSC!
I suggest: Track users, let them rate/save their play histories, match users who have lots of collisions, play them good sid music, sell the data about all c64 users, and make millions! | User Comment Submitted by Hermit on 25 February 2016
I decided to upload a new version here...
This version has two additions:
-Default subtune number can be specified in the example player.html playlist for tunes by appending it to the playtime-information (separated by ':')...
-2nd and 3rd SID emulated when needed, so 2SID and 3SID tunes are played...
Version 0.9 is still suitable for single SID tunes, and the minimized jsSID.js 1kbyte less than this version (wich is now 15kbyte)...
I don't plan further additions, but listening to Digger's advice I open-sourced the code at GitHub, so feel free to improve it or customize it to your needs...
(BTW, the source code is included in the zipped downloadable content too... |
|
|
|
| Search CSDb |
| Navigate | |
|
| Detailed Info | |
|
| Fun Stuff | |
· Goofs · Hidden Parts · Trivia
|
|
| Forum | |
|
| Support CSDb | |
|
| |
|