Previous Page | Next Page

by SmartOne at 2:30 AM EDT on April 19, 2009
I like Opera.

Admire the efficient use of window space!

edited 2:42 AM EDT April 19, 2009
by SmartOne at 2:31 AM EDT on April 20, 2009
Natural Correspondence Algorithm for converting a linear list into a binary tree.

Input: (A(B(E(KL)F)C(G)D(H(M)IJ)))

Preorder traversal: ABEKLFCGDHMIJ
Inorder traversal: KELBAFGCMHDIJ

At least the Inorder is wrong. Dying right now sounds appealing.
by mudlord at 7:59 PM EDT on April 20, 2009
SmartOne: have phun
by SmartOne at 10:49 PM EDT on April 20, 2009
Awesome! The 44100 Hz sample rate for SPCs makes them sound more "present" than 32000 Hz in the old plugin. I did a comparison. ;) Or maybe it's the slighly more accurate everything? Resampling is done after decoding? If so, what's the purpose? Would it be better to leave the native rate alone (or have a sample rate option. :D )

So this is the bleeding edge of SPC playback. With metadata support, no less. It sounds great! Haven't tried any other formats yet.

I'm in the greetz! Thank yaz! :D

edited 10:57 PM EDT April 20, 2009
by Mouser X at 11:30 PM EDT on April 20, 2009
Hey! Nice plugin! Some suggestions though. In the configuration box, it'd be nice to be able to change the default play length. While 3 minutes is what I'd use anyway, I'd still like to be able to modify it. Also, I like how NEZplug++ skips to the next track. That is, when you use the keyboard shortcuts, it goes to the next subsong (Ex: "b" goes to next subsong, "z" goes to previous, etc.), but when pushing the "next" or "previous" buttons on Winamp's main window, it goes to the next song in the playlist. Perhaps that could be configurable? I know some people might not like that method (for a long time I found NotSoFatSo's method acceptable).

The last thing I would suggest is in regards to tags. I really like that your plugin handles NSFe files ([EDIT] but it doesn't seem to pay attention to track length very well...) (which is of course because GME supports NSFe), but it'd be nice if when pushing ALT+3, you could alter the tags. For those formats which don't support tagging, perhaps you could "standardize" the M3U tagging method.

That is, when pushing ALT+3, the user can fill any of the data fields that box has. For those fields which are already filled out by the file (GBS and NSF for example), it is greyed out. However, the user can still change this by clicking on it, and entering in something new. This will not alter the original file, it will just put in a new entry into the M3U list. Each field corresponds to a playlist type. For example:

Track Name = %title%
Track Artist = %artist%
Track Length = %length%
Fade Length = %fade%
Game System = %system%
Game = %game% (or %album%, depending on your taste)
Copyright = %copyright%
Dumper = %dumper%
Comment = %comment%
Tagged By = %tagger%
<And any other field I forgot, which I'm sure there's some I forgot about>

(I only listed the "tagged by" field because I've seen it requested in other formats)

Then, in the configuration box (CTRL+P, Input plugins > in_mgme > configure), the user can specify which of these fields to use, and how to arrange them. For example:

%game%: %artist% - %title%

This would display as "The Legend of Zelda: Koji Kondo - Title" for the first track, and in the M3U would look like:

Zelda.nsf::NSF,0,|The Legend of Zelda|: |Koji Kondo| - Title,0:1:14,,0:0:5

(The "|" are being used as seperaters to designate the different fields. I'm sure a better seperator could be used, but that's the one I came up with that is less likely to already be in use.)

Then the user could go on to the next track, and fill in the fields as appropriate.

I've already loaded up some of these M3U lists (Tetris to be exact), so I realize that in_mgme doesn't support them (I would have been surprised if it had). As such, you'd have to add code to support this. I was just thinking that, so far, the plugin looks very promising (it will *very* likely replace NotSoFatSo on my PC. The biggest thing I'd be missing is the ability to modify/create the internal NSFe tags/playlists). With a few additions, it could replace a large majority of my current plugins. Being able to parse/create M3U playlist tags would be a plus.

Awesome work nonetheless. Thanks for the plugin. I'll certainly be using here and there. If there are any updates, I look forward to them. Oh, and if I wasn't clear, or if you have questions, I'll try to answer them. I'm pretty sure that my proposed method (as seen above) doesn't fit very well with the currently created M3U playlist tags, so that's something that would have to be considered if this method were to be used. On that note, I would think Knurek might have something to say (he prefers the M3U tags). Mouser X over and out.

edited 11:39 PM EDT April 20, 2009
by mudlord at 12:18 AM EDT on April 21, 2009

a) The SPC emulation used is the "accurate" emulation, not blargg's "fast" cycle accurate approach. The sound should be outputted in 32Khz, and no up-resampling should occur. The Gaussian table is used for interpolation, zero plans for cubic or sinc. And yes, its nice outputting at the native sample rate, with native interpolation, with cycle accuracy. But resampling shouldn't be a issue since we use blargg's FIR resampler :P

And yes, this should be the most accurate Winamp SPC emulation plugin there is.
b) Sample rates above 48000hz are pointless because it uses band limited synthesis for other formats (NSF/GBS/HES/etc).

@Mouser X: Some things you described in your post, I am against adding in. Otherwise, I would have added in your suggestions about using Winamp buttons to go through tracks, or using keyboard hotkeys.

Other stuff than archiving or subclassing is fine. Last time I seen, GME does have a native M3U reader class. And yes I know the NSF stuff needs some work.

