Well, I really wondered after that thread on speech synthesis
on how something done with festival would actually sound mixed up.
I this experiment in nearly half an hour, so dont think it's
something hard. I just wrote the voices in that xml-like syntax
festival uses for singing songs. Then I wrote a very
basic arrangement in cheesetracker, plus added
some effects and a bit of compressor to the voice.
The result is actually better than what I was expecting,
though it's hard to keep festival in tempo.
Here's the little thing I did:
http://reduz.com.ar/songs/evilrobot.ogg
Have fun!
Juan Linietsky
The Rosegarden team are pleased to announce the release of
Rosegarden-4 0.9.5, an audio and MIDI sequencer and score editor
for Linux. To download the source package, go to the homepage at
http://www.all-day-breakfast.com/rosegarden/
This release contains a host of new features and improvements
over the previous release, and is nearly feature complete for 1.0.
Features include:
o Score, piano-roll, event list and track overview editors
o MIDI and audio playback and recording using JACK
o Audio plugin support using LADSPA
o Score interpretation of performance MIDI data
o MIDI file I/O, Csound and Lilypond export
o Shareable device (.rgd) files to ease MIDI portability
o Translations into Russian, Spanish, German, French and Welsh
New features since 0.9.1 include:
o Better sequencer comms layer for much more robust MIDI sequencing
o Control rulers for editing velocity and control events
o Controller management for MIDI devices
o Event list editor with some actual editing capabilities
o Event filter on current selection
o Classification of audio plugins using liblrdf
o Percussion and variations support in bank management
o Import Studio from File
o Markers
o File merging for all file types
o Notation rendering using real scalable fonts (one supplied)
o Multi-page notation rendering with panner
o Much better score printing
o Print Preview
o Segment colouring
o Configurable metronome
o Better Lilypond export
o MusicXML export that works, though it's still pretty basic
o Can now drag notes around in notation view
o Several new .rgd device files
o Better handling of MIDI devices that come and go
o Much improved audio scheduling infrastructure
o Ability to drag-and-drop audio files onto segment canvas
o Many optimisations throughout
Chris
Roger Larsson:
> > > > So how is the low-latency situation for 2.6? I did install 2.6 on
> > > > my private machine, but was not able to get better performance
> > > > than 2.4 with ll+pre (kicked out of jack-graph pretty soon with 128
> > > > frames period). Is there a trick to get better lowlatency performance
> > > > with 2.6 I don't know about?
> > >
> > > Did you compile with CONFIG_PREEMPT enabled?
> >
> > Yes. :)
>
> echo 1 > /proc/sys/kernel/lowlatency ?
> If you have enabled "Control low latency with sysctl"
>
I didnt know there were an option for lowlatency for 2.6?
However, I do remember there were no /proc/sys/kernel/lowlatency
file. Have to check when I get home.
> It might be possible that something like lock break is needed...
>
> Lots of good stuff is available at:
> http://www.tech9.net/rml/linux/
> But most are for 2.4 or early 2.5 kernels
>
I couldn't find a lock-break patch for 2.6 there, and the other
one that might might have helped, the Scheduler Hints patch, was
not very updated. But I think I remember reading about setting
various kinds of scheduler-behaviour by using a kernel option?
Could that make the situation better?
This is a bit irritating, because in 2.4.23-pre8+ll+pre I can
run with a frame size of 32 in jack and run ardour for a very
long time without being kicked, and have very few xruns.
With 2.6.0-pre4 I cant even run with 128 for more than a minute or so,
and I get lots of xruns before that.
My machine is nforce2, xp2800, using the built in soundcard,
built-in gfx card, ps2 mouse+keyb., and no pci or agp slots used.
--
By request of some of the people here, I am posting a complete
song that you can open and check, as well as the lyric files (xml),
and the notes on the problems i found when creating the sounds
with festival. The song was composed in one hour and you can see
how the audio chunks were mixed, as well of which ladspa effects
were applied to 'produce' it.
http://reduz.com.ar/festisong
The song (.ct file) can be opened with the (unreleased yet) version of
cheesetracker, as it uses the new equalizer filters and all that.
http://reduz.dyndns.org/cheesetracker-0.9.5.tar.gz
Cheers! Lets hope we get more festivalized songs soon :)
Maybe Paul Davis will consider integrating festival to ardour hehe...
Juan Linietsky
I'm potentially in the market for a new box before end of year. Has anyone
found anything to show whether Athlon64 (or the high-end FX line) are worth
it for audio? Assume some legacy audio code under legacy OS :-/
Tim
Benno Sennoner and I were discussing today on IRC about
the usual fixed point vs floating point (regarding to some resampling code)
We developed some tests and ran them on a variety of computers.
It would be interesting if ladders here could run them on different computers
(and specially non x86, like amd64. or the Gx processors) so we can
see what performance can we expect on each , and how things
seem to be shaping for the future. It will also be a key factor
on how our projects will develop in the future.
The code is available at:
http://reduz.dyndns.org/resamp_fixp.c // fixed point version
http://reduz.dyndns.org/resamp_float.c // floating point version, portable
http://reduz.dyndns.org/resamp_float_fistl.c // X86 VERSION ONLY!! Uses fistl
instruction
The results dont mean just int vs float performance. They
also test for float->int conversion, which is common
in most algorithms that work with buffers. It is a linearly
interpolated resampling with volume control.
please use GCC options -
-O3 -ffast-math -march=<yourcpu> so it's a fair comparison
results from other compilers is also appreciated!
Here's some results for reference
****************************************************************
vendor_id : AuthenticAMD
model name : AMD-K6(tm) 3D processor
cpu MHz : 412.508
cache size : 64 KB
flags : fpu vme de pse tsc msr mce cx8 pge mmx syscall 3dnow k6_mtrr
bogomips : 822.47
resamp_fixp - 0m8.460s
resamp_float_fistl - 0m27.390s
****************************************************************
vendor_id : AuthenticAMD
model name : AMD Duron(tm) Processor
cpu MHz : 951.701
cache size : 64 KB
flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat
pse36 mmx fxsr syscall mmxext 3dnowext 3dnow
bogomips : 1900.54
resamp_float - 0m11.180s
resamp_float_fistl - 0m5.810s
resamp_fixp_optimized - 0m2.790s
************************************************
Benno gave me some results:
Intel p4 1800 celeron
resamp_float_fistl - 4.00user
resamp_fixp - 4.51user
(float faster?)
--------------------------------
VIA nehemiah 1GHz
resamp_float_fistl - 0m21.079s
resamp_fixp - 0m7.129s
*************************
Some results on SPARC:
2x 125MHz HyperSPARC
resamp_fixp - user 2m59.010s
resamp_float - user 0m44.290s
(float faster! :)
****************************
Intel 2.4 GHZ P4:
resamp_float - 0m3.440s
resamp_float_fistl - 0m2.960s
resamp_fixp - 0m1.450s
************************
1.25GHz G4 (laptop)
resamp_float - 0m11.170s
resamp_fixp - 0m2.130s
-----------------------------------
Conclusions SO FAR.
My own conclusions about the subject is that the float -> int conversion is
STILL the biggest bottleneck on most common architectures. And until this is
sorted out, fixed point is still the best solution for some specific cases,
and I dont see any problem mixing it with floating point code. If you look
at that algorithm closely in the source, you could replace "counter/
increment"
for purely fixed point values, and do the rest (managing the samples) in
float. This will undoubly speed it up..
Cheers!
Juan Linietsky
On Thu, 27 Nov 2003, Martijn Sipkema wrote:
> [...]
> > So how is the low-latency situation for 2.6? I did install 2.6 on
> > my private machine, but was not able to get better performance
> > than 2.4 with ll+pre (kicked out of jack-graph pretty soon with 128
> > frames period). Is there a trick to get better lowlatency performance with
> > 2.6 I don't know about?
>
> Did you compile with CONFIG_PREEMPT enabled?
>
Yes. :)
--
Have you seen this:
http://gsd.ime.usp.br/~lago/masters/
It is a networked LADSPA plugin. Maybe it could be made into a jack system.
What would be nice is to have something like your net client on one computer,
and a network jackdriver running the jackgraph on a different computer.
You do get one period extra latency between the two graphs.
G
--
electronic & acoustic musics-- http://www.xs4all.nl/~gml
Hi,
i have this silly idea of implementing a very simple jack client.
It would do nothing else, but offer a number of writable and readable
ports [lets assume 2 of each for now]. Now, in the background, this
jack-client opens a number of UDP sockets [me is not a network expert,
so bear with me here :)]. 2 UDP ports on which it listens to incoming
data, which it then feeds into the readable ports.
Any data that comes in on its writable ports will be made available as
simple. It opens 2 UDP sockets, specifies a target adress and sends out
the audio data.
The mechanism is basically completely connection-less. packets that
belong to the same stream just come from the same ip-adress, maybe
carrying an index number to denote the port number.
This way it would be vey easy to stream data from one jack graph to
another on a different computer. Latencies will not be considered at
all. These connections must be considered to be async. So a send to
another computer, there feeding into an effect and then sending back
will not be really a "realtime" thing [hmm, well, depends on the network
speed and how big then network buffers are, etc.. i assume both on a
private local lan here]
Also, there probably must be some basic/minimal network protocol be
implemented. At least a sequential numbering or timestamp, so the
receiver can maintain a buffer and sort packets that come in out of
order..
Again i'm no expert on this. But it sounds failry simple.
What do you think? This could of course be done arbitrarily complex
[with timing stuff, connection handling, authentification, etc], but i
look for something dead simple.
Flo
--
music: http://www.soundclick.com/bands/9/florianschmidt.htm
Paul Davis:
> >Since mainstream capabilities support seems always to be somewhere
> >over the horizon, I am interested in the patch Paul and Steve
> >mentioned. IIUC, it defines a control file in /proc which, if
> >enabled, allows any process access to scheduling and memory locking
> >privileges. No other capabilities are provided. I would love to see
> >a copy of this patch to study exactly what it does.
>
> its a very simple patch, IIRC. it just short-circuits the checks on
> uid==0 and/or capabilities when assigning SCHED_FIFO and/or locking
> memory.
>
> i'm looking for it in my archives. i'm a bit worried i may have
I couldn't wait til you found it, so I wrote one from scratch instead. :)
The url below point to a hackish patch againt 2.4.23-rc1, and yes, it is
very simple. Works by setting /proc/sys/kernel/setschedandmlock to 1.
http://www.notam02.no/arkiv/src/schedmlockpatch-2.4.23-rc1
--