Moved to tumblr

25.01.2011 – 9:50

My webspace is moving to tumblr: http://klaasreineke.tumblr.com/

The BrutefirDRC manuals and all other stuff will only be updated on the new webspace. Toby has created a mailing list for BrutefirDRC. If you have any questions, tips or problems feel free to discuss them on our mailing list: http://groups.google.com/group/brutefirdrc

BrutefirDRC 1.2.0 released: now supporting all sample and bitrates

02.01.2010 – 20:34

The new release 1.2.0 of BrutefirDRC is out! Features:

  • supporting audio files with different samplerate and different bitrates (thanks to Toby again, he changed the wrapper script to make this possible)
  • The user can define a directory with his own custom-convert Template files to be used when enabling the plugin
  • The PCM conversion has been deleted because FLAC is doing the job equally well

Bitrate and samplingrate
The support for all sample and bitrates has been implemented by Toby. The brutefirwrapper now uses WAV as input and output format. The wrapper script can read the samplerate from the WAV header and resample the underyling filters as needed.
For this to work all conversion templates have been changed to transcode input files to WAV in 24bit format.

Tested formats known to work:

  • Flac with a bitrate of 16/24bit and a samplerate of 41000,48000 or 96000
  • MP3 with a samplerate of 41000 or 48000 (mp3 does not support samplerates of 96000)
  • OGG with a samplerate of 41000,48000 or 96000
  • WAV with a bitrate of 16/24bit and a samplerate of 41000,48000 or 96000

Tested formats that are not working on my installation (Ubuntu 9.10 with SqueezeBoxServer version: 7.4.1 – r28947 @ Tue Oct 20 07:58:02 PDT 2009):

  • AIFF all sampling and bitratess
  • WMA (no WMA-Decoder is included in the installation, so it cannot be transcoded to WAV)

All other formats have not been tested.

Installation

After replacing the old Plugin with the new version you need to

  • enable BrutefirDRC for all players that are using it
  • change your Brutefir Config-Files to use 24bit input (from sample: “S16_LE”; to sample: “S24_LE”;)!! See the example configuration files in filter_examples_1.2.0.tar.gz

Fix release of BrutefirDRC for Squeezeboxserver 7.4.0

05.10.2009 – 9:48

The new version 1.1.1 of brutfirDRC works with the stable release of Squeezeboxserver 7.4.0 from Slimdevices. It only contains a small fix to work with the slightly different API of the new release, thanks to Michael Amster to help fixing the issue.

Just download the new version from Sourceforge. Note that it is only tested with the current stable version 7.4.0.

By the way: a few warnings are logged to the squezzeboxserver log, just ignore them for now. I am going to use the non deprecated versions of the mentioned functions in the next release.

A few things to keep in mind when updating:

  1. The plugin directory for BrutefirDRC must be read and writeable for the squeezeboxcenter process
  2. Change the preferences of BrutefirDRC to use the new path to your filters and settings, if you changed them
  3. Change the filter files to use the new path if you moved them: i.e. my filters have been changed to
    “filename: “/etc/squeezeboxserver/BrutefirDrc/filters/filtername.pcm”; from “filename: “/etc/squeezecenter/BrutefirDrc/filters/filtername.pcm”;”
    The filter examples on sourceforge contain the new path to squeezeboxserver, to be consistent with the new name.

ivy4r using Apache Ivy with Ruby

12.07.2009 – 19:07

Our company uses Apache Ivy for dependency management and tracks all our artifacts including EARs and WARs with Ivy. Ivy is great and provides a lot of great features but depends on Apache Ant. Making builds with Ant is a pain, because Ant is no programming language and misses a lot features needed for bigger builds including deployments of servers for testing and stuff like this.

We are using Ruby on some projects and really wanted to give Apache Buildr a try. The problem with buildr is that it plugs ifself into the maven dependency management. Downgrading dependencies back to maven was not an option, so we needed a way to use Ivy with Buildr.

ivy4r to the rescue

To integrate ivy into buildr ivy4r was created. Ivy4r is a wrapper around Ivy using antwrap and provides a pure ruby interface to ivy. The interface provides all Ant tasks that can be useful. On top of this two extensions are provided one for buildr one for rake. By requiring the appropriate extension ivy can be integrated seamless into the build process using the standard way buildr extensions are configured.

For more information check out the ivy4r documentation on github or rubyforge:

Using hoe and jeweler for rubyforge and github

24.06.2009 – 18:54

I asked myself how to get started using github as a development platform but still support rubyforge as the main server for stable gem versions?

First I tried to use only hoe but did not get a gemspec file out of it. So I added jeweler to get a gemspec via the rake target gemspec but did not want to configure hoe and jeweler separate. So I used the hoe generated gemspec object to initialize jeweler and thought that it was a good solution.

