Re: [linux-audio-dev] Getting out of the software game
On 3/14/07, Gordon JC Pearce [EMAIL PROTECTED] wrote: I don't want to be associated with this nonsense any more. It's not what Free Software is about. Ideal people in an ideal world do not need any licences and open/closed sourcing. We are not there. Maybe you are. Good luck. May The Music be with you.
Re: [linux-audio-dev] Getting out of the software game
On 3/14/07, Gordon JC Pearce [EMAIL PROTECTED] wrote: Anyway, rant over. It's gone now. I'm going back to concentrating on hardware synths and analogue recording. Good move, btw :) Dmitry.
Re: [linux-audio-dev] Getting out of the software game
On 3/14/07, Christian Schoenebeck [EMAIL PROTECTED] wrote: called Linux. And that was actually one of the reasons why I jumped on the OSS train, because I didn't like wise developers to tell me what's good for me or what's not. That should be up to the judgement of the respective user. Then you will have wise HW vendors. You can't have an absolute freedom. Your freedom is always bounded by the freedom of another. If developers will not take a freedom of choosing binary drivers from user, then hardware vendors will take from users the freedom to use free drivers. Dmitry.
Re: [linux-audio-dev] Realtime problems with midi/osc sequencer
In addition to select() there's also clock_nanosleep(CLOCK_MONOTONIC, 0, tv, NULL), which in theory should give best resolution possible. To set realtime privileges, use (taken from jack): struct sched_param rtparam; memset (rtparam, 0, sizeof (rtparam)); rtparam.sched_priority = priority; pthread_setschedparam (thread, SCHED_FIFO, rtparam); Interesting project, btw. I planned to start something like this myself. Please, publish results of your timing experiments - very interesting! Dmitry.
Re: [linux-audio-dev] Realtime problems with midi/osc sequencer
On 3/10/07, Christian [EMAIL PROTECTED] wrote: On the one hand this indicates the thread running stable in realtime but having a restriction to ~4ms/4000µs. Perhaps this is an in-system value 4ms means you have 250Hz kernel tick. Set it to 1024Hz or better try tickless setup. of sleep and the select approach Robin Gareus posted will help out. I'd suggest using clock_nanosleep() and clock_gettime() with clockid=CLOCK_MONOTONIC. This is the more right approach than select/gettimeofday(). Dmitry.
[linux-audio-dev] jackmidi_alsaseq-0.4
Just can't resist. -- Forwarded message -- From: Dmitry Baikov [EMAIL PROTECTED] Date: Mar 2, 2007 3:59 AM Subject: jackmidi_alsaseq-0.4 To: Jack Dev List [EMAIL PROTECTED] After missing several deadlines, we are finally here. This is the latest and greatest release of jackmidi alsaseq bridge. It is getting ready for inclusion into jackd (I hope), and I'd like to test is as hard as possible. I hope you will help me here :) Everything it needs is an svn version of jackd. For timing it by default uses hrtimers (available on 2.6.19+), there 3 more variants for your pleasure: select, poll and alsa queues. To enable them, uncomment corresponding define in the beginning of alsa_seqmidi.c. Although, hrtimers (via clock_nanosleep) shows the best results. Alsa queues suffer from events reordering, unless used with jack_time.patch. This is NOT a problem of alsa-seq, but is nearly impossible to avoid. To sum up, the default setting (clock_nanosleep) gives the best results so far. Regards, Dmitry. jackmidi_alsaseq-0.4.tar.bz2 Description: BZip2 compressed data
[linux-audio-dev] alsaseq reorders my events
Hi! I nearly finished alsaseq driver for jackmidi, but have a problem. Alsaseq reorders events in fast sequences, so note-on/note-off pairs got mixed. The algorithm of sending is simple: snd_seq_ev_schedule_real(alsa_event, output_que, 1, timestamp); frame_time = jack_frame_time(self-jack); frame_offset = event.time - frame_time; offset = ((long long)frame_offset) * 10 / rate; timestamp.tv_sec = (long) (offset / 10); timestamp.tv_nsec = (long) (offset % 10); snd_seq_event_output(self-seq, alsa_event); Here are the traces of what is going on: jackmidi_alsaseq reads events from external midi interface and send them to another midi interface. Log shows what is being sent to alsaseq and when. Output format is: [event] at [event.time] ([frame_time] + [frame_offset]) (+[offset]ns) [EMAIL PROTECTED] ~/src/jack/alsamidi $ ./jackmidi_alsaseq port created: in (20:0) MIDI 1 port created: out (20:0) MIDI 1 port created: in (24:0) USB Trigger Finger MIDI 1 port created: out (24:0) USB Trigger Finger MIDI 1 port_event: ADD 130:0 port created: out (130:0) aseqdump 90 4e 7f at 86646526 (86622198 + 24328) (+50683ns) 80 4e 40 at 86649830 (86622200 + 27630) (+575625000ns) 90 4e 7f at 86654006 (86622201 + 31805) (+662604166ns) 80 4e 40 at 86656795 (86638582 + 18213) (+379437500ns) 90 4e 7f at 86660562 (86638584 + 21978) (+457875000ns) 80 4e 40 at 86663502 (86638584 + 24918) (+519125000ns) 90 4e 7f at 8819 (86638585 + 28234) (+588208333ns) 80 4e 40 at 86669453 (86638585 + 30868) (+64308ns) 90 4e 7f at 86673078 (86654965 + 18113) (+377354166ns) 80 4e 40 at 86676430 (86654966 + 21464) (+44716ns) 90 4e 6f at 86678638 (86654967 + 23671) (+493145833ns) 80 4e 40 at 86680654 (86654968 + 25686) (+535125000ns) We can see that all events go strictly in order (their frame_time is monotonically increasing). Frame offsets are so big, because it runs under jackd -d dummy -p 16384. At the same time, aseqdump is hooked to jackmidi_alsaseq output port: [EMAIL PROTECTED] ~ $ aseqdump Waiting for data at port 130:0. Press Ctrl+C to end. Source_ Event_ Ch _Data__ 0:1 Port subscribed 128:5 - 130:0 0:1 Port subscribed 128:2 - 130:0 128:2 Note on 0 78 127 128:2 Note off0 78 64 128:2 Note off0 78 64 128:2 Note on 0 78 127 128:2 Note on 0 78 127 128:2 Note on 0 78 127 128:2 Note off0 78 64 128:2 Note on 0 78 127 128:2 Note off0 78 64 128:2 Note off0 78 64 128:2 Note on 0 78 111 128:2 Note off0 78 64 We see, Note on/Note off events are mixed. Your suggestions, please. Regards, Dmitry. P.S. Not wanting to start a flame war, but it is exactly the case, why it's better for jackmidi driver to use as lower-level interface as possible - less problems, more control. P.P.S. alsa-devels, if you reply, please CC me, i'm not subscribed.
Re: [linux-audio-dev] Sound processing objects architecture, is it possible?
On 1/22/07, Stefano D'Angelo [EMAIL PROTECTED] wrote: What I'd like to work on is a sound processing architecture (LADSPA, VST, DSSI, etc.) wrapper, which hides the details of a particular implementation to audio program developers. All this architectures have different APIs. Will your one have an fat API (union of all APIs it hides) or a thin API (intersection). What will you do if APIs you wrap are doing the same things very different ways? You say that if will be possible to compare standards or create a new ones. If your API wraps them all, then it should automatically be best one. So, why bother creating new API's if your proposal is in fact that new API, which is better than any other. And if it is not better, you can't use more advanced API through your wrapper. Just some thoughts. Regards, Dmitry.
Re: [linux-audio-dev] Sound processing objects architecture, is it possible?
On 1/23/07, Stefano D'Angelo [EMAIL PROTECTED] wrote: Good point! This is true, but there are lots of sound processing plugins around, so maybe instead of creating a new API and then apply some compatibility layer, it should be better to create a wrapping tool natively. I think it should be also easier to expand. Then, embrase LV2 and create LV2 plugins that will load VSTs, LADSPA and anything you want. Or if you want something not possible with LV2, write an extension proposal. I think LV2 was designed as a very extendable API. If it is not, in your opinion, then help the guys to improve it. Regards, Dmitry.
Re: [linux-audio-dev] Locks or no locks?
On 1/12/07, nick thomas [EMAIL PROTECTED] wrote: Anyway, there's my question: which approach (lock-based or lock-free) is generally favored for JACK programs? Thanks for helping a newbie out! You know th eanswer: JACK's ringbuffer interface seems to provide the necessary primitives to implement the latter approach. It's the best. Regards, Dmitry.
Re: [linux-audio-dev] Re: MIDI
What is a really major issue, that all hw synths still have that slow 31.5kbps link. Nonetheless, glad to hear FW-MIDI being that fast. And what about jitter there? According to RME guys, without special handling USB-MIDI can suffer delays about 6ms. And with FW, they state there are the same problems (no numbers here) and their Fireface has exceptional MIDI timing, comparing to all other FW-offerings. What do you think? Dmitry.
[linux-audio-dev] ghostess patches
Hi! Sean, thanks a lot for ghostess! Take a look at the patches if you have time. -execlp patch fixes things on 64-bit architectures: execlp() expects its arglist to end with NULL, not 0. And on 64-bit architectures they are different (0 is 32-bit int, and NULL is 64-bit pointer). -configure and -jackmidi patches are from gentoo proaudio overlay and are included for completeness. Regards, Dmitry. diff -r 5678f72103c5 src/ghostess.c --- a/src/ghostess.c Mon Oct 16 01:06:53 2006 +0400 +++ b/src/ghostess.c Mon Oct 16 01:05:06 2006 +0400 @@ -1034,7 +1034,7 @@ start_ui(d3h_instance_t *instance) * figure out which fds to close before the exec */ if ((pid = fork()) == 0) { if (fork() == 0) { -execlp(filename, filename, osc_url, dllName, label, tag, 0); +execlp(filename, filename, osc_url, dllName, label, tag, NULL); ghss_debug(GDB_ERROR, : exec of UI failed: %s, strerror(errno)); } _exit(1); @@ -1107,7 +1107,7 @@ start_ui(d3h_instance_t *instance) * figure out which fds to close before the exec */ if ((pid = fork()) == 0) { if (fork() == 0) { -execlp(filename, filename, osc_url, dllName, label, tag, 0); +execlp(filename, filename, osc_url, dllName, label, tag, NULL); ghss_debug(GDB_ERROR, : exec of universal GUI failed: %s, strerror(errno)); } exit(1); diff -r 5678f72103c5 configure.ac --- a/configure.ac Mon Oct 16 01:06:53 2006 +0400 +++ b/configure.ac Mon Oct 16 01:05:06 2006 +0400 @@ -43,7 +43,6 @@ darwin*) *) darwin=no PKG_CHECK_MODULES(ALSA, alsa = 0.9.0) - AC_DEFINE(MIDI_ALSA, 1, [Define for ALSA MIDI support on Linux]) ;; esac AM_CONDITIONAL(DARWIN, test x$darwin = xyes) @@ -57,10 +56,17 @@ AC_SUBST(JACK_LIBS) AC_SUBST(JACK_LIBS) dnl Check for JACK MIDI support +AC_ARG_WITH(jackmidi,AC_HELP_STRING([--with-jackmidi], [default=yes]), + [ if test $withval = yes;then with_jack_midi=yes; + else with_jack_midi=no; fi ]) +if test x${with_jack_midi} = 'xyes'; then AC_CHECK_LIB(jack, jack_midi_port_get_info, [with_jack_midi=yes AC_DEFINE(MIDI_JACK, 1, [Define for JACK MIDI support])], with_jack_midi=no, $JACK_LIBS) +else if test x${darwin} = 'xno'; then + AC_DEFINE(MIDI_ALSA, 1, [Define for ALSA MIDI support on Linux]) +fi fi AM_CONDITIONAL(MIDI_JACK, test x$with_jack_midi = xyes) dnl Use lotsa flags if we have gcc. diff -r 5678f72103c5 src/ghostess.c --- a/src/ghostess.c Mon Oct 16 01:06:53 2006 +0400 +++ b/src/ghostess.c Mon Oct 16 01:05:06 2006 +0400 @@ -226,7 +226,7 @@ audio_callback(jack_nframes_t nframes, v unsigned int last_tick_offset = 0; #ifdef MIDI_JACK void* midi_port_buf = jack_port_get_buffer(midi_input_port, nframes); -jack_default_midi_event_t jack_midi_event; +jack_midi_event_t jack_midi_event; jack_nframes_t jack_midi_event_index = 0; jack_nframes_t jack_midi_event_count = jack_midi_port_get_info(midi_port_buf, nframes)-event_count; static snd_seq_event_t jack_seq_event_holder[3]; @@ -253,7 +253,7 @@ audio_callback(jack_nframes_t nframes, v int count; -jack_midi_get_event_n(jack_midi_event, midi_port_buf, jack_midi_event_index, nframes); +jack_midi_event_get(jack_midi_event, midi_port_buf, jack_midi_event_index, nframes); jack_midi_event_index++; jack_seq_event = jack_seq_event_holder;
[linux-audio-dev] hearnet improvement
Hi! First of all, thanks for a great program! I made two patches for it: 1) make hearnet suid and drop privileges right after libpcap initialization. I had to move libpcap init code above jack So, you can use hearnet as regular user. 2) Mutex in jack_process is a very bad thing. Moreover, it seems there's no need for it, as voice-active field serves as a mutex. Attached patch removes pthread_mutex. If you think voice-active assumption is a weak one, the problem can be solved with a pair of jack_ringbuffers: one for free voices and one for active. Regards, Dmitry. diff -r e33c4561875a Makefile --- a/Makefile Thu Oct 05 21:08:43 2006 +0400 +++ b/Makefile Thu Oct 05 21:16:24 2006 +0400 @@ -9,5 +9,9 @@ clean: clean: rm -f hearnet *.o core* +suid: hearnet + chown root hearnet + chmod u+s hearnet + dist: all darcs dist -d hearnet-$(version) diff -r e33c4561875a hearnet Binary file hearnet has changed diff -r e33c4561875a hearnet.cpp --- a/hearnet.cpp Thu Oct 05 21:08:43 2006 +0400 +++ b/hearnet.cpp Thu Oct 05 21:14:00 2006 +0400 @@ -178,6 +178,21 @@ int main(int argc, char **argv)/*{{{*/ if (argc 1) dev = argv[1]; + +// libpcap stuff /*{{{*/ +pcap_t *hdl_pcap; +char perrbuf[PCAP_ERRBUF_SIZE]; +hdl_pcap = pcap_open_live(dev, BUFSIZ, 0, 0, perrbuf); +if (hdl_pcap == NULL) +{ + fprintf(stderr,pcap_open_live; %s\n, perrbuf); + usage(); +} + +seteuid(getuid()); + +/*}}}*/ + snprintf(client_name, sizeof(client_name), hearnet %s, dev); // jack stuff {{{ @@ -219,18 +234,6 @@ int main(int argc, char **argv)/*{{{*/ init_voices(); -// libpcap stuff /*{{{*/ -pcap_t *hdl_pcap; -char perrbuf[PCAP_ERRBUF_SIZE]; -hdl_pcap = pcap_open_live(dev, BUFSIZ, 0, 0, perrbuf); -if (hdl_pcap == NULL) -{ - fprintf(stderr,pcap_open_live; %s\n, perrbuf); - usage(); -} - -/*}}}*/ - timeval tv_start; gettimeofday(tv_start,0); srand(tv_start.tv_sec); diff -r 8dea68398052 hearnet.cpp --- a/hearnet.cpp Thu Oct 05 21:21:15 2006 +0400 +++ b/hearnet.cpp Thu Oct 05 21:55:43 2006 +0400 @@ -75,8 +75,6 @@ int process (jack_nframes_t nframes, voi { jack_default_audio_sample_t *out = (jack_default_audio_sample_t *) jack_port_get_buffer (output_port, nframes); -pthread_mutex_lock(mutex); - memset(out, 0, sizeof(jack_default_audio_sample_t)*nframes); for (int index = 0; index != MAX_VOICES; index++) @@ -114,8 +112,6 @@ int process (jack_nframes_t nframes, voi } } -pthread_mutex_unlock(mutex); - return 0; }/*}}}*/ /** jack callback to set sample rate */ @@ -138,8 +134,6 @@ void shutdown(void *arg)/*{{{*/ /** packet handler called by pcap_dispatch in main() */ void packet_handler(u_char * args, const struct pcap_pkthdr *pcap_hdr, const u_char * p)/*{{{*/ { -pthread_mutex_lock(mutex); - voice* new_voice = get_free_voice(); if (new_voice) { @@ -155,8 +149,6 @@ void packet_handler(u_char * args, const new_voice-attacklength = (rand()%20 + 1) / 1000.0f; // 10ms new_voice-active = true; } -pthread_mutex_unlock(mutex); - }/*}}}*/ void usage(void)/*{{{*/
Re: [linux-audio-dev] Re: very nice looking HW
On 9/7/06, John Rigg [EMAIL PROTECTED] wrote: Hmm. The manufacturer's web page describes it as a 32 channel interface but I could only count 16 :( It's 16x16 = 8x8 analog + 8x8 ADAT optical Dmitry.
Re: [linux-audio-dev] all your face are belong to audicle (source released!)
Finally, great news! Runs fine, though I haven't done anything with it yet :) To build it I had to comment line 83 in chuck.y: //%expect 35 Regards, Dmitry
Re: [linux-audio-dev] light C++ set for WAV
Hi, Erik! I'd suggest making all wrapper functions inline, as they are one-liners by definition and anyway wrapper includes libsndfile headers. So there's nothing to hide here. Regards, Dmitry
Re: [linux-audio-dev] diskstream and jack
Hi Conrad, - The worker thread is faster then the jackthread. (Sure, it should be). What is the usual way to pause the workerthread and wake up again, when the ringbuffer needs more data. Use semaphores, Luke! -Which size should the ringbuffer have. You need to experiment a bit, but I think 64k is sufficuent. Anyway better do this user-controlled. - How should the ringbuffer be initilized when starting to play? - Any small program to have look into or a good inroduction into pthreads?. You may look into my oss-jack wrapper. It's really simple and emulation of blocking io does exactly what you need. http://www.konstruktiv.org/joss/
Re: [linux-audio-dev] diskstream and jack
The short answer: #include jack/jack.h #include jack/ringbuffer.h #include semaphore.h sem_t block_wait; jack_ringbuffer_t ringbuf; init() { int max_blocks = buffer_size_in_samples/jack_block_size sem_init(block_wait, 0, max_blocks); } jack_process() { float *out = jack_port_get_buffer(...); jack_ringbuffer_read(ringbuf, out, block_size*sizeof(float)); sem_post(block_wait); } int exit = 0; worker_thread() { while( !exit) { sem_wait(block_wait); read_from_disk_to_ring_buffer() } } correct program should use jack_default_audio_sample_t instead of float and should deal with buffer size changes (as well as sample rate) ;) I'll try to write a working example tonight (using libsndfile of course). Or take a look at examples/capture_client.c in jackd distribution. It uses mutex/cond but the idea is the same (semaphores are better, actually. Jack example needs a fix). Regards, Dmitry.
Re: [linux-audio-dev] diskstream and jack
And don't forget to deal with xruns (skip one jack buffer on each xrun).
Re: [linux-audio-dev] diskstream and jack
This means every Port has his own Ringbuffer, right? So stereo needs two, 5.1 needs 6 ? But i only need one sem_post for all, because i should avoid to have different readpositions in my RingBuffers. As you wish, you may have one interleaved ring buffer. But only one semaphore to rule them all. And if i understand Paul Davis in the right way, i never read more data as jack needed, and this isn't more as 1 or 2k - normally. ??! Vice versa. You'd better cache more data (about 5 seconds, according to Paul), as your disk-thread is not realtime (and should not be) and may get stuck a bit.
Re: [linux-audio-dev] Creative EMU1212m
Hi James, I am very interested in such a driver, but don't have a card to help you. Will your driver work with Emu 1616M? Best wishes, Dmitry.
Re: [linux-audio-dev] memory-mapped wav files
If you need to stream a file, mmap'ed variant will eat memory up to file size. Given large enough file, it will eat all you memory and then will begin to page out unused portions of the file. Of course, details on when and where will vary depending on VM-system implementation. The thing is, you really need only a small portion of a file. Memory mapping is useful if you need all data to be (virtually) present in RAM. Regards, Dmitry.
[linux-audio-dev] Re: [linux-audio-user] Re: First trip to Europe
To close this thread for now. Thank you all for your kind and useful responces. However, it turned out that the main showstopper is visa. We can't get it for such a long time (a month), as it would be our first one. Things get even more complicated, since my girlfriend right now is not a student and does not have a job. They say we should build our Shengen history and after one-two (more - better) short and regular tours we can hope to get month-long visa anywhere we want. Taking this into account, we have to postpone our Trip to the next year and try to make two tours to shengen this year. It's a pity, since tours via travel agencies are about twice as expensive, but they are our only legal gates to europe. Moveover, the choice of the first place to visit is also restricted. We wanted to make London-Paris tour, but GB has very strict rules and rules us out. Possibly, it will be France and/or Italy as the most permissive ones. Will try to match our DreamTrip with the next LAC. Kind regards, Dmitry.
Re: [linux-audio-dev] LADSPA 2 name
LAMA - Linux(Libre) Audio Modules Architecture I hope The Dalai Lama will not object.
Re: [linux-audio-dev] Re: LADSPA2 name early consensus?
Here's my variants LiMP - Linux/Libre Media Plugin LAM - Linux Audio Module LAMA - Linux Audio Module Architecture
[linux-audio-dev] Re: [linux-audio-user] Re: First trip to Europe
Thank you all for you replies so far. Waiting for more ;) Need some time to analyse all info, but now some quick answers. Jens M Andreasen [EMAIL PROTECTED] wrote: Given the almost unbeliveable long list of places to visit ... :) You know, it's a plan. Flexible one. And for a month. And I don't think we'll travel again in a nearest year or so. Frank, thank you for invitation, but it's nearly impossible for us to be there at 18th of May. On Wednesday 19 April 2006 23:32, Carotinho was like: Since when Russia is outside Europe?:) Geographically it is inside, but it's not that easy to get visa. It turns out we have to drop UK and Chezh since they are out of Schengen zone and need separate visas. Switzerland is not an option by the same reason. Still trying to figure out the easiest way to get visa. The country we get Schengen visa from should be the first country of our trip. Hope it will be Finland. But it may be France. Fons, thanks for your advice. Replaced Brussels with Antwerp. :) I hope we'll get there. Carotinho [EMAIL PROTECTED] wrote: Ehi, what's the ? after Milan?:) Sorry, I know each country is very interesting and beautiful and needs a separate visit. But we want to get the taste of europe and look for places we'll want to study deeper. Kind regards, Dmitry.
Re: [linux-audio-dev] jack and sampling rates
http://www.mega-nerd.com/SRC/ Dmitry.
[linux-audio-dev] [OT] First trip to Europe
Hello, all! Me and my girlfriend are planning a trip to Europe for a month between May and June. It will be our first trip abroad, so please help if you can with a good advice. Since it's not so easy to get out of here (russia), and I can't visit all that great numerous openlab's etc., one of the main goals is community building: I'd like to meet (at least some of ) you, LADs/LAUs, in person. Current plan is (yes, it's huge): Moscow St.Petersurg -- Helsinki Stockholm Berlin Koeln Brussels London Paris Bourdeaux Madrid Barcelona,Figeras Genova Milan? Rome Venice Vienna Prague -- Moscow There are two main questions (lonelyplanet.com helps a bit, but residents can say much more): 1) what is the cheapest way to travel inside europe? Bus? Airplane? If it's by air, how can we buy cheapest tickets? Which company? How much days before the flight? etc. Or may be hitchhiking? 2) how hard is to find cheap place to sleep? AND Where can we meet YOU? Sorry, we don't know exact dates as we are researching on european visa (trip begins from Helsinki, since it seems the easiest way to get into europe). Sincerely, Dmitry.
Re: [linux-audio-dev] multiface latency question
On 4/12/06, Esben Stien [EMAIL PROTECTED] wrote: post its latency (2x64) ..and I suppose you mean 48000 sampling rate. I'm sure it does not matter, jdelay measures samples not seconds. Or hw can have different paths for different sample rates? 206.765 Thanks. Dmitry.
Re: [linux-audio-dev] [ot] How do GUI-libs notify the program of changes?
Well this sounds good, but I want it to do the standard-API- and mechanism-way. I want it to be easy for programmers to use the CUI library. I don't know will this still be ok with OSC as communication? No matter what tech you use, you'll need: 1) communicational channel 2) message creation/parsing 3) message routing (handling) Yes, you may use FIFO's (pipes) with standard POSIX API's as a channel, and write messaging stuff yourself. But unless you have very specific requirements, you'll end up writing liblo equivalent. With the exception that you'll have to write and support it yourself. Use liblo, it's easy. Even if you choose to drop it, this experience will help. Regards, Dmitry.
Re: [linux-audio-dev] [ot] How do GUI-libs notify the program of changes?
Julien, If I understand your question right, you have gui/cui and engine in separate processes and want them to communicate. My answer is: you are going the right way(tm), use OSC via liblo. Regards, Dmitry.
Re: [linux-audio-user] Re: [linux-audio-dev] music engine
I can re-write Ableton Live with qt, and even make it fast in python (which escapes the linux-only concept, mind you :)) - that's not hard. What is hard is finding an engine that lets me focus on my GUI as opposed to the engine or *anything* related to communicating with the engine (besides the above calls, of course). Wow! I'm thinking about something like Ableton Live (but I'm mostly interested in MIDI), and I hate writing GUIs. I tried to do some GUI stuff first as the most dull and complex(for me) part. But it's a pain. Since there are peolpe wanting to make GUI stuff (surprise!), I'm throwing this away and start working on the engine. Btw, Live leaves much to be desired. Different tempos for different tracks, for example. Dmitry.
[linux-audio-dev] multiface latency question
Hello! I'm planning to get RME Multiface (II) and have a question to it's owners. Can you, please, post its latency in audio loop, measured with jaaa in 2x64 buffer setup. Thank you. Regards, Dmitry. P.S. crossposted from LAU, since there were no responces.
Re: [linux-audio-dev] multiface latency question
Better use jdelay for that, that's why it exists ! Oops, my bad - I mixed up the names... jdelay, definetely! P.S. that's why I get no responces - they are still measuring
[linux-audio-dev] EMU 1212M
On 4/6/06, James Courtier-Dutton [EMAIL PROTECTED] wrote: Creative have actually donated an X-Fi and an EMU1212M to me. No datasheets, but at least having the hardware is a start. (Creative pass me some datasheets for other cards though) I have currently got as far as horrible noises coming from the EMU1212M. So, does it mean that soon we'll have linux drivers for Emu 1212, 1616 and 1818? Regards, Dmitry.
Re: [linux-audio-dev] multiface latency question
P.S. that's why I get no responces - they are still measuring It shouldn't take more than a minute... I mean they are measuring with jaaa ;) Still hoping to get the info, Dmitry.
Re: [linux-audio-dev] multiface latency question
My Delta66 has latency of 188 samples. In theory, Multiface's could have the same results, but it definetely should do more buffering to send values to breakout box. As Jan measured, there is a little: ~207 vs 188. Thank you! Dmitry. P.S. if only EMU 1616M had linux drivers... At least RME has much better quality for its price, I hope.
Re: [linux-audio-dev] Re: GPL Audio Hardware
LAD guys, You are right in your comments, but please, take it easier. Richard and OGP company have no illusions about them being audio professionals. And yes, it's more useful to look at RME, Echo, M-Audio, but keep it cool, please ;) Thank you. Best regards, Dmitry.
Re: [linux-audio-dev] Re: GPL Audio Hardware
It will be cool to have something like RME Multiface with ExpressCard/34 option. Dmitry.
Re: [linux-audio-dev] Re: GPL Audio Hardware
On 4/4/06, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: how expensive is a firewire port ? firewire stuff is THE niche to fill. most newer firewire devices are not supported if if i understand correctly. It's is THE niche if it can provide 1-3ms roundtrip latencies. For now (under linux at least) PCI/PCMCIA is unbeatable. If I remember correctly, Motu 828 II (fw) under Mac OS X gives ~280 samples in audio loop. It's good, but on the edge of usability for realtime processing.
Re: [linux-audio-dev] Free Software vs. Open Source: Where do *you* stand?
weapon producers, who you're equating with evil (and, implicitly, weapon users, a fact which I find personally insulting). That's all wrong, Very arguable. I find him being right about weapons. Yeah, ever heard of capitalism? Or do you have a bone to pick with that, too? Capitalism in its pure as is form is very anti-human. It is very effective and rational, but we are not robots. Moreover, our irrational and ineffective parts are making us humans. Last I checked, Microsoft wasn't bombing any subways. Living in a slavery of mind and soul is not what's called Life.
Re: [linux-audio-dev] Re: [admin] attention gmail users [...]
To be specific, in Settings, choose the use UTF-8 option for Outgoing message encoding on the General page. Thank you. Best regards,Dmitry.
[linux-audio-dev] Edirol FA-101
Hello! Recently got FA-101. But can't get it to work. Jackd log is below. Thank you in advance. Regards, Dmitry. JACK compiled with System V SHM support. loading driver .. IEC61883: Using FreeBobCtl lib version 0.0.1 (Build Oct 20 2005 - 01:33:14) Reading from OSC URL: osc.udp://localhost:31000 requesting channel info from osc.udp://localhost:31000 adding generic handler... adding /reponse handler... parsing address... sending request... waiting for response... ok freeing... done... ConnectionInfo contains 1 connection_specs IEC61883: Adding 1 capture connection(s)... IEC61883: capture connection 0: 0 streams, dim 0 from (0,11,11) IEC61883: adding stream 0: (1,1) 0x06 0x02 - 0 (MicIn1 l) IEC61883: adding stream 1: (6,2) 0x06 0x02 - 0 (MicIn1 right) IEC61883: adding stream 2: (2,1) 0x06 0x03 - 0 (LineIn 34 l) IEC61883: adding stream 3: (7,2) 0x06 0x03 - 0 (LineIn 34 right) IEC61883: adding stream 4: (3,1) 0x06 0x03 - 0 (LineIn 56 l) IEC61883: adding stream 5: (8,2) 0x06 0x03 - 0 (LineIn 56 right) IEC61883: adding stream 6: (4,1) 0x06 0x03 - 0 (LineIn 78 l) IEC61883: adding stream 7: (9,2) 0x06 0x03 - 0 (LineIn 78 right) IEC61883: adding stream 8: (0,1) 0x06 0x04 - 0 (SpdifIn left) IEC61883: adding stream 9: (5,2) 0x06 0x04 - 0 (SpdifIn righ) IEC61883: adding stream 10: (10,1) 0x0D 0x0A - 0 (MidiPort) requesting channel info from osc.udp://localhost:31000 adding generic handler... adding /reponse handler... parsing address... sending request... waiting for response... ok freeing... done... ConnectionInfo contains 1 connection_specs IEC61883: Adding 1 playback connection(s)... IEC61883: playback connection 0: 0 streams, dim 0 to (0,11,11) IEC61883: adding stream 0: (1,1) 0x06 0x03 - 0 (LineOut 12 left) IEC61883: adding stream 1: (6,2) 0x06 0x03 - 0 (LineOut 12 righ) IEC61883: adding stream 2: (2,1) 0x06 0x03 - 0 (LineOut 34 left) IEC61883: adding stream 3: (7,2) 0x06 0x03 - 0 (LineOut 34 righ) IEC61883: adding stream 4: (3,1) 0x06 0x03 - 0 (LineOut 56 left) IEC61883: adding stream 5: (8,2) 0x06 0x03 - 0 (LineOut 56 righ) IEC61883: adding stream 6: (4,1) 0x06 0x03 - 0 (LineOut 78 left) IEC61883: adding stream 7: (9,2) 0x06 0x03 - 0 (LineOut 78 righ) IEC61883: adding stream 8: (0,1) 0x06 0x04 - 0 (SpdifOut lef) IEC61883: adding stream 9: (5,2) 0x06 0x04 - 0 (SpdifOut rig) IEC61883: adding stream 10: (10,1) 0x0D 0x0A - 0 (MidiPort) IEC61883D: Creating driver (period_size=256, ringbuffer_size=8192) Creating IEC61883 client... 256/8192/48000 poll timeout = 5 ms Creating 11 buffers of 8192 quadlets... IEC61883C: Creating playback connection from node 65472, plug 0 prebuffers=0, buffers=300, irq_interval=100 Creating 11 buffers of 8192 quadlets... IEC61883 Client created... Initializing OSC debug statistics server... port 31001 OK Starting OSC debug statistics server... OK IEC61883CM: registered jack port cap_0_0_0_MicIn1 l IEC61883CM: registered jack port cap_0_0_0_MicIn1 right IEC61883CM: registered jack port cap_0_0_0_LineIn 34 l IEC61883CM: registered jack port cap_0_0_0_LineIn 34 right IEC61883CM: registered jack port cap_0_0_0_LineIn 56 l IEC61883CM: registered jack port cap_0_0_0_LineIn 56 right IEC61883CM: registered jack port cap_0_0_0_LineIn 78 l IEC61883CM: registered jack port cap_0_0_0_LineIn 78 right IEC61883CM: registered jack port cap_0_0_0_SpdifIn left IEC61883CM: registered jack port cap_0_0_0_SpdifIn righ IEC61883CM: registered midi port MidiIn_0_0_0_MidiPort_1 as 128:0 IEC61883CM: registered jack port pbk_0_0_0_LineOut 12 left IEC61883CM: registered jack port pbk_0_0_0_LineOut 12 righ IEC61883CM: registered jack port pbk_0_0_0_LineOut 34 left IEC61883CM: registered jack port pbk_0_0_0_LineOut 34 righ IEC61883CM: registered jack port pbk_0_0_0_LineOut 56 left IEC61883CM: registered jack port pbk_0_0_0_LineOut 56 righ IEC61883CM: registered jack port pbk_0_0_0_LineOut 78 left IEC61883CM: registered jack port pbk_0_0_0_LineOut 78 righ IEC61883CM: registered jack port pbk_0_0_0_SpdifOut lef IEC61883CM: registered jack port pbk_0_0_0_SpdifOut rig IEC61883CM: registered midi port MidiOut_0_0_0_MidiPort_1 as 128:1 Client start... creating capture connections... libiec61883 warning: iec61883_cmp_create_p2p_output: Failed to set the oPCR[0] plug f or node 0. Init ISO master receive handler on channel -1... (BUFFER=300,PACKET_MAX=2048 ,IRQ=100)... Start ISO master receive... IEC61883C: couldn't start receiving: Invalid argument DRIVER NT: could not start driver cannot start driver
[linux-audio-dev] Re: [linux-audio-user] External audio interface (edirol FA/UA-101)
On 9/28/05, *Paul Davis* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: Is it possible in practice? And for what number of channels? Also, is FW much better than USB2 and why? yes, its much better: vastly higher bandwidth, much faster bus clock. Theoretical(!) numbers are: FW-400 = 400MBits/s, USB2.0 = 480 MBits/s As for RME Multiface i'm not sure that its that hard anymore. kernel 2.6 seemed to have fixes ... --p As I see, you insist on RME :) Reasonable choice. More expensive, but bullet-proof. From reading RME mailing lists, I know there were many problems with Ricoh controllers (on PCI bursts). And everybody recommends TI. But most notebooks to choose from have Ricoh controllers. Do you know if these problems were solved? According to the list everybody went for Fireface now, so there's no feedback on modern cardbus setups. And even less on linux setups. Questions about FA-101 still remain :) More opinions / experiences are welcome :) Thank you. Dmitry.
[linux-audio-dev] Re: [linux-audio-user] External audio interface (edirol FA/UA-101)
thats not a very fair comparison. USB2.0 is the new USB, FW800 is the new FW :) but FW is also a better protocol, which means its easier to get close the theoretical maximum than it is with USB. Fair enough, given USB2.0 and FW400 in most of laptops. And UA-101 is a USB2 device (though, has no driver support yet) Anyway, I'm interested in practical applications, not a theoretical ones. if you were in the US, i could offer you the best prices on RME gear (i'm a dealer), but with a european location, thats not likely. Thank you, Paul. I also know where the linux drivers come from ;) Dmitry.
Re: [linux-audio-dev] Sending USB msgs to sound card through snd_usb_audio driver - how ?
Use the Source, Luke! As far as I seen (not far, really), it does not allow to send custom messages. But nobody stops you from extending the driver a bit ;)
Re: [linux-audio-dev] Drum synth
[EMAIL PROTECTED] wrote: while speaking of software drumsynths (I also saw mention of the Stomper software earlier in this thread) - I'm pretty sure that Paul mda Kellett is also reading this list; maybe we can persuade him to open part of the source code for his Windows DrumSyn(*) program? When I toyed around with it some years ago I found it quite good in sound quality (not much eye candy, Hey, great program! Why I hadn't found it earlier..? I should now try it under Wine, until Paul shares the source :) but that's really a minor thing). Paul, are you with us? :-) C'mon, it's almost 4 years old now ;-). We all will be happy, Loki especially :)
[linux-audio-dev] VP kernels
Hello! I'm not subscribed to LKML, so positng here. Anyone tried 2.6.9-rc2-mm1-VP-S3? In two words: no luck. i8042 does not work at all (have an usb kbd hopely). Nvidia-61.11 does not modprobe (unresolved symbols), but builds . 2.6.9-rc1-VP-S0 works fine. except for few lockups after writing cds (may be not kernel, but xorg-6.8.0). Any comments? -- Dmitry.
[linux-audio-dev] Drum synth
Hello. I finally started making my pet music project and realized I need a drum synth to make some cool sounds. psindustrializer is good but also need some tr-909-style sounds. I remeber from my old windoze days I used a nice piece of software called Stomper. Does anybody know any software for linux with comparable capabilities? Or we need to write one? Stomper does not work under wine :( Thanks.
Re: [linux-audio-dev] Drum synth
Hydrogen sounds like what you need: http://hydrogen.sf.net/ not exactly, but is the best candidate i can think of for such a feature as being dicussed in this thread... i mean hydrogen could do quite well with some synthesis channels using the interface it has allready. As far as I understand... Hydrogen is sample-player + drum-sequencer. Do we need a kitchen sink there? For me it would be better to have a separate drum-synth. So I can drive it with seq24. Comix what do you say? :) show us the modular API to hook sample channels in hydrogen! :)) :) It's time to port Stomper...I suppose.
Re: [linux-audio-dev] Drum synth
Sorry, sent personal emails instead of list. Reposting... Hydrogen sounds like what you need: http://hydrogen.sf.net/ Thank you. I know :) But hydrogen just uses samples. I can download TR-909 or TR-808 samples and use them in Specimen (or Hydrogen). The thing is to generate my own different(!) sounds. The only thing I know for now which can help is Stomper, but it does not work under Wine :( Drumatic-VST also segfaults. Uh... Hydrogen sounds like what you need: http://hydrogen.sf.net/ not exactly, but is the best candidate i can think of for such a feature as being dicussed in this thread... i mean hydrogen could do quite well with some synthesis channels using the interface it has allready. As far as I understand... Hydrogen is sample-player + drum-sequencer. Do we need a kitchen sink there? For me it would be better to have a separate drum-synth. So I can drive it with seq24. Comix what do you say? :) show us the modular API to hook sample channels in hydrogen! :)) :) It's time to port Stomper...I suppose.