freesound.iua.upf.edu becomes www.freesound.org

After 3 years of using the rather long and confusing “freesound.iua.upf.edu” URL, we have finally convinced ourselves and the university that we needed a new domain. Starting effectively now, The Freesound Project get’s a new url:

http://www.freesound.org

(We will also stop refering to Freesound as “The Freesoud Project” but will rather switch to saying “Freesound dot org”.)

A few words about this domain name. After a long debate we decided we would buy the domain from buydomains.com. Buydomains.com (deliberately not turned into a link!) is one of those companies that makes money from buying domains on the web, holding them ransom and then selling them for a very high price. Depending on your view this might be called cybersquatting (although I don’t like the name as I have respect for squatters) or just plain extorsion: freesound.org was bought for the sum of 4073?.

Once Nightingale is up, we will have one of those nice “donate until we get to this sum” meters so the community can pay up to half of that. That way we can say that the Freesound.org domain is owned by the community. If we had done it the other way around (ask the community for half, then buy the domain), someone would have outsmarted us by buying the domain and increasing the price even more.

It was about time to make our support for Freesound even more official and give it an even stronger personality. We have also started a new initiative which will be hosted under the name http://barcelona.freesound.org/ and we are hoping that we will be able to start (or perhaps others will start!) other local initiatives related to sounds and sound recording. More news about barcelona.freesound.org soon!

Posted in Uncategorized | 8 Comments

Freesound seeks designer(s).

  • Would you like to help build Freesound 2.0 a.k.a. nightingale?
  • Do you have plenty of experience with making design for web and pouring that design into clean, validating xhtml and css?
  • Do you like the idea of having a link to your company or website on every page of freesound, visited by over 20000 unique people per day?
  • Do you have a visible online portfolio?
  • Are you able to do this for free (or almost for free)?

If you answered yes to these questions, contact me at bdejong@domain [where domain is iua.upf.edu] with subject: “I want to help with the freesound design!”

Posted in Nightingale | Tagged | 1 Comment

Testing Solr…

After looking around for a search engine for Nightingale, and comparing features between all the various ones (from using tsearch2 on postgres to Sphinx to Solr to …) I’ve settled on Solr. Configuring and running Solr was (much) easier than expected at the start. After about a day of hacking around, I got a nice tag-browser running, with Alax-ified searching through the tags. A bit more hacking around and I decided I would write a mash-up of all existing Python Solr wrappers. SolPython and solr.py, the one that’s included with Solr, seemed very unpythonic and little developed. PySolr on the other hand looked very nice, but there were some things in it I thought vould be better. Particularly, i wondered why the authors (two known Python/Django devs) used the XML parsing and didn’t use the JSON output. When you search in Solr, you can tell it to reply you in a number of output formats. They chose the XML output, I rewrote to use the JSON output, and allowed for more output parsers to be written / plugged in.

Neither Solr.py or PySol has classes for wrapping the search parameters. After reading through the docs I added a lightweight wrapper for a lot of the parameters.

We keep track of searches in freesound, so we can “replay” those searches for testing purposes, and after a bit of testing I found out some interesting things. Using Solr and a relatively heavy set of output features (I want to see a lot of “faceting”), I tested a batch of 100K searches. It looks like I can run 50 queries per second on my macbook pro. As the set of documents in Freesound is relatively small (“only” 50K sounds), everything fits very nicely in a very small cache (only 128MB), inluding all faceting data.

As before this source code is also open source, but -as Xavier gave me the go-ahead- this one is BSD instead og GPL. I will continue to release “support code” under the BSD license.

The code can be found here: http://iua-share.upf.edu/svn/nightingale/trunk/sandbox/solr/solr.py
The example code I used for benchmarking here: http://iua-share.upf.edu/svn/nightingale/trunk/sandbox/solr/freesound_test.py

Python/Solr people, feel free to send me any feedback!

Posted in Nightingale, Tech Talk | Tagged | Leave a comment

wav2png.py, son of wav2png

