Re: About .... everything
I found freeamp recently and i really love it. I'm glad you like it. Except for its numerous bugs and 20% more time consuming it beats winamp undoubtedly. Speed isn't something you should worry about (too much) but bugs maybe you should clear all bugs before implementing new features... Well, the tough part about fixing the bugs is that we don't really know what they all are yet. About 2.1beta1 2) there are still warnings wich could should be resolved with casts (i think it's faster to do it yourself than to implement my changes so i'm not sending anything) 3) you're not killing threads correctly. after few minutes there is more than 400 active threads I haven't seen this happen -- does it still happen with beta 3? Beta 3 will be released within a few hours -- please check it out. OK, this was a bug report. (Sorry, but I hate bugzilla.) We would really prefer you to use bugzilla to report bugs. This way you will not report bugs that have already been reported (and fixed!), which will save you and us time. There are more bugs, but I'd like to have beta2 to continue testing. Check out beta 3 -- the bugs you've mentioned may have already been fixed. --ruaok Hindsight is always 50/50. Robert Kaye -- [EMAIL PROTECTED] http://www.emusic.com ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: after compile in VC6++
"Error, there isn't this file VSC6OD.dll", obviously if I had this file I can run without problem, but if I want redistribuite it to all my friends, all they will need this file, how can I do to fix it (for dont asking for this file)? If you choose your build target to be the NASM Release and then rebuild the entire codebase before giving it to friends, it should not ask for that file anymore. --ruaok Hindsight is always 50/50. Robert Kaye -- [EMAIL PROTECTED] http://www.emusic.com ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: Support for other file formats
We've recently added support for Vorbis (http://www.xiph.org) and I will also write a plugin that will do WAV files. However, that's the extend of it right now --ruaok Hindsight is always 50/50. Robert Kaye -- [EMAIL PROTECTED] http://www.emusic.com - Original Message - From: Karl Ove Hufthammer [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Friday, May 26, 2000 6:57 AM Subject: Support for other file formats Are there any plans for supporting other music file formats (.mid, .xm, .mod)? -- Karl Ove Hufthammer ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: Localization
We don't have any plans at this point in time. I very much would like to see something like this, but unfortunately it is not a pripority for us at the moment. If someone would like to jump in and help us out with this, we would greatly appreciate it and we would be more than willing to help you with this process. Please remember that any solution in question needs to work on Win32, Linux and Mac. Tall order. :-( --ruaok Hindsight is always 50/50. Robert Kaye -- [EMAIL PROTECTED] http://www.emusic.com ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: new version of id3lib available
I had heard remours that, starting with version 2.1, freeamp was planning on using id3lib for its tagging needs. If this is not the case, please let me know. If this is the case, I'd like to briefly take this opportunity to [snip] You'll notice that I've listed freeamp as a project that will be using id3lib in the future. Again, if this is not (or no longer) the case, please let me know and I will remove this information ASAP. After today it will not be a rumor anylonger -- my task for today is to integrate your lib into our codebase. So today, perhaps tomorrow the freeamp CVS will support ID3v2... Thanks for taking this on -- you're saving me a lot of grief! --ruaok Hindsight is always 50/50. Robert Kaye -- [EMAIL PROTECTED] http://www.emusic.com ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: Stripping out the code to get just teh playing functionality
The decoder lives in the lmc/xingmp3 directory. In the towave.c file you'll find example code on how to use the decoder. The streaming stuff can be found in io/obs and io/http. What are you going to use this for, if you don't mind me asking? --ruaok Hindsight is always 50/50. Robert Kaye -- [EMAIL PROTECTED] http://www.emusic.com - Original Message - From: Matthew C Camuto [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, April 03, 2000 10:32 AM Subject: Stripping out the code to get just teh playing functionality Hi.. I am interested in trying to strip the code down to just get a raw mp3 player and possibly implement streaming eventually. I am interested in learning from the ground up and trying to make a very light weight player to use and fool around with and possibly make my own interface to stream with in the future.. If anybody has a very small subset of code just to do the mp3 playing/streaming or can at least give me some advice for stripping down all the freamp code it would be great. Thanks matt ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: DiskOut Output Plugin v0.0.1
I just loaded up the 2.0.5 release and select the DSound plugin. I get no sound whatsoever, the volume bar is locked at 100 and i can't move it at all. If I try to move the seek bar, it keeps resetting to the beginning and starts playing again. Never have I heard a single note from the sound. Ok, the changes to the volume I made are in CVS, not in 2.0.5. Check out branch-2-0-6-devel to get at my changes. More bad news. FreeAmp did not close after I clicked the [x]. It disappears, but it still shown as running in Task Manager, so I have to do an End Task to get rid of it. This was simular to what happened to me when I ran WinNT4.0 SB Live! at home, so it maybe related to the drivers to, but I never have had a problem with the regular audio plugin, so it really has to be related to the dsound plugin. I've seen this happen before but I can't reproduce it on a consistent basis. People have been reporting various problems with regards to the DirectSound plugin -- I don't know much about DirectSound so I don't know what's wrong. If you guys have some spare time, could you guys please look into it? --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: Documentation on debug functionality? Also, dev FAQ?
Hi. Is there any documentation on the debug functionality? I looked in player.cpp for relevant command-line options (none), and in debug.h and debug.cpp. How do I turn it on? Not really -- the function Debug_v() is a function that I use as a replacement to printf(). This is my primary debugging tool and it requires a small executable to display the output. However, I usually remove my debugging statements before checking in code to CVS, so there is nothing to turn on. We also have a logging facility, but we haven't really put many logging statements into the code yet. The decode pipeline uses them, but not very extensively either. BTW, I would like to maintain a development FAQ (because I ask so many questions?). Does such a thing exist, or should I just go ahead and start compiling it? Go for it... --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: Windows NT sound interface code
Now, I am ready to start debugging dual-processor NT hangs that I've been experiencing. I figure I will start with the Windows PMO, but first I have some questions: Dual processor NT with a SB Live! card? If so, do you have another card that you might stick in there just to see if the SB Live! is causing problems? I've heard not so good things about SB Live on NT with multiple processors. 0) There appear to be two PMOs for Win32, one using the Microsoft waveXXX functions, the other using DirectSound. How do I tell which one is being used on my machine? Options-Plugins-Audio Output Be default we're using the soundcard output PMO. 1) What is the state of the DirectSound PMO? Is it actually used in the product (and if so, can it be used on NT 4?)? The DirectSound PMO should work fine -- the only drawback is that there is an extra memcpy in there which degrades performance. The way you write data to direct sound is not compatible with the current buffering scheme that we have (well, not cleanly anyways), which forces us to use an extra copy. :-( 2) According to Microsoft, the latest version of DirectX for NT 4 is version 3. Is this the case? Sounds about right. 3) Who is the main person for these two PMOs? Sylvain Rebaud wrote the DirectSound PMO and maintain that now. I've also rewritten the soundcard PMO a couple of times, and I'm still not quite happy with it. :-( --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: Windows NT sound interface code
Well... :) The PMO model does not mesh well with DirectSound, nor are you happy with the soundcard PMO. Would generalizing the PMO model help at all? Yes, we plan to do that for 3.0... --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Solaris!
Running a dual P-III 600 with SBLive, work fine with FreeAmp, however the system does seem to go unstable after a while, but I've been told that this is due to the number of cards I've got in the system (and it loses interrupts of something, ps NT4 SP6+). Steve You're a Solaris guy, right? If you (and any Solaris folks) could please try to check out the solaris-port-branch (cvs co -rsolaris-port-branch) and see if you can compile/use Freeamp on Solaris? Tom Dilligan just completed the port and we'd both like some feedback on it. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: DiskOut Output Plugin v0.0.1
I downloaded and massaged your code for a while. Its now checked in CVS. * How to I display a customize dialog from the preferences page when I select my plugin? You don't. We need to implement something like that. * When the plugin is outputting the data, the time counter on the main window does not count down. Where is the code that makes this happen at? Could I have messed something up that causes it not to count anymore? Yeah, but its all fixed now. It doesn't show the time for every second, but for every 10 seconds... Any comments/improvements are welcome. I think I have the time calculation messed up a bit because I used WinAmps disk outputter as a test, and none of my output files matched in time or file size, so I still have a bit of work to go, but at least I have a start I reckon. Everything sounds and looks good to me. Thanks for doing this -- you saved me quite a bit of time! --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: Comments
1. When playing back mono recordings that have been compressed using the mp3 codec bundled with Media Player, FreeAmp reports the mono recording as stereo. 2. FreeAmp does not minimize when the Minimize All Windows is activated. 3. FreeAmp was then minimized by clicking on the Minimize button. Another application was then opened. When the FreeAmp button was clicked to restore the FreeAmp window, only two small sections of the FreeAmp screen were refreshed. It seems like paint messages are not being processed properly. Could you please enter these into Bugzilla, our bug tracking system. That will ensure that we will fix them. For bug #1 could you please create an attachment with a file that exhibits this problem? 2. Greater control of all functions using the keyboard. I like the keyboard shortcuts in Windows Media Player. Could you please make some suggestions? I refuse to install WMP. :-) --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: Download Manager Exception
Any ideas on what could be wrong before I got through the painful task of building a debug version of the files? FWIW, this is with the latest 2.0.4 version that was just released. I haven't heard or seen anything about that. Please do build the debug version and let us know what you can dig up... --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert - Original Message - From: Michael Rich [EMAIL PROTECTED] To: 'FreeAMP Dev' [EMAIL PROTECTED] Sent: Tuesday, February 29, 2000 10:40 PM Subject: Download Manager Exception For some reason i'm getting a "Floating point invalid operation" when I try to bring up the download manager on my Alpha. Does anyone know what might could be going wrong because the Alpha is very sensitive to that sort of thing, and its possible that the x86 CPUs could just be ignoring it, or maybe Windows is ignoring it. Michael Rich http://alphax86dev.cjb.net http://www.cdx.sk/userwebs/zdrpg ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: DiskOut Output Plugin v0.0.1
i can't answer the time stuff, Rob? In each PMO, there is a function called: void HandleTimeInfoEvent(PMOTimeInfoEvent *pEvent); Check this function out -- it sends the time info to the player. These functions are complicated by the fact that they need to be accurate and that the user can seek. Your case is a lot simpler -- just figure out how many samples you've written and convert that to HH:MM:SS and send the event to the player as the other HandleTimeInfoEvent functions do... Let me know if you need more info than that. i think saving the file to the same directory as the source file is the best solution right now. Actually, we had decided that we wanted to save the wav files into a WAV subdirectory of the users' MyMusic directory. To do that, simply call Error GetSaveMusicDirectory(char* path, uint32* len); on the preference object. A pointer to the prefs object is in the context object, which each modules has. So, m_context-prefs-GetSaveMusicDirectory(...) would get the music dir. Append a 'WAV' and you've got your save place. Also, the output plugin should be careful to not overwrite existing files -- it should append a -2, -3, .., to the filename base. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: Slider Problem and Compiling question...
First, the slider (volume) problem. When I attempt to adjust the volume using the slider, as soon as I move the control, it sends the actual volume up and pans all the way to the right. A subsequent adjustment of the slider does nothing. I have to open the windows audio panel to reset the volume and pan. I noticed while doing this in the audio panel, the volume slider moves in sync with the volume slider in the window audio panel. That bug has been fixed -- if you download the code from CVS or one of the snapshots that code should work ok. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: Wave output plugin
Hmmm. A change of pace might be nice. :-) --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert - Original Message - From: Michael Rich [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, February 24, 2000 1:42 PM Subject: RE: Wave output plugin we are planning on doing this for 2.1, but if you wanna do it sooner then we would be glad to include it as always... grin Yea yea, i'd be happy to if someone will write this floppy disk driver for me i'm trying to figure out how to hack out. ;) Its been giving me a headache for weeks now. mike ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: Win32 minimize wierdness
Perhaps someone with more experience could figure out what messages are posted as a result of WINDOWS_KEY+M (maybe using Spy++ or a similar tool) and then figure out why Freeamp isn't handling them? This is the relevant portion of what I get from Spy++ when hitting the Windows Key + M: WM_WINDOWPOSCHANGING WM_MOVE xPos = 3000, yPos = 3000 WM_SIZE fwSizeType = SIZE_MINIMIZED, nWidth = 0, nHeight = 0 WM_WINDOWPOSCHANGING I'd say something needs to be done to handle the WM_SIZE with fwSizeType == SIZE_MINIMIZED, like checking if the window is already minimized and if not, minimizing it. Anyone? Did you Spy on the FreeAmp window or some other window? I've observed the same behaviour in other windows, but FreeAmp never gets these messages. Otherwise I could simply handle them. The real question is how do I tell windows that I want to get these messages? --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: Any documentation on UI..
1) Input support for the LCD ui (either key pad or knop, remote etc.) 2) Play-list support (list, update, etc.) 3) Diplay the meta data (artist, album etc.) First thing is to check out the ncurses ui -- it uses curses to display the meta data of the current song -- you should be able to grab some code from that. Playlist support is not hard either -- each UI gets an FAContext object which contains a pointer m_plm to the playlist manager. Check out the playlist.h in base/include for details on which operations you can perform on the playlists. Elrod, which messages should he watch out for? --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: skipping to next song.. ( naive question )
One of the others who had this problem said it went away when he switched to ALSA or ESD, I believe. Would it be relevant that normally when I run con- figure, I run it thus: The problem is definitely in the soundcard (OSS and not ALSA, or ESD) stuff. So switching to one of the other systems will cause the problem to go away. I've checked the source out of CVS. What next? OK -- I just went back a few bugs in bugzilla and I recognized this problem from another bug report. I had been sent a patch to fix this problem but it never got committed to CVS. So, try checking it out now and see if the problem goes away. If you have trouble accessing CVS wait until tonight -- we're in the process of moving to a new server. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: skipping to next song.. ( naive question )
snip author='Srinivas A' date='24.01.00' Freeamp stops once it played the first song. it is not moving to the second song unless I explcitly next song button. Did anybody experienced this problem. /snip Indeed, I've been having this problem too. It first cropped What OS are you guys running into this problem? If it is Win32, have you tried the latest and greatest version 2.0.1? I saw that problem and I hope I fixed it. If the 2.0.1 version does not fix the problem, could you please provide me with a sample MP3 file that causes the problem and I'll get it fixed? --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: Playlist management under cmdline.ui
We can give a collection of mp3 files (using * wild card) to the freeamp. Using '+/=' and - options of cmdline ui, we can move forward and backward.. Instead of that, I want to create a .m3u file that holds the list of mp3 files of PLAYQUEUE. Now I can give this .m3u file to freeamp. But I cant change the PLAYQUEUE (.m3u) file dynamically. Is there any way out? I want to change my PLAYQUEUE dynamically. You can change the play queue to your hearts content. Check out the function that the PlaylistManager class gives you in the base/include/playlist.h. The command line UI is passed a pointer to the FAContext object which contains the m_plm member. This member is a pointer to the PlaylistManager, which has member methods AddItem(), MoveItem(), SwapItems() and all the fun stuff to manage the playqueue. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: command line options for freeamp
Or even, freeamp -ui mpg123 blah.mp3 ... --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert - Original Message - From: Azazel [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, January 19, 2000 11:09 AM Subject: Re: command line options for freeamp How about: freeamp -ui freeampcmd.ui blah.mp3 or freeamp -ui ncurses.ui blah.mp3 snip author='Ross P Davis' date='19.01.00' Good day, Is there a list of command line options for freeamp somewhere? More specifically, is there an option that disables the GUI so no windows pop up when a song is played? For example: freeamp -no_gui Aqualung.mp3 Thank you, Ross Davis ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev /snip -- +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 www: http://www.azazel.net/ mail: mailto:[EMAIL PROTECTED] GPG: http://www.azazel.net/home/az_key.txt +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: cmdline UI.. ( freeamp UI, download UI musicbrowser UI )
Yes, sort of. The Internet-Draft already contains pseudo-code for translating between regular MP3 frames and "ADU frames". And once LIVE.COM's "liveMedia" C++ class framework is made Open Source (real soon now!), this will include filters for translating between the two. Awesome -- do you have a timeframe for RSN? I know there is more and more interest in RTP, RTSP and streaming in general. I personally want error correction for Obs real bad... --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: Xing Decoder
Hi Sir, Please, call me Dude. Not sir. :-) Thanks for giving me the right direction.. Sorry for not getting back to you sooner -- the FreeAmp 2.0 release was hell since our server started going on the fritz. I got struck with GetHeadInfo() function. This function is MP3 specific -- it may not be much use to you. This function is also a *royal* pain the in butt -- I don't know how many times I've had to tweak it. No wonder its not obvious what's going on. I really dont understand why you are calling head_info3() two times. The second time you are filling the MPEG Header variable(local), sHead. MPEG_HEAD sHead; int iFrameBytes, iBitRate; iFrameBytes = head_info3(((unsigned char *)pBuffer) + m_frameBytes + iForward + m_sMpegHead.pad, iMaxFrameSize - (m_frameBytes + iForward), sHead, iBitRate, iForward); The basic idea behind this function is to seek to the first MP3 frame. Typically a proper MP3 file will not need this function, but a file that is corrupted a the beginning or an HTTP stream where you might get tossed into the middle of a frame requires it. The difficulty of this function is derived from the fact that MP3 frames start with 0xFF 0xF*. This marks the start of a frame -- however, MP3 takes no precautions to not have 0xFF 0xF* appear anywhere else in the bitstream. So, if the MP3 decoder simply advances the stream to the first 0xFF 0xF* it may end up in the middle of a frame instead of at the beginning of a frame. So, when I find a 0xFF 0xF* I call head_info3() to get the stats about that frame. Then I seek exactly one frame ahead and call head_info3() again to make sure that the data I got from the first frame matches the second frame. The sampling rate, MPEG-1 vs MPEG-2 and audio layer need to be same in order for me to consider these frames valid. (Note: You cannot compare bitrate, because of VBR streams) If the data does not jive, I assume that I landed in the middle of an audio frame and seek to the next frame and repeat the process. If the second frame does match, I go one further and look a the 3rd frame to make sure it matches as well. If I get the third match, I exit the function with the input stream positioned at the first valid frame. You are not using 'sHead' anywhere. Could you clarify? You just spotted a bug! The following two lines should be using sHead and not m_sMpegHead. I will make the necessary changes. Thanks for pointing this out. if (m_frameBytes 0 m_frameBytes iMaxFrameSize (m_sMpegHead.option == 1 || m_sMpegHead.option == 2)) --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: Xing Decoder
[Replying to me own e-mail -- what's wrong with this picture] You are not using 'sHead' anywhere. Could you clarify? You just spotted a bug! The following two lines should be using sHead and not m_sMpegHead. I will make the necessary changes. Thanks for pointing this out. if (m_frameBytes 0 m_frameBytes iMaxFrameSize (m_sMpegHead.option == 1 || m_sMpegHead.option == 2)) Let me correct myself here -- you spotted a bug in the *old* code. The lengthy diatribe from below actually pertains to the latest version of the code. Please download 2.0 source code from our site. My comments below are not accurate for the code you're currently looking at. Sorry. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert - Original Message - From: Mayhem Chaos Coordinator [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, December 20, 1999 12:38 PM Subject: Re: Xing Decoder Hi Sir, Please, call me Dude. Not sir. :-) Thanks for giving me the right direction.. Sorry for not getting back to you sooner -- the FreeAmp 2.0 release was hell since our server started going on the fritz. I got struck with GetHeadInfo() function. This function is MP3 specific -- it may not be much use to you. This function is also a *royal* pain the in butt -- I don't know how many times I've had to tweak it. No wonder its not obvious what's going on. I really dont understand why you are calling head_info3() two times. The second time you are filling the MPEG Header variable(local), sHead. MPEG_HEAD sHead; int iFrameBytes, iBitRate; iFrameBytes = head_info3(((unsigned char *)pBuffer) + m_frameBytes + iForward + m_sMpegHead.pad, iMaxFrameSize - (m_frameBytes + iForward), sHead, iBitRate, iForward); The basic idea behind this function is to seek to the first MP3 frame. Typically a proper MP3 file will not need this function, but a file that is corrupted a the beginning or an HTTP stream where you might get tossed into the middle of a frame requires it. The difficulty of this function is derived from the fact that MP3 frames start with 0xFF 0xF*. This marks the start of a frame -- however, MP3 takes no precautions to not have 0xFF 0xF* appear anywhere else in the bitstream. So, if the MP3 decoder simply advances the stream to the first 0xFF 0xF* it may end up in the middle of a frame instead of at the beginning of a frame. So, when I find a 0xFF 0xF* I call head_info3() to get the stats about that frame. Then I seek exactly one frame ahead and call head_info3() again to make sure that the data I got from the first frame matches the second frame. The sampling rate, MPEG-1 vs MPEG-2 and audio layer need to be same in order for me to consider these frames valid. (Note: You cannot compare bitrate, because of VBR streams) If the data does not jive, I assume that I landed in the middle of an audio frame and seek to the next frame and repeat the process. If the second frame does match, I go one further and look a the 3rd frame to make sure it matches as well. If I get the third match, I exit the function with the input stream positioned at the first valid frame. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: FreeAmp.fat
I don't see what you're talking about -- maybe it has already been fixed... Can you send me the values of what they should be and I'll look at it again? --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert - Original Message - From: Jason A. Bobier [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Saturday, December 18, 1999 3:44 AM Subject: FreeAmp.fat In the theme.xml, the shuffle button is one pixel too tall. This causes one pixel's worth of white to be drawn underneath that button on the mac window. When I changed the button description, this line disappeared. I figured that I would leave it up to you guys to make the change in case it screws up something in the Linux or Win32 builds. Jason -- Jason A. Bobier [EMAIL PROTECTED] Senior Software Engineerhttp://www.prismatix.com/ Network Associates, Inc.Nothing's constant PGPKey: http://keys.pgp.com:11371/pks/lookup?op=getsearch=0xF6F83318 Fingerprint: 7809 7E6E BCCA 903D 4618 9740 EB10 9DF9 F6F8 3318 It's hard to pull yourself up by your bootstraps if your feet are bare. ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: freeamp linux freezes machine
[Again, sorry for not responding sooner] Twice now, I have gone into change the theme, and upon hitting OK, the theme partially appears and then the machine [appears to] hang completely. I can telnet into the box, and X doesn't seem to be running, nor do any of the apps I had running under X. However, back at the box, all keyboard and mouse input is completely ignored. I end up having to 'reboot' from the telnet connection. FYI: You don't need to reboot -- if Ctrl-Alt-Backspace doesn't kill the X, then simply su to root and kill the X process. That should get you back to a login. This is bad. I am not sure what I can do to help track this down What version of GTK and Glib are you running? How about glibc? I would first upgrade GTK and Glib to 1.2.6 and take it from there. (suggestions are welcome), but if it continues I will have to stop testing, I can't afford to have my machine go down like that (various servers running on it). Is this still happening with the 2.0 release? I know that Elrod cleaned up a crash in the options dialog, and I hope that fixed it. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: freeamp linux freezes machine
On Mon, Dec 20, 1999 at 12:50:07PM -0800, Mayhem Chaos Coordinator wrote: FYI: You don't need to reboot -- if Ctrl-Alt-Backspace doesn't kill the X, then simply su to root and kill the X process. That should get you back to a login. su to root from where? My machine is compeltely unresponsive locally when in this state. Telnet to the box and then su... If I telnet in, su to root, and do a 'ps aux', X does not show up, nor do any of the processes I was running in X at the time. It is very strange. That's quite cool -- so it seems that the X server dies and the system does not recover. Have you tried starting X again without rebooting? It was happening in the cvs source from a few days ago. I updated last night and built, and was playing with it for a while and it did not hang. I will play some more tonight. Please let us know how it goes. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: Xing Decoder...
OK, the xing/mp3 specific functions are: AdvanceBufferToNextFrame() -- this function reads bytes from the input buffer until the head of the input buffer points to a valid MP3 frame. GetHeadInfo() -- this function gets the information about the bitstream (sample rate, MPEG1/2, bitrate) GetBitstreamStats() -- this function calls GetHeadInfo to get the crucial info and it figures out the duration of the bitstream ExtractI4(), GetXingHeader(), SeekPoint() -- these are Xing VBR TOC specific functions Generic functions are: Prepare() -- this is a setup function where the input and output buffers get setup Clear() -- clear the output buffer CanDecode() -- gets called to see if this LMC can decode this media. If the decoder does not see a valid MP3 bitstream it returns an error. GetExtensions() -- returns a list of file extensions that it can handle ExtractMediaInfo -- this function gets called by the player to have the decoder extract stream info using the GetBitstreamStats function. CalculateSongLength() -- this function returns the length of the bitstream. It does not use the input object to read the MP3 stream. There is too much overhead involved with using the input objects, so normal file io is used. This function then calls GetBitstreamStats() to do the work. InitDecoder() -- this function initializes the decode library DecodeWorkerThreadFunc() -- this function is the thread entry point for the decoder DecodeWork() -- this function is the workhorse of the decoder. I'll describe this in more detail BeginRead() -- this function encapsulates the buffering for streams. This function will call the input BeginRead() function if its not a stream. If it is a stream, it will call the BeginRead() function if enough data is available. If not, it stops the play and buffers up the stream for a number of seconds and then resumes the decode process. BlockingBeginRead() -- this function blocks and loops to wait for new data -- it does not return unless there is data or an error. EndRead() -- is the completement to BeginRead() ChangePosition() -- this function is called as a response to a seek. It is given a frame number to seek to. This is too MP3 specific to make me happy. Ignore the Equalizer stuff -- its not supported at the moment. DecodeWork() details: The decode work function will initialize the decoder and do a bunch of housekeeping to get the pipeline moving. Then it will ask the output buffer if there is space for a decoded frame. If not, it sleeps on a semaphore and loops. If there is enough space it will begin a write operation on the output buffer and then it will ask the input buffer if there is enough data for a whole frame. If not, it sleeps on a semaphore and loops. If so, it will start a read operation on the input buffer. Then it will call the decoder to decode one frame. After that it will finish the read and write operations on the input and output buffers and start the whole process over again until the process is aborted or the input buffer signals EOF. Interwoven in this is the event scheme for telling the PMO what's going on. The eventbuffer is an output buffer that also supports passing events to the PMO. The first event that the PMO needs to receive is an Init event to tell it the sample rate and the size of the decoded frames and so on. Before the decoder writes a frame to the buffer it will send the timestamp of the frame to the event buffer via a timeinfo event. This gives the outputbuffer enough information to know what frame it is playing at what time -- this information is in turn passed to the player so the player can display the current time. Finally the decoder will send a quit message which will cause the PMO to finish playing all the samples and then disband the decode pipeline. There are many problems with this decode pipeline -- MP3 specifics have cropped up in various places where the code should be generic, and the stream buffering was added as an afterthought to support HTTP and RTP streams. When we go to FreeAmp 3.0 we're planning on haveing a much more flexible decode architecture that will allow us to have arbitrary data sources, filters and data consumers. This is why I am hesitant to completely documen the current structure -- it may not be well suited to adding other decoders and it will go away in the next few months. I hope this helps. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: title streaming from obsequiem?
okay... freeamp is fixed so it doesn't use the n+1 port for title streaming. so then how DOES it do title streaming with obsequiem/RTP as the server? or is that no longer supported? freeamp uses n+2 by default. So if you set your obs.conf to use n+2 then the title streaming should work ok. These settings should work ok: StreamTitles yes . . . BroadcastAddr 225.2.1.5 # Multicast address for broadcast BroadcastPort 4420 # Multicast port for broadcast TitlePort 4422 # Multicast port for title streaming --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: freeamp port!
Check out the source code from CVS (see web page for details) and attempt to compile it. Fix things that break and get it to work :-) --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert - Original Message - From: Patrick Mei [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, November 15, 1999 9:34 AM Subject: freeamp port! Hi, I am write software for our company's set top box(cable Modem + DVB),which can play sound in 16 bit,44.1KHZ sample rate. I use pSOS as OS,which support posix standard thread,mutex,sem. Can anyone tell me how to begin this? Thanks Patrick ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: freeamp port!
No, but you don't need them either. The assembly code are optimizations in order to make it run faster. There is plain C code available for platforms where we don't have assembly optimized code. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert - Original Message - From: Patrick Mei [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, December 06, 1999 1:52 PM Subject: Re: freeamp port! Thanks! My CPU is MIPS RM5231,are there some codes implement xingmp3 LMC use MIPS assemble language(FPU)? Mayhem Chaos Coordinator wrote: Check out the source code from CVS (see web page for details) and attempt to compile it. Fix things that break and get it to work :-) --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert - Original Message - From: Patrick Mei [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, November 15, 1999 9:34 AM Subject: freeamp port! Hi, I am write software for our company's set top box(cable Modem + DVB),which can play sound in 16 bit,44.1KHZ sample rate. I use pSOS as OS,which support posix standard thread,mutex,sem. Can anyone tell me how to begin this? Thanks Patrick ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: Playlist Ideas: karma?
Any progress on this yet? Are you still considering it? --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert - Original Message - From: Scott Scriven [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, October 18, 1999 11:09 PM Subject: Re: Playlist Ideas: karma? On Wed, 13 Oct 1999, Mayhem Chaos Coordinator wrote: I really like your ideas, and I've considered toying with just those concepts. And one of these days when I get more time on my hands, I will do just that. However, my tool of choice would not be FreeAmp -- it would be my networked MP3 jukebox Obsequieum. The jukebox uses MySQL to store all the meta data, which would make it easy to add your 'karma' table to the system. Hmm... Looks nice. Since the original post, I realized I can use this for my AI research paper, so I think I'm going to create a mp3 control system. If it works well, feel free to add it into Obsequieum. It will probably just be a perl or tcl/tk or python script, with some sort of simple GUI and database access. :) Anyway, I'd love ideas for inputs to the system. So far I have... - "karma" points (user's musical preference) - file access dates (older is better) - file creation dates (newer is better) - time of day (slow down at night?) - relative song position (song X sounds good after song Y, but clashes with song Z, etc...) - play history (karma points over time may average into a better value than raw points) With any luck, I'll be able to convince a neural net to merge all these things into a somewhat intelligent decision about what to play next. At this point, though, I still have to figure out if I can make it work at all... _ _ _ _ ___ ___ "Use the source, Luke!"- ( \/ ( \/ (__ (__ ) | Scott Scriven (Toy Keeper / XYZZ)| \ / \ / // // | mailto:[EMAIL PROTECTED] | / \ / / file://_ file://_ | irc:serdevian.dyn.omnipotent.net | (_/\_(_/ (___(___) | http://www.vis.colostate.edu/~scriven/ |
Play/Plause/PlayPause in theme ui
Elrod and Jason suggested that we rename the Play button to PlayPause and the IPlay and IPause buttons to Play and Pause. This makes a bit more sense -- so Gabor and Valters, make sure that in the future you use PlayPause insteat of just Play. Also, Valters, I've already updated your theme in CVS. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert
Re: misc.c
Have you tried doing a cvs update -d?? That should pull down all new files too... --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert
Re: BRANDING (logo button)
Ok, I can see that. In the next CVS update, the Logo ButtonControl can now have a URL attribute. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert - Original Message - From: Valters Vingolds [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Sunday, October 31, 1999 5:49 AM Subject: BRANDING (logo button) while I think LOGO button is great idea, in my opinion it is wrong to make it to go only to BRANDING_URL site. I think skin's creator should be able to set which url his LOGO button goes - well, it's quite intuitive that it should point to his (skin's creators) webpage - for user to check for skin updates, etc. for example - emusic bands could create their own freeamp skins that advertise their web presence :) -- Valters "WaTT" Vingolds : Well, now we have to learn to think of ourselves as of a product.
Re: (to robert) win32 patch for tooltip support
I created a defect #191 in Bugzilla, attached the patch. Please see if you can accept it. I just accepted it and it builds fine, but I just don't see any tooltips. :-( I will check this stuff in within a few hours. Could you please check to see that I applied the patch correctly? There is something that bothers me. (Added defect into bugzilla #195) Multi-control Desc strings are actually manipulated by player behind that creator's back. They are? How? I think skin designer should be able to specify Desc and Tip for each state on his own. Maybe like this: I gotta agree on this one too. I'll look into it... --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert
Re: dumb windows question
Check out GetROP2(). You want R2_XORPEN. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert - Original Message - From: Mark B. Elrod [EMAIL PROTECTED] To: FreeAmp Developer List [EMAIL PROTECTED] Sent: Sunday, October 31, 1999 5:47 PM Subject: dumb windows question i cannot remember how to do something under windows. i hope someone out there does. you know how when you grab a splitter (like in explorer) it inverts the background with a pattern and follows the mouse until you release the mouse button? how do you get it to draw that inverted line? i know this is so simple yet i can't recall how it is done. help! elrod
Re: Fwd: Re: musicbrowser, metadata
I'm pretty sure that's all winamp does, too. But it still plays. :) I've posted a slightly more informative report to bugzilla, along with a link to a file that has an offending tag. Perfect -- I'll get it taken care of before we release 2.0 on November 15th. I don't remember why we made the decision not to use the id3lib stuff, and roll our own. It may have been because we originally had the philosophy that we were trying to avoid users having to get 57 not-commonly-installed libraries before they could compile (this is That was one of the reasons, but more importantly I tried to run the id3v2 code on linux about a year ago with dismal results. Just before I wrote the cheese-ass-let's-read-only-the-most-crucial-T-tags-id3v2-read-only implementation I checked the website for an update and was pointed to MusicMatch, where I could find no mention of an updated library. We would very much like to have full read/write ID3v2 capabilities in FreeAmp, and if you can provide us with a comprehensive library that runs under Linux I'd be more than glad to incorporate it into FreeAmp. Any chances of this happening in the next week? :-) Well, the id3v2 development has been stagnant for almost a year, at least according to the id3.org site and the date of the last id3lib update. As mentioned previously, it seems that musicmatch has taken over the id3lib project, but I haven't been able to find anything on their site that mentions continued development with the library. This itch is a particularly important one to me, as I have quite a few songs with large id3v2 tags and no linux player (to my knowledge) that plays them correctly. I'll continue hacking id3lib to make it usable in linux, and if anyone decides that using id3lib in freeamp would be a good idea, I'd be glad to help with this effort. soapboxbrutalhonesty Do you have a vested interest in ID3v2? Personally, I cannot stand ID3v2. Its obfuscated, too complicated and it tries to save every last possible bit of space at the expense of ease of implemtation. (I have written a complete ID3v2 library in Perl, so I *know*) We could do this much easier with XML. It could be much more powerful and the only ID3v2 code we would have to write it code to translate the existing tags to the XML format. I've even got a rough draft of a proposed replacement for ID3v2 using XML. I really think it would be worth it for us to consider doing this. We can have all the features of ID3v2 and a ton more with a lot of flexibility, with much less code to write. A good standards document (RFC?) and a bare minimum of code and an XML parser. (And half a tank of gas) Anyone interested? /brutalhonesty/soapbox --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert
Re: musicbrowser, metadata
There are a few reasons for this: 1) The ID3 (version 1) tag cannot store enough of the information we want to store. Plus it limits the artist, title and album fields to 30 characters which is inadequate. 2) It is faster to access this data when it is stored in a central location such as a database. This allow us to present the user with a nice music tree quickly. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert - Original Message - From: Gabor Fleischer [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Friday, October 22, 1999 2:28 PM Subject: Re: musicbrowser, metadata On Fri, 22 Oct 1999, Mayhem Chaos Coordinator wrote: MetaData is the data associated with the music. Artist, Album, Track name and all those things are considered meta data. I see. But why are they in another file? I mean there;s the tag in evry mp3. Flocsy Gabor Fleischer MAILTO: [EMAIL PROTECTED] URL: http://www.mtesz.hu/~flocsy SMS: [EMAIL PROTECTED] ICQ UIN: 27733935
Re: musicbrowser-linux does not add tracks, default ui
Hrm.. after I do a make install, the ThemePath preference points to the theme in /usr/local/share/freeamp/themes. Ok, but I was referring to running FreeAmp before installing it. If you run it from the build dir you should be able to get the 2.0 version running, without having to overwrite any previous 1.3.x release. No? Also, could you see if the symlink stuff is fixed on your box? It shouldn't be following them at all now... Ahh yes. Its fixed. Works like a charm. Couldn't load any playlists... :-) --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert
Re: Compile Error in Beta 1 Win32 Code
FreeAmpUI / Win32Bitmap.cpp, Line 183: hSaved = SelectObject(hMemDC, m_hMaskBitmap); should be casted like so: hSaved = (HBITMAP)SelectObject(hMemDC, m_hMaskBitmap); Ok, thats fixed in my code. That should make its way to CVS later today. Rainplay would not compile at all. Is it time to remove rainplay from the project? Elrod? --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert
Re: linux patches for 2.0
Isaac, can you apply these patches? I'm still stuck in windows hell. :-( 1. It was a lot of time for me to get the theme.xml's things out from the code. There should be a howto for it! There will be! However, I need to finish up a few other things before I can write the Howto. Maybe early next week. 2. Is it possible in the not so far future to make some features in the xml format? This is what I'd need: Somehow I need to tell freeamp, that the buttons I us (from the winamp skin) are not in horizontal, but vertical order. It could be like: ButtonControl Name="n" Direction="Vertical" Yes, that's possible, but no I won't have time to do it. Its not all that tough -- go to Control.cpp and look for BlitFrame() that function blits a frame from a control onto a canvas. No rocket science here. Take that function and create a vertical version of it. In the XML it would be best to specify it like this: ControlBitmap Rect="0,34,127,67" Name="Buttons" Style="Vert"/ Making the XML changes for this is trivial. If you create the BlitFrameVertical() and have the ButtonControl::ButtonControl() take a bool bVertical argument, which is used to either call BlitFrame() or BlitFrameVertical() then I will make the xml changes and accept the patch. 3. Does anyone know how to make something like ButtonControl, but without pressing. Something like ControlLabel. Something that looks more like a button, but you can't click on it? Does it have static text or a bitmap in it? I'm not quite certain what you're out for. However, it is easy to create controls -- the controls are finite state machine, and the control defines which states it uses and which transitions it wants to know about. Then the control needs to listen to the transition and take the proper blttting or text drawing action in response to the state change. Once you grok what's going on its easy. I think this is one of the things that allowed me to write this theme interface so quickly... 4. Generally what is the format of the Rect-s? "x1,y1,x2,y2" or "x1,y1,lx,ly" x1,y2,x2,y2, where x2 and y2 are inclusive. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert - Original Message - From: Gabor Fleischer [EMAIL PROTECTED] To: Freeamp Development List [EMAIL PROTECTED] Sent: Wednesday, October 20, 1999 2:45 PM Subject: linux patches for 2.0 Hi! These are 2 little patches. 1st is because it didn't find my themes, because if it did not find themes at the first place it looked for, it stoped to look at the other places. Now it goes on. 2nd is because I'm working on a WinAmp Theme, in wich I use ChangeWindow. The old one always put the new window to (0,0). Now it puts to the right place. And some questions: 1. It was a lot of time for me to get the theme.xml's things out from the code. There should be a howto for it! 2. Is it possible in the not so far future to make some features in the xml format? This is what I'd need: Somehow I need to tell freeamp, that the buttons I us (from the winamp skin) are not in horizontal, but vertical order. It could be like: ButtonControl Name="n" Direction="Vertical" Or the best would be if it's more general! For example: Controls DefaultDirection="V" First="Normal" Second="Pressed" This way people could use skins where isn't button for OnMousOver. 3. Does anyone know how to make something like ButtonControl, but without pressing. Something like ControlLabel. 4. Generally what is the format of the Rect-s? "x1,y1,x2,y2" or "x1,y1,lx,ly" Flcsy URL: http://flocsy.spedia.net MAIL:[EMAIL PROTECTED] SMS: [EMAIL PROTECTED] ICQ:27733935 Ha meg szeretnd tudni hogyan kereshetsz bngszs kzben egy kis zsebpnzt: http://www.spedia.net/cgi-bin/dir/tz.cgi?run=show_svcfl=8vid=119891
Re: Playlist Ideas: karma?
I really like your ideas, and I've considered toying with just those concepts. And one of these days when I get more time on my hands, I will do just that. However, my tool of choice would not be FreeAmp -- it would be my networked MP3 jukebox Obsequieum. The jukebox uses MySQL to store all the meta data, which would make it easy to add your 'karma' table to the system. Check out http://obs.freeamp.org for details on this. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert - Original Message - From: Scott Scriven [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, October 13, 1999 9:35 AM Subject: Playlist Ideas: karma? Hi. As my music collection grows, I've begun to recognize the usefulness of playlists and other types of song list data... So, instead of my usual "put the entire collection on random play", I had a few ideas about how to organize and manage playlists better. It seems that it's always enjoyable to hear songs you haven't heard in a while, and also hear songs that you like. But it's not so nice to hear things you don't like much, or songs which have been playing a lot lately. For the bit about hearing songs which haven't played recently, I found a solution. It just sorts songs by access date, and plays the oldest ones first: /bin/ls --color=none -utr `find $HOME/mp3/songs -type f` | \ xargs -n 256 freeamp But it seems it would also be good if songs could be automatically rated so that the favorite songs would be played more often than less-liked songs. I have done this before by placing songs in various directories that indicate "how many stars" the song deserves. But this is not very practical when trying to keep songs grouped by artist and album. So, what if Freeamp kept a song database which stored information such as "karma", and used this database to decide what to play? Every time you hear a song you like, bump up its karma, and every time you hear a song which you're not too fond of, decrease its karma. This would essentially keep track of what you like, and be able to let you hear what you want. To keep "karma points" fair between new and old songs, and to take care of things which you get sick of after a while, the actual karma value could take other factors into account too. Say, something which balances the total karma points a song has received with its average points-per-play and its most recent point history. This would give high ratings to songs you have liked for a long time and also to new songs which are also good. :) _ _ _ _ ___ ___ "Use the source, Luke!"- ( \/ ( \/ (__ (__ ) | Scott Scriven (Toy Keeper / XYZZ)| \ / \ / // // | mailto:[EMAIL PROTECTED] | / \ / / file://_ file://_ | irc:serdevian.dyn.omnipotent.net | (_/\_(_/ (___(___) | http://www.vis.colostate.edu/~scriven/ |
Re: spectrum analyser
Rainplay also did it in a pretty kludgey way -- for the release after next we plan on redoing the audio pipeline in a very modular fashion which should allow us to easily create spectrum analyzers... --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert - Original Message - From: Valters Vingolds [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Friday, October 08, 1999 4:59 PM Subject: Re: spectrum analyser Rainplay has it. Oh, but rainplay is kinda undersupported and obsolete... but still, look how it does that. You'll need to dig around quite a bit to understand how it works, but that's about the price you pay. At 16:06 10/8/99 -0300, you wrote: hi all, does freeamp support graphical spectrum analyser, VU-meter, or someting like that? if so, how can i implement it in my UI plugin? thanks, -- Rodolfo Borges [[EMAIL PROTECTED]] -- Valters "WaTT" Vingolds
Re: sigh.
Does any of this crap show up in linux, particularly the x86 flavors? Yes. I have not had any luck getting the current source to compile. I've seen most of the problems you're describing. As a matter of fact the problem you had with/near ParseColor is pretty close to the problem that I saw when I was running the code under MSVC6.0. Lemme comb over that function again to make sure there is nothing stange going on. But, yes, I've seen these problems before. At first I thought it was a config issue on my machine, but now that does not seem to be the case. Yeah. Have you tried gcc 2.95-pre2? I think that is what Isaac is running --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert - Original Message - From: Tom Spindler [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Friday, October 08, 1999 3:23 PM Subject: sigh. Well, it looks like there are some rather nasty lurking bugs in gcc-2.95.1; bugs that popped up when things were compiled with -O2 went away when compiled with -O; I'm beginning to suspect that the alias analysis code is a bit stricter than a lot of programmers out there. Anyway, I was getting crashes in code Theme.cpp in ParseColor, when I inserted the extra lines (@845) char *foo = oColorstring.c_str(); printf("colors: %s; ocolor: %lx", foo, oColor); And then the crashing stopped; unfortunately, the printf never showed itself, and the crash has occured deeper in the code in GTK/glib land: (gdb) bt #0 0xff2fdd74 in XGetWindowAttributes () from /usr/openwin/lib/libX11.so.4 #1 0xfe3dcae8 in gdk_window_foreign_new (anid=0) at gdkwindow.c:508 #2 0xfe2ce478 in GTKBitmap::GTKBitmap (this=0x171198, oName=@0x99a9c) at ui/theme/unix/src/GTKBitmap.cpp:59 #3 0xfe2a2294 in Theme::BeginElement (this=0x16d2c4, oElement=@0xffbe34f0, oAttrMap=@0xffbe33f0) at ui/theme/src/Theme.cpp:296 #4 0x4ff94 in Parse::DoParse (this=0x16d2c4) at lib/xml/src/Parse.cpp:225 #5 0x4efcc in Parse::ParseFile (this=0x16d2c4, oFile=@0xffbe38d0) at lib/xml/src/Parse.cpp:61 #6 0xfe2a0748 in Theme::LoadTheme (this=0x16d2c4, oFile=@0xffbe3b08) at ui/theme/src/Theme.cpp:155 #7 0xfe2c0254 in FreeAmpTheme::LoadFreeAmpTheme (this=0x16d2c0) at ui/theme/src/FreeAmpTheme.cpp:151 #8 0xfe2bfb10 in FreeAmpTheme::FreeAmpTheme (this=0x16d2c0, context=0x966f0) at ui/theme/src/FreeAmpTheme.cpp:83 #9 0xfe2bf72c in Initialize (context=0x966f0) at ui/theme/src/FreeAmpTheme.cpp:59 #10 0x3243c in Player::Run (this=0x98708) at base/src/player.cpp:645 #11 0x49508 in main (argc=709, argv=0xffbe3f44) at base/unix/src/bootstrap.cpp:132 the last bit of code that's in freeamp proper is frame #3, #3 0xfe2a2294 in Theme::BeginElement (this=0x16d2c4, oElement=@0xffbe34f0, oAttrMap=@0xffbe33f0) at ui/theme/src/Theme.cpp:296 296pBitmap = new GTKBitmap(oAttrMap["Name"]); Which isn't inspiring confidence in me. At this point, I'm thinking of trying the egcs-current source, and seeing if those mollify any bugs; it looks like the bleeding-edge template stuff is causing gcc (or me, for that matter) to not be a Happy Boy. (The fact that linkage problems mysteriously go away with -fsquangle do not fill me with joy, either.)
ParseColor -- potential problem
I think I may have found a potential problem in ParseColor. I cannot currently check the mods in -- I'm in the middle of doing a ton of other things. However, try replacing the function in Theme.cpp with this function: Error Theme::ParseColor(string oColorstring, Color oColor) { int iRet; int iRed, iGreen, iBlue; iRet = sscanf(oColorstring.c_str(), "#%02X%02X%02X", iRed, iGreen, iBlue); if (iRet == 3) { oColor.red = iRed; oColor.green = iGreen; oColor.blue = iBlue; return kError_NoErr; } return kError_InvalidParam; } I think that passing 3 unsigned chars to sscanf when parsing a %X may not be valid and result in two bytes on the heap getting trashed. This rev of the function passes three int and then manually converts them over after the scanf. I'll check this code in later on in any case, just to be sure. Let me know if this helps. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert
Re: volume gets lost
I just fixed all that crap -- it will be in the next commit. Possibly later today, maybe tomorrow. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert - Original Message - From: Valters Vingolds [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, October 07, 1999 3:02 PM Subject: volume gets lost Well, it really looks like volume is always reset to zero! (When starting to play,changing song, etc). I do win98, as usually... I offer this here patch for io/soundcard/win32/soundcardpmo.cpp == cut == 163a164,165 if(!m_iLastVolume) m_iLastVolume=GetVolume(); 196,198c198 waveOutSetVolume(m_hwo, MAKELPARAM( 0x*m_iLastVolume/100, 0x*m_iLastVolume/100)); --- SetVolume(m_iLastVolume); == cut == This seems to fix the symptoms (well, I'm not entirely sure if I'm doing right thing, but this seems to do the trick...) Please, verify. But then there is another problem: void SoundCardPMO::SetVolume(int32 volume) { // When we begin playing the volume does not get set properly. // In order to work around that, we'll save the last volume // settting and then set the volume on the stream after we open // the stream in init. waveOutSetVolume( (HWAVEOUT)WAVE_MAPPER, MAKELPARAM( 0x*volume/100, 0x*volume/100)); m_iLastVolume = volume; } int32 SoundCardPMO::GetVolume() { int32 volume = 0; waveOutGetVolume((HWAVEOUT)WAVE_MAPPER, (DWORD*)volume); (!)volume = (int32)(100 * ((float)LOWORD(volume)/(float)0x)); return volume; } These volume (slowly) deteriorates when calling these two. I think it is because marked (!) line makes it lose precision and decrease. I can't think of a way how to stop that, currently - maybe you can do it better? -- Valters "WaTT" Vingolds
Re: theme.ui architecture
I was toying with UI other day, wanted to implement drag'n'drop functionality. I quickly cut'n'pasted code from freeampUI to Theme's Win32Window.h/cpp, so the window started to accept WM_DROPFILES. But then I even quicker got frustrated to death, could not figure out how to get the filenames to PLM. Spent time looking at class hierarchy and could not see a way (well, I'm not speaking inherited virtual functions and other wacky C++ encapsulation/data hiding stuff very fluently). Can you think of something? That's still on our todo list -- don't worry about it. As you found out its not a trivial task due to some weird windows circumstances. Else, I think theme.ui is too damn complex. I think I'll want to draw a hierarchy diagram. I've seen worse. :-) The way the UI is brought up initially is too complex, and I will be revamping that code to make the apply button in the config dialog work. Other than that, I'm pretty happy with how things are organized, given that this thing has to work on multiple platforms that have little GUI structure in common. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert
Re: UI not showing up under 95/98 fixed!
I just added the seek-bar. Tell me - are vertical sliders supported yet? No -- and I won't get around to that before the initial release. However, it should not be too tough to take the existing slider and make a VSlider. (And rename the existing slider to HSlider) If you want to do that and send me the code, I'll make sure it gets into the release. I think I'd like use one for volume changing - but not in the base window, I don't want to clutter that minimalistic look. I know what you mean -- I've got a minimalistic theme myself... --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert
Re: theme rulez on linux!
1. (I think this is not just the ui, but the base) Volume doesn't save. I always have to adjust it from 0. It's annoying. We should save the last volume in preferences, or not change it, and use the settings when freeamp is started. Yeah, we've heard that a few times -- I've changed things so that now the user cannot change the volume until a piece of media is loaded. This *should* fix that problem. 1b. Why does volume go down to 1/3 when I press prev or next song button??? That's a new one to me. You're not pressing the + or - buttons are you? Those are for adjusting the volume... --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert
Re: where to install theme files to?
Not hard, but given the sheer number of other things that need to get done -- unlikely. :-( --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert - Original Message - From: Mark B. Elrod [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, October 04, 1999 11:03 AM Subject: Re: where to install theme files to? heh... ok so if we do that how hard would it be for us to add a theme browser to the prefs? something that scaled down the bitmap fot the main window and blitted it? elrod Mayhem Chaos Coordinator wrote: Well, if we make it so that the user needs to 'import' a theme then the user would need to import the updated theme, before it became active. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert - Original Message - From: Mark B. Elrod [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, October 04, 1999 10:57 AM Subject: Re: where to install theme files to? i like option 2 as well. the only downside is that if a user gets an updated theme with the same name we might not recognize it unless they know to delete the folder it has been expanded to. how can we get around that? elrod Mayhem Chaos Coordinator wrote: Sounds good to me. I've got a follow up question to that: When and where to theme files get decompressed to? I see two reasonable options here: 1) When FreeAmp starts, it figures out what theme it needs and decompresses it into /tmp/freeamp-$pid/theme (or X:\windows\temp\theme). When FreeAmp closes the files get cleaned up. Pro: Less wasted disk space Con: Slower startup time 2) When the user selects a new theme the theme is decompressed into ~/.freeamp/theme (or X:\Program Files\FreeAmp\themes\themename and it run from there. The themes are never cleaned from the drive unless the user requests it. Pro: Faster startup Con: Wasted disk space I think I prefer option #2. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert - Original Message - From: Isaac Richards [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Saturday, October 02, 1999 7:13 PM Subject: where to install theme files to? So, I was thinking we need to install our default theme somewhere.. Anything wrong with $prefix/share/freeamp/themes/default? Any better alternatives? Isaac