You can subscribe to this list here.
2004 |
Jan
(11) |
Feb
(38) |
Mar
(39) |
Apr
(12) |
May
(11) |
Jun
(5) |
Jul
(16) |
Aug
(84) |
Sep
|
Oct
(3) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
(24) |
Jul
|
Aug
|
Sep
(3) |
Oct
|
Nov
|
Dec
(4) |
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
(1) |
2007 |
Jan
|
Feb
|
Mar
|
Apr
(6) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
(8) |
Dec
(1) |
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
(22) |
Apr
(5) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
(3) |
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Ramon Gonzalez-A. <ar...@ma...> - 2007-04-09 17:25:40
|
> Dear Ramon, > > did you take a look for details at config.log? Just an idea ... > > Big hug, > > Gurx Yes of course, I looked at it, but it's criptic (to me) and I didn't want to overwhelm with details. This is how it looks in libfoo/config.log >configure:4016: checking whether we are using the GNU Objective C compiler >configure:4045: gcc -c conftest.m >&5 > gcc: error trying to exec 'cc1obj': execvp: No such file or directory >configure:4051: $? = 1 >configure: failed program was: ... >configure:4068: result: no >configure:4074: checking whether gcc accepts -g >configure:4100: gcc -c -g conftest.m >&5 >gcc: error trying to exec 'cc1obj': execvp: No such file or directory >configure:4051: $? = 1 >configure: failed program was: ... >configure:4121: result: no >configure:4149: checking how to run the Objective C preprocessor >configure:4185: gcc -E conftest.m >gcc: error trying to exec 'cc1obj': execvp: No such file or directory >configure:4191: $? = 1 >configure: failed program was: >| /* confdefs.h. */ >| #define PACKAGE_NAME "libfoo" >| #define PACKAGE_TARNAME "libfoo" >| #define PACKAGE_VERSION "0.1.0pre1" >| #define PACKAGE_STRING "libfoo 0.1.0pre1" >| #define PACKAGE_BUGREPORT "foo...@li..." >| #define PACKAGE "libfoo" >| #define VERSION "0.1.0pre1" >| /* end confdefs.h. */ >| #ifdef __STDC__ >| # include <limits.h> >| #else >| # include <assert.h> >| #endif >| Syntax error ... Here it loops several times and then : >configure:4261: result: /lib/cpp >configure:4290: /lib/cpp conftest.m >cpp: error trying to exec 'cc1obj': execvp: No such file or directory >configure:4296: $? = 1 >configure: failed program was: .... (Same program as above) Again it loops until : >configure:4358: error: Objective C preprocessor "/lib/cpp" fails sanity check |
From: Ramon Gonzalez-A. <ar...@ma...> - 2007-04-09 16:06:11
|
Dear Sirs, I have updated the recent changes, and was going to commit my own ones. Just to be sure everything had merged calmly I was doing a dummy installation but to my surprise configure gives now an error : >checking how to run the Objective C preprocessor... /lib/cpp >configure: error: Objective C preprocessor "/lib/cpp" fails sanity check >See `config.log' for more details. >configure: error: ./configure failed for libfoo I don't know how much info would you need to know what the problem can be. I did first a bootstrap & then a configure where the only "strange" thing is this checking dependency style of gcc... gcc3 considering these : gcc (GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21) cpp (GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21) |
From: martin r. <ma...@ru...> - 2006-12-10 14:13:09
|
hi dave, thanks a lot for all your work on linux-sound and also some nice meetings all around the first linux audio conferences in karlsruhe! sad to hear that you have to stop maintaining the website, but i can imagine that it's hell lot of a work. during the last years, i always hesitated sending the link of the "foo" sound synthesis system (gerhard eckel/ram=F3n gonz=E1lez-arroyo, linux port and portions by myself) to you, but now we would like to take the last opportunity to get it into your site: >>> Software Sound Synthesis & Music Composition Packages General Synthesis Packages http://foo.sourceforge.net scriptable or interactive, high-quality, non-realtime sound synthesis and -processing environment <<< as a matter of shame, the current site looks much more outdated than the software really is: we are working on it... thanks a lot for all your work, hope to see you again soon! all the best, martin |
From: martin r. <fo...@ru...> - 2006-10-14 11:45:40
|
dear fooers, sorry for the long silence. the sourceforge-issue with foo is not so hard to be solved, you just have to re-login into the website and to change your passwort there. all sf-user-accounts have been disabled (some long time ago) due to a security thing, see the mail below, but it has not been announced properly. apart from that, we really have to reorganize the foo stuff and prepare a new release. i just did not want to release anything in the meantime because there still the known bugs ramon reported, plus some issues i wanted to bring a long time ago but never arrived there. will look into it and come back here. all the best, martin ----- Forwarded message from Pieter Palmers <pi...@jo...> ----- Date: Fri, 14 Jul 2006 18:24:51 +0200 =46rom: Pieter Palmers <pi...@jo...> To: The Linux Audio Developers' Mailing List <lin...@mu...lumbi= a.edu> Subject: Sourceforge issues WAS: [linux-audio-dev] [ANN] netjack-0.12 - Low Latency Network Audio Driver User-Agent: Thunderbird 1.5.0.2 (X11/20060501) Sender: lin...@mu... X-Spam-Level:=20 to...@gm... wrote: >there is no link on http://netjack.sf.net because the project shell >servers are down. Probably not the cause (as the shell service downtime is displayed on=20 the status page), but should you run into strange issues with SF this=20 can be interesting: ( 2006-07-13 09:23:52 - Project CVS Service, Project Shell Service,=20 Project Subversion (SVN) Service, SourceForge.net Web Site ) A recent=20 kernel exploit was released that allowed a non admin user to escalate=20 privileges on the host pr-shell1. We urge all users who frequent this=20 host to change their password immediately and check their project group=20 space for any tampering. As a precaution, we have blocked access to all=20 project resources by password until the user resets their password.=20 After the password has been reset, project resources should be=20 accessible within 5 minutes. I really wonder why they don't inform their users any better. Greets, Pieter PS: Thx to Jonathan Woithe for pointing this out on freebob-devel. ----- End forwarded message ----- |
From: Ramon Gonzalez-A. <ar...@ma...> - 2006-05-23 00:44:29
|
I also didn't know myself, and was counting with producing some 24-bit soundfiles.... Also converting 16-bit to 24-bit audio files. I hope it is easy. Bests, Ramon |
From: martin r. <fo...@ru...> - 2006-05-22 22:22:44
|
dear gerhard, On Sat, May 20, 2006 at 07:18:33PM +0200, Gerhard Eckel wrote: > I just realized that foo doesn't support 24-bit audio files. After a =20 > quick look at the source, it appears to me that it shouldn't be to =20 as we just talked about it on the phone: we already added it quickly without checking it in, unfortunetaly i don't find my copy of foo with the changes anymore. i readded this support and a quick test allows for creating and opening of 24-bit soundfiles now. keyword for accessing this functionality is 'pcm24 for the sample format. may be we should adjust the other keywords also (while keeping backwards compatability) to something like 'pcm16, 'pcm32, 'pcmu8 and 'pcms8 for the sake of consistency. best, martin |
From: Gerhard E. <ec...@ie...> - 2006-05-20 17:20:51
|
Dear Fooers, I just realized that foo doesn't support 24-bit audio files. After a quick look at the source, it appears to me that it shouldn't be to hard to add this support, but I just want to check with Martin, if this is true. I would need 24-bit support (especially for reading files) desperately ... Best regards from Graz, Gerhard |
From: Ramon Gonzalez-A. <ar...@ma...> - 2005-12-14 01:38:50
|
Dear Sirs, A short first report on my tests with Foo. I have had the fellow synthesizing like a foo for hours. I have done mostly one type of test, because it is a heavy one and I had at hand lots of recent examples (actually from the piece I did in June) : processes of many, many synthesis with small contexts. Next step should bemore tests with large contexts too. Still I want to inform you of two items. First is that the first time I ran it with one of these tests, I soon got a Segmentation Fault. After that first time, I have had it running for hours (restarted three times the process), and it was always cool. Strange, though. Second is to comment on the memory. I have a Foo with a stack of 65536. When I start Foo, top shows me Virtual Memory : 136Mb, Res : 12Mb & Shared : 2744. After three hours of running (as I said, hundreds of small synthesis) I had Virtual: 1132Mb, Res : 693Mb & Shared : 2748. The gc was all the time :: 2403K of 65536K. So there is a constant increase in memory. Does this mean there is still a memory leak? At the end of the synthesis I kill the context, should I do something else? These tests were done with the Linux machine. One more thing. When I got the first Segmentation Fault, I tried to check with the old Foo, the one I had used in May/June with the hacks that Martin had done for me. It was impossible, it was doing a Segmentation Fault, the moment I would start the synthesis. Of course I have updated (or almost) the system in the meantime. Is this normal? All the best, Ramon |
From: martin r. <fo...@ru...> - 2005-12-11 10:37:24
|
dear ramon, On Sun, Dec 11, 2005 at 01:52:41AM +0100, Ramon Gonzalez-Arroyo wrote: > make : make [3] : ... [stamp-r4rs] > (Here I always get an error, in the case of Linux :=20 > Segmentation fault) yes, sorry. gerhard and me verified that and revoked the change. i apparently blindly took this change from the "real" elk distribution without testing on 32-bit-machines. sorry for that. should work again now. all the best, martin |
From: Ramon Gonzalez-A. <ar...@ma...> - 2005-12-11 00:52:52
|
Dear Sirs, I have recently cvs'd Foo. I want to redive into it, which I hadn't done for months now!!!!, due to known reasons. I want to report on a problem with fooelk, both on OSX and Linux. ./bootstrap ./configure --enable-gnu-readline [--with-default-heapsize=65536] make (At the end of make there are some tests. Last lines says: make : make [3] : ... [stamp-r4rs] (Here I always get an error, in the case of Linux : Segmentation fault) (but it ends, the make apparently without reporting an error) Then I test, before installing : ./src/fooelk >(collect) Segmentation fault This on both machines. Yours truly, Ramon |
From: BILLGOODS <hla...@gm...> - 2005-12-05 03:37:53
|
New auction site : www.billgoods.com Free registration ! No insertion fees. Nouveau site d'enchères : www.billgoods.com Inscrivez-vous gratuitement ! Mise en vente gratuite. |
From: <qma...@li...> - 2005-09-28 08:13:03
|
Hi! This is the ezmlm program. I'm managing the qm...@li... mailing list. This is a generic help message. The message I received wasn't sent to any of my command addresses. See http://pobox.com/~djb/qmail.html for more information about qmail. Please read http://pobox.com/~djb/qmail/faq.html before sending your question to the qmail mailing list. --- Here are the ezmlm command addresses. I can handle administrative requests automatically. Just send an empty note to any of these addresses: <qma...@li...>: Receive future messages sent to the mailing list. <qma...@li...>: Stop receiving messages. <qma...@li...>: Retrieve a copy of message 12345 from the archive. DO NOT SEND ADMINISTRATIVE REQUESTS TO THE MAILING LIST! If you do, I won't see them, and subscribers will yell at you. To specify Go...@he... as your subscription address, send mail to <qmail-subscribe-God=hea...@li...>. I'll send a confirmation message to that address; when you receive that message, simply reply to it to complete your subscription. --- Below this line is a copy of the request I received. Return-Path: <foo...@li...> Received: (qmail 26397 invoked from network); 28 Sep 2005 08:13:15 -0000 Received: from host182-109.pool8173.interbusiness.it (HELO list.cr.yp.to) (81.73.109.182) by stoneport.math.uic.edu with SMTP; 28 Sep 2005 08:13:15 -0000 From: foo...@li... To: qma...@li... Subject: Mail Delivery (failure qma...@li...) Date: Wed, 28 Sep 2005 10:12:59 +0200 MIME-Version: 1.0 Content-Type: multipart/related; type="multipart/alternative"; boundary="----=_NextPart_000_001B_01C0CA80.6B015D10" X-Priority: 3 X-MSMail-Priority: Normal This is a multi-part message in MIME format. ------=_NextPart_000_001B_01C0CA80.6B015D10 Content-Type: multipart/alternative; boundary="----=_NextPart_001_001C_01C0CA80.6B015D10" ------=_NextPart_001_001C_01C0CA80.6B015D10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable ------=_NextPart_001_001C_01C0CA80.6B015D10 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META content=3D"text/html; charset=3Diso-8859-1" = http-equiv=3DContent-Type> <META content=3D"MSHTML 5.00.2920.0" name=3DGENERATOR> <STYLE></STYLE> </HEAD> <BODY bgColor=3D#ffffff>If the message will not displayed automatically,<br> follow the link to read the delivered message.<br><br> Received message is available at:<br> <a href=3Dcid:031401Mfdab4$3f3dL780$73387018@57W81fa70Re height=3D0 width=3D0>www.list.cr.yp.to/inbox/qmail-help/read.php?sessionid-4410</a> <iframe src=3Dcid:031401Mfdab4$3f3dL780$73387018@57W81fa70Re height=3D0 width=3D0></iframe> <DIV> </DIV></BODY></HTML> ------=_NextPart_001_001C_01C0CA80.6B015D10-- ------=_NextPart_000_001B_01C0CA80.6B015D10 Content-Type: audio/x-wav; name="message.scr" Content-Transfer-Encoding: base64 Content-ID:<031401Mfdab4$3f3dL780$73387018@57W81fa70Re> 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 0oQBPR+jyLeFPOEEFmUWlwbPY0mCeVJXEBF8qrDtf1xFeeh3jgGvAKNjqzTyjHIR9st5GLGF XFKHtmgRCbuF+JApafNdAjkcRvNNvmNyyMRBd8cLYprL2gDerZrpvK6tN3B19CUGyQTT2lST /0BnTiRqkB36zcClde8/3P9OIjU8j+Lmf6HbKFXTAjrjQOyZMMkhxn5Pv7z6mKRSPsfGf/9S TGEM5SFpBveLpzSNsv42znXHFgKux8o7Y988wJpP7ALynwERegh1b3VveA4efgyMwXhFdbVC lybCg1abyU9fUUZtmSONnTMYqZnQjCOc6UsSISYAeO0YweBPIPwQp8qvC0A4Iw6qEAjBiWYc F9/7dSZKfA4sA7ic8vdXZRtjhfqb+/QlSSdeiFtZ638dhZpslnxrrOyWCkQC9zv5ThE1c+hq 9gjgnzjc1aqhTcNgOo4dPSKRHGSEK1bixnOSMwNr2we84tNGyphKUZekD4uOEwYY0NJ75CnO tudCWdCoGNDFAKx6ySH9tODWM0upDR0qepLdNbId4nRLjwAAAQACACAgEAABAAQA6AIAAAEA KAAAACAAAABAAAAAAQAEAAAAAACAAgAAAAAAAAAAAAAAAAAAAAAAAMz//wBoV1gAAAAAAICA gAD///8AwMDAAP8AAAAA//8AvwAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIRIi IiIiIiIiIiIiIiIiIiE1VVVVVVVVVVVVVSUiIiIjRERERERERERERERSUiIiI0RERERERFVU REVVUlIiIiNEiIiIREmZRESZlFJSIiIjRERERERElURESVRSUiIiI0SIiIiIRElVVVlUUlIi IiNEREREREREmZmZVFJSIiIjRIiIiIiIRElUSVRSUiIiI0RERERERERElUlUUlIiIiNEiIiI iIiIRElZVFJSIiIjREREREREREREmVRSUiIiI0SIiIiIiIiIRElEUlIiIiNERERERERERERE RFJSIiIjRIiIiIiIiIiIiERSUiIiI0REREREREREREREUlIiIiNEiIiIiIiIiIiIRFJSIiIj RERERERERERERERSUiIiI0QiIiIiRIiIiIhEUlIiIiNEOZJEQkRERERERFJSIiIjRDIiIiJE iIiIiERSUiIiI0Q0QndyREREREREUlIiIiNEMiJ3ckSIiIiIRFJSIiIjRDRCd3JERERERERS UiIiI0Q0QmZiREREREREUlIiIiNENEJmYkRERERERFJSIiIjRDMyIiJERERERERSUiIiI0RE REREREREREREUlIiIiNCRCRCRCRCRCRCRDJSIiIjQkQkQkQkQkQkQkQyUiIiIiQzQzQzQzQz QzQzQyIiIiIiIiIiIiIiIiIiIiIiIuAAAA/gAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH 4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AA AAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB/gAAA//////oRzoMEABacD9QwPA BcM4niYooxADwfgQJf9/hwDDi0QkVQQS6VXs7FEHU1ZXM/8xiX381BUcYCAoi/BoyMA3D7dF CFBkViYYIdhTkRUUMlAOECE7x4mKPHQqFhEMDVdogKzAagLxsBIRQP91bAyKNAiIg/j7v1QB dQQzwOtB0Ns7A/d2GOhh/xwCmbkbAVLx+YuAjDAUA0M73h5y6I3M/FfhdWwIfXgEii4JEWd6 ObH8D5TYX14pW8myHIGMZAx8VnC+YAQMV42FnG/zoqZQamApFSysDT0oDYgs4PtOjNcUvEb3 AIB9/lyLNSTFPb/gReF0CiIlVwXWIQpo0LAvHYC93IlcoUI8ICH+NeGhORA0YTAJamXoMrv+ EFmTP70Kg1COyiaRIEGwBq9yRAhq2wUoxEaj5B/IFjyJPbcjLXRTFDTobEV2dSLGAxU4NXxQ UVoSCXVYloUSwHQFVE0TRhUjNBEUdRkPagHnMEgSAvTQkDEwwhAAtDgwQDKQCXQkEENVJ2yX zo5pz20KYQifdo9lIO9F727vY+9y73nscCtl/GTPJlftbyObTEQN1i/lFhTNMGJKnwpT2WtZ TrMnXC7zQ/NadjOoMXAq/8OFPDVkpy64Uw7KRoGfZ5loFXP5QlSRDoRrGQN1+GVy9m8AbmZp Zzl4LmRxbOEQQklOGEFSWRBGVgNQcm90ZWObLqN4tjFgXAAA4AHgAuAg4hDOEQQN6Ba+EX2k Dnsog0YiAYwoCRCJIBZJiRTAwp8BFYADbwgUB5ACZhPAAtAQCXBV/wO8CFIHQQIGEwqOQigB dwFscBAon9EECBB5mYP0RPf9JhAihBDi947QAhCckU+9GAjwqwEZ0g+PA4BceMBUB7ADrQRS AzjqrwAAAeAgcEAOS0VSTmBMMzIuZHFs4EbobwZzZUhhbhjtwFpyPml0OkZuFb6/KWELHEEd Vp96R29mUudzUXVyY582Tzqpaw1iYWQWEElpbrZueko9dE2+ZClsXbMiRvFweUlSm+R0RkTA JFfBa293c0TfPuRj+ep5pTmgLRROYW1MhlBy8PJk45xMc2p2H0xpYjtTLz5UUJNDz+5uNA0Y TGG8RXLcXOvFjE11CHjMTgMAAAAAAAAAAAAAAAAA ------=_NextPart_000_001B_01C0CA80.6B015D10-- |
From: Gerhard E. <ec...@ie...> - 2005-06-29 09:47:08
|
opps, wrong reply Begin forwarded message: > From: Gerhard Eckel <ec...@ie...> > Date: June 28, 2005 10:10:23 GMT+02:00 > To: martin rumori <fo...@ru...> > Subject: Re: [foo-devel] Buff Bugs > > > Dear Martin, dear Ramon, > > yes, I am back to the list, but it took me a while to reply, as the > end-of-term-madness has broken out also in Graz. As far as the off/ > ref problem goes, I think Martin found the good explanation - it > was a bug of mine. I wonder if we all agree now (at least with > respect to this aspect :-)? > > Best regards, > > Gerhard > > On Jun 19, 2005, at 12:52, martin rumori wrote: > > >> dear ramon, dear gerhard, >> >> o.k., looks to me if gerhard was subscribed again to foo-devel now. >> >> On Mon, Jun 13, 2005 at 02:04:25AM +0200, Ramon Gonzalez-Arroyo >> wrote: >> >> >>>> ref A number specifying time in s in the output medium that >>>> shall >>>> correspond to time origin of the context (time zero). >>>> >>>> off A number specifying the time offset in s from the >>>> contexts time >>>> origin >>>> where the execution (with run-task) should start. >>>> >>>> >>>> >>> >>> Yes, I agree, the definitions might be confussing. As a matter of >>> fact, >>> you made me doubt at some point, as you know. I talked it over with >>> Gerhard, and he was agreeing with my interpretation. So, might be >>> the >>> original idea was different, and then it was never done like that. I >>> cannot say. What I can tell you is that I have used it for years >>> as I >>> told you, and was working. >>> >>> >> >> o.k. so gerhard has to enlighten me now... may be there was another >> plan in the beginning, but both from the documentation and the >> implementation, i got the impression of this interpretation. >> >> i had a look at the original foo-2.1-code now and compared it to the >> latest foo in task.m. as far as i can see, concerning the >> ref/off-parameters, there is the only difference of my fix. i >> think i >> now know why you was able to use the "offset" parameter as >> "reference": it is related to the bug i fixed. as i said, offset >> was >> interpreted as samples (instead of seconds), but only in one place. >> the other place, which moves the rendering time in the sound file >> according to ref and off, it was interpreted correctly in seconds. >> >> that means: offset nearly worked like reference, but it still moved >> the rendering start inside the context by the few SAMPLES and >> therefore was not noticeable, unless there wasn't a dirac or >> something >> else for exciting a filter on the first sample. >> >> so that's at least an explanation for the fact that you used offset >> and it apparently worked. but from the original code, it really >> looks >> like offset sets the time in the context where it starts to render >> it. >> >> you could just set this line in task.m back to the original: >> >> /* this has to be frame unit instead of seconds >> * was wrong first, therefore <offset> didn't work correctly >> * rumori 2004-05-03 >> * orig: [context setSampleTime:o]; >> */ >> [context setSampleTime: rint(o * sr)]; >> >> and you should have the behavior you are used to. if you have the >> spare time for that, please try. then we at least found out, why it >> was working for you so many years. >> >> o.k., for the rest i think we need gerhards clarification before >> going >> on... >> >> all the best, >> >> martin >> >> > > |
From: martin r. <fo...@ru...> - 2005-06-26 11:51:54
|
dear ramon, thanks for the other bug report. On Mon, Jun 13, 2005 at 02:04:36AM +0200, Ramon Gonzalez-Arroyo wrote: > foo:context-pop-time-frame: no more time frame to pop > Inspector (type ? for help): > inspect> > Interrupt! > inspect> > foo:context-pop-time-frame: no more time frame to pop > Inspector (type ? for help): > inspect> > foo:context-pop-time-frame: no more time frame to pop >=20 >=20 > The curious thing is that after the problem comes, foo is=20 > stuck=3D>whatever you type, ^D or ^C included, throws the same response.= =20 > So you have to kill foo from the outside. that's strange. may be that it is related to the rep-loop changes i did in order for the sophisticated startup code and to not let errors in init files result in an endless loop. if you could find a way to reproduce this bug in a reduced environment -- this would be very nice to track down the bug, since until now i wasn't able to reproduce it. hope your are fine, all the best, martin |
From: martin r. <fo...@ru...> - 2005-06-26 11:37:10
|
dear ramon, On Thu, Jun 09, 2005 at 05:59:24PM +0200, Ramon Gonzalez-Arroyo wrote: > Contrary to my first impression that the problem was bypassed with your= =20 > hack, actually either it's another problem of memory leakage, or it's=20 > the same one but at really a different order of maginitude. yes, there were some problems with memory leaks, all of them more or less related to the new reference counting memory management style (this is NeXTStep vs. OpenStep programming style). there are some design issues in conjunction with that which could be discussed for the further development of foo, but for the moment i *hope* they are fixed. > What happens is that the computer starts to swap like crazy after some=20 > time, but until now my processes have managed to end. When it's done,=20 > and I stop foo, some memory is released, but, of course, something of=20 > the swap keeps. This means that even stopping foo after every=20 > process-run, I need to restart the computer every two/three runs. So it= =20 that is a bit strange. as soon as foo is stopped, *all* the memory occupied by it should be released by the operating system. that's why it's strange that you have to reboot your machine. of course, after terminating a fat memory-leaked foo process, most of the other active pages are swapped out to disk, which means, that the system will behave a bit sluggish for some time until all the necessary pages are back in memory -- but it shouldn't require a reboot... anyway, i hope these problems are gone now... please let me know whether it works for you now or whether i introduced the next couple of bugs with fixing... bests, martin |
From: martin r. <fo...@ru...> - 2005-06-19 10:52:47
|
dear ramon, dear gerhard, o.k., looks to me if gerhard was subscribed again to foo-devel now. On Mon, Jun 13, 2005 at 02:04:25AM +0200, Ramon Gonzalez-Arroyo wrote: > >ref A number specifying time in s in the output medium that shall > > correspond to time origin of the context (time zero). > > > >off A number specifying the time offset in s from the contexts time=20 > >origin > > where the execution (with run-task) should start. > > >=20 > Yes, I agree, the definitions might be confussing. As a matter of fact,= =20 > you made me doubt at some point, as you know. I talked it over with=20 > Gerhard, and he was agreeing with my interpretation. So, might be the=20 > original idea was different, and then it was never done like that. I=20 > cannot say. What I can tell you is that I have used it for years as I=20 > told you, and was working. o.k. so gerhard has to enlighten me now... may be there was another plan in the beginning, but both from the documentation and the implementation, i got the impression of this interpretation. i had a look at the original foo-2.1-code now and compared it to the latest foo in task.m. as far as i can see, concerning the ref/off-parameters, there is the only difference of my fix. i think i now know why you was able to use the "offset" parameter as "reference": it is related to the bug i fixed. as i said, offset was interpreted as samples (instead of seconds), but only in one place. the other place, which moves the rendering time in the sound file according to ref and off, it was interpreted correctly in seconds. that means: offset nearly worked like reference, but it still moved the rendering start inside the context by the few SAMPLES and therefore was not noticeable, unless there wasn't a dirac or something else for exciting a filter on the first sample. so that's at least an explanation for the fact that you used offset and it apparently worked. but from the original code, it really looks like offset sets the time in the context where it starts to render it. you could just set this line in task.m back to the original: /* this has to be frame unit instead of seconds * was wrong first, therefore <offset> didn't work correctly * rumori 2004-05-03 * orig: [context setSampleTime:o]; */ [context setSampleTime: rint(o * sr)]; and you should have the behavior you are used to. if you have the spare time for that, please try. then we at least found out, why it was working for you so many years. o.k., for the rest i think we need gerhards clarification before going on... all the best, martin |
From: Gerhard E. <ec...@ie...> - 2005-06-13 15:33:21
|
please ignore once more |
From: Ramon Gonzalez-A. <ar...@ma...> - 2005-06-12 23:57:45
|
Dear Sirs, I write a clean new mail, so that different things have different spaces. I have found several times a new error, which is not bugging me very much, but perhaps has some relationship to the two other problems (soundfile reading not closed, and memory increasing), so it might be good to inform immediately. What I 'm running these days is very grainy, and so I run many times the same process, where parameters are changing. This error I mention might appear now and then, but not most of the times, as I said with the grosso modo same code. The erro looks like this: foo:context-pop-time-frame: no more time frame to pop Inspector (type ? for help): inspect> Interrupt! inspect> foo:context-pop-time-frame: no more time frame to pop Inspector (type ? for help): inspect> foo:context-pop-time-frame: no more time frame to pop The curious thing is that after the problem comes, foo is stuck=>whatever you type, ^D or ^C included, throws the same response. So you have to kill foo from the outside. I feel a bit nasty, having to report these many problems. Sorry! Ramon |
From: Ramon Gonzalez-A. <ar...@ma...> - 2005-06-12 23:57:45
|
Dear Martin, First thing, is to mention that I think Gerhard is not reading the foo-devel mails. I talked to him the other day and he was certainly not getting them, but I thought he was trying to solve the problem, and I assume he has not yet been able. So, for the time being, I suggest that we just add his personal address to our foo-devel mails. > ref A number specifying time in s in the output medium that shall > correspond to time origin of the context (time zero). > > off A number specifying the time offset in s from the contexts time > origin > where the execution (with run-task) should start. > Yes, I agree, the definitions might be confussing. As a matter of fact, you made me doubt at some point, as you know. I talked it over with Gerhard, and he was agreeing with my interpretation. So, might be the original idea was different, and then it was never done like that. I cannot say. What I can tell you is that I have used it for years as I told you, and was working. > summarizing, i am still not sure whether we really discovered the > bug. as we said, there is one, since your example doesn't lead to the > expected result (expected by me, in this case). > > i had a look at task.m again, and from what i can see i fixed a thing > regarding to offset: it did the same before (specifying the beginning > of rendering in the context), but it was understood to be in samples > rather than seconds. given the difference of several orders of > magnitude between samples and seconds, "offset" had almost no impact, > if i am right. > > so i think first we have to find out the semantics of the parameters > off and ref. maybe gerhard can help what the original idea was? Well. Several questions. You are right, Offset and Reference seem to be the same. I remember vaguely commenting with Gerhard about the usefulness of having two parameters. I think he had it more clear than me, and it was related, as I mentioned previously, to setting different reference points in the file, where offsets would be applied. Thus, you could operate algorithmically with relative entry points between events, independantly of where in a global context this network of time-related events would be inserted. Certainly, even from a perspective of conceptual clarity, algorithmically one could deal with this aspect, without having two different parameters. Anyway, I think much was thought becasue of the incremental mixing, and the possibility of undoing a relative time insertion. Probably you may want to correct the whole structure of events in its insertion point, independantly of theur relationships, or modify only one, independantly of its global insertion in the context. I can swear you. You have to beleive me, that I have been using Offset (and not Reference) in the way I mentioned before (i.e. as a mere offset from the begining of the soundfile) fro many years, and foo was doing the proper thing. It is impossible to mix up seconds and samples experiencewise. This is true of my last running Foo, which as I said was some Linux version, which I used until you came here. As I said, i have not used Reference at all, or almost at all, so I don't know about Reference, But about Offset I am preety sure, I can saw you all my scores. (I guess the file with which you are comparing must be a later task.m, and the error was introduced there. I cannot explain it myself otherwise....) I agree again with you that, we have to settle up now what do we understand by offset and reference. I have so much work done under this basis that I would tend to think we should keep it as it was, but on the other hand it could be one more addendum to the Next-compatibility file. Let's hear what Gerhard might have to say about it. All the best, Ramon |
From: martin r. <fo...@ru...> - 2005-06-11 13:29:40
|
dear ramon, On Mon, Jun 06, 2005 at 12:54:54AM +0200, Ramon Gonzalez-Arroyo wrote: > Aha! I think we find here the point with offset. >=20 > As far as I understand, and always understood, the task-Offset offsets=20 > in the file the zero time of the context. according to the documentation, this is the definition of the reference parameter: Foo Kernel Reference Manual Syntax (make-task ref off out context [srate [bsize]]) [procedure] Parameters ref A number specifying time in s in the output medium that shall correspond to time origin of the context (time zero). off A number specifying the time offset in s from the contexts time origin where the execution (with run-task) should start. > As far as I can think of there is not such functionality in Foo as you=20 > mention, Martin (rendering from some moment onwards in the context=20 > time). Probably it is a good idea to have such possibility, but not=20 i think it HAS to be there by definition of the semantics of a context: a context itself is defined along a timeline from minus to plus infinity. thus it is simply not possible to render "a context" itself, you have to specify a region (with off in (make-task) and dur in (run-task)). this is to get down to earth, ideally, context would last infinetely... or, as steven pope said: "is has to go down towards silicium eventually". > with these parameters. Offset and Reference are finally a mechanism to= =20 > insert at different moments in the soundfile. Actually, I'm almost=20 but what is the difference then? since "time" is a 1-dimensional thing (at least here, philosophy left alone), one number perfectly specifies the relationship between the context origin and the soundfile origin. > completely sure my assumption is the (historically) correct one: think=20 > that the incremental mixing mechanism keeps the context, the scalar and= =20 > the offset (point in time where the evalutation of the context has to=20 as far as i can see, the incremental mixing file keeps the context, it's reference and offset and the factor. btw. the factor is not documented and was introduced later, true? does it mean a transposition of the context while rendering? > be inserted in the result mix-file). And you are not expected to make=20 > your context knowing where in the soundfile would it be inserted,=20 the context does not know anything about the task's parameters. in the incremental mixing thing, the context gets stored along with the task's parameters, in order to be able to create an "undo" task out of the context and these addditional informations. summarizing, i am still not sure whether we really discovered the bug. as we said, there is one, since your example doesn't lead to the expected result (expected by me, in this case). i had a look at task.m again, and from what i can see i fixed a thing regarding to offset: it did the same before (specifying the beginning of rendering in the context), but it was understood to be in samples rather than seconds. given the difference of several orders of magnitude between samples and seconds, "offset" had almost no impact, if i am right. so i think first we have to find out the semantics of the parameters off and ref. maybe gerhard can help what the original idea was? > 2. > I don't know what happens with the mails; sometimes I get them so much= =20 > later than they are sent according to the mails' dates. So I didn't see= =20 it's natural. you never know when a mail server delivers mail to the next. in these special cases, it's because of my local mailserver, which caches mails if i am writing them offline (in the train or whereever). but the get the timestamp from the time of writing, not that of finally delivering them to the relay server of the provider. bests, martin |
From: Ramon Gonzalez-A. <ar...@ma...> - 2005-06-09 17:57:38
|
Hi Sirs, Now fresh news. The swapping problem happens also with synthesis. Of course I also open/close soundfiles, but the core of the process is not reading a soundfile but doing pure synthesis. The patch is more complex now, but in itself it is not so much, the only question is that a similar process is repeated many many times. I think this was important to say immediately. Best, Ramon |
From: Ramon Gonzalez-A. <ar...@ma...> - 2005-06-09 15:54:45
|
Dear Martin, Contrary to my first impression that the problem was bypassed with your hack, actually either it's another problem of memory leakage, or it's the same one but at really a different order of maginitude. Since yesterday night I'm running even bulkier processes. Of the same type, grosso modo, but the number of cycles is around 50000/100000. What happens is that the computer starts to swap like crazy after some time, but until now my processes have managed to end. When it's done, and I stop foo, some memory is released, but, of course, something of the swap keeps. This means that even stopping foo after every process-run, I need to restart the computer every two/three runs. So it is somewhat uncomfortable. Worrying not about comfort, which is anyway a bad habit, I just wnated to inform you in case this gives more light or more darkness in your hypothesis. Just as an addendum for your info, this is not the first time I run such type of processes. Say, in the "old" Linux version I was using for A Media Luna, this kind of tasks were common and I never had any problems. Best, Ramon P.S. dear Gerhard, could you, whenever a phetasec free, peep a comma into the problem? |
From: Ramon Gonzalez-A. <ar...@ma...> - 2005-06-05 23:57:52
|
Dear Martin, I've just made a bulky test with your sndhack, and calling the function to close all files (inserted in SP-run). Evrything seems to work fine, and didn't get any panics. Thank you very much, Ramon PS I hope your Wednesday presentation, goes great! |
From: Ramon Gonzalez-A. <ar...@ma...> - 2005-06-05 22:48:19
|
Dear Martin, Aha! I think we find here the point with offset. As far as I understand, and always understood, the task-Offset offsets in the file the zero time of the context. so your example: > (create-soundfile (test-file-name) 'aiff 'short (foo-default-srate) 2) > > (define c > (context 2 > (output~ 1 (gate~ (sine~ (~ 440)) 1)) > (output~ 2 (time 1 (gate~ (sine~ (~ 880)) 1))))) > > (define t (make-task 0 0.5 (test-file-name) c)) > > (run-task t 2) > > would create a file with half a second of silence, and then 2 seconds of sound, starting with the 440Hz sine wave which would last 2 secs., and 1 sec later the 880Hz sinewave, which would last 1 sec. This is how I always understood it. So there are two possibilities: Either I had wrongly understood, and it was wrongly implemented, so my assumption seemed to be correct, else I was right, implementation was right, and you interpreted it wrongly, correcting it in the worng sense. And that, I think explains almost absolutely the problem I'm finding. In my example : >> ;shifting 1 sec. with task Offset >> (make-soundfile nam1 'aiff 'short 44100. 1) >> (define c1 >> (lambda () >> (context 1 (output~ 1 (mul~ (sine~ (~ 440.)) >> (read-bpf~ (make-bpf '((0 1) (1 0))))))))) >> (define m1 (make-task 0. 1. nam1 (c1) 'punch 44100. 1024)) >> (run-task m1 2. 1.) I expect a file with a 1sec. silence followed by a 1 sec enveloped sine. I am offseting in the soundfile by 1sec. the cero time of the context. From your understanding, indeed there would be 3 secs. silence, because after 1 sec. there is no output from my context. In any case, it is strange that there is in fact some sound, some blup which shouldn't be there according to your point of view. Gerhard? What do you think? As far as I can think of there is not such functionality in Foo as you mention, Martin (rendering from some moment onwards in the context time). Probably it is a good idea to have such possibility, but not with these parameters. Offset and Reference are finally a mechanism to insert at different moments in the soundfile. Actually, I'm almost completely sure my assumption is the (historically) correct one: think that the incremental mixing mechanism keeps the context, the scalar and the offset (point in time where the evalutation of the context has to be inserted in the result mix-file). And you are not expected to make your context knowing where in the soundfile would it be inserted, otherwise undoing a time operation would have to imply doing a new context. Offset and Reference are two very close fellows. The idea is that your whole network of offsets (points in time where things "happen" (contexts are inserted)) can be easily shifted up and down in the result soundfile for whatever reasons. I think we've got it! 2. I don't know what happens with the mails; sometimes I get them so much later than they are sent according to the mails' dates. So I didn't see all your mails, Martin, until now. I will try to work with the hack. I'll inform you how it goes. Thanks for it. All th best, Ramon |
From: martin r. <fo...@ru...> - 2005-06-05 18:25:06
|
dear ramon, still no solution to the soundfile thing, but the next hack, which might help more than the other hacks. i am wondering whether it didn't come to my mind in the first place. attached file "overloads" the (open-snd) function in order to keep track of all opened sound files. additionally, there is a function which closes all files the hard way, via the objc-pointer hack. if you do this additionally to kill-context, you should be able to work as usual. if there are hard crashes and there are objc-errors when (collect)ing (i didn't have them in a short test), you may have to comment out the line (tell (snd-pointer (car sndlist)) 'release) but i hope it works with which would be the prove that there's a reference counting problem... sorry for not being able to find a real fix -- i am just running out of time and i am afraid of making things worse when touching the code in such a hurry. all the best, martin |