* MP3 Shield * - Rogue Robotics rMP3

I know that this product doesn't quite fit with what I am wanting to do, but you guys seem to be quite knowledgeable with the field.

I am trying to design a sort of ethernet-based intercom-type setup, where there will be a pair of speakers & a mic in each room. The mic would get converted into a digital signal and streamed to a central pc. The PC in turn, would stream back audio to the device, which would convert it to analog audio to playback on the speakers. I envision the arduino setup would be like a "dumb hub"--it receives input, and does the AD/DA conversion (and any codec work), and then it pipes it out the opposite end.

Does anyone have any ideas/suggestions on getting the necessary hardware to set this up? I've searched around for hifi audio processing shields, and this one was the best one I could find. Perhaps it can be modified to fit my purposes?

I suggest you post that question as its own thread. Most people will not now read this thread unless they have posted in it.
Does it need to be ethernet? Is it only for two rooms? A whole building?

Mowcius

I've reposted here: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1280060445/0

and yes, I'm looking at a whole building worth of rooms. If it were only two rooms, I could just throw 2 sound cards in the computer and not have to worry about developing an expandable setup like this.

Hi bhagman,

what's the difference between this unit and your "µMP3 Playback Module"?.

Hi bhagman,

what's the difference between this unit and your "µMP3 Playback Module"?.

One's an arduino shield and one's not. :wink:

GOOD NEWS!

I managed to talk all involved to bring the price down on the rMP3! CAD$59.99 (which is something like USD$58.00 as of 2010/08/10) will get you the rMP3 board without headers, CAD$64.99 gets it with the headers - you need to solder them on.

b

For us english folk, that's about £37/£40 (without/with headers)

Sounding good. I have a project in mind for another :slight_smile:

Mowcius

I've just purchased the rMP3 shield and am having trouble getting it to work with my Arduino. A lot of things work, but not everything. I will give a detailed set of symptoms and hope someone can tell me what is wrong or suggest some way to diagnose the problem.

The example program RogueSD_uMMC works perfectly. (The only change I made to it was to tell it I was using serial pins 6 and 7 as I did not cut traces and put in jumpers yet.) It properly shows the files I have on the SD card.

