MagicPlay is an open cross-platform audio streaming standard (think “HTTP for music”) that supports synchronized streaming to multiple speakers (like Sonos). For more details, see this Verge story. In the near future you’ll be able to buy WiFi speakers, TVs and other products that come with MagicPlay support out of the box. If you want to try MagicPlay right now, you can turn an existing device such as the Raspberry Pi into a MagicPlay device and stream music to it using doubleTwist Music Player for Android.
If you would like to skip building the source code, you can download a binary package instead.
1. Download the AllJoyn source code (AllJoyn is a P2P framework developed by Qualcomm to power the Internet of Things).
2. Unzip the AllJoyn code: tar -zxvf alljoyn-3.3.0-src.tgz; cd alljoyn-3.3.0-src
3. Clone the following two repositories:
4. Apply this patch: zcat magicplayd.diff.gz | patch -p0
5. Build AllJoyn library: make OS=linux CPU=armhf VARIANT=release
6. Build and install audio service: cd services/audio; make CPU=armhf; sudo make CPU=armhf install
The MagicPlay service (/etc/init.d/magicplayd) has now been installed and will automatically start on boot.
Note that if you want to use a USB sound card with MagicPlay on the Raspberry Pi, you will need to modify services/audio/src/posix/ALSADevice.cc prior to step #7 and replace “plughw:0,0” with “plughw:1,0” and “hw:0” with “hw:1” (since the USB sound card would be sound card #2).
To get beta builds of doubleTwist Music Player for Android, make sure to join the doubleTwist Google Plus community.
The setup pictured below includes a LP-2020A+ Lepai amplifier ($20) and Micca MB42 speakers ($50).
We have an opening for an experienced C# developer at DoubleTwist:
Should have 5+ years experience in software development
Should have 3+ years of experience with .NET, C# and web services
Should have a degree in Computer Science or related field
Experience developing digital media applications is a plus
Experience with .NET under Linux (Mono) is a plus
You will be tasked with working on both our client software as well as server backend code. Besides coding, you will be responsible for assisting with documentation, building test plans, debugging software, providing design input, and helping in every way to ensure the successful rollout of each phase of the project.
Location: San Francisco
If you are interested, send us your résumé. If you know of someone who might be interested, please forward this to them.
I am selling the following items. If you live in downtown San Francisco I will personally deliver the item(s) to you.
- Nokia 770: Used for 6 weeks. This unit is very special as it has been touched by the iCEO! (oh, and me, but I’m not quite at his level of fame). Runs Linux and is very hackable. $300.
- 3G iPod 40GB: Used for 2.5 years. Own a piece of DRM history! This is the iPod I used when I reverse engineered FairPlay in winter 2003/2004. Battery needs replacing as it doesn’t last very long anymore. $150.
- Firewire PCMCIA card: Nothing exotic here. Used only for a few days. $10 with purchase of any item above $50.
- AUDIOTRAK OPTOPlay: Used for a few months. $30 with purchase of any item above $50.
Update: The Nokia 770 and the iPod have been sold.
I’m 22 years old today and it’s story time: When I was 17 years old I bought my first portable MP3 player. I reverse engineered the Windows driver that came with it and wrote a Linux driver. After some time I was contacted by the Singaporean company that manufactured the player. They were quite happy with my work because they had “lost contact” with the Chinese company they had outsourced driver development to. Not only did they give me their support, they wanted to hire me to write a Linux driver for their next product. I was willing to start the work immediately, but they needed my CV first due to formalities. After I sent them my CV I never heard back from them. I doubt it was due to my lack of work experience, as I had already demonstrated that I had the necessary skills. So if you were wondering ‘Old enough for what?’ after reading the title of this post, the answer is ‘Old enough to write software for a company in Singapore.’
Having used various GNU/Linux distributions over the years, I find these pictures hilarious:
Caldera, Debian, Fedora, Gentoo, Mandrake, RedHat, Slackware, Ubuntu.
I hacked together a very simple C# command line audio player that uses libvlc.
It supports the following formats:
MP2, MP3, AAC, Ogg Vorbis, Speex, FLAC, Apple Lossless, AC3, CDDA, WMA 1 and 2.
MOD formats: MOD, XM, IT, S3M, 669, MTM, STM.
Source Code: snd123-1.0.2.tar.bz2 (MD5: a315990e0ab58f30ca80589e251e2932)
Ubuntu Breezy package: snd123_1.0.2-1_i386.deb (MD5: f81e05b3bd9ed7cd8a0f5b458af78de6)
I’ve released version 1.0 of SharpMusique. Ubuntu Breezy package is now available.
ChangeLog: Improved album support. Proper build system.
Instructions for compiling VLC with VC-1 (WMV9) support under Ubuntu Breezy
Install dependencies available from the Ubuntu repositories (main and universe)
$ sudo apt-get install libwxgtk2.6-dev libdvbpsi3-dev libmpeg2-4-dev libmad0-dev libasound2-dev libesd0-dev x11proto-video-dev libdvdnav-dev liba52-0.7.4-dev libflac-dev libfreetype6-dev libid3tag0-dev libogg-dev libpng12-dev libspeex-dev libtheora-dev libvorbis-dev libxml2-dev zlib1g-dev gcc g++ automake1.9 autoconf libtool subversion cvs libx11-dev
Install libdvdcss (DVD support)
$ mkdir ~/videolan ; cd ~/videolan
$ wget http://downloads.videolan.org/pub/videolan/vlc/0.8.2/contrib/libdvdcss-1.2.8.tar.bz2
$ tar -jxvf libdvdcss-1.2.8.tar.bz2 ; cd libdvdcss-1.2.8
$ ./configure --prefix=/usr ; make ; sudo make install
Compile faad2 (AAC support)
$ cd ~/videolan ; wget http://downloads.videolan.org/pub/videolan/vlc/0.8.2/contrib/faad2-20040923.tar.bz2
$ tar -jxvf faad2-20040923.tar.bz2 ; cd faad2-20040923
$ ./configure --prefix=/usr ; cd libfaad ; make
Compile ffmpeg (support for H264 and many other codecs)
$ cd ~/videolan ; cvs -z9 -d:pserver:firstname.lastname@example.org:/cvsroot/ffmpeg co ffmpeg
$ cd ffmpeg ; ./configure --enable-pp --enable-gpl ; make
Compile libvc1 (WMV9 support)
$ cd ~/videolan ; wget http://nanocrew.net/sw/libvc1-1.0.tar.gz ; tar -zxvf libvc1-1.0.tar.gz
$ wget http://USERNAME:PWD@www.smpte-vc1.org/TrialPublication/Decoder/VC1_reference_decoder_release6.zip
$ unzip VC1_reference_decoder_release6.zip
$ cp VC1_reference_decoder_release6/decoder/*.[ch] libvc1-1.0/src/.
$ cp VC1_reference_decoder_release6/shared/*.[ch] libvc1-1.0/src/.
$ cd libvc1-1.0 ; ./bootstrap ; ./configure --prefix=/usr ; make
$ cd ~/videolan ; svn co svn://svn.videolan.org/vlc/trunk vlc-trunk
$ cd vlc-trunk ; wget -O – http://nanocrew.net/sw/vlc-libvc1.diff | patch -p0
$ ./bootstrap ; ./configure --with-ffmpeg-tree=../ffmpeg --enable-faad --with-faad-tree=../faad2-20040923 --enable-esd --enable-flac --enable-theora --enable-libvc1 --with-libvc1-tree=../libvc1-1.0 --disable-hal
$ make ; sudo make install
ATI has released a new version of the fglrx driver. What has changed since the previous one?
- DVI output works
- XVideo playback of 720p content works
Suspend doesn’t work at all (system locks up and screen is garbled).
I was looking through boxes of old stuff and came across the first computer programming book I read and the first Linux distro I tried.