chordian / deepsid Goto Github PK
View Code? Open in Web Editor NEWThe source codes for running DeepSID, a modern online SID player for the High Voltage and Compute's Gazette SID collections.
The source codes for running DeepSID, a modern online SID player for the High Voltage and Compute's Gazette SID collections.
There may be various issues with DeepSID in the version of Microsoft Edge that have the original IE++ engine. For example, clicking the ".." browser button to go back one folder might invoke a dialog box about logging in or registering to rate files and folders with stars. There are also problems with animated SVG files that apparently Edge doesn't support properly.
It's currently possible to have SID path links so wide that it skews the competition results list.
Example:
In #22, support for ASID playback was implemented. This works fine, but due to the limitation on MIDI speed, ASID itself has a maximum update rate at about 75Hz, and can only handle single-SID-files. If the MIDI speed could be increased there would be room for adding both multiSID as well as multispeed support.
Fortunately, there are solutions for this. For instance there is the "Turbo MIDI" protocol, developed by Elektron in the TM-1 interface (and used by a number of Elektron machines as well as some other brands). By using that one, speeds up to 10x MIDI rate is possible. Together with extensions of the ASID protocol itself, functionality for multi-SIDs can also be added. No adaption in DeepSID is needed for the hardware side, as TM-1 is fully MIDI compatible (so the browser will see it just like any other MIDI interface). Main work is on the device side, with only adaptions on the ASID protocol for DeepSID.
A proof-of-concept that lets DeepSID support up to 3SID and 4x files has already been developed, with an accompanying development for TherapSID (which here can handle 8x MIDI rate and 2SID). Demo videos are available here:
Update: A working demo with both 2SID, 3SID as well as SID+FM, now ready for submission is here:
I measured the filters of two of my SID with A. Lanakilas method and have the coefficients that SIDPlay2 uses.
It is unclear how I calculate the values for the DeepSid filter settings panel from that.
The SIDPlay2 filter coefficients look like that:
[FilterEnigma6581R3_4885]
DistortionRate=0.50
DistortionPoint =2048
VoiceNonlinearity =0.96
DistortionCFThreshold =2.5e-4
Type3BaseResistance =1090649.9265298771
Type3Offset =264401456.3944572
Type3Steepness =1.0145069244334666
Type3MinimumFETResistance=19890.786352277173
[FilterEnigma6581R3_1585]
DistortionRate=0.50
DistortionPoint =2048
VoiceNonlinearity =0.96
DistortionCFThreshold =2.5e-4
Type3BaseResistance =1119380.8539989102
Type3Offset =257709531.3343812
Type3Steepness =1.0073881870085593
Type3MinimumFETResistance=20269.79137269368
To reproduce this:
HVSC/MUSICIANS/F/Follin_Tim
Qix.sid
default subtune 11, the previous 10 are not played
Psycho_Pigs_UXB.sid
default subtune 4, the previous 3 are not played
Music_Demo_Version_1,sid
default subtune 27, the previous 26 are not played
I think simply ignoring the default subtune and always starting from 1 would be enough.
(And thank you for DeepSID, it managed to break my habit of using XMplay on Windows :)
This was suggested by Zbigniew Uggett on Twitter. (Matty Seito?)
Currently DeepSID uses minutes and seconds for song length values as was used by the High Voltage SID Collection up until update 69, but from 70 they claim to have added milliseconds as well.
Personally I imagined that milliseconds really wouldn't make much of a difference, and I'm not even sure if all of the SID handlers (particularly the emulators) would benefit from it at all.
The "ASID" protocol was developed as a way of sending Commodore 64 SID files over MIDI to be played back on the Elektron Sidstation. The format is available on the internet (for instance here) and some other instruments like the Midibox (and soon Twisted Electrons TherapSID) have support for it. Also real C64's can play this format by the application "Station64".
Since the original ASID player is outdated and doesn't work on newer macOS:es it would be really nice if ASID support could be implemented in DeepSID, allowing hardware SID playback directly from the huge database and without need to install anything.
I have actually already implemented the above as a proof of concept :) Demo available together with in-development TherapSID implementation here:
I have a request. When using the sort filter for All/Personal I note that choosing Personal basically kills off all items except HVSC and Compute's Gazette. I'm wondering whether you could include the other non-personal playlists in the list of items that remain when choosing Personal. $11 Music Compo, X2016 etc aren't personal playlists but factual collections. Or perhaps if you could include a third option. Something like this:
All (includes HVSC + Compute, democompo collections, made-public and private playlists)
Master and Democompo Collections only
HVSC+Compute only
I'm just looking for a way to exclude playlists that people are making public. I don't mind seeing the democompo compilations, or of course the master compilations, but the contents of individual playlists are a crapshoot and IMO have already started to mess up the list of items shown in the root folder. Obviously I want my own personal favourites playlist displayed at all times though. :-)
It's currently possible to specify a ?emulator=""
URL switch that is incompatible with the ?file=
folder switch.
Access to XMLHttpRequest at 'http://ftp.acc.umu.se/mirror/media/Oakvalley//soasc/hvsc/052/FLAC/MUSICIANS/A/A-Man/Smoove_Groove_T001.sid_CSG8580R5.flac' from origin 'http://deepsid.chordian.net' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
@Chordian thanks for such an awesome tool. Use it literally every day while at work :)
Not sure if there is a reason for this, but the live version of DEEPSID allows HTTP and also HTTPS, however, if you try and log into the HTTP version, at least under CHROME, it will cause a failure, throw up an alert to email you, and just stay logged out. A bit of investigation showed me that the security package I am using was blocking credentials being sent unencrypted... I would expect this issue will happen to other users for sure.
This issue does not occur when the site is loaded with HTTPS instead of HTTP protocol in the browser.
To solve this issue (and not pass user credentials unencrypted) it would make sense to simply redirect all HTTP calls to HTTPS in your Apache configuration which can be done in the website config file. Let me know if you require an example. Happy to help.
Regards
Joe
aka ZIGGY / DEFAME
If you load a tune from URL with #!
from Disqus, sorting and then playing invokes an error.
hi,
hvsc.php is sometimes serving invalid characters with the file.name
property of some songs.
Apparently it's always the last character of the same property and that character is always 0x7f
so it should be easy to find the cause.
I collected some examples, not sure how many folders are affected:
SID_Happens/2020
folder:
{
"filename": "Lightforce_in_E.sid",
"substname": "",
"playerraw": "GoatTracker_V2.x",
"player": "GoatTracker_V2.x",
"tags": [
"Remix"
],
"tagtypes": [
"mixorigin"
],
"lengths": "7:45",
"type": "PSID",
"version": "2.0",
"clockspeed": "PAL 50Hz",
"sidmodel": "MOS6581",
"datasize": "4913",
"loadaddr": "4086",
"initaddr": "4086",
"playaddr": "4099",
"subtunes": "1",
"startsubtune": "1",
"name": "Lightforce in E�", <<<<<<<< \u007f
"author": "Eric Dobek",
"copyright": "2020-11-22 Eric Dobek",
"stil": "<br /><b>TITLE:</b> Lightforce\n<br /><b>ARTIST:</b> Rob Hubbard\n<br /><b>COMMENT:</b> Based on <a class=\"redirect\" href=\"#\">/MUSICIANS/H/Hubbard_Rob/Lightforce.sid</a>",
"rating": 0,
"hvsc": "0",
"symid": 0,
"videos": "0",
"profile": "_High Voltage SID Collection/MUSICIANS/D/Dobek_Eric",
"uploaded": "2020-11-27 11:03:55"
}
SID_Happens/2021
folder:
{
"filename": "25_or_6_to_4.sid",
"substname": "",
"playerraw": "GoatTracker_V2.x",
"player": "GoatTracker_V2.x",
"tags": [
"Demo",
"Cover",
"Chicago"
],
"tagtypes": [
"production",
"origin",
"suborigin"
],
"lengths": "5:00",
"type": "PSID",
"version": "2.0",
"clockspeed": "PAL 50Hz",
"sidmodel": "MOS8580",
"datasize": "4630",
"loadaddr": "4096",
"initaddr": "4096",
"playaddr": "4099",
"subtunes": "1",
"startsubtune": "1",
"name": "25 or 6 to 4 (Chicago cover)�", <<<<<<<< \u007f
"author": "Ari-Pekka Paljakka (Zardax)",
"copyright": "2021 Artline Designs",
"stil": "",
"rating": 0,
"hvsc": "0",
"symid": 0,
"videos": "0",
"profile": "_High Voltage SID Collection/MUSICIANS/Z/Zardax",
"uploaded": "2021-02-16 20:37:53"
}
folder SID_Happens/2022
folder:
{
"filename": "4matted.sid",
"substname": "",
"playerraw": "GoatTracker_V2.x",
"player": "GoatTracker_V2.x",
"tags": [
"Intro",
"Conversion",
"VIC-20"
],
"tagtypes": [
"production",
"origin",
"suborigin"
],
"lengths": "5:00",
"type": "PSID",
"version": "2.0",
"clockspeed": "PAL 50Hz",
"sidmodel": "MOS8580",
"datasize": "2304",
"loadaddr": "4096",
"initaddr": "4096",
"playaddr": "4099",
"subtunes": "1",
"startsubtune": "1",
"name": "4matted�", <<<<<<<< \u007f
"author": "Jani Joeli (Frostbyte)",
"copyright": "2022 Artline Designs",
"stil": "",
"rating": 0,
"hvsc": "0",
"symid": 0,
"videos": "0",
"profile": "_High Voltage SID Collection/MUSICIANS/J/Joeli_Jani",
"uploaded": "2022-02-14 07:21:20"
}
Now that it's possible to specify sub tunes for a SID tune in a playlist, it opens up the need for having multiple rows of the exact same SID tune, each using different sub tunes.
Add a Quality
filter option in the drop-down box for MUSICIANS, for JCH's three star ratings and up.
Hi and thanks for that awesome platform 👍
I've been developing an HVSC-based SID Player for ESP32, it acts as the C64 and is designed to drive any type of SID Chip (preferably clones).
Now that everything appears to work fine with the filesystem, I would like to test with an online database, and the deepsid site appears to provide an excellent API although it seems some measures are in place.
I know this can be easily prevented by sending the extra headers, but before doing that I'd like to ask if using the site in such a way is acceptable.
Also I found that not all queries using $_GET are prepared in hvsc.php, this smells like SQL Injection waiting to happen.
This is not an issue on desktop computer as they use a custom scrollbar plugin that marks the row correctly. However, mobile devices use native scrolling instead of this plugin.
It's also possible it only happens in playlists.
The phenomenon can be observed at certain rows in e.g. Luca's Favorites, and only when touching rows directly. Using the SKIP buttons seem to mark the rows correctly.
I first thought it was tied to duplicate versions of the same SID tune in a playlist (each with different sub tunes) but it turns out that the problem also occurs in other places where the SID tunes are unique.
None of the handlers will play this one, not even the Download SID file option.
http://deepsid.chordian.net/?file=/MUSICIANS/G/Green_David/Advert.sid
Upgrade the file tree and the database to support High Voltage SID Collection update #70, when it has been released.
Sharing on Facebook requires an app ID for the API code. Creating and setting up the app is easy enough, but they require a privacy policy URL to enable it, and that's not acceptable for a mere share dialog. I don't have a privacy policy and I don't intend to create one.
I haven't investigated if Twitter have the same problem.
Hello! First let me thank you for this great tool! Really appreciate all that you've put in to it!
I'm the developer of the TeensyROM project and one of its features is the ability to pass along ASID data to a real C64. It works great, but a user identified a few SID files that don't seem to play back correctly.
The main one I've been reproducing the issue with is Miami Vice by Martin Galway (though there are others as well). When I try to send via ASID, nothing is output. I can verify that by looking at the Memo Visual view. To further prove it out, I downloaded the file and play it back via asidxp.exe and that does stream/play correctly. This confirms the problem is apparently in the DeepSID player.
Please let me know if you need any additional information. Thank you again!
The SID ID numbers for all new and changed SID files in HVSC version 70 will have to be updated in the database for pages in the CSDb tab to appear.
However, this can't be done until these SID ID entries have been updated in CSDb itself.
Consider this file on your player website:
That song is actually a stereo tune, i.e. there is a *.str to go with it -- at least in the standard CGSC archive. I saw the stereo/mono dropdown (where it mentions enhance modes), but no matter what I try I can't get the web player to do anything more than standard 3-voice mono.
(works fine on Stereoplayer 10.x of course, but my local files came from the standard archive)
Seek clicking with SOASC handlers is not precise on Microsoft Edge. It goes a few centimeters too far each time.
It would be cool to show how many times a song was played - globally - so you can see how popular songs are.
It would be also be cool to show how many times a playlist has had songs played from it - globally - so you can see which playlists are popular. Of course, I may be biased since the 'Ziggy's funky booty slapper' playlist is the best. ;)
This would be very useful information to rank and sort playlists and tunes.
PS: thanks for making and maintaining such an awesome tool. Keeps me sane at work every day!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.