Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up Try the site in https mode Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: Starting coding on Touchscreen jukebox. *release date?? & Art!!*  (Read 45540 times)

0 Members and 1 Guest are viewing this topic.

nipsmg

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1753
  • Last login:July 11, 2025, 12:17:29 pm
  • ROONEY!! ERRGH!!
    • Arcadia
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #80 on: December 09, 2005, 08:28:19 am »
Interesting..

I'll definitely look into dual monitor support.

frosty-4th

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 2
  • Last login:December 18, 2005, 08:25:39 pm
  • I want to build my own arcade controls!
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #81 on: December 11, 2005, 06:49:07 pm »
A feature I would like to see is a page that allows enabling/disabling specicif genres.  For example, the PC Jukebox allows you to filter your collection by one genre.  What I would like is the ability to filter the selection by one or many genre selections.  Lets say that I have a genre for christmas music and I don't want to listen to that in July, I would simply disable that genra and it would no longer show in the main window and it wouldnt play while in random mode.

Thanks, I'm looking forward to the beta.  If you need any help coding, let me know what I can do.

Frosty

unclet

  • Trade Count: (+4)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 3561
  • Last login:March 17, 2025, 11:51:15 am
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #82 on: December 11, 2005, 06:57:15 pm »
YEs, this is one thing I wanted to include in my jukebox software but I thought of it too late .... it would not have been easy to put in ... and I got lazy as well  :>)

Anyway, I would like this so I can random through Country and Oldies genre rather than having RockNRoll in there sometimes ....

frosty-4th

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 2
  • Last login:December 18, 2005, 08:25:39 pm
  • I want to build my own arcade controls!
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #83 on: December 12, 2005, 06:03:59 am »
It wouldn't be that hard.  If each row in the genre table had an enabled column that is set to yes or no then the sql would look something like this

SELECT t.song_title, t.album_title, t.artist
FROM track_table t, genra_table g
WHERE t.genre_id = g.genre_id AND g.genre_enabled = TRUE;

this would of course require a screen that lists all the genres that allows setting and unsetting the enabled attribute for each.

Frosty

nipsmg

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1753
  • Last login:July 11, 2025, 12:17:29 pm
  • ROONEY!! ERRGH!!
    • Arcadia
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #84 on: December 13, 2005, 06:52:10 am »
This is already an absolute requirement.  I plan to load more music on the jukebox than I intend to listen to, even *GASP* country  music.   :P

Reason Being: when people come over, I want them to be able to pick what THEY want to listen to.  HOWEVER, I don't want country playing in my random playlists.  (Sorry country fans, I can't stand it.)

The basic plan is to have 3 Restriction settings by genre:

     None            - No restrictions
     Playlist         - No random selection
     All                 - Not available to be picked at all.

I think that the "all" setting is useful for when you know ahead of time the type of music people are going to want to listen to.  If they're a rap/dance music crowd, you can enable those genres.  If they're a rock/metal crowd, disable everything else, etc.


Progress Update:

    Figured out WMA Binary tag Read AND Write, back in business with that one.  Have MP3 ID3V2 read/write down.  I'm agonizing over what i want to use for playback now.  I'm thinking maybe the BASS library would be really good for this, but I'm not really sure yet.  I DON'T want to use Windows Media Player for playback if I can help it, but I'm already using the winformat SDK for WMA tag read/write, so who knows.

   3 Day coding break:  FINALS! & Microsoft Certification exams.




« Last Edit: December 13, 2005, 06:54:18 am by nipsmg »

nipsmg

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1753
  • Last login:July 11, 2025, 12:17:29 pm
  • ROONEY!! ERRGH!!
    • Arcadia
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #85 on: December 18, 2005, 11:32:52 am »
Quick status update:

This project will require the .Net framework version 2.0.
I don't know if any of you who write microsoft code have tried VS2005 yet, but if you can, GET IT AND USE IT.  It's absolutely amazing.  Everything in the environment is better, works better, is more intuitive, is prettier, etc.  hard to explain unless you try it.

Progress:

   I've got an EXTREMELY fast method for scanning for files using the win32 apis.  It's infinitely faster than any other method I've attempted to use before.  This should greatly speed up building the initial media database.

   

