iProp: Portable WAV player with playlist and browser. Ideas for add-ons?
Microcontrolled
Posts: 2,461
Always having interest in portable music systems I thought to make my own. I was hoping that I would not have to start from scratch and I was overjoyed when I found Rayman's wonderful WAV drivers in the OBEX. (Thanks for that, Ray!) I then thought I should compleate my pact with mctrivia when he gave me a propmod and turn this into a Gadget Gangster project. I have been trying to come up with something to enter into his design contest so I figured that this sounded pretty good. So I got mctrivia's propmod and wired it up to a boss board in the lower section. I then added the DAC for video with a composite out plug AND a header for the Bridillia 3.0" display if I ever get one. I then added in a battery pack, a switchpad (4 buttons on a scrap of board) and straight-through audio and I had a working portable player. I inserted a mini-SD loaded with all sorts of songs and soon discovered that it had a limit on file size. I'll get to that later though and tell you that I designed a timer to tell what time in the song you are in(run in a seperate cog) a stop/start button, a full list of all .WAV files on the SD card and a scroll through list where you can click and play. The audio is amazingly clear, expesially for a home-made device. Well, now that I had a circuit board I built a full case for it out of thin partical board and hot-glue. I then spray-painted all but the front silver, and also cut out some blocking tape to leave a cool "iProp' logo on the front. I then cut a circle out of fiberglass and painted the back silver with cut-outs for icons. I then put different color paper behind it for a cool effect. I then hot-glued it onto the back of the button circuit board and put it on the front under the logo. I'll post a picture of what the fished project looked like.
http://sites.google.com/site/picturesforuploadsite/pictures/Old%20memory%20card%20026.JPG
http://sites.google.com/site/picturesforuploadsite/pictures/Old%20memory%20card%20027.JPG
The way it knows what files are on the card is not a new innovation, it is a cheat. I have a lookup table file that must be loaded for the device to work. It is a txt file (list.txt) which is basicly a list of all the songs file and what you want the title to be on the device. There are a number of commands that are going to be inplanted into this text file. Commands are addressed in the way
This way you can make any number of code words and inplant them into your player. What I would like to know is what code words I·should inplant·and what they should do. I have already inplanted T, or Title so that in the listing you can have a long title shown instead of a short filename. I am also planning on inplanting L, or Lyrics, that allows you to create a timed lyrics file (more on this later) but what else should be inplanted? Give me opinions on the project, conplaints, whatever. Tell me what you think.
Thanks,
Micro
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.
Robots are microcontrolled.
I am microcontrolled.
But you·can·call me micro.
Want to·experiment with the SX or just put together a cool project?
SX Spinning light display·
Want cheap wholesale electronic parts?
Transistor parts wholesale
http://sites.google.com/site/picturesforuploadsite/pictures/Old%20memory%20card%20026.JPG
http://sites.google.com/site/picturesforuploadsite/pictures/Old%20memory%20card%20027.JPG
The way it knows what files are on the card is not a new innovation, it is a cheat. I have a lookup table file that must be loaded for the device to work. It is a txt file (list.txt) which is basicly a list of all the songs file and what you want the title to be on the device. There are a number of commands that are going to be inplanted into this text file. Commands are addressed in the way
*SongName|codeword:text for code goes here|
This way you can make any number of code words and inplant them into your player. What I would like to know is what code words I·should inplant·and what they should do. I have already inplanted T, or Title so that in the listing you can have a long title shown instead of a short filename. I am also planning on inplanting L, or Lyrics, that allows you to create a timed lyrics file (more on this later) but what else should be inplanted? Give me opinions on the project, conplaints, whatever. Tell me what you think.
Thanks,
Micro
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.
Robots are microcontrolled.
I am microcontrolled.
But you·can·call me micro.
Want to·experiment with the SX or just put together a cool project?
SX Spinning light display·
Want cheap wholesale electronic parts?
Transistor parts wholesale
Comments
That's one of those little things that doesn't sound very exciting but is so helpful when you actually use the thing.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
No electrons were harmed while rendering this message.
The ADC convertor I will try, as long as it is in GG's invetory. As soon as I get that display, I will replace the "iProp " logo with it. Trust me, it will be cooler by the time it is released to GG!
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.
Robots are microcontrolled.
I am microcontrolled.
But you·can·call me micro.
Want to·experiment with the SX or just put together a cool project?
SX Spinning light display·
Want cheap wholesale electronic parts?
Transistor parts wholesale
I think your project is great.
My 2 cent's.
How about adding "A" For Artist, this way you can narrow your search results ?
If you don't remember the song name but know who the artist is.
What do you think?
My first MP3 player was the Virgin Pulse, a great player, I loved all it's features. I think this was one of the first SD file read players but I am not sure.
I sometimes fire it up just to listen to it.
Rob 7
Now do a PCB that fits the Gameboy case and interface it to the existing screen from the unit. [noparse]:)[/noparse] [noparse]:)[/noparse]
(and start selling them.. [noparse]:)[/noparse]
OBC
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?
Visit the: The Propeller Pages @ Warranty Void.
How do you like the PCB design? This will make the system A LOT more compact!
P.S. I named the one file MP3 Player even though it only plays WAVs.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.
Robots are microcontrolled.
I am microcontrolled.
But you·can·call me micro.
Want to·experiment with the SX or just put together a cool project?
SX Spinning light display·
Want cheap wholesale electronic parts?
Transistor parts wholesale
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.
Robots are microcontrolled.
I am microcontrolled.
But you·can·call me micro.
Want to·experiment with the SX or just put together a cool project?
SX Spinning light display·
Want cheap wholesale electronic parts?
Transistor parts wholesale
http://en.wikipedia.org/wiki/MOS_Technology_SID
Nice work on the player!
Jim
My latest one uses the propmod that mctrivia so nicely gave me (I love the little bugger, gonna buy a bunch more when I get some money together).
Maybe we could work together on some software? It seems to me like you've made some serious progress in getting a usable UI. I've focused mostly on the hardware so far, I'm just getting to the software stage.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Not the fish.
sites.google.com/site/bitwinproject/
Today I got the "Album" feature halfway in, even though I worked from noon to sundown. It now reads the album, writes the result to the onboard EEPROM on startup. The flaw with this is that if you add a new catagory (that is artist or album) then you have to reset the memory. Since setup only takes a couple seconds that should not be much of a problem. The reason it takes it from the SD card to the EEPROM is that then the startup function is simply to read from preset EEPROM locations and load the variables instead of searching a 5000 byte(max) SD card program. The system is designed to handle more songs the the SD could hold, for in uncompressed WAV you could only fit 50 to 75 songs on a 2GB SD card. This saying that if someone put in a 4GB SD then they could have at the very most 200 songs, if some are short so the program is currently being expanded to hold at least that much. By the time this is done the whole memory will be utillized. The thing I spent most of my day on was getting the album (or catagory) thing set up WITHOUT initial startup and just loading from the SD to the vars. This failed every time so I resorted to this. I didn't have time to test it yet, so results will be in tomorrow.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.
Robots are microcontrolled.
I am microcontrolled.
But you·can·call me micro.
Want to·experiment with the SX or just put together a cool project?
SX Spinning light display·
Want cheap wholesale electronic parts?
Transistor parts wholesale
16bit mono at 32kHz could fit 8.7 hours on a 2GB card.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
24 bit LCD Breakout Board coming soon. $21.99 has backlight driver and touch sensitive decoder.
Post Edited (mctrivia) : 11/19/2009 3:10:10 AM GMT
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.
Robots are microcontrolled.
I am microcontrolled.
But you·can·call me micro.
Want to·experiment with the SX or just put together a cool project?
SX Spinning light display·
Want cheap wholesale electronic parts?
Transistor parts wholesale
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
24 bit LCD Breakout Board coming soon. $21.99 has backlight driver and touch sensitive decoder.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.
Robots are microcontrolled.
I am microcontrolled.
But you·can·call me micro.
Want to·experiment with the SX or just put together a cool project?
SX Spinning light display·
Want cheap wholesale electronic parts?
Transistor parts wholesale
I use Audacity (audacity.sourceforge.net) for such tasks; have been doing this lately as I'm presently experimenting with Ray's WAV player myself for integration into a future Halloween/Movie prop controller.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.
Robots are microcontrolled.
I am microcontrolled.
But you·can·call me micro.
Want to·experiment with the SX or just put together a cool project?
SX Spinning light display·
Want cheap wholesale electronic parts?
Transistor parts wholesale
Jonathan
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
lonesock
Piranha are people too.
For your filelist ... I·added a VirtualMemory to the FSRW which I used to scan the SD-card and create a list of BMP-files. So, that's propably what you could use in your player for generating a WAV filelist - maybe in different playlists.
·If you are interested there is a Thread called VirtualMemory which shows the early proof of concept. Unfortunately I used a older FSRW version, so before I provide some new code I'd like to add it to a newer version.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.
Robots are microcontrolled.
I am microcontrolled.
But you·can·call me micro.
Want to·experiment with the SX or just put together a cool project?
SX Spinning light display·
Want cheap wholesale electronic parts?
Transistor parts wholesale
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Not the fish.
sites.google.com/site/bitwinproject/
I think that would be nice for your WAV player as well.
And putting a hires, hicolor image on a display is what I'm currently working on. I use a crystalfontz display which has touch-panel and is very unexpensive. 2,4" for around $35. Currenty I want to do a nice graphical GUI where all the images are stored on the SD-card. So, that would be nice for your player as well.
Forgive me .. I'm old .. hardly remember what I said yesterday ;o) But even if I did say so, it should encourage you - which obviously worked.
The basic point of the code above are the calls to vxMemxxxCopy. In the upper part the directory is scanned and each file ending with .BMP is put into the list. vwMemCmpCopy also compares the actual filename to the name that's propably already in the list. Only if it changes something, the sektor will later on be written to SD card again - either by magic or by vMemFlush.
As you know a filename is 8.3 plus string terminator = 13 bytes. For easier calculation I give each entry in the list 16 bytes. Of course you could also give it more memory, so you can store additional information. Playlist ... runtime ... whatever.
The WAV file can still be opened while you access the virtual memory. So you could scroll in the list while listening.
So, if you want to access this data again, you simply use vrMemCopy with the entry-number < 4 (which is a fast multiply by 16) plus the base adress of the list of filenames.
PS: Do you have a link to the thread in which I have been so ugly to you? I'd like to check wheather I have to apologize for something.
And no need to apologize, that just encouraged me to try harder!
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.
Robots are microcontrolled.
I am microcontrolled.
But you·can·call me micro.
Want to·experiment with the SX or just put together a cool project?
SX Spinning light display·
Want cheap wholesale electronic parts?
Transistor parts wholesale
The display is from Crystalfontz ( http://www.crystalfontz.com/product/CFAF240320K-T-TS.html ). I like it pretty much and I'll definitely write a general purpose menu system for that. Reading full color pictures in the end should be possible in ~200ms using the 8 bit bus setting. I plan to record a vid showing what I currently have.... let's see.
Did you have a look at this thread? http://forums.parallax.com/showthread.php?p=852123
Wouldn't that be a nice interface for your WAV-player?