<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9210580920169500129</id><updated>2012-04-16T00:33:43.345-03:00</updated><category term='linux'/><category term='embedded'/><category term='gsoc'/><category term='ufcg'/><category term='enlightenment'/><category term='personal'/><category term='elementary'/><category term='eupnp'/><category term='bluez'/><category term='upnp'/><category term='projects'/><category term='ixmf'/><category term='wolrdcup'/><category term='brisa'/><category term='bluetooth'/><category term='nokia'/><category term='python'/><category term='efl'/><category term='low energy'/><category term='signove'/><category term='guides'/><category term='edje_editor'/><category term='fun'/><category term='vuvuzela'/><category term='ti'/><category term='useless'/><category term='pts'/><category term='google'/><category term='gstreamer'/><title type='text'>André Dieb</title><subtitle type='html'>-- hopping through frequencies</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://genuinepulse.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9210580920169500129/posts/default/-/gstreamer'/><link rel='alternate' type='text/html' href='http://genuinepulse.blogspot.com/search/label/gstreamer'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>André Dieb Martins</name><uri>http://www.blogger.com/profile/00818132770105735861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9210580920169500129.post-1444992165049412176</id><published>2010-09-07T13:12:00.002-03:00</published><updated>2010-09-07T13:36:07.629-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gstreamer'/><category scheme='http://www.blogger.com/atom/ns#' term='gsoc'/><category scheme='http://www.blogger.com/atom/ns#' term='ixmf'/><title type='text'>xmf/ixmf plugin updates</title><content type='html'>For the past few months I've implemented a few XMF plugins for GStreamer's GSoC. The GSoC objectives and results are here:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Add XMF support into GStreamer (both creation and parsing of XMF files)&lt;/li&gt;&lt;li&gt;Have a base for XMF sub types (mXMF - mobile ringtones, iXMF - games, interactivity, among others)&lt;/li&gt;&lt;li&gt;Perform iXMF experiments&lt;/li&gt;&lt;li&gt;Get to know the GStreamer community, make professional contacts, learn the technologies in question (GStreamer, GObject, GLib, etc)&lt;/li&gt;&lt;li&gt;Get in touch with the XMF/iXMF working group&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;I'm glad to say we managed to accomplish these objectives. From the code POV, we have the following plugins:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;xmfmux: capable of creating XMF files&lt;/li&gt;&lt;li&gt;xmfdemux: capable of demuxing XMF files&lt;/li&gt;&lt;li&gt;xmfbin: worth-mentioning experiment in which we tested how to perform some iXMF features within the gst context.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;It's important to note that me and my mentor will maintain these plugins and keep them updated according to newly published specs. Although they're in a near-stable state, we're in the process of rounding them before pushing to -bad.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Concerning the community, we've held a conference call with key members of the iXMF working group. It was a great talk and they're definitely backing up our project. I joined the group and I may attend to following conference calls.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://genuinepulse.blogspot.com/feeds/1444992165049412176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9210580920169500129&amp;postID=1444992165049412176' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9210580920169500129/posts/default/1444992165049412176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9210580920169500129/posts/default/1444992165049412176'/><link rel='alternate' type='text/html' href='http://genuinepulse.blogspot.com/2010/09/xmfixmf-plugin-updates.html' title='xmf/ixmf plugin updates'/><author><name>André Dieb Martins</name><uri>http://www.blogger.com/profile/00818132770105735861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9210580920169500129.post-6363382122476376117</id><published>2010-07-19T00:15:00.006-03:00</published><updated>2010-07-19T00:52:17.749-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gstreamer'/><category scheme='http://www.blogger.com/atom/ns#' term='gsoc'/><title type='text'>xmfbin experiments, ixmfmux</title><content type='html'>&lt;div&gt;This is the third report for the iXMF GSoC project. In this phase I've done experiments on an element called xmfbin, that would implement similar behavior of an iXMF engine. Me and my mentor have discussed the difficulties and aspects of this element for defining what we'll do next.&lt;/div&gt;&lt;br /&gt;The experiments were all about learning more about the runtime environment required for ixmf. xmfbin was able to play simultaneously mp3 files embedded in a xmf file, created using our own xmfmux component. We had some problems when playing a mp3 file two times while using pulsesink, debug shows there may be a problem with discontinuity but alsasink did not present the same problem. We're still looking into it.&lt;br /&gt;&lt;br /&gt;There are also other ideas regarding how ixmf playback could be done using GStreamer, we have stashed them and we'll probably revisit them on the next few weeks.&lt;br /&gt;&lt;br /&gt;Now I'll start coding ixmfmux, which is just an extension of xmfmux. The addition is that it embeds special data structures used for ixmf effects (e.g fading, transitions, volume control, etc).&lt;br /&gt;&lt;br /&gt;&lt;table border="0" align="center" rules="all" cellpadding="5" cellspacing="3" frame="box" style="text-align: justify;"&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;tbody&gt;  &lt;tr&gt;    &lt;th&gt;Week&lt;/th&gt;    &lt;th&gt;Date&lt;/th&gt;    &lt;th&gt;Event&lt;/th&gt;    &lt;th&gt;Status&lt;/th&gt;  &lt;/tr&gt;  &lt;tr style="background-color: #aba; color: black;"&gt;    &lt;td&gt;0&lt;/td&gt;&lt;td&gt;May 18th&lt;/td&gt;  &lt;td&gt;First component delivered&lt;/td&gt;  &lt;td&gt;&lt;a href="http://genuinepulse.blogspot.com/2010/05/gsoc-project-report-1-xmfdemux.html"&gt;xmfdemux delivered&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #cdc; color: black;"&gt;  &lt;td&gt;1&lt;/td&gt; &lt;td&gt;May 24th&lt;/td&gt;  &lt;td&gt;GSoC officially begins&lt;/td&gt;  &lt;td&gt;Designing xmfmux&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #aba; color: black;"&gt;  &lt;td&gt;2&lt;/td&gt;&lt;td&gt;May 31th&lt;/td&gt;  &lt;td&gt;Coding xmfmux&lt;/td&gt;  &lt;td&gt;xmfmux, unit tests&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #cdc; color: black;"&gt;  &lt;td&gt;3&lt;/td&gt;&lt;td&gt;Jun 7th&lt;/td&gt;  &lt;td&gt;Coding xmfmux&lt;/td&gt;  &lt;td&gt;muxing of complex folder structures&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #aba; color: black;"&gt;  &lt;td&gt;4&lt;/td&gt;&lt;td&gt;Jun 14th&lt;/td&gt;  &lt;td&gt;Second component delivered&lt;/td&gt;  &lt;td&gt;xmfmux delivered, start designing ixmf playback engine and muxing requirements&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #cdc; color: black;"&gt; &lt;td&gt;5&lt;/td&gt;&lt;td&gt;Jun 21th&lt;/td&gt;  &lt;td&gt;iXMF bin design and prototype&lt;/td&gt;  &lt;td&gt;&lt;span style="font-style:italic;"&gt;extended&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #aba; color: black;"&gt;  &lt;td&gt;5&lt;/td&gt;&lt;td&gt;Jun 28th&lt;/td&gt;  &lt;td&gt;xmfbin experiments&lt;/td&gt;  &lt;td&gt;xmfbin initial implementation&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #cdc; color: black;"&gt; &lt;td&gt;6&lt;/td&gt;&lt;td&gt;Jul 5th&lt;/td&gt;  &lt;td&gt;xmfbin experiments&lt;/td&gt;  &lt;td&gt;&lt;span style="font-style:italic;"&gt;simultaneous playback tests with formats other than (e.g. mp3) &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #aba; color: black;"&gt;  &lt;td&gt;7&lt;/td&gt;&lt;td&gt;Jul 12th&lt;/td&gt;  &lt;td&gt;xmfbin experiments&lt;/td&gt;  &lt;td&gt;seeking, samplebin-like behavior&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #cdc; color: black;"&gt; &lt;td&gt;8&lt;/td&gt;&lt;td&gt;Jul 16th&lt;/td&gt;  &lt;td&gt;GSoC Mid-term&lt;/td&gt;  &lt;td&gt;GSoC midterm evaluations&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #aba; color: black;"&gt;  &lt;td&gt;8&lt;/td&gt;&lt;td&gt;Jul 19th&lt;/td&gt;  &lt;td&gt;ixmf startup&lt;/td&gt;  &lt;td&gt;start coding ixmfmux component for samples generation&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;caption&gt;Project Schedule&lt;/caption&gt;&lt;/table&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://genuinepulse.blogspot.com/feeds/6363382122476376117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9210580920169500129&amp;postID=6363382122476376117' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9210580920169500129/posts/default/6363382122476376117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9210580920169500129/posts/default/6363382122476376117'/><link rel='alternate' type='text/html' href='http://genuinepulse.blogspot.com/2010/07/xmfbin-experiments-ixmfmux.html' title='xmfbin experiments, ixmfmux'/><author><name>André Dieb Martins</name><uri>http://www.blogger.com/profile/00818132770105735861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9210580920169500129.post-2960783437909825965</id><published>2010-06-21T21:31:00.011-03:00</published><updated>2010-06-21T22:35:49.389-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gstreamer'/><category scheme='http://www.blogger.com/atom/ns#' term='gsoc'/><title type='text'>GSoC Project Report 2 - xmfmux</title><content type='html'>&lt;div&gt;This is the second report for the iXMF GSoC project. In this phase I have created the xmfmux component, the remaining requirement for starting diving into ixmf.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Concerning GSoC timeline, here's how we're scheduled:&lt;/div&gt;&lt;div style="text-align: justify;"&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;table border=0 align="center" rules=all cellpadding=5 cellspacing=3 frame=box style="text-align: justify;"&gt;&lt;tbody&gt;&lt;tr&gt;  &lt;th&gt;Week&lt;/th&gt;  &lt;th&gt;Event&lt;/th&gt;  &lt;th&gt;We're at&lt;/th&gt;&lt;/tr&gt;&lt;tr style="background-color: #aba; color: black;"&gt;  &lt;td&gt;0 (May 18th)&lt;/td&gt;  &lt;td&gt;First component delivered&lt;/td&gt;  &lt;td&gt;&lt;a href="http://genuinepulse.blogspot.com/2010/05/gsoc-project-report-1-xmfdemux.html"&gt;xmfdemux delivered&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #cdc; color: black;"&gt;  &lt;td&gt;1 (May 24th)&lt;/td&gt;  &lt;td&gt;GSoC officially begins&lt;/td&gt;  &lt;td&gt;Designing xmfmux&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #aba; color: black;"&gt;  &lt;td&gt;2 (May 31th)&lt;/td&gt;  &lt;td&gt;Coding xmfmux&lt;/td&gt;  &lt;td&gt;xmfmux, unit tests&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #cdc; color: black;"&gt;  &lt;td&gt;3 (Jun 7th)&lt;/td&gt;  &lt;td&gt;Coding xmfmux&lt;/td&gt;  &lt;td&gt;muxing of complex folder structures&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #aba; color: black;"&gt;  &lt;td&gt;4 (Jun 14th)&lt;/td&gt;  &lt;td&gt;Second component delivered&lt;/td&gt;  &lt;td&gt;xmfmux delivered, start designing ixmf playback engine and muxing requirements&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #cdc; color: black;"&gt;  &lt;td&gt;5 (Jun 21th)&lt;/td&gt;  &lt;td&gt;iXMF bin design and prototype&lt;/td&gt;  &lt;td&gt;&lt;span style="font-style:italic;"&gt;In progress&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;caption&gt;Project Schedule&lt;/caption&gt;&lt;/table&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;Important information:&lt;br /&gt;&lt;div&gt;&lt;ul type="square"&gt;&lt;li&gt;Project repository: http://gitorious.org/gst/ixmf&lt;/li&gt;&lt;li&gt;Contact&lt;/li&gt;&lt;ul type="square"&gt;&lt;li&gt;Me: André Dieb Martins (andredieb on IRC-freenode) - andre.dieb@gmail.com&lt;/li&gt;&lt;li&gt;Mentor: Thiago Sousa Santos (thiagoss on IRC-freenode) - thiagossantos@gmail.com&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;a href="http://www.midi.org/techspecs/xmf/xmf.php" style="color: rgb(34, 85, 136); "&gt;XMF&lt;/a&gt; - introduction about the base format for iXMF&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.midi.org/techspecs/xmf/ixmf_art1.php" style="color: rgb(34, 85, 136); "&gt;iXMF&lt;/a&gt; - introduction about interactive XMF&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.blogger.com/www.iasig.org/wg/ixwg/index.shtml" style="color: rgb(34, 85, 136); "&gt;iXMF IASIG&lt;/a&gt; - interactive XMF working group (contains the draft spec)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.midi.org/techspecs/xmf/xmf_mobile.php" style="color: rgb(34, 85, 136); "&gt;mXMF&lt;/a&gt; - mobile XMF&lt;/li&gt;&lt;li&gt;&lt;a href="http://genuinepulse.blogspot.com/2010/04/ixmf-gsoc.html" style="color: rgb(34, 85, 136); "&gt;Blog post&lt;/a&gt; by me about XMF/iXMF and the GSoC project&lt;/li&gt;&lt;li&gt;First report: &lt;a href="http://genuinepulse.blogspot.com/2010/05/gsoc-project-report-1-xmfdemux.html"&gt;xmfmux&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Now to the report itself.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As you can see from our schedule above, we spent about 2-3 weeks coding the xmfmux component. The component is currently in its most basic form (doesn't support metadata yet) but it's able to fully mux xmf files and build any node structure specified (for instance, multiple folders, subfolders).  This was a functional requirement for iXMF, as it specifies multiples folders for storing its different resources descriptors. Here we show some usage:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Single node structure, one root node that is actually the file (most common mxmf files have this layout):&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote style="text-align: center;"&gt;filesrc location=file1.midi ! xmfmux ! filesink location=output.xmf&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;2. Two nodes owned by a root folder node:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;blockquote&gt;filesrc location=file1.midi ! xmfmux name=muxer ! filesink location=output.xmf  filesrc location=file2.midi ! muxer.&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;3. Subfolders:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Desired layout:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;ul type="square"&gt;&lt;li&gt;Root&lt;/li&gt;&lt;ul type="square"&gt;&lt;li&gt;Folder1&lt;/li&gt;&lt;ul type="square"&gt;&lt;li&gt;Folder2&lt;/li&gt;&lt;ul type="square"&gt;&lt;li&gt;file1&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div&gt;Pipeline:&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;filesrc location=file1.midi name=file1  xmfmux name=muxer ! filesink location=output.xmf  file1 ! muxer.Folder1:Folder2:file1&lt;/blockquote&gt;Note that in this pipeline we specified the folder structure through the pad names, folders separated with &lt;b&gt;: &lt;/b&gt;tokens.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now on week 5, I'm studying and designing how the ixmf bin will be implemented. Concerning the xmfmux and xmfdemux components, they still lack a couple functionalities required by ixmf:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;xmfdemux: Pull pads for srcpads created&lt;/li&gt;&lt;li&gt;xmfmux: metadata&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Week 5 will be about implementing these remaining functionalities and keep designing the ixmf bin. Next report will expose the design study results and the implementation roadmap.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://genuinepulse.blogspot.com/feeds/2960783437909825965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9210580920169500129&amp;postID=2960783437909825965' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9210580920169500129/posts/default/2960783437909825965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9210580920169500129/posts/default/2960783437909825965'/><link rel='alternate' type='text/html' href='http://genuinepulse.blogspot.com/2010/06/gsoc-project-report-2-xmfmux.html' title='GSoC Project Report 2 - xmfmux'/><author><name>André Dieb Martins</name><uri>http://www.blogger.com/profile/00818132770105735861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9210580920169500129.post-4627918158599931285</id><published>2010-06-16T05:26:00.006-03:00</published><updated>2010-06-16T06:13:30.306-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wolrdcup'/><category scheme='http://www.blogger.com/atom/ns#' term='vuvuzela'/><category scheme='http://www.blogger.com/atom/ns#' term='gstreamer'/><title type='text'>Vuvuzela Filter</title><content type='html'>&lt;div&gt;Here we'll create a filter that removes the vuvuzela sound. We'll use &lt;a href="http://www.blogger.com/www.gstreamer.net/"&gt;GStreamer&lt;/a&gt; (free software) and some of its plugins (also free :)).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Requirements:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;GStreamer 0.10&lt;/li&gt;&lt;li&gt;GStreamer Base Plugins&lt;/li&gt;&lt;li&gt;GStreamer Good Plugins&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Ubuntu users: install gstreamer0.10-plugins-base and gstreamer0.10-plugins-good through Synaptic or apt-get.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Used files:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://megaupload.com/?d=3OI5TEBT"&gt;Vuvuzela mp3 sample&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.megaupload.com/?d=3T97NOQ8"&gt;Vuvuzela mp3 sample filtered&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As you might have heard about over the web, Vuvuzela main harmonics are at frequencies 233 Hz, 466 Hz, 932 Hz and 1864 Hz. This filter is basically an array of band-reject filters for attenuating (or completely removing) the signal level on those frequencies. For this, we'll be using the audiochebband&lt;b&gt; &lt;/b&gt;plugin, part of GStreamer Good Plugins. It's a Chebyshev band pass and band reject filter but here we'll use it in band reject mode.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Vuvuzela complete filter (run in command-line):&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;gst-launch-0.10 uridecodebin uri="file:///home/dieb/Desktop/vuvuzela_antes.mp3" ! audioconvert ! audiochebband mode=band-reject lower-frequency=223 upper-frequency=243 type=2 ripple=50 ! audiochebband mode=band-reject lower-frequency=456 upper-frequency=476 type=2 ripple=50 ! audiochebband mode=band-reject lower-frequency=922 upper-frequency=942 type=2 ripple=50 ! audiochebband mode=band-reject lower-frequency=1854 upper-frequency=1874 type=2 ripple=50 ! audioconvert ! autoaudiosink&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;Note that:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;This filter is attenuating a bandwidth of 20 Hz around the target frequencies. You can tune that bandwidth down (e.g. to 10 Hz, 5 Hz) for a better output sound by setting lower-frequency and upper-frequency properties to -bandwidth/2 and +bandwidth/2, respectively (e.g. 10 Hz bandwidth at 233 Hz, lower=228, upper=238)&lt;/li&gt;&lt;li&gt;You can also tune the ripple for a better sound. 50dB is a bit too much, perhaps you can find a smaller value for your setup&lt;/li&gt;&lt;/ul&gt;Note that this pipeline can be used for filtering live your TV sound through your computer:&lt;br /&gt;&lt;blockquote&gt;gst-launch-0.10 &lt;b&gt;autoaudiosrc&lt;/b&gt; ! audioconvert ! audiochebband mode=band-reject lower-frequency=223 upper-frequency=243 type=2 ripple=50 ! audiochebband mode=band-reject lower-frequency=456 upper-frequency=476 type=2 ripple=50 ! audiochebband mode=band-reject lower-frequency=922 upper-frequency=942 type=2 ripple=50 ! audiochebband mode=band-reject lower-frequency=1854 upper-frequency=1874 type=2 ripple=50 ! audioconvert ! autoaudiosink&lt;/blockquote&gt;Connect your TV sound output to your computer microphone/audio input (usually pink or blue connectors) and then your PC output (green connector) back to the TV (most modern TV's have blue-colored audio input jacks on the back panel). That's it. You have vuvuzela-free world cup games :-), for free.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://genuinepulse.blogspot.com/feeds/4627918158599931285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9210580920169500129&amp;postID=4627918158599931285' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9210580920169500129/posts/default/4627918158599931285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9210580920169500129/posts/default/4627918158599931285'/><link rel='alternate' type='text/html' href='http://genuinepulse.blogspot.com/2010/06/vuvuzela-filter.html' title='Vuvuzela Filter'/><author><name>André Dieb Martins</name><uri>http://www.blogger.com/profile/00818132770105735861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9210580920169500129.post-3455536454519447926</id><published>2010-05-18T23:39:00.007-03:00</published><updated>2010-05-19T00:50:50.849-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gstreamer'/><category scheme='http://www.blogger.com/atom/ns#' term='gsoc'/><category scheme='http://www.blogger.com/atom/ns#' term='ixmf'/><title type='text'>GSoC Project Report 1 - xmfdemux</title><content type='html'>&lt;div style="text-align: justify;"&gt;This is the first report for the iXMF GSoC project. First let's have some useful information about it:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Project repository: &lt;a href="http://gitorious.org/gst/ixmf"&gt;http://gitorious.org/gst/ixmf&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Contact:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Me: André Dieb Martins (andredieb on IRC-freenode) - andre.dieb@gmail.com&lt;/li&gt;&lt;li&gt;Mentor: Thiago Sousa Santos (thiagoss on IRC-freenode) - thiagossantos@gmail.com&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;iXMF related resources:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.midi.org/techspecs/xmf/xmf.php"&gt;XMF&lt;/a&gt; - introduction about the base format for iXMF&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.midi.org/techspecs/xmf/ixmf_art1.php"&gt;iXMF&lt;/a&gt; - introduction about interactive XMF&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.blogger.com/www.iasig.org/wg/ixwg/index.shtml"&gt;iXMF IASIG&lt;/a&gt; - interactive XMF working group (contains the draft spec)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.midi.org/techspecs/xmf/xmf_mobile.php"&gt;mXMF&lt;/a&gt; - mobile XMF&lt;/li&gt;&lt;li&gt;&lt;a href="http://genuinepulse.blogspot.com/2010/04/ixmf-gsoc.html"&gt;Blog post&lt;/a&gt; by me about XMF/iXMF and the GSoC project&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;For achieving the bigger goal (iXMF), GStreamer needs to support the base format (XMF). For a better understanding of the format, we decided to start the project writing a XMF demuxer element.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I started implementing the demuxer element about a week ago and today we played for the first time a XMF file. The demuxer is capable of parsing a mxmf file (mobile XMF - audio/mobile-xmf, bundle of two audio files: mDLS + MIDI) and creating sometimes-pads for each internal file.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;It seems that GStreamer does not yet support mDLS, so the test concerned only the internal MIDI file (using wildmidi MIDI decoder plugin).  The pipeline used was:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;filesrc location=sample.mxmf ! xmfdemux ! wildmidi ! pulsesink&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt; &lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Still, there are a few TODO's for this element:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Pull mode for created pads: when working in sink pull mode, it would be nice to let our created pads also work in pull mode. This can be tested with the &lt;i&gt;timidity&lt;/i&gt; plugin which supports only pull-mode.&lt;/li&gt;&lt;li&gt;Finish implementing file references handlers: currently we're only parsing in-line resources data. There are a few more types of reference that should be implemented before moving forward to the next element.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;I'll be working on these TODO's in the next week and there should be a report concerning the next steps, which are currently under discussion with Thiago.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'd also like to call out our fellow GStreamer developers for help, insights, suggestions, reviews, etc. It would be great to have feedback from the community.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://genuinepulse.blogspot.com/feeds/3455536454519447926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9210580920169500129&amp;postID=3455536454519447926' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9210580920169500129/posts/default/3455536454519447926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9210580920169500129/posts/default/3455536454519447926'/><link rel='alternate' type='text/html' href='http://genuinepulse.blogspot.com/2010/05/gsoc-project-report-1-xmfdemux.html' title='GSoC Project Report 1 - xmfdemux'/><author><name>André Dieb Martins</name><uri>http://www.blogger.com/profile/00818132770105735861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9210580920169500129.post-5090790881512268424</id><published>2010-04-14T22:08:00.007-03:00</published><updated>2010-04-16T14:00:55.188-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gstreamer'/><category scheme='http://www.blogger.com/atom/ns#' term='gsoc'/><title type='text'>iXMF &amp; GSoC</title><content type='html'>&lt;div style="text-align: justify;"&gt;This year I applied to &lt;a href="http://www.blogger.com/www.gstreamer.net/"&gt;GStreamer&lt;/a&gt;'s &lt;a href="http://www.blogger.com/socghop.appspot.com/"&gt;GSoC&lt;/a&gt; proposing to add &lt;a href="http://www.iasig.org/wg/ixwg/index.shtml"&gt;iXMF&lt;/a&gt; support, consequently &lt;a href="http://www.midi.org/techspecs/xmf/"&gt;XMF&lt;/a&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;For those who don't know iXMF, it's an interative audio format/container. It's a low-overhead meta file format capable of bundling collections of different data resources into a single file.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;It's designed minding games sounds/music, audio skins, artist autonomy, playback instructions and many other aspects.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To quote iXMF's background description:&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;This new file format will put artistic control into the hands of the artists, keep programmers from having to make artistic decisions, eliminate rework for porting to new platforms, and reduce production time, cost, and stress.&lt;/blockquote&gt;Sounds powerful, doesn't it?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Now back to the proposal, my initial idea is to start by adding XMF meta file support (parsers and writers elements). This would be useful for packing multiple audio files (possibly with different formats) into a single file.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Once done, the fun part jumps in. Being an interactive audio format, iXMF playback is designed to be somehow event-driven (or signal-driven), e.g. a game application signals &lt;i&gt;play (shot_sound)&lt;/i&gt;.  Additionally, these packed audio resources can contain scripts that allow transitions (e.g. crossfade) and playback parameters (e.g. volume, pan, etc). For example, the &lt;i&gt;shot_sound &lt;/i&gt; resource could specify a play cross-fade effect.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Concerning this engine, I have discussed some implementation details Thiago and Stefan, &lt;/div&gt;&lt;div style="text-align: justify;"&gt;elder GStreamer developers. I have been pointed to &lt;a href="http://gstreamer.freedesktop.org/wiki/SampleBin"&gt;http://gstreamer.freedesktop.org/wiki/SampleBin&lt;/a&gt;, which seems to be a good idea to be aggregated here. I also gathered lots of mxmf samples (mobile XMF), which can validate the parser/writer elements.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Eager as I am, I already done some research on simultaneous play of multiple audio files (with different formats) and wrote a simple element called &lt;a href="http://gitorious.org/dieb-playground/gst/trees/master/decoderadder"&gt;decoderadder&lt;/a&gt; which does the basic job of decoding and adding the different resources. A simple test pipeline could be&lt;/div&gt;&lt;blockquote&gt;&lt;div style="text-align: justify;"&gt;gst-launch filesrc location=background.mp3 ! decoderadder name=a ! pulsesink audiotestsrc freq=100 ! a. audiotestsrc freq=200 ! a.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;which plays an mp3 audio file (e.g. a game background music) and two sin waves with frequencies 100Hz and 200Hz.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Currently I'm researching how to implement seek in &lt;i&gt;decoderadder &lt;/i&gt;and adding signals for scheduling plays / stopping resources. I'm also researching a way for caching/predecoding samples for almost-instant play (Stefan pointed me to buzztard's memoryaudiosrc element).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I must say I'm very excited about this project, so, fingers crossed!&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://genuinepulse.blogspot.com/feeds/5090790881512268424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9210580920169500129&amp;postID=5090790881512268424' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9210580920169500129/posts/default/5090790881512268424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9210580920169500129/posts/default/5090790881512268424'/><link rel='alternate' type='text/html' href='http://genuinepulse.blogspot.com/2010/04/ixmf-gsoc.html' title='iXMF &amp; GSoC'/><author><name>André Dieb Martins</name><uri>http://www.blogger.com/profile/00818132770105735861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>