mccoy178

  • It's hard to work with a straight jacket on
  • Trade Count: (+9)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 3127
  • Last login:September 03, 2021, 10:23:42 am
  • Go Bucks!
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #86 on: January 16, 2006, 07:37:46 pm »
Just wondered what the status on this was.

nipsmg

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1753
  • Last login:July 11, 2025, 12:17:29 pm
  • ROONEY!! ERRGH!!
    • Arcadia
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #87 on: January 19, 2006, 09:06:07 am »
Frozen until Feb 1st (possibly earlier).

Then, full speed ahead.  I know I know, you'll believe it when you see it.
Look for some visuals in february.  (I know this is turning into a missioncontrol type project, but..  I hope i can pick up the pace a bit now.)  ;)


oznetradio

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 73
  • Last login:August 03, 2010, 12:20:36 am
  • I want to build my own arcade controls!
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #88 on: February 07, 2006, 06:20:56 pm »
Well.... it's February  :laugh:

nipsmg

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1753
  • Last login:July 11, 2025, 12:17:29 pm
  • ROONEY!! ERRGH!!
    • Arcadia
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #89 on: February 22, 2006, 03:17:46 pm »
Yes it is.

The original database design was insanely flawed, so It has been revamped from scratch (which totally affects program objects/interactions, but a ground up redesign will allow everything I'm looking to accomplish, so this works the best.)

Some interesting features of the new design:

  • Tracks are not album specific.  This not only cuts down on data redundancy
        but allows for singles.  Doing a query using Albums table w/ a left join will
        return tracks with a NULL AlbumID.  These will be categorized as "Singles" or
        "Unsorted" for that artist
  • Artwork is not track or album specific.  3 tables (TrackArtwork, AlbumArtwork and
        ArtistArtwork) allow you to assign artwork to any level.  Artwork is selected by default as 
        Most specific/Lowest Sequence, but this may be changed in program options.
  • Genres can also have a ParentID.  I found it annoying that when I want "dance" or "techno" that i'd have to select 50 different genres.  This allows for hierarchial genre definition so that "Rock" can include Classic, Progressive, Alternative, Metal, Hardcore, Etc.  "Dance" can include freestyle, House, Hard House, Vocal House, Jungle, Trance, etc.
  • Tracks have a "MediaTypeID".  This way, Videos can be added, and if added to an album with a blank track number will display below the track list on the album screen under a "Videos" heading.

New Design Diagram:

http://www.gerety.net/images/DBRedesign.jpg

There's a lot more that went into this design for good reason.  Basically, I want this as extensible as possible. 

I'm not perfect.  This could be normalized better probably.  I may have forgotten something.
Round 2.  Hit this stuff up ASAP.  I'm redesigning the data access framework as we speak.  So while I'm doing this, now is your time to have some influence on the database structure.  Once this is solidifed, don't expect changes till release 2. (And release 1 is still a ways off, obviously).

Speak now or forever hold your peace.

Status:
    Database Design: 98%
    Data Access Framework Design: 70%
    Data Access Framework Inplementation: 5%
    Application Framework Design: 60%
    Application Framework Implemenation: 0%
    GUI Windowing Framework: Using existing Framework. DirectX. 100%
    Skinning Framework Design: 90%
    Skinning Framework Implementation: 30%
    GUI Design: 95%
    GUI Implementation: 0%

Keep on me about this. 
I want to get this written.  I have serious ADD. I need kicks in the a** to keep moving.

nipsmg

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1753
  • Last login:July 11, 2025, 12:17:29 pm
  • ROONEY!! ERRGH!!
    • Arcadia
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #90 on: February 23, 2006, 02:14:00 pm »
New audio library selected:

Using the BASS Audio Library.

  Native support for mp3 + ogg.
  Plugin support for AAC, FLAC, WMA.


   All tested, All working (Including tag read for all).


   Progress continues..

clanggedin

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1071
  • Last login:July 02, 2012, 11:08:55 pm
  • O'DOYLE RULES!!!
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #91 on: February 23, 2006, 04:20:39 pm »
I really excited to see where this one os going. I have tons of full cds and my wife have tons of singles. This is going to be good.

nipsmg

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1753
  • Last login:July 11, 2025, 12:17:29 pm
  • ROONEY!! ERRGH!!
    • Arcadia
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #92 on: February 24, 2006, 10:30:16 am »
Thanks for the interest.  That's definitely going to help keep this thing going!

Anyways, since this thing has been changed and delayed so much, I figured I'd include a shot of the Assembly Test GUI to prove that there IS progress and that I'm not stopping. I hope to keep doing this along the way as well, we'll see how it goes.



Ramblings:
It seems the BASS library pulls Tag info for every type of file EXCEPT Flac.  Not quite sure why that is, I think it has to do with the author of the FLAC plugin.  This isn't necessarily a problem.  Right now in the player library I'm pulling the tag info, but I plan on only allowing playback of files in the jukebox database, and that's a separate assembly doing the tag processing there.  I may use BASS to pull the tags for most, I may not, so this isn't an issue. I can just write the code to pull FLAC tags.  Interesting tho.



Since this is using the BASS library, the jukebox will have the ability to play any files that BASS supports (natively or through plugins), and there's a lot:

Native:
Samples:
WAV/AIFF/MP3/MP2/MP1/OGG
Internet File Streaming:
MP3/MP2/MP1/OGG/WAV/AIFF (Shoutcast, Icecast, & Icecast2) w/ buffering
MOD Music
MO3 Music

Plugins
WMA/FLAC/WavPack/SPX/AC3/MPC/ALAC/TTA/APE/OFR


There's plugins for BASS to use winamp vis plugins too.  Whether or not I can force the graphical output to directx on another monitor (or even the same monitor) is not clear yet.  Note: I'm NOT committing to winamp plugin support, but it's a thought at the moment.


More coming later.



Space Fractal

  • Wiki Master
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 1888
  • Last login:September 26, 2023, 11:32:13 am
  • Space Fractal
    • Space Fractal
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #93 on: February 24, 2006, 02:07:29 pm »
Yep, winamp plugin ran too unstable for me, when I tried add this to my own jukebox software, so I pulled this off again (I use the same engine too).

You could only have one stream at same time, but Im needed too. And when receive totaltime (1: open a file, 2: get total time and 3: close again gave a LOTS of problems). IN_MID diddent work very well, and the another one was V2M.

So by now I droppede that again, and only using the internal plugins (the code is still there).

Im remember as Shoutcast diddent even run very well (SO i used a html gadget to that instead, with worked a lots better in my option).
« Last Edit: February 24, 2006, 02:09:38 pm by Space Fractal / Denmark »
Decade Old Work: MultiFE, ArcadeMusicBox
Today Works: Various Spectrum Next games from Rusty Pixels and html5 games.

nipsmg

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1753
  • Last login:July 11, 2025, 12:17:29 pm
  • ROONEY!! ERRGH!!
    • Arcadia
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #94 on: February 24, 2006, 08:22:18 pm »
Yeah, the winamp plugins are still in version 2.0 and 2.1, I'm hoping they get updated with more stability.


I investigated CD+G, and had trouble finding a finished drop-in component, so I started writing my own CD+G Playback component from scratch using the CD+G specs.  It's about 1/2 way done.  Reading the files,interpreting, setting up palettes correctly, etc are all done.  There's an error somewhere in some of my bit manipulation that's causing some incorrect values.. Should have that squared away this weekend then it's off to the database and tag-scanning components. 

If anyone has a link to a good CD+G Solution let me know and I can save about 2 days on it.
Thanks!

I'll keep everyone up to date.

Space Fractal

  • Wiki Master
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 1888
  • Last login:September 26, 2023, 11:32:13 am
  • Space Fractal
    • Space Fractal
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #95 on: February 25, 2006, 04:38:22 am »
It over a year ago, when winamp plugins was updated (it still in Beta 2.1).

Tag3.dll is not bugfree, but it dosen't crash (but maybe on bad tagged files?). It most on when FLAC, OGG files was tagged with lowercase instead of uppercase (or was it swapped?). But it fine to use.....

I found only one document using CD-G, is that one I used on my own CD-G Player (you may allready found that). Find it on my download homepage (The Command Line Player). The Blitz+ with full source is included, and that is a link to the document.

CD-G is a pretty simple format. The hardest part was to get scrolling to work. I found no CD-G's, that used these commands, so I found some authorising and created one my self to get this to work.

Decade Old Work: MultiFE, ArcadeMusicBox
Today Works: Various Spectrum Next games from Rusty Pixels and html5 games.

nipsmg

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1753
  • Last login:July 11, 2025, 12:17:29 pm
  • ROONEY!! ERRGH!!
    • Arcadia
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #96 on: February 26, 2006, 11:21:35 am »
SpaceFractal:

That's the document.  Jbum.com. It's the only really good concise document I could find.

Your BB source code is pretty easy to read.  I don't know BB at all but I know vb well so the syntax is close.  I'll probably end up using your code to revamp mine so you'll definitely get partial credit in the readme along with jbum.com.

I really appreciate your help with this.  I've run across a lot of developers who get territorial and won't share information, especially with a potentially "competing" project.  Granted we're not making money off of this, but still.  I do really appreciate your help.

Thanks again.  I was frustrated by my issues with my CD+G Implementation but a this will save me a lot of debugging. 

--NipsMG

Space Fractal

  • Wiki Master
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 1888
  • Last login:September 26, 2023, 11:32:13 am
  • Space Fractal
    • Space Fractal
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #97 on: February 26, 2006, 04:58:22 pm »
Thanks for the comment.

This is why Blitz+ is a great and cheap language (for a project for mine). It pretty simple to read.

NB: One CDG command was skipped, because background transperancy was in no use.

« Last Edit: February 26, 2006, 05:15:32 pm by Space Fractal / Denmark »
Decade Old Work: MultiFE, ArcadeMusicBox
Today Works: Various Spectrum Next games from Rusty Pixels and html5 games.

nipsmg

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1753
  • Last login:July 11, 2025, 12:17:29 pm
  • ROONEY!! ERRGH!!
    • Arcadia
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #98 on: February 28, 2006, 10:20:02 am »
Ok so I have a love/hate relationship with C# and .NET in general.

Love:
Managed code is really easy.

Hate:
Managed code makes it a pain in the ass when reading binary data or trying to do fast pixel manipulation because you have to jump through hoops to do unsafe code or martial structures just to get them to map to basic binary data.

That, and I CAN'T FIGURE OUT WHY MY CD+G GRAPHICS AREN"T COMING OUT AS ANYTING COHERENT.  CD+G is a pretty friggin basic format.  and I don't know why it's been messing with me for like 3 days. :-/   

I'm going to get CD+G working in my own code, in C#.  It's a quest now.  The rest will continue once this is squared away.


nipsmg

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1753
  • Last login:July 11, 2025, 12:17:29 pm
  • ROONEY!! ERRGH!!
    • Arcadia
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #99 on: February 28, 2006, 11:43:24 am »
Here's a programming tip:

Reread your code when you type it.

Code: [Select]
int row = (tile.row & 0x1F)
int col = (tile.row & 0x3F)

What's wrong w/ this picture.
Now I only have to sort out colors and I'm done.

**Edit**
ok, missed another one just like it.
Graphics display. 
Colors are wrong.  Not quite sure why but it's a much less frustrating problem and can mostly be easily fixed. 

GDI+ is slow, I think Have to do directX to get this to display at full speed without skipping frames.

Once colors + timing are fixed, progress continues (CD+G was the final format I wanted to support.  Had to write my own.)

« Last Edit: February 28, 2006, 12:17:03 pm by nipsmg »

SirPoonga

  • Puck'em Up
  • Global Moderator
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 8188
  • Last login:July 17, 2025, 11:04:07 pm
  • The Bears Still Suck!
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #100 on: February 28, 2006, 12:07:04 pm »
One of those is suppose to be tile.col?

Space Fractal

  • Wiki Master
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 1888
  • Last login:September 26, 2023, 11:32:13 am
  • Space Fractal
    • Space Fractal
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #101 on: February 28, 2006, 05:18:55 pm »
Yep, it took me some days to made this little source code.

You may translated rgb colors is a wrong to the gdl library.

CD-G is a 16 colors system with using 16.16.16 rgb values. The values was readed in 12 bit (remember the first 2 bits is never used). Multiply it to the correct color (I did that with 17), and transperany the background color that is NOT in use (not blank), otherwice it may display very odd (in Blitz: color 0.0.0 was transperancy as standard). in BB i'm didden't use any mask,  but readed directly from a string instead. RGB values is even readed from the file with 2 bytes with this system: 00RRRRGG 00GGBBBB.

But I have not see, how you have made your color system, so I can't really help here what happens (im know java, but not c#).

See on CDG_LOAD_COL_TBL function, how I got colors to work.
« Last Edit: February 28, 2006, 05:28:41 pm by Space Fractal / Denmark »
Decade Old Work: MultiFE, ArcadeMusicBox
Today Works: Various Spectrum Next games from Rusty Pixels and html5 games.

nipsmg

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1753
  • Last login:July 11, 2025, 12:17:29 pm
  • ROONEY!! ERRGH!!
    • Arcadia
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #102 on: March 01, 2006, 08:05:50 am »
Yeah I didn't have a problem extracting the color values (I masked, converted to binary string, grabbed values, converted) but for some odd reason setting the RGB values results in weird colors. 

Not a huge fan of GDI Plus, but now that the CD+G works, I don't need to do any more with it.  It's meant to be integrated into the DirectX gui so I'll worry about the colors when I get to the jukebox display.

Progress on the rest begins today.


By the way, even though the IDE's gui sucks, Blitz+ is really friggin cool, and FAST.  You look at the source code (variant types, Basic syntax, no pointers) and think oh god this is going to be SLOW.. and it's not. Blitz+ basically wraps DX in a language that almost anyone could code in.

If you've always been scared of coding, but want an easy to learn language to play around with, check it out.

--NipsMG

Space Fractal

  • Wiki Master
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 1888
  • Last login:September 26, 2023, 11:32:13 am
  • Space Fractal
    • Space Fractal
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #103 on: March 01, 2006, 09:13:56 am »
CDG:
Wich songs do you have? Some songs use yellow as background, some blue and so on. But if colors display correct in both mine and yours, it should been ok (I have testet my own with a another player, when I made the player for a year ago to check it was ok).

Blitz+:
Blitz+ is really cool and fast (I came from AMOS world from Amiga), but missing some thing. Yes the IDE could been better, but it usable (Im still use that, even Blitz+ is a "command line" tool when you compile things). Blitz+ do even not require DX (like my own jukebox software), but using gadgets. I found a dll (to Dark Basic trouch) that changed the destop resoulutions to doing that.

When Blitz+ support dll (wich could been a much better, but works), I have brougt Purebasic to add some missing things (Purebasic can made dll files in a very easy way), and call them like a new blitz+ command.
Decade Old Work: MultiFE, ArcadeMusicBox
Today Works: Various Spectrum Next games from Rusty Pixels and html5 games.

nipsmg

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1753
  • Last login:July 11, 2025, 12:17:29 pm
  • ROONEY!! ERRGH!!
    • Arcadia
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #104 on: March 06, 2006, 08:05:56 am »
Just so you guys know..

Progress is being made.  I got sick adn was in bed for a little, but also gave me a little time to work on the project.  It's just the really non-glamorous stuff right now, like the data access framework, exception handling framework, and all the base level crap that makes things run smooth, but that I can't really show any of you.

I'll probably end up doing the entire jukebox application and a windows forms test gui (that'll look like absolute crap but will have most of the funcitonality of the finished version) before i do the DirectX GUI. 

