Re: [ecasound] ecasound and lua?

From: Philipp Überbacher <hollunder@email-addr-hidden>
Date: Tue Jul 13 2010 - 13:07:01 EEST

Excerpts from Joel Roth's message of 2010-07-12 13:56:40 +0200:
> 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.

Sounds quite impressive. We have only about 600 in the official
repository and it's hard to say how many exist as 'recipe'. That's why I
had to write 'recipes' to get nama to build. I found a helpful tool to
do it, but it's likely not optimal yet.

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

Yep, that's the nice thing. I keep my system clean and possibly help
others. I currently maintain ~70 of those 'recipes', pretty much all of
them audio related. Once I'm sure my 'recipe' for nama works, I'll
upload it and thus make it available to others.

> > > > 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!

Wow, when was that? I only came in contact with it right at the
beginning of the 2.* series, but didn't build it immediately myself.
Back then I was using ubuntu and derivatives. I believe ardour was one
of the first Programs I built from source, and it wasn't too hard.

> 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.

This sounds like a sensible thing. I'm looking forward to try nama.

> > > > $ 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.

$ ecasound -c
**************************************************************************
* ecasound v2.7.1 (C) 1997-2009 Kai Vehmanen and others
**************************************************************************
(eca-chainsetup) Chainsetup "untitled-chainsetup"
(eca-session) NOTE: Unable to create a valid chainsetup from the command-line arguments.
ecasound ('h' for help)> preset-register
(eca-control) Registered effect presets:

(eca-object-factory) ERROR: Unable to find LADSPA plugin "1205"
(audiofx_misc) WARNING! Shift-% must be greater than 12.50%! Limiting to the low-limit.
1. dyn_compress_brutal, -pn:dyn_compress_brutal:gain-%
2. dyn_compress_hard, -pn:dyn_compress_hard:gain-%
3. dyn_compress_infinite, -pn:dyn_compress_infinite:gain-%
..

Seems like there's some problem with one of the plugins, maybe nama
doesn't like that? I have yet to find the package that contains that
plugin.

> 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.

I do get errors after running ./build:

Can't locate Text/Template.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.10.1 /usr/share/perl5/site_perl/5.10.1 /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/core_perl /usr/share/perl5/core_perl /usr/lib/perl5/current /usr/lib/perl5/site_perl/current .) at ./preproc line 18.
BEGIN failed--compilation aborted at ./preproc line 18.
mv: cannot stat `../lib/Audio/Nama/Nama.pm': No such file or directory
Can't locate Text/Template.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.10.1 /usr/share/perl5/site_perl/5.10.1 /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/core_perl /usr/share/perl5/core_perl /usr/lib/perl5/current /usr/lib/perl5/site_perl/current .) at ./preproc line 18.
BEGIN failed--compilation aborted at ./preproc line 18.
The path 'lib/Audio/Nama.pm' does not exist, or is not a file at inc/Module/Install/Metadata.pm line 219.
Now you can go to the nama toplevel directory and type:
        make; make test
If you're happy with the result you can do:
        make install

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

It's done.

> > 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...@effects %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.

Ha, wouldn't have thought about that, but it works! Nama starts!

It seems to parse -g, but the gui doesn't start and I don't see an
error. I do have tk installed: tk 8.5.8

> > > 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.

I learn a bit of bare ecasound, to see what it's capable of and how it
works. There are still a lot of open questions.

> 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

Thanks for looking into that. I'm looking forward to using nama. I would
probably nick the one or the other thing from nama, but I heard that
perl is pretty much a write-only language :)
Well, the quest goes on :)

-- 
Regards,
Philipp
--
"Wir stehen selbst enttäuscht und sehn betroffen / Den Vorhang zu und alle Fragen offen." Bertolt Brecht, Der gute Mensch von Sezuan
------------------------------------------------------------------------------
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@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecasound-list
Received on Tue Jul 13 16:15:02 2010

This archive was generated by hypermail 2.1.8 : Tue Jul 13 2010 - 16:15:03 EEST