Some questions and comments regarding the LASH release candidate.
1. lahs_init()
Would it be possible to document the contents of
the first argument 'lash_args_t *args' ?
I'd be happy to give lash all the info it needs
but feel quite strongly that I should be able
to provide this myself and not being forced to
have liblash inspect/mangle my argv. See also 2.
2. lash_extract_args()
The type of main()'s argv is char *argv[], so
why is the second argument a triple pointer ?
Re-arranging the elements of argv does not
require access to the variable argv itself,
only to its elements, and for this a double
pointer is all you need.
3. The Restore_Data_Set event.
How does a client know when all configs saved
by a previous session have been received ?
The client may be updated meanwhile and
expect more configs than were saved. It
should have defaults for these of course,
but how long should it wait for data that
may never arrive ?
Ciao,
--
FA
Follie! Follie! Delirio vano e' questo!
Hello everyone!
I have a couple of questions regarding this.
1. Does every soundcard have a clock?
2. Do other architectures than ALSA offer access to this clock?
3. Can the soundcard clock probably be accessed via simple device file access?
I have looked into OSS, but didn't find anything there, directly reffering
to clocks.
If OSS or other unix sound drivers don't offer access to this resource, how
would they take care of accuracy?
Kindest regards and thanks in advance for any good advise
Julien
--------
Music was my first love and it will be my last (John Miles)
======== FIND MY WEB-PROJECT AT: ========
http://ltsb.sourceforge.net
the Linux TextBased Studio guide
======= AND MY PERSONAL PAGES AT: =======
http://www.juliencoder.de
Hello!
I just read through the JACK transport section in the JACK reference again.
If you want to be timebase-master you can (or must) supply a callback function
to update the time-info.
Does my program need audio thread (a process function?) Which timing source
is used to update the time? Does my program provide it or does JACK provide it
and my program only really kicks in when I want to relocate (jump to another
position)?
I am correct in assuming, that my code doesn't have to be multithreaded (at
least not look multithreaded) if I want to use the JACK transport interface
(control and timebase)?
Kindest regards
Julien
--------
Music was my first love and it will be my last (John Miles)
======== FIND MY WEB-PROJECT AT: ========
http://ltsb.sourceforge.net
the Linux TextBased Studio guide
======= AND MY PERSONAL PAGES AT: =======
http://www.juliencoder.de
Dear linux audio users and developers,
Short version:
==================
Denemo 0.8 is fresh, hot and avaible now! Grab your tarball @
http://download.savannah.gnu.org/releases/denemo/ (Windows binaries
will join in later) and have a look at our newest features including
full scripting support!
If you are a programmer please help us to give Denemo
JACKmidi/JACKtransport support so that its capable of blending with the
rest of Linux-pro-audio. For contact, feature requests, bug reports and
further information please visit http://www.denemo.org
Interesting version:
==================
Denemo is a music notation program for Linux and Windows (and MacOS
some time ago) that lets you rapidly enter notation for typesetting via
the LilyPond music engraver (because Lilypond is the reference and
there is no sense in coding your own WYSIWYG notation apps). Its mainly
controlled via your pc-keyboard with several edit-modes and shortcuts.
Please note that we need help! Denemo has already many notation
features build-in and if anything is not avaible you can enter
Lilypond commandos and save them with your denemo file so that you can
use the whole range of lilypond features. This means that Denemo is
already capable of writing full, professional scores.
But it lacks sequencer-features like advanced playback and routing via
JACKmidi and support for JACKtransport. To really become the first
usefull Linux notation-editor and notation-sequencer this is the last
piece of the puzzle.
Version 0.8 changelog:
1. A scripting interface to the Denemo commands has been created.
2. Example script-based commands are provided with the Denemo
installation.
3. New scripts can be hand-written or "recorded" from a sequence of
menu item clicks or by editing another script or a mixture of
these.
4. New commands (scripts) can be installed in the menu system,
given keyboard shortcuts, and generally used as other commands
are.
5. The example scripts provided include a script showing the
potential of Denemo for use in music education. In this example,
random notes are generated and the user has to name the note.
6. Other examples include scripts for commands useful when
generating scores with percussion, guitar fingerings, orchestral
markings etc.
7. Various bugfixes and improvements to midi import have been made.
greetings,
Nils Gey
www.denemo.org
Having searched the net for hours, I still cannot find any tutorials or
intro-material for someone new to sound programming in Linux. Can anyone tip
me of such a place?
Things that would be valuable for a newbie:
- Introduction to various ways of storing audio; float vs integer
representation, bit depth issues, etc.
- Introduction to using standard libraries such as libsndfile and
libsamplerate.
- How to programatically convert 24 bit sound files to 16 bit files
The *only* audio programming introductions I could find was about ALSA and
OSS.
Trying to directly use the APIs is very frustrating when one doesn't have a
high-level understanding of what goes on ...
--
Carl-Erik Kopseng
Sorry for the very random subject, but I figured I'd need all the help I can
get.
I've read about this for a _little_ while (time constraints..arghhh) on the
WWW, and I've posted on www.edrum.info too. In case anyone here has
better/fast/helpful suggestions/advice/shizznit, I'm sort of cross-posting:
I just want one trigger, which I'll use for the kick drum. As such, I'm
interested to know if there are premade boards for the MIDI conversion.
Basically all I need is something which can take the vibrations and convert
them to electrical signals (piezo), and then fed to something else that will
convert that electrical signal to a MIDI-ON message, after which I can plug
it into the MIDI input of an audio interface or use a MIDI-USB adapter to
plug in to a USB port.
And regarding MIDI, if I want to take into consideration dynamics, and let
the piezo trigger MIDI messages with varying attack information, how would
it be done? So depending on the voltage generated, it'd be a MIDI-ON but the
final message to the computer (audio interface) would be a "MIDI-ON &&
ATTACK == 75" sort of logic. Sorry for the noobish description, have just
started to dabble into (audio/midi) electronics.
I understand the concept and design roughly and I can move on by reading the
construction manual (refering to edrum's DIY guide), but at the moment I'm
looking for a quick way to build a trigger as I need it asap (and no $$ for
a real trigger kit/module).
Olivier Guilyardi wrote:
> Here's how to run the test:
>
> svn co http://svn.samalyse.com/misc/rbtest
> cd rbtest
> make test
on a pentium-m 32bit notebook:
nettings@hoppetosse:/local/rbtest> make test
gcc -Wall -I. -I./jack -lpthread -o test-int-array-jack \
test-int-array.c jack/ringbuffer.c
gcc -Wall -I. -I./portaudio -lpthread -o test-int-array-portaudio \
test-int-array.c portaudio/ringbuffer.c
portaudio/pa_ringbuffer.c
gcc -Wall -I. -I./portaudio -lpthread -o
test-int-array-portaudio-nobarrier \
-DNO_MEMORY_BARRIER \
test-int-array.c portaudio/ringbuffer.c
portaudio/pa_ringbuffer.c
./alltests.sh
Starting ringbuffer tests (buffer size: 512)
=== Jack ringbuffer test ===
starting ringbuffer stress test (2 minutes max)
buffer size (bytes): 512
array size (bytes): 256
reader started on cpu 0
writer started on cpu: 0
Success
=== Portaudio ringbuffer test ===
starting ringbuffer stress test (2 minutes max)
buffer size (bytes): 512
array size (bytes): 256
reader started on cpu 0
writer started on cpu: 0
Success
=== Portaudio ringbuffer test (without memory barriers) ===
starting ringbuffer stress test (2 minutes max)
buffer size (bytes): 512
array size (bytes): 256
reader started on cpu 0
writer started on cpu: 0
Success
nettings@hoppetosse:/local/rbtest>
--
jörn nettingsmeier
home://germany/45128 essen/lortzingstr. 11/
http://spunk.dnsalias.org
phone://+49/201/491621
Kurt is up in Heaven now.
Olivier Guilyardi wrote:
> To figure whether memory barriers are needed or not, we need to run the test on
> various architectures.
>
> For this purpose, I've set up a small svn repo with everything to run the test
> easily. There's no dependency, you just need pthread, gcc and sh.
>
> Here's how to run the test:
>
> svn co http://svn.samalyse.com/misc/rbtest
> cd rbtest
> make test
i don't really understand the finer points of this discussion, but hey
it's always great to join a technical thread. my favourite bikeshed
color is yellow :-D
ok, here comes the result for a single-cpu athlon64 4000+ in 64bit mode.
nettings@kleineronkel:/build/rbtest> make test
gcc -Wall -I. -I./jack -lpthread -o test-int-array-jack \
test-int-array.c jack/ringbuffer.c
test-int-array.c: In function ‘main’:
test-int-array.c:101: warning: format ‘%d’ expects type ‘int’, but
argument 2 has type ‘long unsigned int’
gcc -Wall -I. -I./portaudio -lpthread -o test-int-array-portaudio \
test-int-array.c portaudio/ringbuffer.c
portaudio/pa_ringbuffer.c
test-int-array.c: In function ‘main’:
test-int-array.c:101: warning: format ‘%d’ expects type ‘int’, but
argument 2 has type ‘long unsigned int’
gcc -Wall -I. -I./portaudio -lpthread -o
test-int-array-portaudio-nobarrier \
-DNO_MEMORY_BARRIER \
test-int-array.c portaudio/ringbuffer.c
portaudio/pa_ringbuffer.c
test-int-array.c: In function ‘main’:
test-int-array.c:101: warning: format ‘%d’ expects type ‘int’, but
argument 2 has type ‘long unsigned int’
./alltests.sh
Starting ringbuffer tests (buffer size: 512)
=== Jack ringbuffer test ===
starting ringbuffer stress test (2 minutes max)
buffer size (bytes): 512
array size (bytes): 256
reader started on cpu 0
writer started on cpu: 0
49536 != 49408 at offset 0
failure in chunk 330502
=== Portaudio ringbuffer test ===
starting ringbuffer stress test (2 minutes max)
buffer size (bytes): 512
array size (bytes): 256
reader started on cpu 0
writer started on cpu: 0
Success
=== Portaudio ringbuffer test (without memory barriers) ===
starting ringbuffer stress test (2 minutes max)
buffer size (bytes): 512
array size (bytes): 256
reader started on cpu 0
writer started on cpu: 0
Success
--
jörn nettingsmeier
home://germany/45128 essen/lortzingstr. 11/
http://spunk.dnsalias.org
phone://+49/201/491621
Kurt is up in Heaven now.
Hello!
If I want to output a MIDI note to all channels, what do I have to assign to
snd_seq_event_t *ev;
ev->data.note.channel
Is there a possibility to do so in one strike, or do I ave to iterate
through all 16 channels?
Kindest regards
Julien
--------
Music was my first love and it will be my last (John Miles)
======== FIND MY WEB-PROJECT AT: ========
http://ltsb.sourceforge.net
the Linux TextBased Studio guide
======= AND MY PERSONAL PAGES AT: =======
http://www.juliencoder.de