Last week I decided that for nightingale we need a new wav2png, and preferably one written in python, using the awesome python image library. After talking a bit to Ricard it was clear that using numpy and audiolab it would be a piece of cake. Well, a big piece of cake, but still. Once I got going, I went a bit overboard and decided that it would be nice to have a spectrogram of the sound as well, perhaps displayed when you move the mouse over the large image in the sound page.

It took me about 2 and a half days of coding and testing to make it robust (it needs to work for 5-sample wave files and 5-million-samples wave files) and looking good. Some sensible feedback from the guys at oneDot.only made me decide that we had to cut back on the number of colors in the waveform view. The current one looks really ugly in my opinion, so… that was changes as well. It’ll take a while for people to become accustomed to the new colors, but it makes sense to me. I threw in some vertical anti-aliasing for that extra slick look.

For those who don’t know what a spectrogram is, have a look at the wikipedia entry for it.

Without further ado, I present you some results. First of all my own “test” file, a sinusoid sweep:

and its spectrogram:

An FM percussion loop from walkerbelm:

and its spectrogram:

A bell sequence from ERH:

and its spectrogram:

You can find the full source code to generate these images in the nightingale repository ( http://github.com/bram/freesound/tree/master ), in particular look in the directory /freesound/utils/audioprocessing/

You’ll need to install python, numpy, PIL and audiolab to make it work. See above for the links.

Let me know what you think!

Posted in Nightingale, Tech Talk | Tagged | 38 Comments

Freesound talk and workshop at the Jornadas de Conocimiento Libre

On the 15th and 16th of April Jaume Ferrete and me will be giving a talk and workshop on Freesound at the Jornadas de Conocimiento Libre (“days of free/libre knowledge”) in Madrid, Spain. In the talk (in Spanish) we will give an overview of Freesound, it’s history, growth and some rather interesting examples of how Freesound has affected various lives all around the world. The workshop (?Sonic micronarratives; identity in FreeSound?, in English) will evolve around how recording sounds – like taking pictures – is a brief view into the personal world of the recorder an how this micro-vision – as opposed to the controlled macro-vision called TV – is currently shaping the internet and our lives.

If you live near Madrid, come join us!

http://www.esp.uem.es/jcl08/

Posted in talks, workshops | Leave a comment

Hey! Where did my bandwidth go to??

Bandwidth…

Freesound is using around 3 to 5 TeraByte per month these days, being capped at 2 MegaByte/sec. This upper limit is imposed by the university. UPF still runs a 100 mbps network as far as I know, which means that with 2MB/sec (=16mbps) we’re using 16% of the whole university bandwidth if we are pushing the upper boundary! That’s pretty much all the time now.

But, where does this bandwidth go to? Today I did an analysis of the last full 7 days to see which of the 4 would take up the most: sound packs, sound images (those colorful waveform displays), sound previews (the mp3 your hear when you hit play) or actual sounds! The total bandwidth used by these categories is 694.37GB, or split up:

  1. sounds 40.4% (280.63GB)
  2. previews 36.1% (250.63GB)
  3. packs 22.4% (155.61GB)
  4. images 1.1% (7.51GB)

First of all, we can completely ignore the images. They are not our problem. PNG is a very nice format for images with few colors, and our waveform display are just that. Other than that it looks like sounds, previews and packs are… well, more or less using the same amount of bandwidth. I’m a bit surprised that packs are only 22%, I thought people liked packs a lot more than files. Let’s see what happens if we split up the sound category:

  1. wav 77.1% (216.34GB)
  2. aif 9.2% (25,96GB)
  3. mp3 8.2% (22.88GB)
  4. flac 5.3% (14.98GB)
  5. ogg 0.2% (0.47GB)

People really like uncompressed sound and we have a lot of it at Freesound: wave files lead the way with a huge 77%!

Flac…

Free Lossless Audio Codec (FLAC) is a file format for audio data compression. Being a lossless compression format, FLAC does not remove information from the audio stream, as lossy compression formats such as MP3, AAC, and Vorbis do. (taken from http://en.wikipedia.org/wiki/Flac)

What would happen if we would compress all wave files to flac (thanks to Nico for bringing this up so I had an excuse to do this analysis)? Flac has an average compression ratio of about 0.6 (1MB wave file > 0.6MB flac file) so we would save about 550GB per month which is quite a bit!

On the other hand flac is a bit of a pain to support: many people don’t know flac and like to be able to use their wave files immediately after downloading. There’s no visual guides for people how to use flac, nor is there a cross-platform unified interface for using flac. A great format, but not very user-friendly if you don’t like the command line! Flac developers, prove me wrong and I will make freesound the biggest proponent of flac!

Posted in Tech Talk | Tagged | 31 Comments

Freesound 2.0 – A.k.a. Nightingale

So, we have finally succombed to the pressure of web 2.0, we have been tagged, we tagged, we dugg, opened a flickr.com account and … created a blog for Freesound. Or should I say Nightingale? Well, let’s only use Nightingale codename for what I devised it for: the new and improved Freesound two point ooooh.

Xavier and I have talked multiple times about rewriting parts of Freesound, but when Google gave us a research grant, it was a godsend! He asked me if I would like to come “back” (not being able to move back to spain – staying in the same place – but in a digital kind of way anyway) to work for MTG on a freelance basis to work on Freesound. I thought about it, but being the good father to Freesound I try to be, how could I say no??

Mind you, that version of Freesound is still very far away! But we already know some of the things we really want in it. Here are the things I had said in the forum with some additional information added where needed.

  • All the code will be public and released under the gnu public license (v2 or 3, not sure yet). The code will be hosted on MTG’s code repository. You could ask, why not google code or sourceforge… well, I guess we could have done that but have opted for an environment we can easily control. As Jordi (our fearless sysadmin) said: what if you want to change to GIT (another “version control” tool for development) in a few months. Before anyone asks, the open source release will not include the “search similar” features of the website: this is a closed source technology, developed by MTG and sold by BMAT, MTG’s first spinoff.
  • Obviously we will add all the highly wanted features that we have been talking about for so long. This includes the support of 3 different licenses (public domain, attribution and attribution non-commercial), embedding of the sounds in other pages (add your freesound files to … your blog), adding images to your sounds etc etc. We will do another pass for “officially wanted features”, I’ll also go through the forum to collect everything in there.
  • The forum will be replaced by a hand-coded forum. This is good and bad: bad because it means more work, good because we don’t need to depend on phpBB anymore. PhpBB is great if you run a forum, but we run a website, and the forum is taking too prominent a place right now, it governs the whole site (the login system in freesound is based on phphBB). PhpBB being as omnipresent as it is is also highly plagued by spam. Another problem is that if you add hacks to phpBB (like… antispam) you need to re-implement your changes or do a very careful merge of the code. You could say, yes, but if you make a forum you will not have as many features and not as thoroughly tested software as phpBB. True, but … we don’t need all those features of phpBB and a smaller code base is easier to bugfix and maintain!! 🙂
  • All development will be done using the python framework called django. Aah, this is a difficult one. I’ve had many discussions with many people saying plone or typo3 or insert-favorite-cms-here is better. Frameworks versus content-management-systems is not my favorite subject, but I will say this: if you try to do things with a CMS that it wasn’t really made for you will end up fighting the CMS. And fighting that CMS will take you just as long as writing something from zero, in a framework with plenty of features (think RoR, django, turbogears, …). I just happen to know django, like python and I’ve got some experience with it.
  • Freesound has grown out of its initial parameters, so we will try to make the website more easily scalable. Freesound is taking up 2TB of bandwidth per month, and our database server is… suffering. We need some caching and we need it now. Greg has been working on some changes in the current freesound code to have more distributed bandwidth consumption over various squid servers all over the web. The plan is to roll out that changeset tomorrow (March 4th)! Dobroide has set up a test squid server in Sevilla. We will be blasting his computer into high gear in a few days. Poor CPU 🙂
  • A new and fresh skin/design most likely created in collaboration with oneDotOnly but this is still in discussion. Whatever the skin is, it will need to be cleaner than the mess we have right now. When my friend Javi did the initial skin for Freesound, who would know that we would abuse it so badly in the future. 3 years of adding features with a skin that was designed to last 1 year. Auch, sorry Javi!
  • Sound playback with soundmanager2. About 2 and a half years ago I found a bug in Mozilla’s flash plugin. I submitted the bug. 2.5 years have passed. Time to move on. Using this javascript + 1 flash instance per page plugin solves the problem (and in a very nice way!). It allows us to add as many sounds per page as we want without the flash player stopping playback. Have you ever noticed all sound goes nuts when you have 2 Freesound tabs open? That will be fixed.
  • Search capability with Apache Solr. Me and lately Gerard as well have been experimenting with Solr. Jordi wants to damn me to hell and back for wanting to use a java based server (“you’re going to make me install Tomcat? Grrr!” – maybe he is not so fearless!), but this thing is just too nice. A highly scalable search engine that will take care of all the annoying bits for us. In splicemusic we used SQL triggers to update data in a big search-table (which was probably not the smartest way either), but writing sql triggers can sometimes be… annoying. With django we can make a simple priority queue for documents that need updating (“hey, this document changed, you need to look at it again, Mr. search engine”). I’ve been looking around for other solutions but none seem as powerful (while staying easy-to-use) as Solr. Especially the faceting seems to be well worth it! Faceting is what you get in some shops: you searched for camera we found digital cameras (150), analog cameras (2), tripods (15), etc. Imagine this for freesound: you searched for bass drum, we found samples with samplerate 44100 (15), 44800 (10), samples in packs Bram’s Bassdrum Pack (28), Jovica Heavy Hitters Pack (58), …

So, to conclude: a lot of plans, a “todo” from here to the moon and back, but… it will be well worth it!

Posted in Nightingale, Tech Talk | Tagged | 10 Comments

Freesound – Meet the team.

Who is behind Freesound? Well, less people than you would think! Not all of them are as visible as the others (look who is talking, googling my own name gives me the creeps!), but all of them are an invaluable part in the working of things.

Xavier Serra: Xavier is the big boss, the director of MTG. The evil ( just kidding Xavier 😉 ) mastermind behind the audio research center called MTG which has produced many cool things like Vocaloid, Reactable, Freesound and many other cool projects. I highly recommend you to check out MTG’s website and have a good look at all the projects they spawned.

Bram de Jong: Smartelectronix, MusicDsp.org, ICMC2005, Splicemusic, Freesound. There’s some things to google.

Jordi Funollet: MTG and IUA’s system administrator. The only guy who gets excited and happy if power supplies start glowing red. Ooooh, look, so many people on freesound!! I hope we get slashdotted next!! Imagine the cool graphics it will produce in my logging!

Greg Kellum: Greg worked on something behind the scenes, but something very important. In 2007 he worked on the way files were named in Freesound so that mirroring would be possible. Mirroring is the process by which content is spread out over different servers around the world to lighten the heavy load of the poor freesound machines.

Gerard Roma: Gerard has been silently working away on his Freesound Radio program. He is one of the poor Master in Information, Communication and Audiovisual Media Technologies (TICMA) students who was too techy for his own good and got swept along in the rush of Freesound. I’ve been trying to get Gerard more involved in Freesound one bit at a time. He is also one of the Freesound moderators.

Anton, Erdie, Halleck, plagasul: 4 brave freesound moderators. When you (you know who you are!) write a bad description on a file, upload an illegal file or a broken file, these are the guys that weed them out! Moderation is done in a semi-anonymous way where each moderator is presented with random files, so… don’t hold it against any of them if your file is flagged “bad description!”

The Essentia team: the guys that worked on the sound similarity algorithms. Although they are not directly involved with Freesound, I can’t count the number of times that Koppi or Nicolas helped me with database an/or C++ problems So, they are kind of responsible for all of this as well!

Posted in Uncategorized | 3 Comments

About

This is the official freesound blog. Lot’s of information will be posted here on freesound “2.0” a.k.a. nightingale development and general freesound things.

Posted in Uncategorized | 2 Comments