CheeseGuy99: Yes, like I said, it's just a demonstration of a reuse idea of the Qt FamiTracker library. The library contains the entire MFC FT, and the Qt/MFC HLE. The Qt FamiTracker executable isn't much more than a thin Qt application shell. The FamiPlayer is actually a bit 'thicker' than that because it mixes native Qt UI elements and layouts and MFC elements in the same Qt UI.
nintaldens: I expect the UI to be functionally complete with the 0.3 release which could be out in the next day or two. It'll have a few more widgets, such as support for song loop timing, and perhaps a button for volume fade-out [if I get around to that one]. I don't mind if you take videos [link me if you do, I'd like to see where they end up]. But just note that the UI might change slightly. Oh...I also planned to hook the visualizer menu up so you can pick between the available visualizers in FT.
If I understand what you're looking for, everything you want/need should be possible with the librarified FamiTracker. Indeed, the FamiPlayer demonstrates a few of these things already. You can jump to a random position within a song by moving the slider. Anything you can do in the GUI you can do by either sending the appropriate Windows message or making the appopriate function call to the FamiTracker library. For example, you could change instrument settings, mute/unmute channels, change playback speed, change track orderings, etc. All without the GUI. That doesn't mean, of course, that some of that might not be quite involved -- and might make sense to provide simplified APIs to accomplish if there is enough interest in it. For example, it might not be obvious to some that:
AfxGetApp()->OnCmdMsg(ID_NEXT_SONG,0,0,0);
is how you move to the next subtune in a multi-tune FTM, or that FF/RW can be accomplished by calling:
CFamiTrackerView::GetPatternView()->JumpToFrame(ui->position->value()/pDoc->GetPatternLength());
CFamiTrackerView::JumpToRow(ui->position->value()%pDoc->GetPatternLength());
The above may not be completely right -- I'm still debugging FamiPlayer trying to get it ready to release.
Practically the only thing I've had to modify in the original MFC FamiTracker source to implement FamiPlayer was to add an accessor method to CMainFrame to get the sample window's CWnd so I can use it in the FamiPlayer GUI. Oh...and I modified the sample window's drawing methods slightly so that the image can by dynamically resized. But those are beyond the 'behind-the-scenes' stuff.
Thanks for this info; I'd love to see the end result & try to use it for a test keygen (& eventually, make my own MAME frontend that can play FTMs seemlessly instead of MP3s).
_______________________
Technology: the one thing that's hated & cursed at by all engineers, technologists, scientists & technicians!
Theoretically, yes. All he has left is the GUI. But does he have the time to do so? I think no.
_______________________
"im going to continue making this crazy stuff then after a while my style will be so sick that you will be like damn suuun that shit is so sick i dont even get it. i will be like bro its ok.. you dont have to." -omgdonut
And yeah, I agree completely with you, and I think that the reason people like this particular idea (me included) is because they're too lazy to convert to nsf. Not to mention, I don't know of any real playlist-based nsf players...
The only thing I know of that can run NSF files from a playlist is WinAmp with a plug-in like Not So Fatso. Otherwise, you'd be stuck having to use a shell script or a batch file with your particular NSF player.
_______________________
Technology: the one thing that's hated & cursed at by all engineers, technologists, scientists & technicians!
The only thing I know of that can run NSF files from a playlist is WinAmp with a plug-in like Not So Fatso. Otherwise, you'd be stuck having to use a shell script or a batch file with your particular NSF player.
Fixes:
Shuffle randomization is now more...random [forgot to seed!].
Fix for first-track skipping.
Implemented visualizer selection with left-click in visualizer.
Added playlist file editor and support.
Added about-box.
Added loop-count limiting of song duration [not quite done yet on this one].
Just working through a couple little bugs then I should be able to release it.
Fixed the nonexistent-song loading crash.
Added drop-menu to the limiting button to be able to select either time limiting, loop limiting, or both.
Unless I hear of bugs, I consider this program functionally complete. However, I did have the brainiac idea of adding NSF playback capability. Not sure why...other than a "just for fun". Lets just call it a functionally-complete FTM player, for now.
Nice, compact UI with the exact same quirks as an XM player (like effects not working until you reach the next frame when you skip through a song along the time line slider). I've managed to compile the main Windows program & dependencies into a single 32-bit executable with the help of Bat To Exe Converter. I'm surprised at how well that turned out, too (check the attachment; I added program info for version 0.4, copyright info for cpow & an icon of Mario's face for the program). I can't attach it here because there's a 1 MB quota on all attachments in the forum, so here's a download link:
When you run the program, it will extract FamiPlayer & all its dependencies into the Windows temporary folder & delete the files once you close the player. The playlist will still be resident in the Windows registries by the looks of it, so there's no worries about losing your playlist.
One thing I'd like to see is the ability to actually remove items from the playlist instead of just unchecking them, though. I also found a bug where, if you click the [>>] button while playing the final file in the list (or if you press [<<] while playing the first file in the list,) it will replay said file again & clear all file names from the play list's drop-down menu, preventing you from choosing an alternative file manually until you press [<<] or [>>] again.
_______________________
Technology: the one thing that's hated & cursed at by all engineers, technologists, scientists & technicians!
The program settings should be stored in an INI file in your %APPDATA%/Roaming/CSPSoftware. Can you email me the attachment...can't get it from filedropper. Thanks for doing that, that's pretty cool! When you uncheck items in the playlist, they will be removed from the playlist file that you save, and won't show up the next time the program is loaded...I think. "Rescan" brings removed items back. "Use INI" reverts to an unloaded playlist--back to the folders you'd picked in the INI file. I'll look into the bug report. Thanks again!
TechEmporium: can you confirm for me that the bug you reported is only when you have a playlist loaded? I don't see the same behavior if I'm navigating between the last/first songs in a set of folders I've selected that aren't loaded from a playlist but are just selected by the browse button.