Basically I want to have EVERYTHING separated from the GUI, so that no matter what I want to use (DirectX, ASP.NET (hint, hint, might see something here), windows forms)  it's just a matter of designing the interface and hooking up the right events.

 Stay tuned.

olsteve

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 50
  • Last login:March 24, 2012, 10:33:35 pm
  • To play or not to play, that is a stupid question.
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #105 on: March 20, 2006, 05:55:21 pm »

Keep on me about this. 
I want to get this written.  I have serious ADD. I need kicks in the a** to keep moving.

Here is your boot in the a** :

Why is it when we talk to God we are praying, but when God talks to us we are put into the loony bin?

nipsmg

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1753
  • Last login:July 11, 2025, 12:17:29 pm
  • ROONEY!! ERRGH!!
    • Arcadia
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #106 on: March 21, 2006, 09:44:04 am »
Thanks!

Final project week now for school (Trimesters !  >:(  )


Getting a new laptop by the end of this week: 
http://www.zipzoomfly.com/jsp/ProductDetail.jsp?ProductCode=265252

As soon as this comes in my productivity will skyrocket as I'll be able to code at school between classes.. SWEET!  ;D

nipsmg

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1753
  • Last login:July 11, 2025, 12:17:29 pm
  • ROONEY!! ERRGH!!
    • Arcadia
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #107 on: April 03, 2006, 03:04:07 pm »
Ok so I finally got my laptop (yay), and I've decided that no matter how busy I am I will devote at least 1 hour per day to the project.  The amount of progress I make in that hour will vary wildly depending on what I'm doing, but that's ok it's got to be done.

Status now:

   I'm going to start on the Media File Scanning/Tagging/Logging classes.  This really is going to be the foundation of the database as without this there can be no jukebox.  There's got to be a robust, stable media cataloguing engine underneath this project so I'll start there.

   As of right now, the program will have the ability to search specified dirs, entire disks, mapped drives, and UNC Paths.  Am I missing anything else here?

   Progress report tomorrow or wed.




nipsmg

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1753
  • Last login:July 11, 2025, 12:17:29 pm
  • ROONEY!! ERRGH!!
    • Arcadia
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #108 on: April 04, 2006, 09:29:11 am »
Threading is fun...  ::)