The example program rMP3_Playback_Example partially works. The only change I made to it was to put in the actual name of my mp3 file. The serial monitor first shows a line with some garbage characters. (I don't know what causes them.) It then rapidly shows lines saying "Stopped vol: 20"). If I send a "k" this number increases. If I send an "i" it decreases. So far, so good. Now, the problem. If I hit "f" the activity light goes on for 7 seconds and the output on the serial monitor stops for that same 7 seconds. The mp3 file is 2 minutes long. I believe the activity light should go on for 2 minutes and the serial monitor should update with the position, sample rate etc. Also, the headphones I connect to the output connector produce no sound.

I've checked that if I purposely miss-spell the mp3 filename that when I type "f" nothing happens. This tells me that my file (when not miss_spelled) is being found. If I use a wav file instead of an mp3 file, then the pause is about the length of the mp3 file, put still no playback information or sound. I tried putting a few simple commands in the setup part of the sketch. I flash the arduino LED, tell a file to play and flash the led some more. From this, it is clear that rmp3.playfile(SONG) call is not returning until the song is totally "played." This is not right, but is consistent with what I saw earlier in the serial monitor.

I checked the firmware version number. It is 10001. From what I can tell on the roguerobotics wiki, the uMP3 has many firmware versions, but the rMP3 only has this one.

Any suggestions?

Thanks

The rMP3 has had a beta update but it should not affect that functionality.

If you want to try it:
http://www.roguerobotics.com/wikidocs/rmp3/beta/start

Brett will no doubt see this later but I will have a think about it.

Mowcius

I thought maybe the 5V from the USB might not have enough current to both drive the Arduino and the MP3 card, so I plugged a 9V supply into the Arduino. Miracle! Everything now works properly. To confirm the cause, I disconnected the 9V supply. It still works!

So, I don't know what was really wrong, but it is working now.

So, I don't know what was really wrong, but it is working now.

Yeah USB should have more than enough current for it. Glad it's working now though :smiley:

"This sketch randomly plays all the songs in a folder. You can control the volume, play/pause/stop/next, and ff/rew using serial input (from the IDE)."

Wow, pretty interesting. Can't wait to have one.

Will this fit on a Duemilanove Arduino? Or will that take a little fooling around with mechanical spacing & jumpers?

I'm really thinking this on one of the tiny arduinos with mini USB connector and battery would be cool.
Got more ideas for toys than I have time to implement!

I've long been thinking that MP3 player that could take music off any USB device was needed. I still use my Neuros Audio MP3 player daily, kinda clunky looking now but with 80GB harddrive it plays a loooong tie before anything repeats. Just sits on my desk at work & goes & goes, and every once in a while I bring it home, delete everything, and load it with fresh stuff.
When they first came out, I got a little mp3 player that took some kind of small memory card. Not much capacity, maybe total of 256+64MB of music? Really slow to load at USB1 speeds, barely held enough songs to cut the grass (ripped at 256K), when 20GB Neuros came we got 3 of them, then upgraded to 80GB with USB2 speed when those came out.

(Everybody oohs & aahs over the apple stuff - that's nice, but I don't have time to fool with video when I'm at work or driving, and having to pull out reading glasses to see the little screen just sucks!)

Thanks
Robert

Will this fit on a Duemilanove Arduino?

Yes. That's what it's designed for :wink:

I'm really thinking this on one of the tiny arduinos with mini USB connector and battery would be cool.

Well if you don't solder the headers on, it only requires power and 2 serial pins so you can connect it to any arduino without it just being a shield.

Mowcius

Thanks mowcius. That's what I figured. I've had a Deumilanove for a 2-3 weeks or so, and its my first Arduino since I first came across them at instructables.com, so the shield items are all new to me. Been browsing the forums some everynight, browsing the different stores out there, just taking it all in.

Robert

could this be made to (quickly) change the pitch and change position playing within an audio file? If so, I think it might make a cool sampler.

could this be made to (quickly) change the pitch and change position playing within an audio file?

Unfortunately not quick enough for that, I also do not think it can change pitch (although perhaps this can be changed in software)

Mowcius

Hmmm... interesting thought.

OK, first off - the rMP3 can change pitch - but it's not as fast as you'd need it.

You can also start playing at any position in a file, and you'd be best off finding the proper frame to begin, if you are getting into detail. It's a bit complicated, but you can do it.

Now, here's an idea: Kind of a make-shift sample playback ---

Input from a Midi keyboard through an Arduino and have an rMP3 as a shield.

Now, you'll have to do some work creating some MP3 files, but it will be worth it. Create one file for each key - use the same sound, and change the pitch (using Audacity or such) according to the key. Name each file the same as the key (e.g. 060.mp3 for C4, 061.mp3 for C#4, etc.), then it's as simple as:

int note;
char filename[20];

note = getMidiNote();

sprintf(filename, "/%03d.mp3", note);

rmp3.playfile(filename);

// repeat ad nausem

It would only be monophonic, but it would be quite usable. I'd be curious to see how it would turn out. Heck, I could write the code in about 10 minutes, just need someone who has a Midi keyboard hooked up to their Arduino - I don't have one handy.

You could also create banks of sounds - just put each set of files under different folders. e.g. /piano/060.mp3, /piano/061.mp3, etc... And simply prepend the bank name (or number, e.g. /002/060.mp3).

b

just need someone who has a Midi keyboard hooked up to their Arduino - I don't have one handy.

Oh so that's something I should do with my keyboard... :smiley:

OK, first off - the rMP3 can change pitch - but it's not as fast as you'd need it.

Interesting...

You could also create banks of sounds - just put each set of files under different folders. e.g. /piano/060.mp3, /piano/061.mp3, etc... And simply prepend the bank name (or number, e.g. /002/060.mp3).

Didn't you say it was faster if you used .wav files (or something like that)?

Mowcius

Yes. Mowcius is hereby mandated to pull out his midi keyboard and get it connected to his Arduino and rMP3 - ready to accept my wondrous code.

Let me know when you have it all hooked up. :wink:

RE: WAV files - you will get marginally quicker starts from WAV files. But the difference is pretty negligible. The suggestion about using WAV files was for stringing sounds together (like speech) - since you need to keep the gaps as small as possible. For a MIDI audio module, we won't need to worry about that.

Oh, and another note (pun kinda intended): We can make it have more note polyphony if we add more rMP3s! 2 rMP3s = 2 note polyphony!

b