<?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: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-6982925173228101953</id><updated>2012-01-07T19:41:49.574+01:00</updated><category term='pulseaudio'/><category term='Rosegarden'/><category term='Drumstick'/><category term='KDE'/><category term='N9'/><category term='Gervill'/><category term='opensuse'/><category term='Nokia'/><category term='politics'/><category term='QSynth'/><category term='music'/><category term='Akademy-es'/><category term='social'/><category term='Windows'/><category term='digital audio'/><category term='KMidimon'/><category term='rtkit'/><category term='Java'/><category term='#spanishrevolution'/><category term='soundfont'/><category term='KMetronome'/><category term='MMA'/><category term='VMPK'/><category term='Symbian'/><category term='KDE-ES'/><category term='GPL'/><category term='protest'/><category term='analogy'/><category term='Meego'/><category term='democraciarealya.es'/><category term='barcelona'/><category term='FluidSynth'/><category term='N950'/><category term='software'/><category term='Linux'/><category term='demonstration'/><category term='Mac'/><category term='Qt'/><category term='MuseScore'/><category term='vector graphics'/><category term='image'/><category term='MIDI'/><category term='Ardour'/><category term='bitmap'/><category term='KMid2'/><category term='Jack'/><title type='text'>Midichlorians in the blood</title><subtitle type='html'>Blog about MIDI, software, music, Linux, KDE, light sabers and Jedi garments</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-4527954451039511470</id><published>2012-01-07T19:41:00.002+01:00</published><updated>2012-01-07T19:41:49.580+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='analogy'/><category scheme='http://www.blogger.com/atom/ns#' term='Rosegarden'/><category scheme='http://www.blogger.com/atom/ns#' term='image'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='vector graphics'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='digital audio'/><category scheme='http://www.blogger.com/atom/ns#' term='Jack'/><category scheme='http://www.blogger.com/atom/ns#' term='bitmap'/><category scheme='http://www.blogger.com/atom/ns#' term='Ardour'/><title type='text'>Choosing MIDI or Digital Audio by Analogy</title><content type='html'>Whenever I talk to someone about the relationship between &lt;a href="http://en.wikipedia.org/wiki/MIDI"&gt;MIDI&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Digital_audio"&gt;digital audio&lt;/a&gt;, one of my favorite analogies is that of computer images.&lt;br /&gt;&lt;br /&gt;A digital &lt;a href="http://en.wikipedia.org/wiki/Raster_image"&gt;raster image&lt;/a&gt; like a JPG file contains a bitmap. It is equivalent to an MP3 file containing digital audio. Both JPG and MP3 files contain quality loss compressed data, although other formats such as BMP and WAV files can contain pictures and digital sound without compression, respectively. In both cases the files store a set of digitized values. In the case of images, the data are individual pixels or dots that represent colors of the cells in a matrix of rows and columns that divide the digitized image. In the case of sound, individual data are samples that represent moments of time which divides the digitized sound. The digitization consists in dividing alike the image or sound into small fragments, the number of which depends on the resolution we want to get and the size of the scanned original.&lt;br /&gt;&lt;br /&gt;Another type of images is called &lt;a href="http://en.wikipedia.org/wiki/Vector_graphics"&gt;vector graphics&lt;/a&gt;. They are not suitable to represent photographs, but drawings. SVG files that are used in many illustrations of &lt;a href="http://en.wikipedia.org/wiki/Wikipedia:Graphic_Lab"&gt;Wikipedia&lt;/a&gt; are of this type. Instead of image fragments, they contain symbolic descriptions using coordinates of points, distances, lines, and colors... They have the advantage of scalability without loss of quality, and ease of arbitrary modification of some of its components and properties without affecting the rest. The equivalent of this technology in the world of sound is MIDI. A MIDI sequence contains timestamped messages such as notes, instrument changes, controls, etc.. Not a proper format for storing sounds recorded by a microphone, but a symbolic representation of music similar to a score.&lt;br /&gt;&lt;br /&gt;Images are two dimensional objects, so the digitized images consist of rows and columns of elements (pixels), and the position of the elements of a drawing is characterized by a pair of numbers that represent its Cartesian coordinates. On the other hand sound recordings are one-dimensional, sound samples are taken at constant time intervals and also MIDI messages are labeled by their position in the time line.&lt;br /&gt;&lt;br /&gt;The above similarities have implications that reflect additional parallelism. An uncompressed digitized image consisting of any single solid color takes the same amount of memory than an image of the same size representing a photograph or a complex composition of multiple colors. Similarly, a recording of silence (for example &lt;a href="http://en.wikipedia.org/wiki/4%E2%80%B233%E2%80%B3"&gt;John Cage's 4'33''&lt;/a&gt;) takes the same amount of memory than any symphonic piece of the same duration. On the other hand, a simple vector image takes much less memory than a complex picture of the same dimensions. And a few notes MIDI sequence occupies much less memory than a complex sequence of the same duration made up of many notes or other messages.&lt;br /&gt;&lt;br /&gt;The problems posed by digital images and sounds on stretch and reduction of dimensions are also similar. In both cases artifacts are generated, an effect known as '&lt;a href="http://en.wikipedia.org/wiki/Aliasing"&gt;aliasing&lt;/a&gt;', which can be offset to some extent by using 'antialiasing' filters. On the other hand, in the case of vector graphics as MIDI sequences, you can easily perform stretching and shrinking of dimensions and duration without risking artifacts or quality loss whatsoever.&lt;br /&gt;&lt;br /&gt;Starting from a vector image, it is necessary a rendering engine to get a digital image that can be displayed on the screen or a printer. In the case of MIDI, a sequencer and a MIDI synthesizer are required to produce digital audio that can be used by an audio interface.&lt;br /&gt;&lt;br /&gt;The programs &lt;a href="http://inkscape.org/"&gt;Inkscape&lt;/a&gt; and &lt;a href="http://www.gimp.org/"&gt;Gimp&lt;/a&gt;, used in Linux for creating and editing vector graphics and digital images respectively, are comparable to the Adobe programs Illustrator and Photoshop. They cover different needs and audience, thriving on&amp;nbsp; different niches. An example of this type of niche is the architects, who use vector graphics to design and represent buildings with Autocad or similar programs. These are not watertight compartments. Gimp can import vector graphic files, rendering them as bitmaps. Inkscape can also import a bitmap image as a drawing object. In each case, the users may choose the best tool for each task.&lt;br /&gt;&lt;br /&gt;While it has been easy to list some essential image processing programs for Linux and other systems, to do the same exercise in the field of audio and MIDI is much more risky. The problem is that the way musicians work with computers is not homogeneous, with each musician working in a different way. For old school types the ideal work-flow is to note down&amp;nbsp; musical ideas, develop drafts and refine compositions using tools that work with symbolic elements, producing as a final result a paper copy of the score. &lt;a href="http://www.rosegardenmusic.com/"&gt;Rosegarden&lt;/a&gt; could be appropriate at this stage. On the other extreme, there are those who never in his life read or write a score, and whose only tools of creation (other than musical instruments) are the mixer and multi-track recorder. In this case, &lt;a href="http://ardour.org/"&gt;Ardour&lt;/a&gt; could be right.&lt;br /&gt;&lt;br /&gt;The two applications mentioned above allow the use of digital audio and MIDI at the same time. In the same way as in the world of images, some applications are focused on the symbolic representation (MIDI) and others in a final product (digital audio). In each case, the use of the other technology will be subordinate. For instance, Ardour MIDI messages are aligned to the audio samples. It has even developed an API (Jack MIDI) to ensure synchronization of MIDI events to digital audio samples, subordinating MIDI to the rules of digital audio. Obviously this strategy does not fit adequately on all scenarios where MIDI is useful.&lt;br /&gt;&lt;br /&gt;As in the imaging world, symbolic representation (MIDI) is probably better suited for design, drafting and composition. By contrast, digital audio is the dominant technology in the studio, at mixing stage and production, to obtain a finished product.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-4527954451039511470?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/4527954451039511470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2012/01/choosing-midi-or-digital-audio-by.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/4527954451039511470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/4527954451039511470'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2012/01/choosing-midi-or-digital-audio-by.html' title='Choosing MIDI or Digital Audio by Analogy'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-3975724221620760473</id><published>2011-10-12T00:10:00.000+02:00</published><updated>2011-10-12T00:10:03.336+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='Nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='Meego'/><category scheme='http://www.blogger.com/atom/ns#' term='VMPK'/><category scheme='http://www.blogger.com/atom/ns#' term='GPL'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='N9'/><category scheme='http://www.blogger.com/atom/ns#' term='FluidSynth'/><category scheme='http://www.blogger.com/atom/ns#' term='N950'/><title type='text'>VMPK &amp; FluidSynth 0.1.0 released</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://store.ovi.com/content/210572" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-ADq4BnNPMHc/TpS6UhAn9AI/AAAAAAAABOM/FOpE9mYr9yA/s1600/-nokia-n8-2.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;VMPK &amp;amp; FluidSynth is a MeeGo Harmattan application for Nokia N9/N950 smartphones. It contains a&amp;nbsp; QML based VMPK user interface bundled with FluidSynth for sound generation.&lt;br /&gt;&lt;br /&gt;You may &lt;a href="http://store.ovi.com/content/210572"&gt;download it from OVI Store &lt;/a&gt;right now.&lt;br /&gt; &lt;br /&gt;Several enhancements have been included &lt;a href="http://midi-clorianos.blogspot.com/2011/08/presenting-vmpk-for-nokia-n950.html"&gt;since the 0.0.1 beta &lt;/a&gt;announced in August. &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Controllers, Bender, and Velocity values can be optionally controlled by the device's accelerometer.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Internationalization. This version includes translations to Spanish, Russian (thanks to Serguey Basalaev) and Czech (thanks to Pavel Fric).&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Inverted color theme. This dark color combination consumes less power, enabling longer battery life.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Latest FluidSynth included.&lt;/li&gt;&lt;/ul&gt;Sources available &lt;a href="http://sourceforge.net/projects/vmpk/files/vmpkn9/"&gt;at SourceForge.net&lt;/a&gt;, as usual.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-3WJStn1_5JI/TpS8ZefXEwI/AAAAAAAABOU/WOAPor3NvjA/s1600/2011-10-09_19-19-15.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="179" src="http://2.bp.blogspot.com/-3WJStn1_5JI/TpS8ZefXEwI/AAAAAAAABOU/WOAPor3NvjA/s320/2011-10-09_19-19-15.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-hH8mO4hTXBI/TpS8cZGj9WI/AAAAAAAABOc/SoNgIF7ndJU/s1600/2011-10-09_19-20-38.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-hH8mO4hTXBI/TpS8cZGj9WI/AAAAAAAABOc/SoNgIF7ndJU/s320/2011-10-09_19-20-38.png" width="179" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Jhb6sDvHvn8/TpS8dPaWFUI/AAAAAAAABOk/Fhu4EPvs9zM/s1600/2011-10-09_19-21-21.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="179" src="http://3.bp.blogspot.com/-Jhb6sDvHvn8/TpS8dPaWFUI/AAAAAAAABOk/Fhu4EPvs9zM/s320/2011-10-09_19-21-21.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-bq9-rQC_VPY/TpS8eaGqLTI/AAAAAAAABOs/ugvvaQ4D4hA/s1600/2011-10-09_19-24-14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="179" src="http://4.bp.blogspot.com/-bq9-rQC_VPY/TpS8eaGqLTI/AAAAAAAABOs/ugvvaQ4D4hA/s320/2011-10-09_19-24-14.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-3975724221620760473?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/3975724221620760473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2011/10/vmpk-fluidsynth-010-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/3975724221620760473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/3975724221620760473'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2011/10/vmpk-fluidsynth-010-released.html' title='VMPK &amp; FluidSynth 0.1.0 released'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-ADq4BnNPMHc/TpS6UhAn9AI/AAAAAAAABOM/FOpE9mYr9yA/s72-c/-nokia-n8-2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-8059515936941938542</id><published>2011-09-11T16:11:00.002+02:00</published><updated>2011-09-11T16:11:52.027+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='MuseScore'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='soundfont'/><category scheme='http://www.blogger.com/atom/ns#' term='GPL'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='Gervill'/><category scheme='http://www.blogger.com/atom/ns#' term='FluidSynth'/><title type='text'>SoundFonts want to be free</title><content type='html'>&lt;a href="http://en.wikipedia.org/wiki/SoundFont"&gt;A "SoundFont" file&lt;/a&gt;&amp;nbsp; (suffix .SF2) is a definition of one or several musical instruments, which can be used with synthesizers (hardware or software) to render, or convert musical notes (eg MIDI files, suffix. MID) into digital sound, which can be used by an audio interface and speakers to play music. Another file format for the same purpose is &lt;a href="http://www.midi.org/techspecs/dls/dls.php"&gt;DownLoadableSounds&lt;/a&gt; (suffix. DLS). Both include sound samples that can be entirely synthetic or digitized from real instruments.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.midi.org/techspecs/gm.php"&gt;General MIDI&lt;/a&gt; is a very popular specification, that among other things define a palette of instruments. The instrument #1 is a piano, #41 a violin, #57 trumpet, #74 flute... GM SoundFonts offer 128 instruments arranged in that particular order. GS and XG are extensions of this specification.&lt;br /&gt;&lt;br /&gt;Linux needs GM soundfonts that could be distributed together with GPL programs, similar to the need of typographic fonts for text rendering applications. Many Linux distributions incorporate the FluidR3 soundfont in their repositories. It is free and produce good quality sound, but is not small: more than 140 megabytes. &lt;a href="http://musescore.org/en/handbook/soundfont"&gt;MuseScore distributes&lt;/a&gt; "TimGM6mb" soundfont, which "only" weights 5.8 megabytes.&lt;br /&gt;&lt;br /&gt;There are several software synthesizers using SoundFonts. Well known are &lt;a href="http://www.fluidsynth.org/"&gt;FluidSynth&lt;/a&gt; and TiMidity++, both with free licenses. One lesser known, but no less interesting, is &lt;a href="http://gervill.java.net/"&gt;Gervill&lt;/a&gt;. It is part of OpenJDK, and therefore GPLv2 licensed. It is implemented in Java, of course. I am not very fond of Java, and I do not usually use it except for commercial projects when the customer requires their use, but this time I will do it only for fun.&lt;br /&gt;&lt;br /&gt;Gervill can use SoundFonts, DLS, or WAV files. A very interesting feature is the so-called "&lt;a href="http://java.net/projects/gervill/sources/svn/content/trunk/src/com/sun/media/sound/EmergencySoundbank.java"&gt;Emergency Soundbank&lt;/a&gt;", used when no other external SoundFont is available. Definitions of this SoundFont instruments are fully synthetic and follow the GM standard.&lt;br /&gt;&lt;br /&gt;This EmergencySoundbank is a Java class, and does not reside on a file, therefore it can not be used on another synthesizer. However, nothing prevents us from creating a Java program that instantiates the class, and stores the instrument definitions on a disk file. How complicated may this program be? Let's see:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ cat MakeEmergencySoundfont.java &lt;br /&gt;import com.sun.media.sound.*;&lt;br /&gt;public class MakeEmergencySoundfont {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String[] args) throws Exception {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SF2Soundbank sf2 = EmergencySoundbank.createSoundbank();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sf2.save("GervillEmergencySoundbank.sf2");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;7 lines is not much after all. Let's compile it:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ javac MakeEmergencySoundfont.java &lt;br /&gt;MakeEmergencySoundfont.java:5: warning: com.sun.media.sound.SF2Soundbank is internal proprietary API and may be removed in a future release&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SF2Soundbank sf2 = EmergencySoundbank.createSoundbank();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ^&lt;br /&gt;MakeEmergencySoundfont.java:5: warning: com.sun.media.sound.EmergencySoundbank is internal proprietary API and may be removed in a future release&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SF2Soundbank sf2 = EmergencySoundbank.createSoundbank();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ^&lt;br /&gt;2 warnings&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;We have earned two warnings for the naughty boys, because it is ugly to directly use classes in the namespace "com.sun.media.sound.*", and if the Oracle finds out our prank, he could lock the pantry. Here, take another cookie, Neo...&lt;br /&gt;&lt;br /&gt;To compile and use this program you only need &lt;a href="http://openjdk.java.net/"&gt;OpenJDK6&lt;/a&gt; (runtime and compiler). For older Java versions you can get a "gervill.jar" from the &lt;a href="http://java.net/projects/gervill/downloads"&gt;project website&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Running the program produces a SoundFont file:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ java MakeEmergencySoundfont&lt;br /&gt;$ ls GervillEmergencySoundbank.sf2 &lt;br /&gt;-rw------- 1 pedro users 1.8M 2011-09-11 12:50 GervillEmergencySoundbank.sf2&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;The result weights less than 2 megabytes. Of course the quality of the SoundFont is not high, but it is better than installing nothing at all by default, leaving users wondering what do they need to hear something in their programs that depend on software synthesizers.&lt;br /&gt;&lt;br /&gt;It is interesting that a similar technique, also very simple, can be used to produce other SoundFonts based on samples of arbitrary sounds. For more details, see the &lt;a href="http://java.net/projects/gervill/sources/svn/content/trunk/src.demos/MakeSoundFont.java"&gt;MakeSoundFont example&lt;/a&gt; in Gervill's repository.&lt;br /&gt;&lt;br /&gt;Finally, a question remains about what license we can use to distribute the file "GervillEmergencySoundbank.sf2" generated by our program. As a general rule, the &lt;a href="http://www.gnu.org/licenses/gpl-faq.html#GPLOutput"&gt;output of a GPL program&lt;/a&gt; has no restrictions. However, in this case the program output does not come from processing input data, but simply dumps the results of running the algorithms included in the EmergencySoundbank class. To play it safe, we should release it as GPL.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-8059515936941938542?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/8059515936941938542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2011/09/soundfonts-want-to-be-free.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/8059515936941938542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/8059515936941938542'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2011/09/soundfonts-want-to-be-free.html' title='SoundFonts want to be free'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-6160348090585712733</id><published>2011-08-27T16:01:00.000+02:00</published><updated>2011-08-27T16:01:08.273+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Meego'/><category scheme='http://www.blogger.com/atom/ns#' term='pulseaudio'/><category scheme='http://www.blogger.com/atom/ns#' term='VMPK'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='FluidSynth'/><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='Nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='Symbian'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='N950'/><title type='text'>Presenting VMPK for Nokia N950</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-wwZz8K2yWFA/TljzGtHJVHI/AAAAAAAABN0/n20di1--j6w/s1600/vmpkn9_purple_icon.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-wwZz8K2yWFA/TljzGtHJVHI/AAAAAAAABN0/n20di1--j6w/s1600/vmpkn9_purple_icon.png" /&gt;&lt;/a&gt;&lt;/div&gt;I've been playing with my new and sexy Nokia N950 developer device, and here is the fruit: a newborn &lt;a href="http://vmpk.sf.net/"&gt;VMPK&lt;/a&gt;. I've just released a beta for testing, usable but not yet optimized. Please, try it. Your feedback will be appreciated.&lt;br /&gt;&lt;br /&gt;Download &lt;a href="http://downloads.sourceforge.net/project/vmpk/vmpkn9/vmpkn9_0_0_1_armel.deb"&gt;VMPK &amp;amp; FluidSynth for N950&lt;/a&gt; from &lt;a href="http://sourceforge.net/projects/vmpk/files/vmpkn9/"&gt;sourceforge.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've learned two lessons from the Symbian port of VMPK published at Nokia's OVI Store: people expect that if a program looks like a piano, it should sound like a piano. It doesn't matter if &lt;a href="http://store.ovi.com/content/132667"&gt;the product description says&lt;/a&gt; that it doesn't produce any sound by itself. Dozens of comments in OVI Store page confirm that there is no hope that users read the description before downloading a program.&lt;br /&gt;&lt;br /&gt;When I was doing some research for the Symbian port, I've discovered that creating sound always used very large audio buffers, no matter the method, producing about one second of latency or more. This is unacceptable for a musical instrument emulation, so network MIDI was the only available option. On the other hand, the Nokia N9xx uses Linux, including ALSA and PulseAudio among other usual infrastructure, so the latency is not a problem and &lt;a href="http://www.fluidsynth.org/"&gt;FluidSynth&lt;/a&gt; is a perfectly sound complementary addition to VMPK. &lt;br /&gt;&lt;br /&gt;Second lesson: an user interface that fits well in the desktop version of the program is barely usable on the mobile phone form factor. The solution is to create a new user interface using &lt;a href="http://doc.qt.nokia.com/latest/qdeclarativeintroduction.html"&gt;QML&lt;/a&gt;, the new declarative language for Qt user interfaces. The piano keyboard widget was already built around the &lt;a href="http://doc.qt.nokia.com/latest/graphicsview.html"&gt;Qt Graphics View Framework&lt;/a&gt;, so it only required to be wrapped as a QDeclarativeItem subclass and it was readily available as a QML object, to be combined with the &lt;a href="http://doc.qt.nokia.com/qt-components-symbian-1.0/index.html"&gt;Qt Quick Components for Meego&lt;/a&gt; library to build the new user interface. Here are some screenshots.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-IDjGGQxwvGg/TljsGQTMpPI/AAAAAAAABNY/GeJGnIaLkZg/s1600/vmpkn9-main.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="177" src="http://1.bp.blogspot.com/-IDjGGQxwvGg/TljsGQTMpPI/AAAAAAAABNY/GeJGnIaLkZg/s320/vmpkn9-main.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Main page, common controls are shown.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-J-gQZqi2ciU/TljsF4nqhmI/AAAAAAAABNQ/9_iFGOuUd-0/s1600/vmpkn9-menu.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="177" src="http://2.bp.blogspot.com/-J-gQZqi2ciU/TljsF4nqhmI/AAAAAAAABNQ/9_iFGOuUd-0/s320/vmpkn9-menu.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Main menu, note names option activated.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Qp9JM90qlKo/TljsGepmwrI/AAAAAAAABNU/WXiU7WGExNw/s1600/vmpkn9-prefs.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="177" src="http://4.bp.blogspot.com/-Qp9JM90qlKo/TljsGepmwrI/AAAAAAAABNU/WXiU7WGExNw/s320/vmpkn9-prefs.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Preferences page.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-wzrHDfAWRyE/TljsFdCzWVI/AAAAAAAABNM/8eZCF4IIKaE/s1600/vmpkn9-about.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-wzrHDfAWRyE/TljsFdCzWVI/AAAAAAAABNM/8eZCF4IIKaE/s320/vmpkn9-about.png" width="177" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;About page.&lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-6160348090585712733?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/6160348090585712733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2011/08/presenting-vmpk-for-nokia-n950.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/6160348090585712733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/6160348090585712733'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2011/08/presenting-vmpk-for-nokia-n950.html' title='Presenting VMPK for Nokia N950'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-wwZz8K2yWFA/TljzGtHJVHI/AAAAAAAABN0/n20di1--j6w/s72-c/vmpkn9_purple_icon.png' height='72' width='72'/><thr:total>4</thr:total><georss:featurename>Ronda de Sant Pere, 3, 08010 Barcelona, Spain</georss:featurename><georss:point>41.387917 2.1699187</georss:point><georss:box>41.292614 2.0119902 41.48322 2.3278472000000003</georss:box></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-4842110563974203998</id><published>2011-06-05T17:51:00.001+02:00</published><updated>2011-06-07T16:23:22.589+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='VMPK'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>VMPK 0.4.0 Released</title><content type='html'>&lt;a href="http://sourceforge.net/projects/vmpk/files/vmpk/0.4.0/"&gt;This release&lt;/a&gt; adds touch screen support (multi-touch) for all platforms, if it is supported by the OS and hardware. New &lt;a href="http://www.music.mcgill.ca/%7Egary/rtmidi/"&gt;RtMidi&lt;/a&gt; classes have been merged, which includes Jack MIDI support and a new network MIDI driver (UDP multicast) compatible with &lt;a href="http://nerds.de/en/ipmidi.html"&gt;IpMIDI&lt;/a&gt; and &lt;a href="http://qmidinet.sourceforge.net/qmidinet-index.html"&gt;QMidiNet&lt;/a&gt;. A &lt;a href="http://store.ovi.com/content/132667"&gt;Symbian^3 port&lt;/a&gt; has been made. There are new translations to Dutch and Swedish. A bug crashing the program when changing the octave base has been fixed.&lt;br /&gt;&lt;br /&gt;My suggestion is to use the packages provided by your distribution when possible. If you prefer to compile the program yourself, I would like to give you some advices to build VMPK with the new features. First of all, you need CMake 2.8. The touch screen feature is available on all platforms, thanks to Qt &amp;gt;= 4.6 (but is better supported in Qt 4.7). There are two new build options:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;RTMIDI_DRIVER: selects the RtMidi backend. The default one depends on the OS. Allowed values: ALSA, JACK, COREMIDI, IRIX, WINMM, NET.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;PROGRAM_NAME: selects the executable name.&lt;/li&gt;&lt;/ul&gt;In Linux, you can compile VMPK with ALSA, JACK or NET drivers, but only one each time. You may build the program with different names, though, if you want several versions installed at once. For instance:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;$ mkdir build-jack&lt;br /&gt;$ cd build-jack&lt;br /&gt;$ cmake .. -DRTMIDI_DRIVER=JACK -DPROGRAM_NAME=vmpk-jack -DCMAKE_BUILD_TYPE=release&lt;br /&gt;$ make&lt;br /&gt;&lt;br /&gt;$ mkdir build-net&lt;br /&gt;$ cd build-net&lt;br /&gt;$ cmake .. -DRTMIDI_DRIVER=NET -DPROGRAM_NAME=vmpk-net -DCMAKE_BUILD_TYPE=release&lt;br /&gt;$ make&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;For the network version, there is a new help page here: &lt;a href="http://vmpk.sourceforge.net/m/"&gt;http://vmpk.sourceforge.net/m/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://store.ovi.com/content/132667"&gt;&lt;br /&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-V7HqY__KY1M/Te4znmGKb1I/AAAAAAAABAk/2AuzAEywgMM/s1600/-nokia-n8-2.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-4842110563974203998?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/4842110563974203998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2011/06/vmpk-040-released.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/4842110563974203998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/4842110563974203998'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2011/06/vmpk-040-released.html' title='VMPK 0.4.0 Released'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-V7HqY__KY1M/Te4znmGKb1I/AAAAAAAABAk/2AuzAEywgMM/s72-c/-nokia-n8-2.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-6980983050860791334</id><published>2011-05-29T23:07:00.000+02:00</published><updated>2011-05-29T23:07:42.321+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='social'/><category scheme='http://www.blogger.com/atom/ns#' term='KMid2'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='barcelona'/><category scheme='http://www.blogger.com/atom/ns#' term='Akademy-es'/><title type='text'>Akademy-es 2011</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-yMGJv00d0T4/TeKzcBc6TSI/AAAAAAAABAc/O8syp_50144/s1600/akademy-es-2011.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="425" src="http://3.bp.blogspot.com/-yMGJv00d0T4/TeKzcBc6TSI/AAAAAAAABAc/O8syp_50144/s640/akademy-es-2011.jpeg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I've been attending the &lt;a href="http://kde-espana.es/akademy-es2011/"&gt;Akademy-es 2011&lt;/a&gt; at Barcelona last week-end, instead of protesting and making the &lt;a href="http://en.wikipedia.org/wiki/2011_Spanish_protests"&gt;Spanish Revolution 2.0&lt;/a&gt;. It was a pleasure to meet Antonio Larrosa face to face again, after 5 years. We met the first time at Akademy-es 2006, also in Barcelona, where the idea for KMid2 was born. Hugs, Antonio!&lt;br /&gt;&lt;br /&gt;My presentation was rejected. I've offered the same paper ("&lt;a href="http://www.jornadespl.org/biblioteca/ix-jornades/conferencies-convidades/midi-en-linux"&gt;MIDI en Linux&lt;/a&gt;") used at the &lt;a href="http://midi-clorianos.blogspot.com/2010/07/midi-en-las-jornadas.html"&gt;IX Jornadas de Software Libre&lt;/a&gt;. As an alternative, they proposed a lightning talk about KMid, but I wasn't interested in this format. My project is not KMid, but KMid is a piece of my project: providing Linux and KDE the MIDI tools that are needed, and this includes KMid, KMetronome, KMidimon, Drumstick, and some more programs.&lt;br /&gt;&lt;br /&gt;About the conferences. Some talks were recycled, year after year, like the Valgrind talk by Albert that anyway deserves to be repeated even more times because it is a key tool to enhance the code quality of our projects. Other topics were brand new and interesting, for instance the half-rolling release and bundle system of the Chakra distribution, presented by Manuel Tortosa.&lt;br /&gt;&lt;br /&gt;After the meetings, supper and drinks. This is the so called "social program". Everything is social, of course, when a couple of geeks meets to do things together. Saturday supper, I was shocked by a question of one of the attendees. He said to me something like this: Who wants MIDI at 2011, anyway? The answer for this question was in my paper, but he  didn't bothered to read it. To summarize: MIDI is not an alternative to MP3, like drawing is not an alternative to photography. Who thinks that every program related to drawing should be banned from KDE? After all, it is a technology invented in the paleolithic era.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-6980983050860791334?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/6980983050860791334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2011/05/akademy-es-2011.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/6980983050860791334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/6980983050860791334'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2011/05/akademy-es-2011.html' title='Akademy-es 2011'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-yMGJv00d0T4/TeKzcBc6TSI/AAAAAAAABAc/O8syp_50144/s72-c/akademy-es-2011.jpeg' height='72' width='72'/><thr:total>2</thr:total><georss:featurename>Barcelona, Spain</georss:featurename><georss:point>41.387917 2.1699187000000393</georss:point><georss:box>41.3137835 2.0830957000000394 41.462050500000004 2.256741700000039</georss:box></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-6945007093907691268</id><published>2011-05-28T15:42:00.001+02:00</published><updated>2011-05-28T15:44:56.562+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='social'/><category scheme='http://www.blogger.com/atom/ns#' term='#spanishrevolution'/><category scheme='http://www.blogger.com/atom/ns#' term='barcelona'/><category scheme='http://www.blogger.com/atom/ns#' term='demonstration'/><category scheme='http://www.blogger.com/atom/ns#' term='protest'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><category scheme='http://www.blogger.com/atom/ns#' term='democraciarealya.es'/><title type='text'>Mordor attacks</title><content type='html'>How to explain yesterday's events to all the inhabitants of Middle-earth? &lt;br /&gt;&lt;br /&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://www.flickr.com/photos/acampadabcnfoto/5765879665/" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;" title="JULI_GARZON_27.05.2011_15 por acampadabcnfoto, en Flickr"&gt;&lt;img alt="JULI_GARZON_27.05.2011_15" src="http://farm3.static.flickr.com/2274/5765879665_95a66453e0.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The Squad of Orcs, here called "Orcos de Esquadra", attacked a large  meeting of Hobbits at Shire's Square, when they were pacifically  claiming real Democracy.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://www.flickr.com/photos/acampadabcnfoto/5764476979/" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;" title="sytsew_27-5-2011_28web por acampadabcnfoto, en Flickr"&gt;&lt;img alt="sytsew_27-5-2011_28web" src="http://farm3.static.flickr.com/2151/5764476979_a6c067962f.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;There have been &lt;a href="http://www.washingtonpost.com/business/121-injured-as-spanish-police-clash-with-protesters-in-makeshift-camp/2011/05/27/AGSJimCH_story.html"&gt;121 injured&lt;/a&gt;, including 37 orcs.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://www.flickr.com/photos/agenciaacn/4638677840/" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;" title="Felip Puig"&gt;&lt;img alt="Felip Puig" src="http://farm5.static.flickr.com/4039/4638677840_a21055330d.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;There was a repulsive Nazgul commanding the Orcs, Felip Puig.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://www.flickr.com/photos/29723496@N08/2772634893/" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;" title="La Caixa por MarioMelendez, en Flickr"&gt;&lt;img alt="La Caixa" src="http://farm4.static.flickr.com/3008/2772634893_bb2d7a17fc.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Orcs and his commander defend the interests of the Black Tower, where evil dwells.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-6945007093907691268?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/6945007093907691268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2011/05/mordor-attacks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/6945007093907691268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/6945007093907691268'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2011/05/mordor-attacks.html' title='Mordor attacks'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2274/5765879665_95a66453e0_t.jpg' height='72' width='72'/><thr:total>0</thr:total><georss:featurename>Barcelona, Spain</georss:featurename><georss:point>41.387917 2.1699187000000393</georss:point><georss:box>41.3137835 2.0830957000000394 41.462050500000004 2.256741700000039</georss:box></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-735833546215459958</id><published>2011-05-04T23:32:00.001+02:00</published><updated>2011-05-15T23:10:40.963+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='Nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='VMPK'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='Symbian'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><title type='text'>VMPK: new release, soon</title><content type='html'>A new VMPK release is coming, with some new features:&lt;br /&gt;&lt;br /&gt;* Touch screen interface support.&lt;br /&gt;&lt;br /&gt;* RtMidi 1.0.14, comes with Jack MIDI support. Note that RtMidi allows only one driver, so you need to choose at configuring time the desired MIDI backend.&lt;br /&gt;&lt;br /&gt;* Network MIDI support (UDP multicast). It may be used in Linux, Windows and Mac, but is more interesting for portable devices. The protocol is compatible with ipMIDI for Windows and Mac (&lt;a href="http://nerds.de/"&gt;http://nerds.de&lt;/a&gt;) and with qmidinet and multimidicast in Linux/Unix (&lt;a href="http://qmidinet.sourceforge.net/"&gt;http://qmidinet.sourceforge.net&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;* Symbian^3 port.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-juy7xq29vBc/TcCBNsxTfLI/AAAAAAAAA_w/DJjJvajo5sQ/s1600/vmpk_c7.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="308" src="http://4.bp.blogspot.com/-juy7xq29vBc/TcCBNsxTfLI/AAAAAAAAA_w/DJjJvajo5sQ/s640/vmpk_c7.jpeg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-735833546215459958?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/735833546215459958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2011/05/vmpk-new-release-soon.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/735833546215459958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/735833546215459958'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2011/05/vmpk-new-release-soon.html' title='VMPK: new release, soon'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-juy7xq29vBc/TcCBNsxTfLI/AAAAAAAAA_w/DJjJvajo5sQ/s72-c/vmpk_c7.jpeg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-9068443593167094762</id><published>2011-04-03T00:37:00.000+02:00</published><updated>2011-04-03T00:37:39.500+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='Nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='VMPK'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='Symbian'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><title type='text'>Symbian ports</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-MT4xHZ22jXg/TZehdQ-Op7I/AAAAAAAAA_k/u0JJZEuOvxo/s1600/qt_ambassador_logo.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/-MT4xHZ22jXg/TZehdQ-Op7I/AAAAAAAAA_k/u0JJZEuOvxo/s200/qt_ambassador_logo.png" width="200" /&gt;&lt;/a&gt;I want to start this post with my biggest kudos to Nokia. I've been accepted in the &lt;a href="http://qt.nokia.com/qt-in-use/ambassadors/qtambassador"&gt;Qt Ambassadors Program&lt;/a&gt; and &lt;a href="http://vmpk.sourceforge.net/"&gt;VMPK&lt;/a&gt; is now in the &lt;a href="http://qt.nokia.com/qt-in-use/ambassadors/showcase"&gt;Ambassador Showcase&lt;/a&gt; among other great Qt applications.&lt;br /&gt;&lt;br /&gt;Not only that, they have sent me a great &lt;a href="http://europe.nokia.com/find-products/devices/nokia-c7-00"&gt;Nokia C7-00 smartphone&lt;/a&gt; as a gift. This device uses Symbian^3 and can be programmed using Qt. It has a touchscreen with two concurrent touch points. Just what I wanted for VMPK! So there is hope that the next VMPK release will enjoy multitouch support, thanks to Qt and Nokia. &lt;br /&gt;&lt;br /&gt;There will be also a Symbian port of VMPK, but some tests using the device's MIDI synthesizer and a few other tests show that the audio latency is so big that it is unbearable for real time usage. Another direction to explore is the wireless network, to send MIDI data using for instance a protocol based on UDP multicast like &lt;a href="http://qmidictl.sourceforge.net/"&gt;QMidiCtl&lt;/a&gt;, a program by our fellow Qt Ambassador Rui Nuno Capela. &lt;br /&gt;&lt;br /&gt;QMidiCtl was created for Maemo, and it is available for Nokia N900 devices. It can be compiled also in Linux and Windows, but required a few adaptations for Symbian. Anyway, it works well in my C7 and here is a proof &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/--Nm6tMRptIo/TZeh9a0DqaI/AAAAAAAAA_o/w_TRYuU5f8c/s1600/qmidictl-symbian-small.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/--Nm6tMRptIo/TZeh9a0DqaI/AAAAAAAAA_o/w_TRYuU5f8c/s1600/qmidictl-symbian-small.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I've tested it sending MIDI events to Linux, Windows and Mac OSX. The complementary software for Linux is &lt;a href="http://qmidinet.sourceforge.net/"&gt;QMidiNet&lt;/a&gt;, also made by Rui. It is compatible with &lt;a href="http://nerds.de/en/ipmidi.html"&gt;IpMIDI by nerds.de&lt;/a&gt; that is available for Windows and Mac OSX. This may open interesting possibilities for VMPK not only on smartphones, but also on netbooks and tablets...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-9068443593167094762?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/9068443593167094762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2011/04/symbian-ports.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/9068443593167094762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/9068443593167094762'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2011/04/symbian-ports.html' title='Symbian ports'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-MT4xHZ22jXg/TZehdQ-Op7I/AAAAAAAAA_k/u0JJZEuOvxo/s72-c/qt_ambassador_logo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-3477758740448433490</id><published>2011-04-02T01:15:00.001+02:00</published><updated>2011-04-02T01:20:56.558+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='VMPK'/><category scheme='http://www.blogger.com/atom/ns#' term='QSynth'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='FluidSynth'/><title type='text'>The MIDI Connection</title><content type='html'>&lt;style type="text/css"&gt;p { margin-bottom: 0.21cm; }a:link {  }&lt;/style&gt; &lt;br /&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;span style="font-size: large;"&gt;How to Connect MIDI Things with FluidSynth Using Several Operating Systems&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;We are going to address two scenarios. First, we want to connect &lt;a href="http://fluidsynth.sf.net/"&gt;FluidSynth&lt;/a&gt; with an external USB MIDI keyboard, so we can play the piano keys producing sounds in FluidSynth. Second scenario: connect &lt;a href="http://vmpk.sf.net/"&gt;Virtual MIDI Piano Keyboard (VMPK)&lt;/a&gt; to FluidSynth, so we can use the mouse and the computer keyboard to produce sounds. We are going to use &lt;a href="http://qsynth.sf.net/"&gt;Qsynth&lt;/a&gt; instead of the command line client because its graphic user interface is much more friendly for beginners, but it could be done with the CLI fluidsynth program as well. The external USB MIDI keyboard is the Edirol PCR-M50, which works well with Linux, Windows and Mac OSX. Also FluidSynth, Qsynth and VMPK can be used in all three operating systems, which gives the opportunity to unveil and understand the differences among them comparing the same scenarios.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;External USB MIDI keyboard   &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;The PCR-M50 has one MIDI IN and one MIDI OUT standard DIN-5 sockets, and also an USB socket. We are going to connect the device and the computer using an USB cable.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;In Linux, ALSA includes full support for this device in the “snd-usb-audio” driver, which should work out of the box. For the other operating systems, the first step should be installing the PCR-M50 operating system drivers. The keyboard comes with a CD-ROM disk including the drivers for Windows and Mac OSX, which may be also downloaded from the manufacturer's web site: &lt;a href="http://www.roland.com/products/en/_support/dld.cfm?PRODUCT=PCR-M50"&gt;http://www.roland.com/products/en/_support/dld.cfm?PRODUCT=PCR-M50&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;To verify that the device is working with the operating system...&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;In Linux, open a terminal window  and type the command “cat /proc/asound/seq/clients”. There  should be a “PCR” client, corresponding to our device.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;In Windows, open the Device  Manager in the Control Panel, and show the “EDIROL PCR”  properties under the “Sound, video and games controllers”. It  should state that the device is working correctly.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;In Mac OSX, open the  “Utilities/Audio and MIDI Setup” program, and you should see the  “EDIROL PCR” icon. There is a “Show device info” option,  that enumerates the available ports.   &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;The USB interface provides two output ports and three inputs.  &lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;PCR MIDI IN/OUT corresponding to  the DIN-5 MIDI sockets on the keyboard.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;PCR1 and PCR2, assignable to MIDI  messages. By default PCR1 is used for real time messages like note  on/off, pitch bend, modulation controller, etc. so we want to  connect this port to the MIDI input of FluidSynth.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;You can find more information provided by the manufacturer.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;a href="http://www.rolandus.com/products/productdetails.php?ProductId=706"&gt;http://www.rolandus.com/products/productdetails.php?ProductId=706&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Now that we know that the keyboard works, let's open and configure Qsynth and FluidSynth.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;ol start="2"&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;Qsynth configuration&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;You should install both Qsynth and the libfluidsynth library or DLL. Recommended versions are FluidSynth 1.1.3 and Qsynth 0.3.6 or later (it is going to be released in a few days). The details depend on your operating system. You also need a Sound Font file, like the &lt;a href="http://www.schristiancollins.com/generaluser.php"&gt;GeneralUser SF2 by S. Christian Collins&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;To configure Qsynth, open the program and press the “setup...” button to configure the engine. The name provided in the “Engine Name” box becomes the tab name later in the main window.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;In the MIDI tab:&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;Check the “Enable MIDI Input”    box.&lt;/li&gt;&lt;li&gt;Select a MIDI driver: “alsa_seq”    in Linux, “winmidi” in Windows and “coremidi” in Mac OSX.&lt;/li&gt;&lt;li&gt;       In Linux and Mac OSX, fill the    MIDI Client name ID, writing something like “GeneralUser” (or    any other meaningful name of your choice).&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;In the Audio tab, select the   audio driver and other settings that you know work well with your   computer hardware and your operating system.&lt;/li&gt;&lt;li&gt;In the SoundFont tab, add the   “GeneralUser GS FluidSynth.SF2” sound font or any other   soundfont of you preference.&lt;/li&gt;&lt;li&gt;Restart the engine to apply your   settings.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;Scenario 1 in Linux&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;To connect the keyboard to Qsynth there are several ways.&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Using a terminal, and the ALSA   CLI utility “aconnect” with a command line like this:&lt;br /&gt;$   aconnect PCR:1 "FLUID Synth (GeneralUser):0"&lt;/li&gt;&lt;li&gt;Using a graphic MIDI patch bay   utility, like the ALSA tab in the connections window of  qjackctl,   or any similar program. Anyway, you need to connect the port 1 of   the PCR device to the port 0 of FluidSynth.&lt;/li&gt;&lt;li&gt;Play your keyboard. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;In Linux you only need to use the patch bay utility to create the connection. Once it is established, you may close the patch bay program without disturbing the flow of MIDI data. &lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;Scenario 1 in Windows&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Plug the keyboard first, then open Qsynth and press the “setup...” button.&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;In the MIDI tab&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;Select the “winmidi” MIDI   driver.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;In the MIDI Device, select the   port “1:EDIROL PCR 1”&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;Restart the engine to apply your  settings.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;Play your keyboard.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;The alternative to Qsynth is the command line interface: &lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;fluidsynth.exe -o midi.winmidi.device=”1:EDIROL PCR 1”&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;In Windows you don't need a patch bay utility, because FluidSynth reads directly from the operating system device. This is the only way to do it in Windows, because the operating system doesn't create virtual MIDI ports for software programs, only for system device drivers.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;b&gt; &lt;/b&gt; &lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;b&gt;Scenario 1 in Mac OSX&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;After you finished configuring the Qsynth engine, you need a patch bay program to connect the keyboard to Qsynth, like the one at &lt;a href="http://notahat.com/midi_patchbay"&gt;http://notahat.com/midi_patchbay&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;You need to create a connection from MIDI IN = “EDIROL PCR 1” to MIDI OUT = “FluidSynth virtual port (xxxx)”. You should keep the patch bay program running while you are playing, because the connection is not persistent. You may save your configuration in a file, though.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;FluidSynth creates in Mac OSX a virtual MIDI port, like in Linux/ALSA, and exactly like in this case, you need to create the connection between the keyboard and the soft synth using an external tool.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;b&gt; &lt;/b&gt; &lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;b&gt;Scenario 2   &lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;We are going to trigger the synthesizer sounds using the Virtual MIDI Piano Keyboard. This is a software emulation of the hardware instrument used in the former scenario. The difference is that VMPK is another software application like Qsynth/FluidSynth. More information &lt;a href="http://vmpk.sourceforge.net/"&gt;here.&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;a href="http://vmpk.sourceforge.net/"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;b&gt;Scenario 2 in Linux&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;First, run Qsynth, then VMPK.  &lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;VMPK's menu Edit-&amp;gt;Connections opens a dialog box. In “Output MIDI connection”,  select the item named “FLUID Synth (xxxx):0”. You don't need any patch bay, because VMPK is already providing a connection function in this dialog. You could use an external connection manager as well, of course.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;In Linux/ALSA, all MIDI programs have their own virtual MIDI ports. The virtual ports and the device ports are equivalent.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;b&gt; &lt;/b&gt; &lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;b&gt;Scenario 2 in Windows&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;In Windows, you can't connect the MIDI output of a program to the MIDI input of another program.  This mechanism is not provided by the operating system, which only allows a program to read data from a MIDI IN device, or write data to a MIDI OUT device, using of course the installed operating system drivers. To overcome this limitation, the best solution is to install virtual MIDI cables, like the ones provided by MIDI Yoke (&lt;a href="http://www.midiox.com/myoke.htm"&gt;http://www.midiox.com/myoke.htm&lt;/a&gt;). MIDI Yoke is an operating system driver, without any hardware device associated. You may define how much cables are created at start up using a control panel applet. Each cable has two ends: a MIDI IN and a MIDI OUT. MIDI data flows from OUT to IN, so one program can write data to cable 1, and another program can read the same data from the other end of cable 1.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;First, run Qsynth and press the “setup...” button.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;In the MIDI tab&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Select the “winmidi” MIDI   driver.&lt;/li&gt;&lt;li&gt;In the MIDI Device, select the   port “In From MIDI Yoke:  1 &lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Restart the engine to apply your  settings.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Run VMPK, and open the menu Edit-&amp;gt;Connections. In “Output MIDI connection:” select “Out To MIDI Yoke:  1”, and press OK. Now you can play.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;b&gt;Scenario 2 in Mac OSX&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;First, run Qsynth, then VMPK.  &lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;VMPK's menu Edit-&amp;gt;Connections opens a dialog box. In “Output MIDI connection”,  select the item named “FluidSynth virtual port (xxxx)”. You don't need any patch bay, because VMPK is already providing a connection function in this dialog. You could use an external connection manager as well, of course.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;In Mac OSX, programs can create virtual MIDI ports or communicate directly to other MIDI ports. Virtual ports and physical ports are equivalent.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-3477758740448433490?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/3477758740448433490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2011/04/midi-connection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/3477758740448433490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/3477758740448433490'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2011/04/midi-connection.html' title='The MIDI Connection'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-5731542076881854277</id><published>2011-02-14T00:17:00.000+01:00</published><updated>2011-02-14T00:17:55.412+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensuse'/><category scheme='http://www.blogger.com/atom/ns#' term='pulseaudio'/><category scheme='http://www.blogger.com/atom/ns#' term='rtkit'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Receta para PulseAudio en openSUSE</title><content type='html'>Falta menos de un mes para la publicación de openSUSE 11.4, y probablemente esta nueva versión seguirá arrastrando los mismos problemas de sonido que las versiones anteriores. Mucha gente prefiere eliminar o desactivar PulseAudio a intentar arreglarlo, pero lo cierto es que otras distribuciones (Ubuntu, Fedora, Mandriva, ...) incluyen PulseAudio activado por defecto, y los usuarios no padecen los mismos problemas. Aparte de que al desactivar PulseAudio también se pierden algunas funcionalidades interesantes. Pero en primer lugar: ¿de que problemas estamos hablando? El sonido básicamente funciona, pero cuando estás reproduciendo sonido en segundo plano y al mismo tiempo ejecutas alguna tarea larga que consume CPU, aparecen ruidos molestos que arruinan el sonido. Esto se debe a un fallo llamado "underrun", que aparece cuando el proceso que quiere reproducir sonido no es capaz de suministrar al driver ALSA del sistema los datos (buffers, fragmentos) necesarios a tiempo. &lt;br /&gt;&lt;br /&gt;El tamaño de los fragmentos influye en la probabilidad de que aparezcan los ruidos no deseados. Cuanto más pequeño sea el tamaño de los fragmentos, más veces será necesario que el sistema interrumpa otras tareas para escribir datos en el driver de sonido, y esto también incrementa el consumo de batería en un portátil o un terminal móvil. La ventaja de los fragmentos pequeños es que se reduce la latencia de audio, es decir, el tiempo de respuesta entre la producción y la audición del sonido, lo cual puede ser importante para los juegos o los programas musicales que usan MIDI. El tamaño por defecto de los fragmentos en PulseAudio es bastante pequeño, de tan solo 25 milisegundos, y se puede configurar editando&amp;nbsp;&lt;b&gt; /etc/pulse/daemon.conf&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Para mantener reducido el tamaño de los fragmentos y asegurar la puntualidad y cadencia de alimentación de datos al driver de audio, una posible solución es incrementar ligeramente la prioridad del proceso que gestiona el sonido, en este caso PulseAudio. Para ello hay dos paquetes de software implicados: &lt;a href="http://git.0pointer.de/?p=rtkit.git"&gt;RealtimeKit&lt;/a&gt; y &lt;a href="http://www.freedesktop.org/wiki/Software/PolicyKit"&gt;PolicyKit&lt;/a&gt;. El problema es que RealtimeKit en openSUSE está de adorno, se instala por defecto y se activa automáticamente, pero es incapaz de hacer nada por culpa de la configuración de PolicyKit, así que no solo no cumple su función, sino que malgasta recursos. El primer paso será actualizar la versión instalada del paquete "rtkit". En openSUSE 11.3 se proporcionaba la versión 0.5, y en openSUSE 11.4, la versión disponible es la... 0.5 también. Esto es inexplicable, porque la última versión publicada es la 0.9, que incorpora algunas funcionalidades necesarias no solamente para PulseAudio, sino también para otros programas como FluidSynth, Drumstick, KMid, etc...&lt;br /&gt;&lt;br /&gt;Hay RPM de &lt;b&gt;rtkit-0.9&lt;/b&gt; en los repositorios de OBS&lt;br /&gt;&lt;a href="http://software.opensuse.org/search?q=rtkit&amp;amp;baseproject=openSUSE%3AFactory"&gt;http://software.opensuse.org/search?q=rtkit&amp;amp;baseproject=openSUSE%3AFactory&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Para comprobar que RealtimeKit funciona como debe, es conveniente &amp;nbsp; poder inspeccionar la prioridad de los hilos (threads) individuales de cada programa. Esto se puede hacer con &lt;a href="http://unixhelp.ed.ac.uk/CGI/man-cgi?top"&gt;top(1)&lt;/a&gt; o con &lt;a href="http://unixhelp.ed.ac.uk/CGI/man-cgi?ps"&gt;ps(1)&lt;/a&gt;. Para mayor comodidad, te propongo usar un sencillo script, que puedes guardar en &lt;b&gt;~/bin/threads&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;#!/bin/bash&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;P=$(pidof $1)&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;if [ $? == 0 ]; then&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ps -O policy,rtprio,lwp -m -p $P&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Usando este script, es posible ver los hilos de cualquier programa en funcionamiento mediante un comando sencillo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ threads rtkit-daemon&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; PID POL RTPRIO&amp;nbsp;&amp;nbsp; LWP S TTY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIME COMMAND&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;4116 -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - - ?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:00:00 /usr/lib/rtkit/rtkit-daemon&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - TS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp; 4116 S -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:00:00 -&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - TS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp; 4120 S -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:00:00 -&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - RR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 99&amp;nbsp; 4121 S -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:00:00 -&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br /&gt;La columna POL indica la política de planificación, donde TS es "time sharing", y&amp;nbsp; RR significa "round robin". La columna RTPRIO indica la prioridad del hilo. Como puedes ver, rtkit tiene un hilo con la máxima prioridad. El mismo comando contra PulseAudio cuando está correctamente configurado da el siguiente resultado:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ threads pulseaudio&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; PID POL RTPRIO&amp;nbsp;&amp;nbsp; LWP S TTY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIME COMMAND&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;4114 -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - - ?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:04:35 /usr/bin/pulseaudio --start&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - TS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp; 4114 S -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:00:51 -&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - RR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp; 4149 S -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:03:43 -&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - RR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp; 4152 S -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:00:00 -&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En la configuración por defecto de openSUSE, los dos últimos hilos usan la política TS por defecto, y no tienen prioridad especial. Para resolverlo, hay que hacer un cambio de política sobre RealtimeKit en la configuración de PolicyKit. Para ello, añade un archivo con el siguiente contenido:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;[org.freedesktop.RealtimeKit1]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Identity=unix-user:*&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Action=org.freedesktop.RealtimeKit1.*&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ResultAny=no&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ResultInactive=yes&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ResultActive=yes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Sitúa el archivo en la siguiente ubicación y nombre:&lt;br /&gt;&lt;b&gt;/etc/polkit-1/localauthority/50-local.d/org.freedesktop.RealtimeKit1.pkla &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Para aplicar los cambios anteriores es necesario reiniciar. Nota: esta receta se aplica tanto a openSUSE 11.4rc1 como a la anterior versión publicada 11.3&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-5731542076881854277?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/5731542076881854277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2011/02/receta-para-pulseaudio-en-opensuse.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/5731542076881854277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/5731542076881854277'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2011/02/receta-para-pulseaudio-en-opensuse.html' title='Receta para PulseAudio en openSUSE'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-4117766393633035442</id><published>2010-11-04T23:25:00.000+01:00</published><updated>2010-11-04T23:25:29.780+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QSynth'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='FluidSynth'/><title type='text'>FluidSynth and QSynth: Mac OSX status.</title><content type='html'>Here is a summary of the latest changes I've made to FluidSynth and QSynth in Mac OSX.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;CoreAudio driver now uses the HAL output AudioUnit. A new function has been added to enumerate existing hardware devices, and an option named "&lt;b&gt;audio.coreaudio.device&lt;/b&gt;" with the same functionality as other FluidSynth hardware drivers. It can be selected in QSynth using the audio device combo box. &lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;CoreMIDI driver option "&lt;b&gt;midi.coremidi.id&lt;/b&gt;" now works much like the equivalent option of the Linux ALSA driver. Added support in QSynth for this setting.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;FluidSynth has a new CMake boolean option: "&lt;b&gt;enable-framework&lt;/b&gt;", default=true. It creates a Mac OSX style "FluidSynth.framework", a type of bundle that includes headers and libraries together (and other resources if required). This &lt;a href="http://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPFrameworks/Concepts/WhatAreFrameworks.html"&gt;framework&lt;/a&gt; bundle is installed by default in "/Library/Frameworks". If this option is disabled at configuration time, the build system creates an Unix style dynamic library as before.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;QSynth has also a CMake build system. It can use either the new framework or the old Unix style dylib. After compilation, you can copy/embed all the used frameworks (including FluidSynth) into the app bundle, running the Qt utility "&lt;b&gt;macdeployqt&lt;/b&gt;". To build universal binaries, use a CMake argument like CMAKE_OSX_ARCHITECTURES=i386;ppc (all the dependencies need to be compiled using the same set of architectures).&lt;/li&gt;&lt;/ul&gt;Pending tasks: testing, packaging, documentation. Opinions?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-4117766393633035442?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/4117766393633035442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2010/11/fluidsynth-and-qsynth-mac-osx-status.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/4117766393633035442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/4117766393633035442'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2010/11/fluidsynth-and-qsynth-mac-osx-status.html' title='FluidSynth and QSynth: Mac OSX status.'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-1056614294610029615</id><published>2010-10-30T23:19:00.000+02:00</published><updated>2010-10-30T23:19:12.475+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='KMetronome'/><category scheme='http://www.blogger.com/atom/ns#' term='VMPK'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Drumstick'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='KMid2'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='KMidimon'/><title type='text'>Good times are gone</title><content type='html'>My sabbatical is over, and all this month I have been busy on a full time job, programming Windows applications in C# for a living. For this reason I have not had much time to devote to open source projects, and the forecast is that this situation will not change in the near future.&lt;br /&gt;&lt;br /&gt;In the past few months I have contributed as much as I could to the free software community with MIDI applications, an area I know well and where&amp;nbsp; there is not too much material, particularly on Linux. Result of this has been KMid2 and Drumstick. I have also maintained my previous projects: KMetronome and KMidimon. About VMPK, this month has beaten their previous records on SourceForge with more than &lt;a href="http://sourceforge.net/projects/vmpk/files/stats/os?dates=2010-10-01%20to%202010-10-31"&gt;10000 downloads&lt;/a&gt; in October. Thank you very much to all Mac and Windows users who trusted this software, and of course to all participants, contributors and translators who made it&amp;nbsp; possible. In Debian, the situation is also "fantastic", with &lt;a href="http://qa.debian.org/popcon.php?package=vmpk"&gt;137 installations&lt;/a&gt; to date, and only one release late. I have no data on other Linux.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-1056614294610029615?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/1056614294610029615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2010/10/good-times-are-gone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/1056614294610029615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/1056614294610029615'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2010/10/good-times-are-gone.html' title='Good times are gone'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><thr:total>0</thr:total><georss:featurename>Barcelona, España</georss:featurename><georss:point>41.387917 2.1699187</georss:point><georss:box>41.2591285 1.9364592000000003 41.5167055 2.4033782</georss:box></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-2960407475072302761</id><published>2010-09-03T20:39:00.002+02:00</published><updated>2010-09-03T21:47:42.595+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='VMPK'/><category scheme='http://www.blogger.com/atom/ns#' term='Drumstick'/><category scheme='http://www.blogger.com/atom/ns#' term='KMid2'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Drumstick Time</title><content type='html'>A new Drumstick version is in the oven, with two tasty novelties:&lt;br /&gt;&lt;br /&gt;1. OVE file parsing support (files created by the &lt;a href="http://en.wikipedia.org/wiki/Overture_%28software%29"&gt;Overture program&lt;/a&gt;).&lt;br /&gt;The code for this feature has been contributed by Rui Fan. This file format can be played by the included program drumstick-guiplayer, in addition to the SMF and WRK formats. There is also a new drumstick-dumpove CLI utility to inspect the file contents as text.&lt;br /&gt;&lt;br /&gt;2. Acquisition of real-time priority, using &lt;a href="http://0pointer.de/blog/projects/rtkit.html"&gt;RealtimeKit&lt;/a&gt;.&lt;br /&gt;Until now, the thread processing MIDI input from ALSA tried to acquire real-time priority using the &lt;a href="http://linux.die.net/man/2/sched_setscheduler"&gt;RLIMIT_RTPRIO mechanism&lt;/a&gt;, which requires some configuration and administration work. If the above mechanism is not available, now Drumstick tries to acquire real-time priority from RealtimeKit.&lt;br /&gt;&lt;br /&gt;This release is scheduled for sometime during next week.&lt;br /&gt;&lt;br /&gt;What's next?&lt;br /&gt;&lt;br /&gt;At this moment there are two libraries: drumstick-alsa (Linux) and drumstick-file. There will be two more: drumstick-win and drumstick-mac. The foundations of these two new libraries are already implemented in KMid2. On the other hand, it is desirable to unify all the backends for all platforms and file formats under a single set of multiplatform interfaces: drumstick-simple. VMPK will benefit from this, because replacing RtMIDI by Drumstick will be easier to implement features like &lt;a href="http://sourceforge.net/tracker/?func=detail&amp;amp;aid=2968877&amp;amp;group_id=236429&amp;amp;atid=1100310"&gt;MIDI file recording&lt;/a&gt;, &lt;a href="http://sourceforge.net/tracker/?func=detail&amp;amp;aid=2142327&amp;amp;group_id=236429&amp;amp;atid=1100310"&gt;playback&lt;/a&gt; and &lt;a href="http://sourceforge.net/tracker/?func=detail&amp;amp;aid=2445772&amp;amp;group_id=236429&amp;amp;atid=1100310"&gt;arpeggiator&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-2960407475072302761?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/2960407475072302761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2010/09/drumstick-time.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/2960407475072302761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/2960407475072302761'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2010/09/drumstick-time.html' title='Drumstick Time'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-8222698523172556532</id><published>2010-08-06T23:41:00.000+02:00</published><updated>2010-08-06T23:41:55.604+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='KMid2'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Electronic Music Stands</title><content type='html'>We are in full swing of electronic books, bubbles that are likely to explode into a new phase of the war between the old and new generations of publishers, content providers and consumers. It is likely that &lt;a href="http://imslp.org/wiki/1812_Overture,_Op.49_%28Tchaikovsky,_Pyotr_Ilyich%29"&gt;sheet music enter the battlefield&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Before proceeding I must warn you about two facts. One: despite the name of the blog, I am a Trekkie. Two: I am not a neutral observer. In my opinion traditional books publishing, as well as media labels, are going to lose. Those not able to adapt to changing times will disappear. Resistance is futile.&lt;br /&gt;&lt;br /&gt;The musicians are going to adopt electronic lecterns sooner rather than later. The electronic scores begin to replace the editions printed on dead trees, as is already happening with books. There are some solutions on the market, more or less primitive.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://corporate.freehandmusic.com/products-musicpadpro.php"&gt;MusicPad:&lt;/a&gt; Hardware and software.&lt;br /&gt;How could you describe it? It is like a Kindle with legs. There is a "Master" version with twice the surface. Among its outstanding features: it is completely silent. Great virtue, because silence is also music.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.musicreader.net/"&gt;MusicReader:&lt;/a&gt; Software only.&lt;br /&gt;"The facto MusicPad Killer", they say. It is a program with Windows and Mac versions, which has more than just a page viewer. There is an optional accessory for turning pages with the foot. It can display half pages enlarged, as an aid to accessibility. Integrated additional functions: recorder, player, metronome and tuner.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.estand.com/info"&gt;eStand:&lt;/a&gt; Software for Windows, page viewer.&lt;br /&gt;&lt;br /&gt;All of them are readers for electronic formats such as PDF or similar, showing pages, sections or page sets. MusicReader seems the most complete, yet is far from perfect. Some desirable features for an electronic music stand:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Pages no, thanks. The pages have no musical function and are mainly a nuisance. No pedal to turn pages, automatic scrolling is much better. Bookmarks, notes, sections, movements, labels, individually numbered bars. Everything indexed and easily searchable.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Size does matter. The musicians are supposed to have good ear, but nothing is said about sight. So it is better if the size of the staves is adjustable. For this reason, PDF is not very well suited for scores, it may be necessary to adjust the layout depending on the available area of representation. In this sense, the graphical representation of music resembles the visual organization of the widgets in graphical user interfaces.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Content indexing, cross referenced, not only metadata but all the data resulting from semantic content analysis. For example: tessitura of the parts (lowest and highest notes used by each voice and instrument in the composition) for each one of the scores in the library. With this data available, it may be possible to filter the appropriate pieces for different levels of students. Publishers must provide rich metadata, MIDI sequences, critical texts, and musicological analysis. It is not just changing the medium of the product, it is about changing the cellulose based mindset, into another way of thinking based on information.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Metronome. Probably many of the users will be students, so it will be convenient to have a metronome at the same place, taking the rhythm meter and the speed automatically from the values in the score. And of course, in addition to the optional audio reference, each bar should be highlighted while playing, keeping the current bar clearly visible in a central position, taking control of the scroll function, even when the metronome is quiet. Something like &lt;a href="http://www.livesheetmusic.com/"&gt;this.&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Pitch tuner, recorder, playback. Computer: add an accompaniment. Computer: change the clarinet by an oboe. Computer: pause recording ...&lt;/li&gt;&lt;/ul&gt;&lt;div align="center"&gt;&lt;object height="385" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/yX_QCANKVcE&amp;start=14&amp;end=58"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/yX_QCANKVcE&amp;start=14&amp;end=58" type="application/x-shockwave-flash" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;Star Trek TNG 6/8: "A Fistful of Datas"&lt;/div&gt;&lt;ul&gt;&lt;li&gt;High connectivity: USB, Bluetooth, WiFi, Ethernet ...&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;If there is a small or large group of musicians, they may want to synchronize the electronic stands, loading and unloading documents and synchronizing the timers/metronomes.&lt;/li&gt;&lt;/ul&gt;We already have almost all the required technology as free software:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Music Typesetting, engraving PDF or PostScript scores: Lilypond.&lt;/li&gt;&lt;li&gt;Programs, libraries and components to display these documents: Okular.&lt;/li&gt;&lt;li&gt;Sequencers, synthesizers and MIDI players: KMid.&lt;/li&gt;&lt;li&gt;Free content: &lt;a href="http://www.mutopiaproject.org/"&gt;www.mutopiaproject.org&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;We have the opportunity to occupy a niche in musical education, and from here future musicians shall develop the habit of using free software. Perhaps with time, even to generate free content.&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;object height="385" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ozsYepU1IVo"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/ozsYepU1IVo" type="application/x-shockwave-flash" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Star Trek Voyager 5/22: "Someone to Watch Over Me"&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-8222698523172556532?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/8222698523172556532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2010/08/electronic-music-stands.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/8222698523172556532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/8222698523172556532'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2010/08/electronic-music-stands.html' title='Electronic Music Stands'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-1791842960013056944</id><published>2010-08-05T17:25:00.000+02:00</published><updated>2010-08-05T17:25:50.509+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='KDE-ES'/><title type='text'>Diagramas de Venn de las tribus de software</title><content type='html'>A los calores propios de la temporada estival, &lt;a href="http://aseigo.blogspot.com/2010/07/having-made-our-beds-we-now-lie-in-them.html"&gt;se han unido&lt;/a&gt; &lt;a href="http://0pointer.de/blog/projects/i-am-more-awesome-than-canonical.html"&gt;hace poco&lt;/a&gt; &lt;a href="http://gregdekspeaks.wordpress.com/2010/07/29/red-hat-16-canonical-1/"&gt;los de la última polémica &lt;/a&gt;&lt;a href="http://www.markshuttleworth.com/archives/439"&gt;sobre los males del tribalismo&lt;/a&gt;. El artículo de Aaron se abre con una frase hecha, que significa que cuando tomas una decisión debes aceptar sus consecuencias. Algo así como nuestro "cosechar lo&amp;nbsp; sembrado". Supongo que se refiere a las decisiones de Canonical, y que el chorreo que le está cayendo es su consecuencia. También se puede traducir literalmente al castellano e interpretar como una metáfora: hemos construido nuestras camas, y ahora dormimos en ellas. Eso es lo que hacemos las comunidades humanas. Los del software libre también, pero en general los humanos vivimos en tribus de forma cómoda y natural, y lo difícil es superar ese tribalismo atávico e innato colaborando en metas comunes a toda la especie. Y el problema es que la rivalidad entre tribus degenera a menudo en sectarismo de la peor especie, y de ahí la amarga queja de Shuttleworth.&lt;br /&gt;&lt;br /&gt;El hecho de que existan dos tribus independientes, Gnome y KDE, en el mundo de los escritorios de software libre a mi me preocupa bastante poco. Cuando necesito un programa para solucionar un problema concreto suelo buscar entre las ofertas de &lt;a href="http://opendesktop.org/"&gt;opendesktop.org&lt;/a&gt;, que me presentan distintas opciones a elegir entre &lt;a href="http://kde-aps.org/"&gt;kde-aps.org&lt;/a&gt;, &lt;a href="http://qt-apps.org/"&gt;qt-apps.org&lt;/a&gt;, &lt;a href="http://gtk-apps.org/"&gt;gtk-apps.org&lt;/a&gt; y otras. Hago aquí un inciso para decir que no me gusta demasiado esa organización, que sugiere alguna especie de guetos. Al final me quedo con la aplicación que me guste más, y a veces con más de una por el mismo precio, y ya elegiré con el tiempo. Otros no comparten la misma filosofía, y van de compras con el requisito irrenunciable de que los programas han de estar construidos con una única materia prima, pura y sin contaminación. Casi como una cuestión religiosa. Sus juguetes del &lt;i&gt;Sect'R'Us&lt;/i&gt;, si se me permite el juego de palabras.&lt;br /&gt;&lt;br /&gt;En este diagrama de Venn que es el Mundo, comparto una pequeña intersección con los habitantes de la tribu de los &lt;i&gt;linux-audios&lt;/i&gt;. En algunos artículos recientes del &lt;a href="http://planet.linuxaudio.org/"&gt;planet.linuxaudio.org&lt;/a&gt;, &lt;a href="http://www.mega-nerd.com/erikd/Blog/CodeHacking/rip_nedit.html"&gt;alguien buscaba&lt;/a&gt; un reemplazo a su querido y viejo editor de textos NEdit de toda la vida para escribir programas. Gedit sería su alternativa natural, salvo que no satisface algunas características:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Buscar y reemplazar usando expresiones regulares o texto simple.&lt;/li&gt;&lt;li&gt;Buscar y reemplazar en todo el documento o solamente el área seleccionada.&lt;/li&gt;&lt;li&gt;Resaltado de parejas de llaves, paréntesis y corchetes.&lt;/li&gt;&lt;li&gt;Modos de edición específicos para lenguajes de programación, con auto-indentación.&lt;/li&gt;&lt;li&gt;Macros, como mecanismo de extensibilidad que permita una mayor personalización.&lt;/li&gt;&lt;li&gt;Atajos de teclado, por ejemplo para saltar a una línea concreta del documento.&lt;/li&gt;&lt;/ul&gt;Como el blog en cuestión no permite publicar comentarios, me he quedado con las ganas de recomendar &lt;a href="http://kate-editor.org/"&gt;Kate&lt;/a&gt;, que &lt;a href="http://kate-editor.org/about-kate/"&gt;cumple de sobra con todos los puntos anteriores &lt;/a&gt;y no es muy diferente del &lt;a href="http://www.mega-nerd.com/erikd/Blog/CodeHacking/Geany/gedit_geany.html"&gt;reemplazo elegido&lt;/a&gt;: Geany. De hecho, Kate es el editor preferido por buena parte de mi tribu en esta otra intersección del diagrama de Venn. Pero a pesar de todas sus ventajas, algunos ni se plantearían su uso simplemente porque está basado en KDE.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-1791842960013056944?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/1791842960013056944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2010/08/diagramas-de-venn-de-las-tribus-de.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/1791842960013056944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/1791842960013056944'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2010/08/diagramas-de-venn-de-las-tribus-de.html' title='Diagramas de Venn de las tribus de software'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-748888252713430036</id><published>2010-07-24T18:46:00.003+02:00</published><updated>2010-07-24T18:55:24.810+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='KMid2'/><title type='text'>Future of KMid</title><content type='html'>The next version of KMid is in the kitchen right now, and it will have 2.4.0 as identifier. Tentatively, August 15th shall be the release date.&lt;br /&gt;&lt;br /&gt;The main novelty is KMidPart, a component that implements the &lt;a href="http://www.purinchu.net/kdelibs-apidocs/interfaces/kmediaplayer/html/index.html"&gt;interface KMediaPlayer&lt;/a&gt;, playing MIDI/Karaoke files and using KMid infrastructure. The component shares the same configuration as the main program, so by default the MIDI port selection and Soft Synth will be common. This component by default shows only a play/stop combined button and a slider for the time position, in addition to the actions Play/Pause/Stop. Hidden, but selectable by means of KMediaPlayer::View interface methods, there are several additional controls: pause button, volume, pitch transpose and tempo (speed). The following pictures show the minimum and complete user interface respectively.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_cz-WEo1KrN4/TEsVlODegcI/AAAAAAAAA1Q/Gpf8m1RkAvQ/s1600/kmidtest1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_cz-WEo1KrN4/TEsVlODegcI/AAAAAAAAA1Q/Gpf8m1RkAvQ/s1600/kmidtest1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_cz-WEo1KrN4/TEsVqkqgOeI/AAAAAAAAA1U/PWSoSqG8YXg/s1600/kmidtest2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_cz-WEo1KrN4/TEsVqkqgOeI/AAAAAAAAA1U/PWSoSqG8YXg/s1600/kmidtest2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Once installed the new version of KMid, the KMidPart component is immediately available in Konqueror, either as file manager or web browser, since it is a simple standard KParts/ReadOnlyPart service. Examples of web sites that can benefit from this component can be &lt;a href="http://anaigeon.free.fr/"&gt;anaigeon.free.fr&lt;/a&gt; and &lt;a href="http://www.greekmidi.com/"&gt;greekmidi.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Of course, this component is available to all fellow KDE developers so they can include MIDI playback in other programs. The programming API is quite simple, as demonstrated by two examples in C++ and Python included in the examples directory. If the KMediaPlayer interface is not enough, there are other methods and additional signals available through DBus.&lt;br /&gt;&lt;br /&gt;From here, KMid will continue to evolve. I am considering further integration with KDE desktop technologies. For example, standard MIDI files are not scanned or indexed currently, but much of their metadata could be exploited with Nepomuk: tonality, rhythm, tempo, number of tracks and instruments. The settings of the songs, now stored in individual text files, may also be candidates for better integration. Another candidate for integration would be Solid, publishing system MIDI ports. Integrating KMid backends in Phonon can not be addressed at this time, but maybe in the future Phonon may evolve and such integration become possible.&lt;br /&gt;&lt;br /&gt;Further integration into KDE unfortunately means less chance for KMid users of using it on Windows and Mac OSX. Although there are ports of KDE for those operating systems, both communities are not very active. I have received a suggestion that KMid does not need to depend on KDE, but only Qt4. This would make possible to distribute KMid binaries for Windows and Mac easily. I'm not especially interested in this option, followed for instance by the Rosegarden project, sacrificing both functionality and community by this way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-748888252713430036?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/748888252713430036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2010/07/future-of-kmid.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/748888252713430036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/748888252713430036'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2010/07/future-of-kmid.html' title='Future of KMid'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_cz-WEo1KrN4/TEsVlODegcI/AAAAAAAAA1Q/Gpf8m1RkAvQ/s72-c/kmidtest1.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-3711796613547056567</id><published>2010-07-07T21:12:00.000+02:00</published><updated>2010-07-07T21:12:30.202+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KMetronome'/><category scheme='http://www.blogger.com/atom/ns#' term='VMPK'/><category scheme='http://www.blogger.com/atom/ns#' term='KMid2'/><category scheme='http://www.blogger.com/atom/ns#' term='KDE-ES'/><title type='text'>MIDI en las Jornadas</title><content type='html'>El pasado viernes 2 de Julio se celebraron en Barcelona las &lt;a href="http://www.jornadespl.org/"&gt;IX Jornades de Programari Lliure&lt;/a&gt; (jornadas de software libre). Este año han tenido un formato abreviado de un solo día, y han sido organizadas por la Politécnica de Catalunya. Los contenidos han girado en torno a dos ejes: el software libre y los contenidos libres en la educación, y el software libre en la empresa.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_cz-WEo1KrN4/TDTQzxA-GwI/AAAAAAAAA1I/FWuxNbGL3jU/s1600/IX_JPL_grupo.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://4.bp.blogspot.com/_cz-WEo1KrN4/TDTQzxA-GwI/AAAAAAAAA1I/FWuxNbGL3jU/s400/IX_JPL_grupo.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Al tratar de educación y software libre, lógicamente se ha hablado del programa &lt;a href="http://villaves56.blogspot.com/2009/10/proyecto-educat-1x1-o-escuela-20.html"&gt;eduCAT1x1&lt;/a&gt; de la Generalitat, que básicamente consiste en entregar un ultraportátil a cada alumno e implantar el libro de texto digital; así como de &lt;a href="http://linkat.xtec.cat/portal/index.php"&gt;Linkat&lt;/a&gt;, la distribución de Linux educativa del Departament d'Educació.&lt;br /&gt;&lt;br /&gt;Mi intervención se ha titulado &lt;a href="http://www.jornadespl.org/biblioteca/ix-jornades/conferencies-convidades/midi-en-linux"&gt;"MIDI en Linux"&lt;/a&gt;. He presentado brevemente los programas KMid, KMetronome y VMPK con especial énfasis en las posibilidades didácticas en el ámbito musical de dichos programas y de la tecnología MIDI en general. Muchísimas gracias al público asistente y a la organización por su cálida acogida.&lt;br /&gt;&lt;br /&gt;A pesar de su brevedad, el contenido de las mesas redondas y las conferencias ha sido interesante, ameno y en algunos casos no exento de polémica, lo cual también es enriquecedor. Espero con impaciencia las jornadas del próximo año.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-3711796613547056567?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/3711796613547056567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2010/07/midi-en-las-jornadas.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/3711796613547056567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/3711796613547056567'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2010/07/midi-en-las-jornadas.html' title='MIDI en las Jornadas'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_cz-WEo1KrN4/TDTQzxA-GwI/AAAAAAAAA1I/FWuxNbGL3jU/s72-c/IX_JPL_grupo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-5234994881695593677</id><published>2010-06-19T20:38:00.000+02:00</published><updated>2010-06-19T20:38:25.723+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='VMPK'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>D-Bus in VMPK</title><content type='html'>Yesterday, I've released &lt;a href="http://sourceforge.net/projects/vmpk/files/vmpk/0.3.2/"&gt;VMPK 0.3.2&lt;/a&gt; with a new &lt;a href="http://www.freedesktop.org/wiki/Software/dbus"&gt;D-Bus interface&lt;/a&gt;. VMPK is not a KDE application, it uses only Qt4, so a D-Bus interface wasn't included by default. This VMPK feature is far from perfect, and it will require some improvements in future releases, but it is a start.&lt;br /&gt;&lt;br /&gt;What can be done with this D-Bus thing? D-Bus provides a mechanism to send and receive messages between processes (it is an IPC, inter process communication mechanism). This allows one application to be controlled from another one, or from a script. This is the classic application automation scenario solved in Windows with COM/DCOM, and in Mac OSX with AppleScript. D-Bus is a cross platform solution, with nice Qt4 bindings: the &lt;a href="http://doc.trolltech.com/4.6/qtdbus.html"&gt;module QtDBus&lt;/a&gt;. The Qt4 SDK for Windows doesn't include this module, and anyway the bus daemon and libraries are external dependencies. D-Bus has been adopted in Linux by the KDE and Gnome desktops replacing other former solutions.&lt;br /&gt;&lt;br /&gt;As use case demos, in a directory named "dbus" of the VMPK source tarball, there are a Bash script playing a simple tune and two Python scripts showing how to remotely execute actions and receive signals from VMPK. Another interesting use case for this D-Bus interface is to define new hot keys to send MIDI messages using VMPK. For instance, let's define Alt+S to send a sustain=100 control change, and Alt+Z to send sustain=0. Here is a brief how-to for the KDE desktop.&lt;br /&gt;&lt;br /&gt;To configure hot keys in KDE, run the program "Personal Settings (Configure Desktop)", and select "Computer Administration" -&amp;gt; "Input Actions", or launch the command 'kcmshell4 khotkeys' from a terminal. Here you can create a new group with the name "VMPK", and two new actions (new -&amp;gt; global shortcut -&amp;gt; D-Bus command) for your controllers. Name your actions for instance "sustain on" and "sustain off", and assign the key strokes in the tab labeled "Trigger". In the tab "Action", the data for "sustain on" is:&lt;br /&gt;&lt;br /&gt;Remote application: net.sourceforge.vmpk&lt;br /&gt;Remote object: /&lt;br /&gt;Function: controlchange&lt;br /&gt;Arguments: 64 100&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_cz-WEo1KrN4/TB0L0XzLJUI/AAAAAAAAA1A/8XZVH47ijDM/s1600/khotkeys1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="212" src="http://4.bp.blogspot.com/_cz-WEo1KrN4/TB0L0XzLJUI/AAAAAAAAA1A/8XZVH47ijDM/s400/khotkeys1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The arguments are a pair of numbers, first the controller number, and then the control value. 64 is the sustain (hold1) controller, and 100 is the value. The arguments for the "Sustain Off" are "64 0".&lt;br /&gt;&lt;br /&gt;You must activate the check boxes in the actions tree, to enable the new hot keys. You can also set conditions for the group, for instance checking that the window title or class matches the VMPK main window.&lt;br /&gt;&lt;br /&gt;Note that you need to compile VMPK with ENABLE_DBUS activated. The binary packages for Windows and Mac OSX don't have this option enabled.&lt;br /&gt;&lt;br /&gt;Binary packages? didn't say I something about stopping to ship binary packages of my programs? Yes, there are no binary Linux packages for this VMPK release. The question is that I can provide a single VMPK package for Windows that includes all dependencies (a few Qt4 and runtime DLL), and this package runs in XP, Server, Vista and Windows7. Same for Mac OSX, where I can provide a single application bundle compiled in Universal mode (x86 and PPC) including all the dependencies as well. The burden for Linux is the existence of RPM and DEB package types, with differences among several distros, and several versions, and processors, and whatever. VMPK is provided by several major distros already. If it is not yet included in your distro, open a request in the distribution tracker or compile it from sources.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-5234994881695593677?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/5234994881695593677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2010/06/d-bus-in-vmpk.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/5234994881695593677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/5234994881695593677'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2010/06/d-bus-in-vmpk.html' title='D-Bus in VMPK'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_cz-WEo1KrN4/TB0L0XzLJUI/AAAAAAAAA1A/8XZVH47ijDM/s72-c/khotkeys1.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-8979243231571455788</id><published>2010-05-21T11:56:00.001+02:00</published><updated>2010-05-21T12:05:38.230+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='KMetronome'/><category scheme='http://www.blogger.com/atom/ns#' term='Drumstick'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Weird KMetronome</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;After a long development cycle focused almost exclusively on KMid, it's time to give some love to other projects. I've been working lately on &lt;a href="http://kmetronome.sourceforge.net/kmetronome.shtml"&gt;KMetronome&lt;/a&gt;, a MIDI metronome for KDE and ALSA. It is the oldest project of my little family.&lt;br /&gt;&lt;br /&gt;The only issue in KMetronome's tracker is &lt;a href="http://sourceforge.net/tracker/?func=detail&amp;amp;aid=2517833&amp;amp;group_id=134956&amp;amp;atid=731545"&gt;this one year old request&lt;/a&gt;, which has suggested the title of this post. The "&lt;a href="http://www.pinkandaint.com/weirdmet.shtml"&gt;Weird Metronome&lt;/a&gt;" is a popular simple MIDI metronome for Windows, which is the origin of "&lt;a href="http://openmetronome.sourceforge.net/"&gt;Open Metronome&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;The major advantage of Weird / Open Metronome is the definition of rhythm patterns. The drawback is that it only works on Windows. It may be a good idea to make a Linux port. His definition of patterns is very simple and elegant, if somewhat limited. It has two branches: one producing MIDI events, and the other producing digital audio.&lt;br /&gt;&lt;br /&gt;Although I can't rule out porting Open Metronome to Linux in the future, I've decided to implement the pattern editor differently. Here are some screenshots of the upcoming version 0.10 of KMetronome, dressed in &lt;a href="http://skulpture.maxiom.de/"&gt;Skulpture style&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_cz-WEo1KrN4/S_ZVPBrTmRI/AAAAAAAAAzw/8dQH1tinNEc/s1600/kmetronome_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_cz-WEo1KrN4/S_ZVPBrTmRI/AAAAAAAAAzw/8dQH1tinNEc/s320/kmetronome_1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Settings&lt;/div&gt;&lt;br /&gt;Like KMidimon and VMPK, now KMetronome also uses an instrument definition file in .INS format, the same format as Qtractor, TSE3, Cakewalk and Sonar. I've added an "Output instrument" drop-down list in order to choose one among the standard General MIDI, Roland GS and Yamaha XG drum maps. You can add more definitions creating a file named "drums.ins" at $HOME/.kde4/share/apps/kmetronome. The options "Bank", "Program", "Weak note" and "Strong note" are now drop-down lists as well.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_cz-WEo1KrN4/S_ZVarb5WWI/AAAAAAAAAz4/rw2mlyEyOZk/s1600/kmetronome_5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_cz-WEo1KrN4/S_ZVarb5WWI/AAAAAAAAAz4/rw2mlyEyOZk/s320/kmetronome_5.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Main Window&lt;/div&gt;&lt;br /&gt;There is a new button "Patterns" opening the rhythm pattern editor, and a drop-down list to choose the pattern. The default "Automatic" value means that the program generates the pattern as usual, using the notes set in the configuration dialog (Strong / Weak) and the rhythm definition provided by "Beats / Bar" and "Rhythm figure". The same drop-down list contains also the names of the user-defined patterns.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_cz-WEo1KrN4/S_ZVfO2dmZI/AAAAAAAAA0A/SV1Cdqc2hkM/s1600/kmetronome_7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_cz-WEo1KrN4/S_ZVfO2dmZI/AAAAAAAAA0A/SV1Cdqc2hkM/s320/kmetronome_7.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Pattern Editor&lt;/div&gt;&lt;br /&gt;This is a new dialog box. You may edit, test and select patterns with it. To create new patterns, you simply save the current definition under a new name. Patterns are represented by a table. The rows in the table correspond to the percussion sounds. You can remove and add rows from a list of sounds defined by the instrument settings in the configuration dialog. The number of columns in the table determine the length of the pattern, between 1 and 99 elements of any rhythm figure.&lt;br /&gt;&lt;br /&gt;Each table cell accepts values between N = 1 and 9, corresponding to the MIDI velocity (N * 127 / 9) of the notes, or 0 to cancel the sound. Valid values are also "f" (forte) and "p" (piano) corresponding to variable velocities defined by the rotary knobs (Strong / Weak) in the main window. The cell values can be selected and modified using either the keyboard or the mouse. No need to press the stop button before modifying the cells ...&lt;br /&gt;&lt;br /&gt;This version is not ready yet, but will be probably published by the middle of next month. For now, you can get the sources &lt;a href="http://kmetronome.svn.sourceforge.net/viewvc/kmetronome/trunk.tar.gz?view=tar"&gt;from the Subversion repository&lt;/a&gt;. You need to install &lt;a href="http://sourceforge.net/projects/drumstick/files/"&gt;Drumstick&lt;/a&gt; before compiling it.&lt;br /&gt;&lt;br /&gt;By the way, I'm planning to stop distributing binaries for all programs. If you like them and your favorite Linux distribution does not include Drumstick or KMetronome, it would be a good idea to start opening bug reports in its&amp;nbsp; enhancement request system, or sending messages to the distribution's mailing lists or web forum.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-8979243231571455788?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/8979243231571455788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2010/05/weird-kmetronome.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/8979243231571455788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/8979243231571455788'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2010/05/weird-kmetronome.html' title='Weird KMetronome'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_cz-WEo1KrN4/S_ZVPBrTmRI/AAAAAAAAAzw/8dQH1tinNEc/s72-c/kmetronome_1.png' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-6703135582990754454</id><published>2010-04-26T12:33:00.000+02:00</published><updated>2010-04-26T12:33:54.021+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='KMid2'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Apples and Oranges</title><content type='html'>&lt;span class="expander" style="width: 27px;"&gt;&lt;a href="http://www.kde.org/applications/multimedia/kmid/"&gt;KMid&lt;/a&gt; is now a multi-platform application for Linux, Windows, and Mac OSX. It may be the right time to make a comparison between the different operating systems with regarding to the development of KMid backends.&lt;br /&gt;&lt;br /&gt;First, the functional components needed by a KMid backend&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="expander" style="width: 27px;"&gt;Read and parsing of &lt;a href="http://en.wikipedia.org/wiki/Standard_MIDI_File"&gt;SMF&lt;/a&gt;: MIDI and Karaoke files. This mechanism must offer not only timestamped MIDI events, but also the metadata (for instance, song lyrics) embedded into the SMF data.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="expander" style="width: 27px;"&gt;Facility for sequencing &lt;a href="http://en.wikipedia.org/wiki/MIDI"&gt;MIDI events&lt;/a&gt;. Events read from a file are labeled with timestamps, to be delivered to MIDI synthesizers at the right times, handling also common player actions like play, pause and stop.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="expander" style="width: 27px;"&gt;Internal and external, hardware and software &lt;a href="http://en.wikipedia.org/wiki/Synthesizer"&gt;MIDI synthesizers&lt;/a&gt;. The main goal of KMid is to support external musical instruments, but as many potential users do not have one, it is interesting to be able to use software synthesizers, in a transparent way without complicating the program design.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="expander" style="width: 27px;"&gt;Organization of the backends&lt;br /&gt;&lt;br /&gt;KMid::Backend is modelled after several Phonon interfaces. There is not a dependency on Phonon, only inspiration and Copy&amp;amp;Paste. There is a KMid::MIDIObject abstract class that resembles more or less a Phonon::MediaObject, encapsulating the sequencer functionality, and a KMid::MIDIOutput class representing a MIDI output port, similar to Phonon::AudioOutput. Main differences are:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="expander" style="width: 27px;"&gt;KMid::MIDIObject time is measured in musical time (ticks) instead of milliseconds. Some additional properties: timeSkew, textEncoding, lyrics. Several signals, one for Each MIDI event type and metadata, feeding the program's graphic interface animations: lyrics highlighting, visual metronome, channel meters, and piano player keys.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="expander" style="width: 27px;"&gt;KMid::MIDIOutput has pitchShift and midiMap properties. Volume and mute properties take a MIDI channel argument. There are also some real-time MIDI event slots, one for each MIDI event type, used by widgets like the channel instrument selectors or the piano player keys when they are triggered by the mouse or the computer keyboard.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="expander" style="width: 27px;"&gt;Linux&lt;br /&gt;&lt;br /&gt;ALSA provides a very advanced MIDI sequencer. The API is big and cumbersome to use in a KDE program, so I've developed a library layer, named "drumstick-alsa", providing a C++/Qt4 wrapper around it. ALSA does not provide a mechanism for reading and parsing MIDI files, so there is another library named "drumstick-file" taking care of it. In ALSA, MIDI hardware and software clients are all equivalent and there is a routing mechanism between MIDI OUT and MIDI IN ports, fully transparent and very powerful, where either of the two ends of the connection can be a program or a MIDI device driver. Of course, the data transmitted by the communications connection uses the standard MIDI protocol. KMid creates a MIDI output port externally visible, to be connected to a MIDI synthesizer, and also private loopback ports (input and output) which are used for visual feedback in the graphic interface (highlighted lyrics, metronome, piano keys...) The MidiPlayer class schedules MIDI events to a loopback port, which are received in time and propagated activating the signals emitted by the MIDIObject class and at the same time are sent through the MIDIOutput class to their final destination, which is any kind of MIDI synthesizer.&lt;br /&gt;&lt;br /&gt;Any software synthesizer that is also an ALSA sequencer client can be connected to the MIDI output of KMid. Although not strictly necessary, for the users convenience it is possible to enable and launch FluidSynth or TiMidity++ on KMid's initialization. Unfortunately, a software synthesizer receives MIDI events and converts them into digital audio, and here&amp;nbsp; is where some users may find problems that go beyond the scope of KMid (ALSA/Jack/OSS/PulseAudio..., you know). In addition, a software synthesizer may require soundfonts. Enough to say that Linux distributions should package and integrate all the components that the users may need. The owners of external MIDI musical instruments are lucky, because they are quite well supported by ALSA.&lt;br /&gt;&lt;br /&gt;Windows&lt;br /&gt;&lt;br /&gt;The operating system provides the same MIDI support since the days of Windows 3.1 practically without any changes. Windows cannot connect the MIDI output from a program to the input of another program, only to a system driver, so the synthesizer must be external, or having a device driver, or using MidiYoke or any other similar solution. However, Windows provides a software synthesizer unconditionally installed and activated, so the Windows backend does not have or need a soft-synth configuration page.&lt;br /&gt;&lt;br /&gt;The MMSystem API does not provide virtual MIDI ports, nor transparent MIDI routing, so the strategy of playing to a loopback port as in Linux is simply not possible. What is possible is to use "custom" midi events and define a callback function that is invoked whenever the time arrives to play a scheduled MIDI event. This is how all the visual feedback is implemented. The system libraries do not provide reading and parsing of MIDI files, so drumstick-file is used.&lt;br /&gt;&lt;br /&gt;Mac OSX&lt;br /&gt;&lt;br /&gt;The operating system provides all kind of MIDI support services, starting with reading and processing of MIDI files. If we compare the AudioToolkit SMF processing API with drumstick-file, the latter provides a model similar to XML-SAX, while AudioToolkit would be similar to XML-DOM. After reading the MIDI files, the results are explored to extract the required metadata, and an additional track is added containing the "custom" MIDI events for visual feedback.&lt;br /&gt;&lt;br /&gt;Virtual MIDI ports are fully supported, with routing and full transparency between applications and devices, so the loopback port strategy works exactly the same as in Linux/ALSA. The Apple software synthesizer is an object of type "AudioUnit", and requires activation before a program can use it, so the Mac OSX backend has a simple soft-synth configuration page. The DLS soundfont provided by Apple is made by Roland, like the Windows one.&lt;br /&gt;&lt;br /&gt;Conclusion&lt;br /&gt;&lt;br /&gt;The LOC numbers needed to implement each backend are very similar: mac = 2358, windows = 2435, alsa = 2715 (not counting drumstick), and its complexity is also similar. Despite the different features offered by each platform, it is possible to implement KMid backends presenting the same programming interface to the application. We can create new backends in the future using the existing ones as models, or duplicating the "dummy" template that exists in a directory with the same name in the source repository.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-6703135582990754454?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/6703135582990754454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2010/04/apples-and-oranges.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/6703135582990754454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/6703135582990754454'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2010/04/apples-and-oranges.html' title='Apples and Oranges'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-8372594671933627181</id><published>2010-04-17T00:46:00.000+02:00</published><updated>2010-04-17T00:46:48.111+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='MMA'/><category scheme='http://www.blogger.com/atom/ns#' term='KMid2'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>KMid in Windows</title><content type='html'>&lt;object height="480" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ZLHpD9OoOIk&amp;hl=es_ES&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/ZLHpD9OoOIk&amp;hl=es_ES&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="480"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;KMid is aimed at a wider audience in this next version. This song was generated with &lt;a href="http://www.mellowood.ca/mma/"&gt;MMA (Musical MIDI Accompaniment)&lt;/a&gt;, and it is  included as a new example.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-8372594671933627181?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/8372594671933627181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2010/04/kmid-in-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/8372594671933627181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/8372594671933627181'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2010/04/kmid-in-windows.html' title='KMid in Windows'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-6582237195123613064</id><published>2010-04-15T14:18:00.000+02:00</published><updated>2010-04-15T14:18:47.123+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='KMid2'/><title type='text'>History of KMid</title><content type='html'>KMid was originally created by Antonio Larrosa. &lt;a href="http://developer.kde.org/%7Elarrosa/kmid.html"&gt;According to his website&lt;/a&gt;, the exact birth date was the 11th of September of 1997.&lt;br /&gt;&lt;br /&gt;KMid initially ran in Linux and FreeBSD using the OSSv3 MIDI sequencer. The release 1.0 coincided with the KDE1 publication in 1998, and version 2.0 with KDE2 in 2000. It was ported later to KDE3. Version 2.0 and was functionally very similar to KMid2, having already ALSA support.&lt;br /&gt;&lt;br /&gt;I've started using KDE by 2002, along with the initial KDE3 releases. At that time I also became involved in the development of Rosegarden, a KDE program for music edition using MIDI technology, and used KMid frequently. The main drawback was the inability of teaming KMid with other ALSA sequencer based programs, because the play/pause/stop actions created and destroyed KMid's MIDI ports, preventing reliable external connections made by other programs like aconnect or qjackctl.&lt;br /&gt;&lt;br /&gt;In Akademy-es 2006, that was held in Barcelona, I met Antonio and explained him my concerns about KMid, and subsequently exchanged some patches by email trying to solve the implementation of libkmid regarding the ALSA sequencer. However, any solution explored involved binary incompatibilities, so the issue was out of the question within the KDE 3.5 development cycle.&lt;br /&gt;&lt;br /&gt;On the other hand, KDE4 development started and OSSv4 was published, so there was no need to support OSSv3 anymore. The transfer of KMid in the SVN repository from kde-multimedia to extragear provided more time and freedom to rethink the software architecture and develop a new implementation.&lt;br /&gt;&lt;br /&gt;KMid2 was developed as a revamping of the original KMid, with the following main &lt;a href="http://lists.kde.org/?l=kde-devel&amp;amp;m=125441154125513&amp;amp;w=2"&gt;features and goals&lt;/a&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Playback to external MIDI devices.&lt;/li&gt;&lt;li&gt;Allow to use software synths as well, like TiMidity++ and FluidSynth.&lt;/li&gt;&lt;li&gt;Change tempo and volume controls. Add a key (transpose) control.&lt;/li&gt;&lt;li&gt;Independent MIDI channel mute control.&lt;/li&gt;&lt;li&gt;Support for many character encodings for lyrics, and configurable fonts.&lt;/li&gt;&lt;/ul&gt;Additional short-term goals:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Remove the deprecated OSSv3 /dev/sequencer interface support, dropped from OSSv4 anyway.&lt;/li&gt;&lt;li&gt;A fair ALSA sequencer backend implementation: do not create/destroy the client and port instances on each play/pause/stop action. This enables the usage of a MIDI Patch Bay application like aconnect or qjackctl.&lt;/li&gt;&lt;li&gt;More native backends for other platforms. &lt;/li&gt;&lt;/ul&gt;Version 2.2.2 was released on March 15th, 2010, closing the initial implementation cycle. The next release 2.3.0 will be published within a few weeks, including new native backends for Windows and Mac OSX.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-6582237195123613064?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/6582237195123613064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2010/04/history-of-kmid.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/6582237195123613064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/6582237195123613064'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2010/04/history-of-kmid.html' title='History of KMid'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-5985482144542562951</id><published>2010-04-01T16:37:00.000+02:00</published><updated>2010-04-01T16:37:40.765+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='KMid2'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>KMid in Mac OSX</title><content type='html'>This is not an April Fool's joke. KMid is running in Mac OSX, native:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_cz-WEo1KrN4/S7Ssc4Gn5xI/AAAAAAAAAyE/3MZRJ4DmnPk/s1600/kmid-mac.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/_cz-WEo1KrN4/S7Ssc4Gn5xI/AAAAAAAAAyE/3MZRJ4DmnPk/s400/kmid-mac.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I've developed KMid's Mac native support &lt;a href="http://www.finkproject.org/"&gt;using Fink&lt;/a&gt;, that includes KDE SC 4.4.1&lt;br /&gt;&lt;br /&gt;By the way, there are fresh news at Fink web site: &lt;i&gt;&lt;span style="font-size: x-small;"&gt;"Effective 1 May 2010, we are going to cease work on our Mac efforts, and switch to development for the iPad, iPhone..."&lt;/span&gt;&lt;/i&gt;. Oh, wait! today is April 1st...&lt;br /&gt;&lt;br /&gt;Now seriously. You need: Xcode 3.1.4, that provides GCC 4.2&lt;br /&gt;And some dependencies from Fink: kdelibs4-mac-dev, kde4-buildenv, cmake. These packages require some other dependencies. &lt;br /&gt;Recommended: bundle-kde4-mac. This set is very large, and includes everything for a complete KDE environment.&lt;br /&gt;&lt;br /&gt;KMid doesn't use Phonon. The native Mac OSX backend uses CoreMIDI and CoreAudio, and the Apple DLS soft synth enabled by default. Everything is included in OSX. Receipt:&lt;br /&gt;&lt;br /&gt;1. Get the sources from the repository:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ svn co svn://anonsvn.kde.org/home/kde/trunk/extragear/multimedia/kmid/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. Prepare the build environment:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ export KDE4_TYPE=mac&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ source /sw/sbin/kde4-buildenv.sh&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Configure, compile, install:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ cd kmid&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ mkdir build&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ cd build&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ cmake .. -DCMAKE_INSTALL_PREFIX=/sw/opt/kde4/mac -DBUNDLE_INSTALL_DIR=/sw/opt/kde4/mac/bin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ make&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ sudo make install&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-5985482144542562951?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/5985482144542562951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2010/04/kmid-in-mac-osx.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/5985482144542562951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/5985482144542562951'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2010/04/kmid-in-mac-osx.html' title='KMid in Mac OSX'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_cz-WEo1KrN4/S7Ssc4Gn5xI/AAAAAAAAAyE/3MZRJ4DmnPk/s72-c/kmid-mac.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-7981947696295434041</id><published>2010-01-28T23:08:00.000+01:00</published><updated>2010-01-28T23:08:26.003+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='KMid2'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Loving Music</title><content type='html'>I love music even more than I love computers. And here is a new KMid2 release, for all the music and KDE lovers. It has several new features, but that is something that you can read in the announcements or the ChangeLog. There are also four new songs replacing the old examples coming from the original KMid. It was not clear the license of those files, so I've created new ones. Like the two first examples (Ay Linda Amiga and Mozart's Ave Verum) the songs were edited in Rosegarden, more or less tweaked, and finally exported in SMF format. The sources of all the songs are the scores published by the &lt;a href="http://www.mutopiaproject.org/"&gt;Mutopia project&lt;/a&gt;. The &lt;a href="http://www.lilypond.org/"&gt;LilyPond&lt;/a&gt; process that creates the beautiful PDF scores also produces MIDI files that have been imported into Rosegarden as the foundation for the final products. Here are the addresses and references, and one rendering as audio.&lt;br /&gt;&lt;br /&gt;Schubert (1797-1828): &lt;b&gt;Ave Maria (Ellens dritter Gesang)&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.mutopiaproject.org/cgibin/piece-info.cgi?id=1054"&gt;Mutopia score&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Ellens_dritter_Gesang"&gt;Wikipedia article&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The following rendering has been produced in &lt;a href="http://www.fluidsynth.org/"&gt;FluidSynth &lt;/a&gt;using the &lt;a href="http://www.schristiancollins.com/generaluser.php"&gt;General User soundfont&lt;/a&gt;.&lt;br /&gt;&lt;object height="132" width="353"&gt;&lt;embed src="http://www.goear.com/files/external.swf?file=1c91185" type="application/x-shockwave-flash" wmode="transparent" quality="high" width="353" height="132"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Mozart (1756-1791):&lt;br /&gt;&lt;b&gt;Der Hölle Rache kocht in meinem Herzen&lt;/b&gt; (Die Zauberflöte / The Magic Flute - No. 14 Arie)&lt;br /&gt;&lt;a href="http://www.mutopiaproject.org/cgibin/piece-info.cgi?id=266"&gt;Mutopia score&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Der_H%C3%B6lle_Rache_kocht_in_meinem_Herzen"&gt;Wikipedia article&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Dies Irae (Requiem)&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.mutopiaproject.org/cgibin/piece-info.cgi?id=364"&gt;Mutopia score&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Handel (1685-1759): &lt;b&gt;Hallelujah (Messiah)&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.mutopiaproject.org/cgibin/piece-info.cgi?id=1732"&gt;Mutopia score&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-7981947696295434041?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/7981947696295434041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2010/01/loving-music.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/7981947696295434041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/7981947696295434041'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2010/01/loving-music.html' title='Loving Music'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-7370748081454100951</id><published>2010-01-21T18:34:00.000+01:00</published><updated>2010-01-21T18:34:35.428+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='VMPK'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='KMid2'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>MP3 killed MIDI?</title><content type='html'>Of course not. At the turn of the 20th century everybody was saying that photography killed painting. And later cinema killed theatre, and television killed cinema. The last technological revolution, the digital one, killed the business of the record companies. And this time, it may be finally true...&lt;br /&gt;&lt;br /&gt;MIDI is about making music, and making music is about musical instruments. After all, a business that remains still alive is the musical instruments industry. Not all the musical instruments sold around the world are bought by professional musicians. Most of the market are aficionados and hobbyists. Everybody would like, in one or another point of the life, to become a musician, or learn to play a musical instrument. Well, this is the place of the MIDI software in the desktop ecosystem. It is not about passively listening music, but using tools to inspect, interact, learn, modify, understand music. That may explain how &lt;a href="http://vmpk.sourceforge.net/"&gt;VMPK&lt;/a&gt; had more than &lt;a href="http://sourceforge.net/project/stats/detail.php?group_id=236429&amp;amp;ugn=vmpk&amp;amp;type=prdownload&amp;amp;mode=alltime"&gt;5000 downloads from SourceForge&lt;/a&gt; last month. Even when it is not able to play songs by itself!&lt;br /&gt;&lt;br /&gt;There was once a day something called "&lt;a href="http://en.wikipedia.org/wiki/Pianola"&gt;Pianola&lt;/a&gt;", a piano player product manufactured by the Aeolian Company. It was so popular that the trade mark has been adopted in Spanish (and in other languages as well) as a generic name, and entered the official dictionary. The company ended in bankruptcy about only 25 years ago, but the idea behind it still exists. The &lt;a href="http://en.wikipedia.org/wiki/Disklavier"&gt;Disklavier&lt;/a&gt; models by Yamaha are offering today a similar functionality, but using MIDI files instead of punched paper rolls.&lt;br /&gt;&lt;br /&gt;Well. All the above small talk was, of course, an excuse and introduction for another &lt;a href="http://userbase.kde.org/KMid2"&gt;KMid&lt;/a&gt; post. The next week there will be a new release (0.2) of the program, after some changes triggered by an usability review. Big kudos to the KDE usability team and Diego Moya for his report! One of the new included features is the ability to launch soft-synths (&lt;a href="http://timidity.sourceforge.net/"&gt;TiMidity++&lt;/a&gt; or &lt;a href="http://fluidsynth.resonance.org/trac"&gt;FluidSynth&lt;/a&gt;) from inside KMid2, as child processes. The communication between KMid and the soft synths is handled by the &lt;a href="http://www.alsa-project.org/"&gt;ALSA&lt;/a&gt; sequencer, using the standard MIDI protocol. This has two consequences: the soft synths are still loosely tied optional dependencies, and the program is still able to communicate with external musical instruments, hardware synths, or &lt;a href="http://wiki.linuxaudio.org/apps/categories/alsa_seq"&gt;many other&lt;/a&gt; soft synths, which is a very important feature for me. This also means that KMid is still for Linux only, because ALSA is only available for Linux (the Salsa library has only very basic ALSA features, and it is not enough for KMid).&lt;br /&gt;&lt;br /&gt;There will be in the future other backends for KMid. I'm planning native backends for Mac OSX and Windows, using the native MIDI subsystems of each operating system, and also a backend based on libfluidsynth, which may be very comfortable for casual users, and available for more platforms.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-7370748081454100951?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/7370748081454100951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2010/01/mp3-killed-midi.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/7370748081454100951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/7370748081454100951'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2010/01/mp3-killed-midi.html' title='MP3 killed MIDI?'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-7308367966058637035</id><published>2009-12-22T21:14:00.002+01:00</published><updated>2009-12-22T21:35:48.210+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='VMPK'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='KMid2'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>MIDI on Linux is not easy</title><content type='html'>I've put a little tutorial in the KDE userbase wiki about &lt;a href="http://userbase.kde.org/Tutorials/MIDI_on_Linux"&gt;MIDI on Linux &lt;/a&gt;because Linux users have very little help setting up their systems for MIDI usage.&lt;br /&gt;&lt;br /&gt;First, I would like to apologize for a joke, that was not my original idea. I've found it at the renaissance music &lt;a href="http://anaigeon.free.fr/e_formats_son.html"&gt;web site of Alain Naigeon&lt;/a&gt;. He says that MP3 is like fast food, WAV is tasting the meal, and MIDI is cooking the recipe. He also says that playing a MIDI file is not reproducing a performance, it's a new performance. I agree, but on the other hand each MIDI file is a recording of a musical performance. Even more than a MP3 or a CD, because it contains no sound, only the musician actions. For instance, the folks at the&amp;nbsp;&lt;a href="http://www.piano-e-competition.com/"&gt;Minnesota International Piano e-Competition &lt;/a&gt;distribute &lt;a href="http://www.piano-e-competition.com/midi_2009.asp"&gt;MIDI files&lt;/a&gt; of the competitors' performances, recorded in Yamaha Disklavier concert grand pianos, as standard MIDI files. And you can play these files in &lt;a href="http://userbase.kde.org/KMid2"&gt;KMid2&lt;/a&gt;. Try this one: &lt;a href="http://www.piano-e-competition.com/MIDIFiles/2009/Taverna03.MID"&gt;Igor Stravinsky's, Petrouchka&lt;/a&gt; played by Alessandro Taverna, first prize winner of this year's contest.&lt;br /&gt;&lt;br /&gt;Returning to the subject. I would like to show you a screenshot of the about dialog from the software synth included (and ready to be used out of the box) in all MS Windows operating systems:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_cz-WEo1KrN4/SzEkaMJzcaI/AAAAAAAAAko/9OiuijnCgKY/s1600-h/windowsxp1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_cz-WEo1KrN4/SzEkaMJzcaI/AAAAAAAAAko/9OiuijnCgKY/s320/windowsxp1.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;The Roland Sound Canvas samples are also included in Mac OSX. In both cases it is a small sound font&amp;nbsp; file in DLS format. It is not the full and great Roland Virtual Sound Canvas, but a light version. Anyway, the point is that both software manufacturers provide resources to the users wanting MIDI support out of the box. If you download and install &lt;a href="http://vmpk.sf.net/"&gt;VMPK&lt;/a&gt; in any Windows version, you can start playing and getting sound at once without having to configure anything at all, and without reading a single word of system documentation.&lt;br /&gt;&lt;br /&gt;What is the situation on Linux? There are &lt;a href="http://wiki.linuxaudio.org/apps/categories/midi_software"&gt;MIDI applications&lt;/a&gt;. There are many operating system MIDI drivers (&lt;a href="http://www.alsa-project.org/"&gt;ALSA&lt;/a&gt;). Some &lt;a href="http://wiki.linuxaudio.org/apps/categories/softsynths_and_samplers"&gt;software synths&lt;/a&gt; and free &lt;a href="http://wiki.linuxaudio.org/wiki/soundfonts"&gt;SoundFonts&lt;/a&gt; are also available. What is missing? Distributions gathering all the required pieces, putting them together and easing the task of setting up Linux for MIDI usage out of the box. It is their job, after all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-7308367966058637035?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/7308367966058637035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2009/12/midi-on-linux-is-not-easy.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/7308367966058637035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/7308367966058637035'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2009/12/midi-on-linux-is-not-easy.html' title='MIDI on Linux is not easy'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_cz-WEo1KrN4/SzEkaMJzcaI/AAAAAAAAAko/9OiuijnCgKY/s72-c/windowsxp1.png' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-51419339825901642</id><published>2009-12-07T16:35:00.001+01:00</published><updated>2009-12-17T21:24:10.768+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='KMid2'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Precompiled Headers</title><content type='html'>Hello, KDE Planet!&lt;br /&gt;&lt;br /&gt;Let me insist with another post about time. But in this case about the time spent compiling programs; always too much, because &lt;i&gt;vita brevis est&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;I've added to &lt;a href="http://userbase.kde.org/KMid2"&gt;KMid2&lt;/a&gt;'s build system a &lt;a href="http://websvn.kde.org/*checkout*/trunk/playground/multimedia/kmid2/cmake/FindPCHSupport.cmake"&gt;CMake script&lt;/a&gt; enabling &lt;a href="http://en.wikipedia.org/wiki/Precompiled_header"&gt;precompiled headers&lt;/a&gt; &lt;a href="http://gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html"&gt;(PCH) for the GCC compiler&lt;/a&gt;. It is optionally enabled using a&amp;nbsp; CMake option&amp;nbsp;"&lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;-DWANT_PCH=yes&lt;/b&gt;". I've written this &lt;a href="http://rosegarden.svn.sourceforge.net/viewvc/rosegarden/branches/stable_1_7/cmake_admin/FindPCHSupport.cmake?view=log"&gt;script initially for Rosegarden&lt;/a&gt;, and later it has been refined and included in several other projects with the goal of reducing the build time.&lt;br /&gt;&lt;br /&gt;Enabling PCH for a project is not automatic. You need to write a header file including enough library headers, and give this big header to the &lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ADD_PRECOMPILED_HEADER&lt;/span&gt;&lt;/b&gt; macro. It is also a good idea to use &lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ADD_DEPENDENCIES&lt;/span&gt;&lt;/b&gt; in the targets, to ensure that a PCH file is generated before the target components. The macro automatically adds an &lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;"-include"&lt;/b&gt; argument to each compilation step in the directory,&amp;nbsp; so PCH can be enabled or disabled for a project without needing to modify the sources.&lt;br /&gt;&lt;br /&gt;The trick is creating the big header file with enough #includes to be worth, but not too much. Compiling the PCH file takes not only time, but also many megabytes of disk space. For KMid2 &lt;a href="http://websvn.kde.org/*checkout*/trunk/playground/multimedia/kmid2/src/qt_kde.h"&gt;this header&lt;/a&gt; is named "&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;qt_kde.h&lt;/span&gt;&lt;/b&gt;" and includes mostly Qt and KDE headers, and also several Standard Library and ALSA includes. &lt;br /&gt;&lt;br /&gt;From my development machine, here are some measures comparing compile times, with and without PCH.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Without PCH&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;real&amp;nbsp;&amp;nbsp;&amp;nbsp; 1m44.137s (104137 ms)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;user&amp;nbsp;&amp;nbsp;&amp;nbsp; 1m25.417s&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;sys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0m8.149s&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;With PCH&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;real&amp;nbsp;&amp;nbsp;&amp;nbsp; 1m21.081s (81081 ms)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;user&amp;nbsp;&amp;nbsp;&amp;nbsp; 1m10.732s&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;sys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0m8.641s&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;KMid2 is a very small application. For comparison, Rosegarden 1.7 needs between 11 and 15 minutes to build in the same machine. The savings in KMid2 using PCH are 23 seconds, 22.14%. Not too bad! But KDE's build system has another way to save compiling time, and it is ready out of the box for any KDE project using the CMake option&amp;nbsp;&amp;nbsp; "&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;-DKDE4_ENABLE_FINAL=yes&lt;/span&gt;&lt;/b&gt;". This setting creates a &lt;a href="http://en.wikipedia.org/wiki/Single_Compilation_Unit"&gt;Single Compilation Unit &lt;/a&gt;for each target. Times measured for KMid2:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;With ENABLE_FINAL, and without PCH:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;real&amp;nbsp;&amp;nbsp;&amp;nbsp; 1m19.808s (79808 ms)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;user&amp;nbsp;&amp;nbsp;&amp;nbsp; 1m14.025s&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;sys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0m4.932s&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Savings: 24.329 seconds, 23.36%&lt;br /&gt;&lt;br /&gt;Conclusion: &lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ENABLE_FINAL&lt;/b&gt; is slightly better than PCH, and it can be&amp;nbsp; automatically used by all KDE4-based applications. So why bother with PCH? I think that PCH may win if you can use the same PCH file when compiling a whole set of KDE programs at once, but I've not tested this hypothesis yet...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-51419339825901642?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/51419339825901642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2009/12/precompiled-headers.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/51419339825901642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/51419339825901642'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2009/12/precompiled-headers.html' title='Precompiled Headers'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-4463796600680926017</id><published>2009-12-04T18:18:00.001+01:00</published><updated>2009-12-04T18:24:34.055+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='KMetronome'/><category scheme='http://www.blogger.com/atom/ns#' term='KMid2'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='KMidimon'/><title type='text'>Tempus Fugit</title><content type='html'>Time is the dimension of music, likewise width and height are the dimensions of pictures. When transmitting MIDI data on a wire, events don't need to be marked with time labels, because the time simply flows. MIDI is a real-time protocol. When the events are stored on data structures, like SMF (MIDI files), the events must be timestamped. In SMF, each event has a delta-time, the elapsed time since the previous event, measured in ticks. The time formats on SMF closely resembles the conventions used by the written music tradition, the &lt;a href="http://en.wikipedia.org/wiki/Sheet_music"&gt;musical score&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_cz-WEo1KrN4/Sxk_9mYe6qI/AAAAAAAAAkM/neR8UMZ5BwE/s1600-h/Tempo_KMetronome.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_cz-WEo1KrN4/Sxk_9mYe6qI/AAAAAAAAAkM/neR8UMZ5BwE/s320/Tempo_KMetronome.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;Let's start with the metronome. A metronome is a device that signals musical tempo. It is used by musicians to keep the rhythm and speed while practicing. Metronome units are beats per time unit, for instance &lt;a href="http://en.wikipedia.org/wiki/Quarter_note"&gt;crotchets&lt;/a&gt; per minute. MM=60 means 60 crotchets in one minute, or one crotchet equal to one second. The crotchet, also known as quarter note, is the double in length of a half, and the half is the double of a whole. Conversely, the half of a crotchet is an eighth, and this is the double of a sixteenth. These figures are the time lengths of the musical notes, and they are relative measures. Music is written in terms of relative times.&lt;br /&gt;&lt;br /&gt;In SMF, the time is measured in ticks. The division value, which is declared into the file header, is the number of ticks in a quarter note. Common division values are 96, 120, 240, 384, 960. The numbers are usually divisible by 3 and 4, and big enough to avoid decimal numbers when measuring the length of very short notes.&lt;br /&gt;&lt;br /&gt;Tempo changes are SMF meta-events. They may happen at any point in the time line and are represented in microseconds per quarter note. This magnitude is inverted with regarding to the usual metronome units (quarters per minute), because it can be represented by integer instead of decimal numbers. for instance, mm=60 would be represented as SMF tempo=10000000, and mm=120 as tempo=500000.&lt;br /&gt;&lt;br /&gt;As note start and length properties are represented by relative magnitudes instead of absolute times, and tempo changes are flexible enough to be placed at arbitrary points, it is easy to modify them without collateral effects. If you insert a tempo change in a SMF using a MIDI editor software, you don't need to change the length or the starting time of the following or previous notes. Of course, when the SMF is finally rendered to be listened, the sequencer engine needs to do all the time calculations. But not so fast, wait a minute!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_cz-WEo1KrN4/SxlAkhUpqWI/AAAAAAAAAkc/mBPdeaaAU4I/s1600-h/Tempo_KMidimon.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_cz-WEo1KrN4/SxlAkhUpqWI/AAAAAAAAAkc/mBPdeaaAU4I/s200/Tempo_KMidimon.png" /&gt;&lt;/a&gt;When you play MIDI files, it is a common requirement to perform slower or faster than the nominal tempo changes encoded into the file. It is like zooming in picture viewers. For instance, a student may need to render a piece half or slightly slower than it normally plays, or a dancer may need it a bit faster. The ALSA sequencer engine provides a very handy mechanism for programs to do this: the time skew property. You can enjoy this vary-speed functionality in &lt;a href="http://userbase.kde.org/KMid2"&gt;KMid2&lt;/a&gt; and &lt;a href="http://kmetronome.sourceforge.net/kmidimon/"&gt;KMidimon&lt;/a&gt;, when it is used to play MIDI files.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_cz-WEo1KrN4/SxlAdICZHYI/AAAAAAAAAkU/-XjbwdoXWc8/s1600-h/Tempo_KMid2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_cz-WEo1KrN4/SxlAdICZHYI/AAAAAAAAAkU/-XjbwdoXWc8/s400/Tempo_KMid2.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-4463796600680926017?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/4463796600680926017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2009/12/tempus-fugit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/4463796600680926017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/4463796600680926017'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2009/12/tempus-fugit.html' title='Tempus Fugit'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_cz-WEo1KrN4/Sxk_9mYe6qI/AAAAAAAAAkM/neR8UMZ5BwE/s72-c/Tempo_KMetronome.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-7885808935480883496</id><published>2009-12-03T14:07:00.000+01:00</published><updated>2009-12-03T14:07:23.784+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Parallel Lives</title><content type='html'>&lt;a href="http://en.wikipedia.org/wiki/Plutarch"&gt;Plutarch&lt;/a&gt; was a Roman-Greek historian and biographer, well known because of his work &lt;a href="http://en.wikipedia.org/wiki/Parallel_Lives"&gt;"Parallel Lives"&lt;/a&gt;, a series of biographies of famous Greeks and Romans, arranged in pairs to illuminate their virtues and vices. I wanted to try a similar approach pairing some digital audio and digital image technology citizens. But the vices and virtues only apply to the computer users and developers, because the technology, like the science, is neutral.&lt;br /&gt;&lt;br /&gt;Let me start before the computers epoch. At some point in the past, painting was the only way to fix an image in a 2D surface. The sound, on the other hand, was impossible to fix in a literal way. Only using a symbolic music language, the same used today (musical scores). In the 19&lt;sup&gt;th&lt;/sup&gt; century appeared the photography and the phonograph. At this point there were two artistic approaches for taking images: painting and photography. Music has a similar duality: it is still possible to “draw” scores, and also to take snapshots of musical performances to be preserved and later reproduced literally. Of course there are non-artistic usages of photographic and phonographic recordings, as well.&lt;br /&gt;&lt;br /&gt;Let's stop here a moment. After the photography birth, nobody really has any doubt about the future of the plastic arts. Today, we all enjoy with paintings, children learn to draw and paint, and architects and engineers use technical drawings in their daily jobs. And there is also photography, with artistic and non-artistic branches. We have specific tools in our computers to fulfill all the tasks related to the images. There is &lt;a href="http://www.krita.org/"&gt;Krita&lt;/a&gt; and &lt;a href="http://www.koffice.org/karbon/"&gt;Karbon14&lt;/a&gt;, GIMP and Inkscape, Photoshop and Illustrator. For each digital image program there is a vectorial drawing one. There is also CAD software, of course, and &lt;a href="http://en.wikipedia.org/wiki/Ray_tracing_%28graphics%29"&gt;ray tracing&lt;/a&gt;. More about this later.&lt;br /&gt;&lt;br /&gt;Bitmap (raster) graphics are digital representations of 2D images. A digital bitmap is a matrix of pixels (dots), each pixel representing the color (and sometimes transparency) for a point. Different resolutions, or pixel density, are measured in pixels by length unit. Common resolutions are 100 dots per inch, for display devices, and 600 dpi for printers. We can calculate the size in bits of a picture in bitmap format if we know the pixel size and the with and length in pixels of the picture. For instance, an image of 50x20 pixels in true color, 24 bits per pixel, weights exactly 50*20*24 = 24000 bits = 3000 bytes. It is not possible to make a similar calculation for a vectorial image, as the size depends on the complexity and details of the drawing, and not the dimensions.&lt;br /&gt;&lt;br /&gt;Digital audio is represented in &lt;a href="http://en.wikipedia.org/wiki/PCM"&gt;PCM (pulse code modulation)&lt;/a&gt; format as a stream of samples. Each sample is a measure taken by a microphone in equal instants of time. Resolution, or sampling frequency, is measured in samples per time unit. For instance, in Hz (samples per second). Common resolutions are 44100 Hz for CD quality recordings, or 96000 for higher quality. We can calculate the size of an audio recording knowing the number of channels, the sample size, sampling frequency and time length. For instance, a recording of 1 second of monaural (1 channel) sound, using 24 bit samples at 44100 Hz takes 24*44100*1*1= 1058400 bits = 132300 bytes.&lt;br /&gt;&lt;br /&gt;Both bitmap graphics and PCM digital audio recordings are usually compressed to reduce it's weight. Some of the compression methods also discard the less relevant information. The JPEG and the MP3 formats are examples of lossy compression. Uncompressed formats are for instance BMP and WAV. Lossless compression examples are PNG and FLAC.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Vector_graphics"&gt;Vector graphics&lt;/a&gt; are stored in several file formats. A modern standard is SVG, based on XML. There is also a XML-based music representation, called &lt;a href="http://www.recordare.com/xml.html"&gt;MusicXML&lt;/a&gt;. A very common music format, part of the MIDI standard is &lt;a href="http://en.wikipedia.org/wiki/Musical_Instrument_Digital_Interface#Standard_MIDI_File_.28SMF.29_Format"&gt;SMF (Standard MIDI File)&lt;/a&gt; using the .MID filename extension. Vector graphics need to be rendered into bitmap graphics before being displayed, using a rendering graphics library as Cairo. Same happens with the MIDI music, rendered into audio with a synthesizer.&lt;br /&gt;&lt;br /&gt;Vector graphics are usually schematic, not very photo realistic. But there are some ray tracing programs allowing photo realistic rendering of a symbolic textual vector graphics source. Something similar happens with MIDI rendering using samplers, producing orchestral music with high level of realism. But many MIDI synthesizers usually leave a very characteristic electronic timbre.&lt;br /&gt;&lt;br /&gt;When you render an empty vector graphic (say, a simple white surface) into a bitmap, you can realize that the size of the resulting rendering doesn't depend on the image contents, while the size of the original vector graphics image does. Same with MIDI. If you create a MIDI file of John Cage's composition &lt;a href="http://en.wikipedia.org/wiki/4%E2%80%B233%E2%80%B3"&gt;4'33''&lt;/a&gt; (which is absolute silence), it will take only a few bytes. The rendering into digital audio weights several megabytes uncompressed. The same size taken by 4 minutes and 33 seconds of a jazz song.&lt;br /&gt;&lt;br /&gt;About the transformations. The name Scalable Vector graphics already hints one of its strengths: scalability. You can resize a vector graphic without losing quality, in contrast to a bitmap graphic resize operation. In digital audio, the only dimension is time. You can change the speed, the &lt;span style="font-style: italic;"&gt;tempo&lt;/span&gt; of a musical composition in MIDI format without losing quality at all. Or you can transpose a song, lowering or rising the notes' pitches. In digital audio you can do those transformations (time stretch and pitch shift) using a &lt;a href="http://en.wikipedia.org/wiki/FFT"&gt;FFT (fast Fourier transform)&lt;/a&gt; algorithm, but it usually creates artifacts. You can do more transformations in MIDI: mute one instrument, or change it for another one. Adjust the volume of an instrument, or even individual notes.&lt;br /&gt;&lt;br /&gt;There are also deep differences in computer support for these technologies. Digital audio is very well supported, like bitmap graphics. Vector graphics are also very well supported, and since the adoption of the SVG standard, it has been very beneficial for Graphic User Interfaces. MIDI is, by contrast, really bad supported, both for hardware and software. Modern graphics cards include 2D and 3D acceleration, and graphics libraries like Cairo and Qt4  obtain a real benefit of the hardware enhancements, and the graphics acceleration is being increasingly adopted by most computer manufacturers and software vendors. On the other hand, audio hardware interfaces have been dropping MIDI support, which was never very good (remember the old cheesy sound of MIDI files?) And Linux distros don't include an easy to use software synthesizer. Both Windows and Mac OSX include a software synthesizer ready to be used out of the box, including the Roland SoundCanvas (lite) SoundFont, which is not a beast but has reasonable quality. Meanwhile, the Linux distros don't care about that. And what about MIDI software? OSSv4 dropped MIDI support. The ALSA sequencer is very good, but needs more good applications.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-7885808935480883496?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/7885808935480883496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2009/12/parallel-lives.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/7885808935480883496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/7885808935480883496'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2009/12/parallel-lives.html' title='Parallel Lives'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-7647389333481885627</id><published>2009-12-02T15:19:00.007+01:00</published><updated>2009-12-02T15:33:23.033+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='VMPK'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>VMPK supported platforms</title><content type='html'>&lt;p&gt;I've read &lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=557899"&gt;a debian bug&lt;/a&gt; complaining because VMPK fails to compile in FreeBSD (by the way, it will fail also in other Unix flavors, except maybe SGI Irix).&lt;/p&gt;&lt;p&gt;When I was planning VMPK, it was going to be a Linux only program, ALSA sequencer based. Indeed, there is still a &lt;a href="http://kmetronome.sourceforge.net/aseqmm/vpiano_8cpp-example.html"&gt;test program&lt;/a&gt; in my aseqmm library using the same piano widget. Because I only needed limited functionality, I decided to try &lt;a href="http://www.music.mcgill.ca/%7Egary/rtmidi/"&gt;RtMIDI&lt;/a&gt; instead, which offers Windows and Mac OSX support. As Qt4 is also supported in these operating systems, the program was born multi-platform.&lt;/p&gt;&lt;p&gt;Maybe the number of supported platforms is going to grow in the future. That depends on RtMIDI. Any volunteer out there? The developer of RtMIDI, Gary P. Scavone, is very collaborative and kindly accepted the patches I've sent him in the past. About OSS, there is a note in the RtMIDI documentation saying that a&lt;a href="http://www.music.mcgill.ca/%7Egary/rtmidi/#linux"&gt; decision was made to not include support for the OSS API&lt;/a&gt;. And &lt;a href="http://manuals.opensound.com/developer/MIDI.html"&gt;there is no MIDI support in OSSv4&lt;/a&gt;. But there are more MIDI APIs, like Jack MIDI...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-7647389333481885627?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/7647389333481885627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2009/12/vmpk-supported-platforms.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/7647389333481885627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/7647389333481885627'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2009/12/vmpk-supported-platforms.html' title='VMPK supported platforms'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6982925173228101953.post-274944650988822521</id><published>2009-12-01T21:55:00.000+01:00</published><updated>2009-12-02T11:46:40.949+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='KMid2'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Inauguration</title><content type='html'>So, Why I am writting this blog?&lt;br /&gt;&lt;br /&gt;I am a software developer to make a living and also as a passion, vocational activity, developing free software &lt;span style="font-style: italic;"&gt;pro bono&lt;/span&gt;. Almost always for Linux, using &lt;a href="http://doc.trolltech.com/"&gt;Qt&lt;/a&gt; and &lt;a href="http://www.kde.org/"&gt;KDE&lt;/a&gt; platforms, and &lt;a href="http://www.midi.org/aboutmidi/index.php"&gt;MIDI technology&lt;/a&gt;. That is: &lt;a href="http://wiki.linuxaudio.org/apps/categories/midi_software"&gt;music software&lt;/a&gt;. Some of my programs: &lt;a href="http://userbase.kde.org/KMid2"&gt;KMid2&lt;/a&gt;, a MIDI/karaoke player, &lt;a href="http://vmpk.sf.net/"&gt;VMPK&lt;/a&gt;: a virtual piano, &lt;a href="http://kmetronome.sf.net/"&gt;KMetronome&lt;/a&gt;: a MIDI metronome, &lt;a href="http://kmetronome.sf.net/kmidimon"&gt;KMidimon:&lt;/a&gt; a MIDI monitor. I will talk here about these, and other computer programs.&lt;br /&gt;&lt;br /&gt;Sometimes people is surprised by my interest on MIDI. Isn't it a dead, ancient technology? Why should anybody be interested on MIDI, having better alternatives like MP3? What is really MIDI about? I will try to answer these questions in future posts.&lt;br /&gt;&lt;br /&gt;Meanwhile, I've released a few days ago a &lt;a href="http://sourceforge.net/projects/kmid2/files/"&gt;preview of KMid2&lt;/a&gt;, a new incarnation of the classic KMid software. Here is a little demo. "Ay, linda amiga" is a renaissance anonymous Spanish song from the  &lt;a href="http://en.wikipedia.org/wiki/Cancionero_de_Palacio"&gt;"Cancionero de Palacio"&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;object height="385" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/hmmB1svetwQ&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/hmmB1svetwQ&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="385" width="480"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6982925173228101953-274944650988822521?l=midi-clorianos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://midi-clorianos.blogspot.com/feeds/274944650988822521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://midi-clorianos.blogspot.com/2009/12/inauguration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/274944650988822521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6982925173228101953/posts/default/274944650988822521'/><link rel='alternate' type='text/html' href='http://midi-clorianos.blogspot.com/2009/12/inauguration.html' title='Inauguration'/><author><name>Pedro Lopez-Cabanillas</name><uri>http://www.blogger.com/profile/06773011931515405946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_cz-WEo1KrN4/SxFciiooJWI/AAAAAAAAAjo/NgzmZucvYzg/S220/rec1b.png'/></author><thr:total>0</thr:total></entry></feed>
