bored, give me a program to write.

Discussion in 'Programming & Software Development' started by Foliage, Jan 22, 2012.

  1. theSeekerr

    theSeekerr Member

    Joined:
    Jan 19, 2010
    Messages:
    2,479
    Location:
    Prospect SA
    :thumbup: I used to use MediaMonkey, but it got clunky and slow. MusicBee is a bit more limited, but awesome.
     
  2. neRok

    neRok Member

    Joined:
    Aug 19, 2006
    Messages:
    2,264
    Location:
    Perth NOR
    Tried it out. It's pretty good. Very similar to winamp feature wise. I did notice you can tweak the shuffle mode, which is good (and related to my feature). A few gripes though;
    - if you close and open, it doesn't stay in docked mode
    - when docked, it doesn't have a popup showing the track like winamp (I like to see the pictures when I'm skipping)
    - it takes a few seconds to show the album art I have saved as folder.jpg (winamp is basically instant)
    - edit: just discovered another - wasn't even showing the right cover art! Completely wrong album.

    So my collection is all CD rips, and there are a lot of 'fluff' tracks like intros and what not that are good to hear when you are listening to the album in its entirety, but not when shuffling. So I want a plugin that when you are playing on shuffle mode, it will check for a tag in the file, and then either skip or play the file. At the moment I resort to zipping up said tracks.

    It could even be taken to the next level, whereby it skips parts of the song, eg when the last track on the album has a song then 10min silence before a hidden song. That shit is real annoying when it comes up in shuffle play at a party or something.

    Here's an example album: https://www.youtube.com/watch?v=SejsRiaVRqI
     
    Last edited: May 19, 2017
  3. theSeekerr

    theSeekerr Member

    Joined:
    Jan 19, 2010
    Messages:
    2,479
    Location:
    Prospect SA
    Totally sympathise with this - tried to convince the developer of my favourite Android player that this would be a good feature, but he wasn't having it.

    Most media players have some concept like "smart playlists" that can operate based on tags. I use one that includes everything except a "noshuffle" tag, and shuffle that playlist.
     
  4. Luke212

    Luke212 Member

    Joined:
    Feb 26, 2003
    Messages:
    9,075
    Location:
    Sydney
    ok what tag do you want to use?

    give an example of what tag you would use to tell the plugin to skip part of the song?
     
  5. Bold Eagle

    Bold Eagle Member

    Joined:
    Jun 28, 2008
    Messages:
    6,334
    Location:
    Brisbane
    Foobar2000 straight out of the box works (apart from UI look) - not sure 'how' you needed to tweak this to get it to winamp stage?

    Frankly I am calling this out!

    Curious about how winamp is better than foobar2000 - name the song and or sounds.

    Solid App - is 'don't find me' - a client based VPN approach - it masks and scrambles your IP Address and the more aggressively they probe they more aggressive is it's response. That is, they do initial probe it throws back a 'sample' (hit) of an ambiguous IP - they re-probe it throws back 3 samples. The more they probe it the exponential increase in ambiguous IP's are rebounded. Like shining light into a prism. The client itself has this 'prism shield'.

    Develop that and you'll make a billion within the first 3months - please consider me as a shareholder at 5%?

    I have some ideas on it's construct.
     
    Last edited: May 19, 2017
  6. neRok

    neRok Member

    Joined:
    Aug 19, 2006
    Messages:
    2,264
    Location:
    Perth NOR
    If you're going to implement both ideas, perhaps on_shuffle_skip and on_shuffle_trim.

    For on_shuffle_skip, I guess if the tag exists and the value isn't null or False, then it should be skipped.

    For on_shuffle_trim, I imagine a list of time stamps to skip from and to. So say I want to skip the first 10 and last 10 seconds of a 3 minute song, it might look something like `00:00-00:10,02:50-03:00`. That's with minutes and seconds, but perhaps hours and milliseconds should be considered? And perhaps a special word can be used for start and end, to easily substitute without having to know the exact length? Perhaps the timestamps should be written in a json compatible string, to make it easy to parse?
    I don't think just skip from start and skip from end values is a good idea, because I have songs where I want to cut the middle out.

    PS- I noticed on the Musicbee site that some winamp plugins are compatible with Musicbee. Perhaps you can write this to be both?
     
    Last edited: May 19, 2017
  7. breech

    breech Member

    Joined:
    Mar 6, 2002
    Messages:
    1,783
    Location:
    Syd
    This is pretty much Foliage's ancient thread so just start your own. It would need to come from someone such as yourself that wants to offer their services. How about 'Consolidated Coding/Scripting Requests - small projects only' ..?
     
  8. Luke212

    Luke212 Member

    Joined:
    Feb 26, 2003
    Messages:
    9,075
    Location:
    Sydney
    i was able to read the id3 tags,
    read whether shuffle is on,
    what position the track is up to,
    seek to a position on the track.

    pretty much everything required to do it.

    only thing i couldnt do was get the currently playing filename. i was using c#.

    here is some code. does anyone know how to get a string from a char* ?

    Code:
      int currentPlaylistPosition = 
       Win32.SendMessage(this.Handle,(int)WA_IPC.WM_WA_IPC,0,(uint)WA_IPC.IPC_GETLISTPOS);
       unsafe
       {
         char* filenamePointer = (char*)Win32.SendMessage(this.Handle,(int)WA_IPC.WM_WA_IPC,currentPlaylistPosition,(uint)WA_IPC.IPC_GETPLAYLISTFILE);
         string filename = ??????;
       }
    
    i tried

    Code:
    string test = System.Runtime.InteropServices.Marshal.PtrToStringAnsi((IntPtr)filenamePointer);
    
    and it returns ""
     
    Last edited: May 20, 2017
  9. elvis

    elvis Old school old fool

    Joined:
    Jun 27, 2001
    Messages:
    29,974
    Location:
    Brisbane
    The open source community is screaming for good quality developers. Tell me your preferred languages and the sorts of things/hobbies/businesses/problems you enjoy, and I'll give you five open source projects that would love your help, even if it was sporadic.
     
  10. Foliage

    Foliage Member

    Joined:
    Jan 22, 2002
    Messages:
    31,848
    Location:
    Sleepwithyourdadelaide
    Old post. I'm working on my own company now instead!

    https://pcmhacking.net/forums/viewtopic.php?f=4&t=4940

    Quitting my job in a months time to work on it full time.

    Contributed to a few open source projects in this time as well to add features to libraries I am using in it. Also released part of the project open source for others to play with.
    https://github.com/rolandh
     
  11. elvis

    elvis Old school old fool

    Joined:
    Jun 27, 2001
    Messages:
    29,974
    Location:
    Brisbane
    Very fucking cool. :thumbup:
     
  12. neRok

    neRok Member

    Joined:
    Aug 19, 2006
    Messages:
    2,264
    Location:
    Perth NOR
    Just tried it out. The UI was easier to mod than I remember, and in fact a simple wizard at the start got me to what I wanted easily enough. However, it does not have a dock feature like winamp, and a plugin I found for that was outdated and did not work. Also, the notification area popup for when changing track is merely text, not a nice picture+text like winamp. And 1 tiny issue, adding all my tracks to the playlist for the first time took a good minute, which I presume was it caching some info, because it didn't happen again (and never happens with winamp).

    So after all this time, I still cannot find a newer / 'next-gen' program that does everything that winamp does, so hence I stick with winamp.

    I liken the experience to a new candy-bar phone I purchased ~18 months ago, and it was far worse than the last/previous candy-bar I purchased in 2006 or so. So after 10 years with all that new tech etc, they couldn't make a candy-bar even in the same ballpark as an old one. That seems to be what these music players are like.

    I have NFI. What do you need the file name for though?
     
  13. Foliage

    Foliage Member

    Joined:
    Jan 22, 2002
    Messages:
    31,848
    Location:
    Sleepwithyourdadelaide
    A char* basically is a string, just pass the char* to whatever you are trying to do and it should work providing it has been null terminated.
     
  14. Luke212

    Luke212 Member

    Joined:
    Feb 26, 2003
    Messages:
    9,075
    Location:
    Sydney
    so i can load it in an id3 parser to see what tags it has.
     
  15. neRok

    neRok Member

    Joined:
    Aug 19, 2006
    Messages:
    2,264
    Location:
    Perth NOR
    Wouldn't winamp be able to give you that info? Does id3 parser work for flac files?
     
  16. Luke212

    Luke212 Member

    Joined:
    Feb 26, 2003
    Messages:
    9,075
    Location:
    Sydney
    yes but its harder.

    it reads flac fine :p

    anyway i think ive given up for a while.

    edit: i wanted to do it from c# because c++ generally sucks balls to work with, but i think its actually easier in this case. so ill do a pure c++ one for you soon, but busy week coming up!
     
    Last edited: May 22, 2017

Share This Page