Ok so I've had some fun with threading yesterday, but I did find an excellent example of fast directory searching, and found out how to browse the network for computers, and found how to enumerate a remote computer for network shares, and all without using the common dialogs (which is key, since all of the dialogs will be custom drawn), and.. it's all multithreaded and really fast, so depending on how efficiently I can extract the tag info, setting up the initial database may not take as long as I've seen it take, I hope.

I should have the database searching implemented either today or tomorrow.  From there, it's starting on the data access layer, searching, categorizing, playlists, etc.  Stay tuned.




nipsmg

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1753
  • Last login:July 11, 2025, 12:17:29 pm
  • ROONEY!! ERRGH!!
    • Arcadia
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #109 on: April 05, 2006, 05:56:21 pm »
Note:
 I realize some of what I'm typing in this thread might be technical, of no interest to most people, or over some people's heads, however I'm maintaining this thread not only to keep you guys informed but as kind of a development history for me, so I know my train of thought as to why I may have taken a certain path, and so I can look back if I ever need to for reference.



Progress:

   Well, I finalized the multithreaded searching.  It's nice.  It's fast.  Basically, you will select the disks, mapped disks, and/or UNC Paths that you want to search for media files (or you can just have it search all your physical disks by default), and the program will create a separate thread for each disk, and in real time update a list of files to be processed.

 Tag processing is next:

   The plan is to on each Application.Idle event to check to see if there is a Tag processing thread active.  If not, look and see if there are any unprocessed files.  If so, create a tag processing thread and begin extracting tag information and store it in the database.  If no tag info exists, try to extract it from the filename and store that data in the database.  If that doesn't work, put the filename into a "unprocessed" table, so that the user can manually either add tag info to it, delete it if corrupted, etc.  These files do not end up in the searchable database until they are manually processed.