But then I stumbled upon the best solution, hoe supports the generation of gemspecs only the target name is a bit akward. Just call rake with the command rake debug_gem as recommended on github.

The previous solution combining hoe and jeweler

The rake file:

require 'rubygems'
require 'hoe'
require 'yourgem'

hoe = Hoe.spec 'yourgem' do |p|
  # self.rubyforge_name = 'yourgemx' # if different than 'yourgem'
  p.developer('Yourname', 'yourmail@example.com')
  p.remote_rdoc_dir = '' # Release to root only one project
  p.extra_deps << yourdeps
  File.open(File.join(File.dirname(__FILE__), 'VERSION'), 'w') do |file|
    file.puts Yourgem::VERSION
  end
end

begin
  require 'jeweler'
  Jeweler::Tasks.new(hoe.spec)
rescue LoadError
  puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
end

Ruby RDoc ressources

12.06.2009 – 10:02

I quite often search for infos about RDoc, so here are some useful links.

How to write RDoc comments

How to browse RDoc for installed gems

  • bdoc very nice browsing for documentation should be used with the better hanna rdoc template
  • sinatra-rubygems reimplementation of gem server to use apache not webrick
  • Gembox sinatra based application to browse the locally installed gems
  • docs.github.com for github based projects that use rdoc.info

New release of BruteFIR Room Correction for SC7.4 (1.1.0)

28.02.2009 – 11:24

Checkout the plugins sourceforge page to download the new release 1.1.0! It is compatible with the upcoming version of SqueezeCenter 7.4, because of the PCM support it does not work with any other version.

Important after installation: Delete the old custom-convert.conf or delete all BrutefirDRC specific lines from it. The Plugin now writes a custom-convert.conf in it’s home directory. The old file is no longer used!

Features:

  • Support to stream in PCM (raw format, former WAV), FLAC or MP3
  • Plugin can be enabled or disabled for any player without restarting SqueezeCenter
  • Conversion Type can be changed for any player without restarting SqueezeCenter
  • custom-convert.conf is written to the plugin home directory
  • brutefirwrapper now in Plugins Bin directory: helps to identify the plugin conversions in WebGUI file types dialog all plugin related conversions are displayed as “[format]/brutefirwrapper”
  • sox is used from SqueezeCenter installation no need to install it manually in Version 14.x

If you have any problems with a file format not working try to disable all other conversion for the file type. I needed to disable other conversion options for ogg to work properly.

If you have any problems drop me a note.

New release of BruteFIR Room Correction (1.0.1)

24.01.2009 – 14:06

Checkout the plugins sourceforge page to download the new release 1.0.1! It is the first 1.x release thought that the plugin is stable enough for this, after no significant changes have been commited in over a half year :)

Notes:

  • needed to remove the support for sampling rates in non MP3 files different to “44100″ because of a bug/feature within the new transcoding framework. See the thread Significant changes to transcoding framework and the corresponding bug report for more information about the issue.
  • SOX 1.14.x is needed because of changes in the command line interface
  • SqueezeCenter 7.3.2 is needed because of the new transcoding framework
  • small changes that have been in the SVN for a long time are out now
  • tested with: flac, mp3 and ogg

If you have any problems with a file format not working try to disable all other conversion for the file type. I needed to disable other conversion options for ogg to work properly.

If you have problems with other file formats drop me a note.

JRuby access to C libraries using FFI

02.09.2008 – 10:59

With the new release of JRuby 1.1.4 it is possible to use the rubinius FFI API. With FFI you can access C libraries via plain ruby code. To get started with FFI the only documentation I have found is provided by Free Minds blog entry. Additional info may be posted to the discussion using jruby-ff. Hopefully gem authors start to implement extensions with FFI besides their native extensions to make it possible to use the gem with Rubinius and JRuby.

One problem is to provide ruby callback functions for the C library. I am trying to figure out how to extend sqlite3-ruby to work with jruby. Sqlite3-ruby uses swig to create a native binding to the sqlite3 library. Within driver.rb some callbacks are registered for the C code like:

API.sqlite3_busy_handler( db, API::Sqlite3_ruby_busy_handler, cb )

API::Sqlite3_ruby_busy_handler is a callback implemented in the native extension. FFI does not provide any support for callbacks. To support C APIs that use callbacks a workaround must be found.

BrutefirDrc 0.93 released

19.05.2008 – 20:12

Checkout the plugins sourceforge page to download the new release 0.93!

Features:

  • Blind testing: fast switching of tested filters via holding the “1-button” on the remote control while in “Now Playing”
  • Full Support for audio files with non 44100 sampling rates.
  • automatic rewriting of custom-convert.conf on startup of plugin to make update easier