Re: [ecasound] ecasound and lua?

From: Joel Roth <joelz@email-addr-hidden>
Date: Mon Jul 12 2010 - 14:56:40 EEST

On Mon, Jul 12, 2010 at 10:07:08AM +0200, Philipp ??berbacher wrote:
> The distribution I'm using is called Arch Linux
> (http://www.archlinux.org/). One of the nice things about it is that
> it's easy to write buildscripts (so called PKGBUILDs) that download the
> source, compile it and create a package. This way everything I install
> is handled by the package management system.
> Here's the thing I use for building traverso from git:
> http://aur.archlinux.org/packages/traverso-git/traverso-git/PKGBUILD

I've learned a bit about the Debian packaging system
hanging out on the #debian-perl channel on irc.debian.org
as I've groped my way to packaging Nama.

The dependencies of CPAN are constantly changing as
individual authors update their modules: there is no
guarantee that a dependency graph using the most recent
module versions at any particular time will enable
the modules to build.

Debian's packaging system is desirable for perl modules in
that in order to be uploaded, each package has to build
correctly with all the dependencies.

So even with the 'unstable' distribution, we have something
behind the latest CPAN versions, however the dependencies
are more reliably guaranteed to be met.

Debian packages some 1500+ perl modules. The Debian perl
group gets end-user bug reports and reports them upstream.
So it's quite a good ecosystem.

Great if something similar is possible for Arch Linux. That
would mean you are creating recipes for others than
yourself.

> > > What I didn't tell you is that I'm involved as tester/user in the Traverso
> > > project, where I got the title 'bug creator'. Naturally I have to honour
> > > my name, so here's the first nama bug I ran into:
> >
> > Well, I had to look at Traverso. It seems very cool.
> > I'll take my time installing it. Debian wants me to do a
> > heart transplant, which I'd need a backup for first. :-)
>
> The Debian package was outdated (some pre-release version) and broken
> (qt breakage) for a while, not sure it's fixed yet.
> After a while of slow development Traverso is moving at full speed since
> a couple of months, Remon already did wonders with the UI (fully qwerty
> controllable) and does heavy surgery on the internal routing. I can
> recommend to check out git, but it's currently by no means stable enough
> for production, which is one reason for why I'm here :)

Oops.

I chose Ecasound (and later writing a front-end for it) due
to my simple requirements, and due to instabilities at the
time with Ardour. Just installing all the libraries to build
Ardour took weeks!

Ecasound is _very_ mature. Since my project targets the
Ecasound ECI API, it's almost completely independent
of Ecasound's internals. That separation of concerns
helps Nama be relatively simple.
 
> > > $ nama
> > > ////////////////////////////////////////////////////////////////////
> > > / /
> > > / Nama multitrack recorder v. 1.062 (c)2008-2009 Joel Roth /
> > > / /
> > > / Audio processing by Ecasound, courtesy of Kai Vehmanen /
> > > / /
> > > ////////////////////////////////////////////////////////////////////
> > >
> > >
> > > Using existing Ecasound server
> > > Creating socket on port 2868.
> > > Regenerating effects data cache
> > > illegal return value, stopped at /usr/share/perl5/vendor_perl/Audio/Nama.pm line 1413.
> >
> > Yeah, that's a Net-ECI problem. We're supposed to get 256 as
> > a return value, or we die. :-(
> >
> > To see what actually happened, try starting Nama with
> > the -D flag.
>
> It lists a whole lot of ladspas and ends with:
> 159. Harmonic generator
> -el:harmonicGen,'Fundamental magnitude','2nd harmonic magnitude','3rd harmonic magnitude','4th harmonic magnitude','5th
> iam: preset-register
> return value:
> length:
> type:
> reply:
> illegal return value, stopped at /usr/share/perl5/vendor_perl/Audio/Nama.pm line 1413.

Please try 'preset-register', the command that failed here,
directly from within Ecasound.

Most likely, my regular expression is failing.
Unfortunately, my debugging code doesn't list the
unparsed return string. :-(

I'll put in a fix into the git version, if you'd like
to download and build from there.

> > To get quickest satisfaction, :-) try installing
> > Audio::Ecasound. That will be automatically used,
> > bypassing Net-ECI.

I still recommend this.
 
> It breaks with these lines, which make me look like a real idiot,
> doesn't it? :)
>
> el:zm1&sort_ladspa_effects
> sorted array length: 366
> iam command: preset-register
> iam command: ladspa-register
> &serialize
> file: /home/murks/audio-projects/nama/.effects_cache, class: Audio::Nama::
> variables...@email-addr-hidden %effect_i %effect_j %e_bound @ladspa_sorted %effects_ladspa %effects_ladspa_file %ladspa_unique_id %ladspa_label %ladspa_help @effects_help
> attempting to eval $state{'effects'} = \@Audio::Nama::effects
> attempting to eval $state{'effect_i'} = \%Audio::Nama::effect_i
> attempting to eval $state{'effect_j'} = \%Audio::Nama::effect_j
> attempting to eval $state{'e_bound'} = \%Audio::Nama::e_bound
> attempting to eval $state{'ladspa_sorted'} = \@Audio::Nama::ladspa_sorted
> attempting to eval $state{'effects_ladspa'} = \%Audio::Nama::effects_ladspa
> attempting to eval $state{'effects_ladspa_file'} = \%Audio::Nama::effects_ladspa_file
> attempting to eval $state{'ladspa_unique_id'} = \%Audio::Nama::ladspa_unique_id
> attempting to eval $state{'ladspa_label'} = \%Audio::Nama::ladspa_label
> attempting to eval $state{'ladspa_help'} = \%Audio::Nama::ladspa_help
> attempting to eval $state{'effects_help'} = \@Audio::Nama::effects_help
> &prepare_effect_index
> Can't chdir('~/audio-projects/nama'): No such file or directory at /usr/share/perl5/vendor_perl/Audio/Nama.pm line 1065

Probably you should try using /home/username/audio-projects
in .namarc.
 
> But it does exist, has drwxr-xr-x and is owned by my user.
>
> > By the way, what kinds of signal processing would
> > you be wanting to do with Ecasound?
>
> Mainly simple recording, and for that there are lots of choices. I
> started to learn playing the piano only two years ago, I'm still very
> bad at it, but it's fun to record a few songs and give them away as
> little presents. Last time I did this with Traverso, but I could have
> easily done it in ecasound as well, since I didn't overdub at all.
> For that, maybe normalization, a little reverb and fade out of the
> track is likely enough. It would be nice to have such a CD ready in
> about two weeks, I'll try to use ecasound this time.
> Everything else I did or want to do is pretty much experimental, but
> still just recording and effects processing.

> I hope that ecasound can serve as a stable basis for those recording
> needs, and I hope that my frontend will give me just the features I
> want. Besides that, I hope it will be fun to write. Actually it already
> is, despite not a single line written :)

You should be able to use naked Ecasound to accomplish what
you like, although it may take a bit of fiddling to learn
how to do it efficiently.

Nama is trying to fill that niche and has the advantage of
quite a bit of cumulative development effort. :-)

Good luck. And thanks for your detailed report.

Joel

> --
> Regards,
> Philipp

-- 
Joel Roth
------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
Ecasound-list mailing list
Ecasound-list@email-addr-hidden
https://lists.sourceforge.net/lists/listinfo/ecasound-list
Received on Tue Jul 13 08:15:02 2010

This archive was generated by hypermail 2.1.8 : Tue Jul 13 2010 - 08:15:02 EEST