The best thing about all of this is that the GUI will be constantly updated with status and will not hang, this is all being done in background threads.  This also allows for the option to have the program every day/week/month check for new files and do so in a background thread that will have a low priority and will not interrupt the plackback of media files in the jukebox. 

Also, for tags:
   Basically this program is meant to be a jukebox.  WHile you'll be able to edit tags through the interface, it'd be a lot less painful to use something like Tag & Rename, which is hands down the best tag management utility on the face of the planet.


--NipsMG


nipsmg

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1753
  • Last login:July 11, 2025, 12:17:29 pm
  • ROONEY!! ERRGH!!
    • Arcadia
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #110 on: April 07, 2006, 09:09:37 pm »
Ok so I got the multithreaded tag extraction going.  Here's how it works:

Application starts, you specify the search locations (you can pick a root, a folder, a mapped network drive, or a network location (browse windows shares, I haven't tested this with samba/linux yet but I will eventually) YES that means UNC paths!!  ;D

click "scan".

One thread opens for each search location, the program scans for files and dumps the filenames into a list of some kind (arraylist, etc).

when the Application.Idle event occurs, the application checks to see if there's a tag processing thread running.  If not, it creates a TagProcessor class instance using the array list, then  then creates a new arraylist for the search threads to dump in.  A thread is created for the tagprocessor class and started.  The tagprocessor class processes all of the tags and stores the data into the database (right now it just dumps to a listview in the test gui, but I'll be writing in batches using sql2000 or MDSE or SQL2005Express + xml). 

When the tagprocessor class is finished, it marks its thread as "ready".  on idle, the program sees no thread running, checks the list for any unprocessed files, if the list is empty exist, it exits.  If the list is not empty, it takes those, creates a new dump list, and continues until there's no more left.

So while the computer is still searching for more files, it's also processing the ones it already foudn in another thread.

And holy crap it's fast (I'm using the BASS library for tag processing).  For the same directory, it processed faster than Tag & Rename (then again Tag & rename searches THEN processes, not at the same time..).   It seems stable, except it was hanging on a 0 byte mp3 file that got corrupted somehow, if I can find that bug I'm golden.