As for other stuff, I will take it as it comes. There is still loads to do anyway.

edited 12:19 AM EDT April 21, 2009
by Mouser X at 1:05 AM EDT on April 21, 2009
More configuration options could help here then. Like I said, I've gotten used to NotSoFatSo's track selection method (which is what your current method appears to be based on). The biggest problem with the method you've implemented here is that it's very large, and "steals" precedence from Winamp. In other words, with the ALT+3 box open (the only method I can see for skipping subsongs currently), I can't do anything with Winamp's playlist (the "Main" (previous, play, pause, stop, next) buttons seem to work). For me, this is a pretty big issue.

As for the method I mentioned (the one that NEZplug++ uses), maybe you could implement it as an optional method? I'm not sure why you'd be against adding that method of control (please inform me). In regards to my usage of Winamp, the NEZplug subsong skipping method would be very useful. When I have Winamp running, it's running in the background. I have a nifty plugin that "hooks" into the application that's currently in the foreground. It adds "previous, play, pause, stop, next" buttons to the title bar of said applications. When using those buttons, I can control Winamp freely without having to bring it to the foreground. I assume that for those people who use Winamp's Global Hotkeys plugin, the effect/usage would be the same. With NotSoFatSo's method of subsong skipping (what yours appears to be based on), pushing "next" skips to the next song in the playlist. While I am used to that effect (I've been using NotSoFatSo for years), it'd be nice to have the option to control it in different ways.

I don't mean to downplay what you've done. I really appreciate it (NotSoFatSo hasn't been updated in ages, and needs some fixes. UKNOWNFILE's VRC7 modifications help here), and I'm already familiar with that method of subsong selection. But after using NEZplug for awhile (I'm not on my PC here, and I wanted to install the fewest plugins I could), I can see how it would benefit my usage style quite a bit.

I guess what I'm saying is "Please reconsider." Since it's you doing the work here, I won't complain about your final decision. But I am interested to know what you're against, and why (and, in that same thread, why you'd be against adding it as an optional method). If it has to do with the level of code complexity, I can understand that problem. Perhaps, since NEZplug is open source (as is NEZplug++), maybe you could simply copy the code directly from that plugin? Just a thought, and I have no idea how feasible that is (there could be licensing issues, among other things).

Thanks again for the plugin, and the reply. Mouser X over and out.

edited 1:24 AM EDT April 21, 2009
by mudlord at 1:59 AM EDT on April 21, 2009
The way how NEZPlug does it is a hack, and a ugly one at that. Same with that usage of the Winamp buttons.

I really am against making 2 seperate plugins for XMPlay and Winamp, thats the issue. If there is a magical way to do what you ask without all the hackery, I would love to hear it. Otherwise, I'm sorry but all the code hacks for something like that does not sound like my idea of fun. foo_gep works around this issue entirely by having subsong support directly inside the foobar2000 core player. Whereas with Winamp, it doesnt natively.

As for the GUI, that shouldn't be a problem. In fact, I am hoping a rewrite of it to be like NotSoFatso at some stage, since I actually like how its implemented.

edited 2:02 AM EDT April 21, 2009

edited 2:04 AM EDT April 21, 2009
by Mouser X at 2:04 AM EDT on April 21, 2009
Ah. Those are both valid concerns. (interesting note: the plugin I use which "hooks" into other applications is frequently called hacky, and for good reason. That doesn't stop me from using it though) Thanks for clarifying that. I'll be quiet (for) now.

(I'm trying to think up ideas, but none are forthcoming. If I do get any ideas, I might speak up again. But for now, you've given me what I asked for (in regards to your reasons, which are sound))

I tried playing some VGZ files, and they don't work. Extracting them (I used 7zip) and adding .vgm on the end works though. For kicks and giggles, I simply renamed a VGZ to VGM (no extraction), and it crashed Winamp. I realize this is still very much a work in progress, but is VGZ support likely to happen "soon"? Just curious.

Also, when I have my prebuffer really high (CTRL+P > output > out_wave/out_ds > buffering) it cuts the song off early (I noticed this on SPCs. I'm not sure about other formats). I'm not a programmer, but my understanding is that the reason for this is due to the next song in the playlist being loaded. When it's loaded, the plugin isn't multithreaded properly, so the currently playing track is disregarded, so that the next one can load. I know that 64th Note fixed this (I'm pretty sure it used to have this problem), and I've never noticed this problem with NEZplug. I'm pretty sure that DrO, and perhaps HCS, could help out here (DrO (he's done a lot of proffesional coding for Winamp) stops by in #usf occasionally, and HCS is always around).

I realize this is the part where SmartOne (and others) say "Use XMplay!" I'm looking for a proper fix. This computer is terrible for CPU (it's got a 450 mhz CPU), and having an extended buffer makes a big difference in how well a song plays (other formats generally, not NSF/GBS/SPC/etc., but I don't want to change my buffer every time I want to listen to a different format). So, I'm pointing out this problem in the hopes that it can be fixed (instead of glossed over with a new program). Mouser X over and out.

edited 3:54 AM EDT April 21, 2009
tl;dr by unknownfile at 7:33 AM EDT on April 21, 2009

Previous Page | Next Page
Go to Page 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202

Search this thread

Show all threads

Reply to this thread:

User Name Tags:

bold: [b]bold[/b]
italics: [i]italics[/i]
emphasis: [em]emphasis[/em]
underline: [u]underline[/u]
small: [small]small[/small]
Link: [url=]Link[/url]


HCS Forum Index
Halley's Comet Software
forum source