Once I dump the data into the DB, functionality (queues, playlists, sorting, song selection, artwork display, etc) can be implemented and I can test them in the windows forms test gui.  That shouldn't take too long cause I'm really getting excited about this.   Once that's done.. it's DirectX time  :o  Never done it. This will be interesting.

When I get some demonstrable forms stuff done I'll post screenies.

Stay tuned.

bleemus

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 184
  • Last login:September 01, 2016, 12:53:24 pm
  • Party Pengo in the house.
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #111 on: April 09, 2006, 11:37:01 am »
Ok so I have a love/hate relationship with C# and .NET in general.

Love:
Managed code is really easy.

Hate:
Managed code makes it a pain in the ass when reading binary data or trying to do fast pixel manipulation because you have to jump through hoops to do unsafe code or martial structures just to get them to map to basic binary data.

I fully agree, I've been doing C# and VB .NET ASP pages for a few years now... I always say, .NET makes hard things easy, and easy things hard.
Reality is overrated.

billf

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 528
  • Last login:September 14, 2022, 05:53:05 pm
  • Why ya dog-gone crazy idgit!
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #112 on: April 09, 2006, 11:44:43 am »
I always say, .NET makes hard things easy, and easy things hard.

My wife has done programming in .NET and I mentioned this line to her.  She said that perfectly sums up .NET.  She has had various choice words for .NET stuff in general  :censored:

nipsmg

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1753
  • Last login:July 11, 2025, 12:17:29 pm
  • ROONEY!! ERRGH!!
    • Arcadia
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #113 on: April 09, 2006, 08:32:42 pm »
C# is really good for QUICK RAD stuff, web services, web design, and things of that nature.  But when it comes to systems programming, file manipulation, anything that requires a lot of direct memory access to be fast, it sucks. 

There are ways around everything however, and I'm sure there are fast ways to do all that stuff, but it's not intuitive.  However you can expose .NET Assemblies as COM to use from unmanaged C++, but god knows how badly that slows your code down.  I'm going to try to do ALL of this managed, and we'll see what happens.  If it gets too tedious or too slow, I may have to take the unmanaged route with most of it.

However Managed DX9 and DX10 are supposed to be pretty friggin fast, so who knows. 

--NipsMG

SirPoonga

  • Puck'em Up
  • Global Moderator
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 8188
  • Last login:July 17, 2025, 11:04:07 pm
  • The Bears Still Suck!
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #114 on: April 10, 2006, 12:03:39 am »
I always say, .NET makes hard things easy, and easy things hard.

My wife has done programming in .NET and I mentioned this line to her.  She said that perfectly sums up .NET.  She has had various choice words for .NET stuff in general  :censored:
As with any programming langauge, that's why they all exist.  They have their good points and bad :)

nipsmg

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1753
  • Last login:July 11, 2025, 12:17:29 pm
  • ROONEY!! ERRGH!!
    • Arcadia
Re: Starting coding on Touchscreen jukebox. ***Possible Release Date?!***
« Reply #115 on: April 12, 2006, 04:21:58 pm »
Well, an interesting turn of events has occurred.  As part of my degree studies I enrolled in an Object Oriented Design and Architecture class.  Turns out, the class is more of a Project type class.

7 teams of 4 were picked, and I was assigned to a team as team leader due to my past performance in the professor's class.  We are allowed to write anything we want.  Guess what I picked?

Plus side:  This HAS to be done in 12 weeks, and I have 3 other coders to work with me on this.

Down side: They only know Java, and it looks like we'll be forced to do it in Java, and Java is not my strong suit, C# is.

  Granted syntax wise they're similar if not identical, however the packages, frameworks, and SDK's used to accomplish things are very different and there will be a steep learning curve on my part unfortunately, and I really wanted to do this in C#, NOT Java.  Speed is a concern.  I wanted to learn/use DirectX.

  However, one way or another, we have to get at least a scaled down portion of this project presented in class by the 12 week deadline.

So .. right now, it might be a safe bet to look for a release in one form or another by:
July 3, 2006.  ;D

I don't know if you guys will get the Java release, or if I'll be parallel developing in both languages, or what, so who knows, but you should see something.

Granted I'll need to get permission to distribute this from my teammates, but I don't foresee it being an issue as they'll be given credit for any code they write.

I'll keep everyone informed.
 :applaud:

nipsmg

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1753
  • Last login:July 11, 2025, 12:17:29 pm
  • ROONEY!! ERRGH!!
    • Arcadia
Re: Starting coding on Touchscreen jukebox. Submit Your ...*art added*
« Reply #116 on: April 19, 2006, 08:41:49 am »
Ok so even though this is a "student project", it's being treated as if it's a commercial app so I have to be very careful to not "directly imitate" a commercial product's interface. (granted I plan on this being skinnable in the final version, but the "School project" version will be the first skin..

I'm toying around with interface layouts now.  Here's an idea:



Comments, criticisms?
« Last Edit: April 19, 2006, 08:43:24 am by nipsmg »

eist1

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 29
  • Last login:September 30, 2008, 02:38:59 pm
  • I want to build my own arcade controls!
Re: Starting coding on Touchscreen jukebox. *release date?? & Art!!*
« Reply #117 on: April 19, 2006, 10:19:13 am »
This looks very nice... I am currently using a touchscreen, and this is very clean and simple. I was just wondering if the filter option would allow you to choose a genre and only that genre will be able to be searched through? That would be very nice, seeing I have over 1100 albums, and searching through albums of just rock or country would be much quicker. And maybe a Random Play button also using genre, so you could play unlimited songs randomly from one genre. Also, would you be able to put the album name under the artist name. I hope the search screen will have large enough buttons for touchscreen users. Some of the other jukeboxes don't make using the online keyboard very easy. Just some ideas, but a very nice start. Keep up the good work.

nipsmg

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1753
  • Last login:July 11, 2025, 12:17:29 pm
  • ROONEY!! ERRGH!!
    • Arcadia
Re: Starting coding on Touchscreen jukebox. *release date?? & Art!!*
« Reply #118 on: April 19, 2006, 11:21:18 am »
Yeah, the filter screen will allow you to filter by up to 4 filters at a time.  These include by Genre, Year, Rating, Artist, Album, Etc. 

Interface will be VERY non complicated and intuitive.  Don't worry.

This is being tailored specifically for touchscreen input, and I have a great idea for input fields and the on screen keyboard.  I'm keeping it under wraps for now, but it will not be disappointing.

This project has been "Vaporware" for a long time due to Real Life constraints.  Now that real life is FORCING me to complete this, it'll get done.  I'll keep updating.

--Michael Gerety

GadgetGeek

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 414
  • Last login:July 09, 2024, 09:32:57 am
  • whatever
Re: Starting coding on Touchscreen jukebox. *release date?? & Art!!*
« Reply #119 on: April 19, 2006, 12:34:21 pm »
Will album name be displayed anywhere, or just artist name?  Or maybe Album name instead of artist name?

OK, maybe I'm starting to age...replace all references to album with CD.