[Csnd] more ftgenonce troubles?
Date | 2014-08-25 08:14 |
From | Kevin Welsh |
Subject | [Csnd] more ftgenonce troubles? |
Hello all, I'm seeing more tables being generated from ftgenonce than I expected again. Csound version is 6.03.2 (double samples) Aug 21 2014, which was built from the developer branch. In the attached example, there are two tables being generated both with gen7. One is a very short envelope, and the other a triangle wave form. For some reason the triangle table will generate with each note in this example. In the project I'm working on, the behavior gets even weirder. I have a metronome instrument that generates beeps over a duration by adding score entries using scoreline, it's envelope is the "ft_env" table from my example, also generated with ftgenonce. But if I add this problematic triangle wave to a *completely* new instrument, the envelope for the metronome instrument will generate a new ftable on every single new note, even tho nothing had changed in that instrument! Here's the stripped down example: |
Date | 2014-08-25 11:31 |
From | Rory Walsh |
Subject | Re: [Csnd] more ftgenonce troubles? |
I could be wrong but my understanding is that ftgenonce will generate a function table for each instance of the instrument. ftgen on the other hand, when called in the orchestra header, will create only one instance of the function table. I think the idea with ftgenonce is that one can encapsulate a function table into an instrument, therefore making it possible to include entire instruments using #include statements. On 25 August 2014 09:14, Kevin Welsh |
Date | 2014-08-25 11:44 |
From | Kevin Welsh |
Subject | Re: [Csnd] more ftgenonce troubles? |
I could easily be misunderstanding, but I'm pretty sure that's not the case. It should be generating a ftable for an instrument one time only, and in fact, if another instrument tries to generate an identical table, it should match that too. Here's an example showing the proper behavior, it's a test file I made a week or two ago to troubleshoot ftgenonce handling string values. The two instrument will load the same wave file, you'll see that the table only gets loaded once, even tho both instruments loading it, and further, two instances of each instrument are active at a time due to notes overlapping. |
Date | 2014-08-25 11:52 |
From | Michael Gogins |
Subject | Re: [Csnd] more ftgenonce troubles? |
You are wrong. The manual is correct. Regards, On Aug 25, 2014 6:31 AM, "Rory Walsh" <rorywalsh@ear.ie> wrote:
I could be wrong but my understanding is that ftgenonce will generate |
Date | 2014-08-25 11:56 |
From | Rory Walsh |
Subject | Re: [Csnd] more ftgenonce troubles? |
So the table is only be recreated if some of its arguments change from note to note. All clear now. On 25 August 2014 12:52, Michael Gogins |
Date | 2014-08-25 12:02 |
From | Kevin Welsh |
Subject | Re: [Csnd] more ftgenonce troubles? |
Right, at least theoretically... but in the first example (original email) that is definitely not happening, and I can't see any reason as to why! Any suggestions are welcome, but based off the conversations Michael and I had troubleshooting the string variable problem earlier, I'm almost certain there's an underlying bug here. On Mon, Aug 25, 2014 at 6:56 AM, Rory Walsh |
Date | 2014-08-25 12:06 |
From | Rory Walsh |
Subject | Re: [Csnd] more ftgenonce troubles? |
I should have tried your first example first :) For me it seems to work fine. I'm using Csound version 6.03.2 (double samples) Jul 24 2014, Linux. The output is posted below. Each f-table only seems to be generated onece? SECTION 1: B 0.000 .. 1.000 T 1.000 TT 1.000 M: 0.00000 0.00000 new alloc for instr 1: ftable 101: calling draw callback ftable 101: 1024 points, scalemax 1.000 . ' - - . _ _ ' _________-_____________________________________________________________________ ftgenonce: created new func: 101 B 1.000 .. 2.000 T 2.000 TT 2.000 M: 0.00000 0.00000 B 2.000 .. 3.000 T 3.000 TT 3.000 M: 0.00000 0.00000 B 3.000 .. 4.000 T 4.000 TT 4.000 M: 0.00000 0.00000 B 4.000 .. 6.000 T 6.000 TT 6.000 M: 0.00000 0.00000 new alloc for instr 2: ftable 102: calling draw callback ftable 102: 1024 points, scalemax 1.000 _-'. _- '. _- '. _- '. _- '. _- '. _- '_ _- -_ _- -_ _-____________________________________-________________________________________ -_ _- -_ _- -_ _- -_ _- -_ _- -_ _- -_ _- -_ - -_ .' -_.' ftgenonce: created new func: 102 B 6.000 .. 7.000 T 7.000 TT 7.000 M: 0.00000 0.00000 new alloc for instr 2: B 7.000 .. 8.000 T 8.000 TT 8.000 M: 0.00000 0.00000 B 8.000 .. 9.000 T 9.000 TT 9.000 M: 0.00000 0.00000 B 9.000 .. 10.000 T 10.000 TT 10.000 M: 0.00000 0.00000 Score finished in csoundPerform(). inactive allocs returned to freespace end of score. overall amps: 0.00000 0.00000 overall samples out of range: 0 0 0 errors in performance Elapsed time at end of performance: real: 9.970s, CPU: 0.555s 1723 512 sample blks of 64-bit floats written to dac rory@lenny:~/Desktop$ csound --version virtual_keyboard real time MIDI plugin for Csound 0dBFS level = 32768.0 Csound version 6.03.2 (double samples) Jul 24 2014 libsndfile-1.0.25 unknown long option: '--version' end of score. overall amps: 0.0 overall samples out of range: 0 0 errors in performance Elapsed time at end of performance: real: 0.000s, CPU: 0.000s rory@lenny:~/Desktop$ On 25 August 2014 13:02, Kevin Welsh |
Date | 2014-08-25 12:14 |
From | Kevin Welsh |
Subject | Re: [Csnd] more ftgenonce troubles? |
Thanks for running the test Rory, that makes it sound like this might be a regression introduced when fixing the string variable bug. Here's my output for reference (Csound version is 6.03.2 (double samples) Aug 21 2014) SECTION 1: B 0.000 .. 1.000 T 1.000 TT 1.000 M: 0.00000 0.00000 new alloc for instr 1: ftable 101: calling draw callback ftable 101: 1024 points, scalemax 1.000 . ' - - . _ _ ' _________-_____________________________________________________________________ ftgenonce: created new func: 101 B 1.000 .. 2.000 T 2.000 TT 2.000 M: 0.00000 0.00000 B 2.000 .. 3.000 T 3.000 TT 3.000 M: 0.00000 0.00000 B 3.000 .. 4.000 T 4.000 TT 4.000 M: 0.00000 0.00000 B 4.000 .. 6.000 T 6.000 TT 6.000 M: 0.00000 0.00000 new alloc for instr 2: ftable 102: calling draw callback ftable 102: 1024 points, scalemax 1.000 _-'. _- '. _- '. _- '. _- '. _- '. _- '_ _- -_ _- -_ _-____________________________________-________________________________________ -_ _- -_ _- -_ _- -_ _- -_ _- -_ _- -_ _- -_ - -_ .' -_.' ftgenonce: created new func: 102 B 6.000 .. 7.000 T 7.000 TT 7.000 M: 0.00000 0.00000 ftable 103: calling draw callback ftable 103: 1024 points, scalemax 1.000 _-'. _- '. _- '. _- '. _- '. _- '. _- '_ _- -_ _- -_ _-____________________________________-________________________________________ -_ _- -_ _- -_ _- -_ _- -_ _- -_ _- -_ _- -_ - -_ .' -_.' ftgenonce: created new func: 103 B 7.000 .. 8.000 T 8.000 TT 8.000 M: 0.00000 0.00000 ftable 104: calling draw callback ftable 104: 1024 points, scalemax 1.000 _-'. _- '. _- '. _- '. _- '. _- '. _- '_ _- -_ _- -_ _-____________________________________-________________________________________ -_ _- -_ _- -_ _- -_ _- -_ _- -_ _- -_ _- -_ - -_ .' -_.' ftgenonce: created new func: 104 B 8.000 .. 9.000 T 9.000 TT 9.000 M: 0.00000 0.00000 ftable 105: calling draw callback ftable 105: 1024 points, scalemax 1.000 _-'. _- '. _- '. _- '. _- '. _- '. _- '_ _- -_ _- -_ _-____________________________________-________________________________________ -_ _- -_ _- -_ _- -_ _- -_ _- -_ _- -_ _- -_ - -_ .' -_.' ftgenonce: created new func: 105 B 9.000 .. 10.000 T 10.000 TT 10.000 M: 0.00000 0.00000 Score finished in csoundPerform(). inactive allocs returned to freespace end of score. overall amps: 0.00000 0.00000 overall samples out of range: 0 0 0 errors in performance Elapsed time at end of performance: real: 10.092s, CPU: 0.103s On Mon, Aug 25, 2014 at 7:06 AM, Rory Walsh |
Date | 2014-08-25 12:16 |
From | Rory Walsh |
Subject | Re: [Csnd] more ftgenonce troubles? |
Looks like it. On 25 August 2014 13:14, Kevin Welsh |
Date | 2014-08-25 13:45 |
From | Michael Gogins |
Subject | Re: [Csnd] more ftgenonce troubles? |
I will look at this tonight. Regards, Mike -----------------------------------------------------
Michael GoginsIrreducible Productions http://michaelgogins.tumblr.com Michael dot Gogins at gmail dot com On Mon, Aug 25, 2014 at 7:16 AM, Rory Walsh <rorywalsh@ear.ie> wrote: Looks like it. |
Date | 2014-08-27 13:41 |
From | Michael Gogins |
Subject | Re: [Csnd] more ftgenonce troubles? |
There seem to be two problems. One was a bug in my code that I have fixed. The other is that if -ffast-math is passed to gcc, isnan does not work, but isnan is used by Csound to identify string pfields. Tonight I will rebuild without -ffast-math and try again. Regards, Mike ----------------------------------------------------- Michael GoginsIrreducible Productions http://michaelgogins.tumblr.com Michael dot Gogins at gmail dot com On Mon, Aug 25, 2014 at 3:14 AM, Kevin Welsh <tgrey1@gmail.com> wrote: Hello all, |
Date | 2014-08-27 17:35 |
From | Justin Smith |
Subject | Re: [Csnd] more ftgenonce troubles? |
You can also replace isnan with a != a (which can only be true if an object is NaN). On Wed, Aug 27, 2014 at 5:41 AM, Michael Gogins <michael.gogins@gmail.com> wrote:
|
Date | 2014-08-27 17:43 |
From | Michael Gogins |
Subject | Re: [Csnd] more ftgenonce troubles? |
Not in this case you can't. I already tried it. -ffast-math messes that up too. Regards, Mike ----------------------------------------------------- Michael GoginsIrreducible Productions http://michaelgogins.tumblr.com Michael dot Gogins at gmail dot com On Wed, Aug 27, 2014 at 12:35 PM, Justin Smith <noisesmith@gmail.com> wrote:
|
Date | 2014-08-28 13:38 |
From | Michael Gogins |
Subject | Re: [Csnd] more ftgenonce troubles? |
Attachments | kickroll.wav kickroll2.wav testftgenonce2.csd |
I think I have finally fixed this. My key comparator code was too complicated and had a bug I couldn't find, so after thinking about it, I just simplified the code. I have successfully tested with the attached files. The fix is now pushed to GIT. Regards, Mike -----------------------------------------------------
Michael GoginsIrreducible Productions http://michaelgogins.tumblr.com Michael dot Gogins at gmail dot com On Wed, Aug 27, 2014 at 12:43 PM, Michael Gogins <michael.gogins@gmail.com> wrote:
|
Date | 2014-08-28 18:50 |
From | Kevin Welsh |
Subject | Re: [Csnd] more ftgenonce troubles? |
Michael, this seems to have fixed the problem exhibited in the test, but I'm seeing a lot of other regressions (I'm not sure if they're form this change, or others). I mentioned min/max and pset regressions in another email. But I also think ftgenonce also regressed with regard to the behavior on string values. My previous test for that was as follows: |
Date | 2014-08-28 19:09 |
From | Michael Gogins |
Subject | Re: [Csnd] more ftgenonce troubles? |
The other regressions are surely unrelated to the ftgenonce changes. For your test above, I get ONE ftable. For my test with 2 samples with slightly different filenames, I get TWO ftables.
Do you have an older signalflowgraph.dll lying around somewhere, getting loaded first? Regards, Mike ----------------------------------------------------- Michael GoginsIrreducible Productions http://michaelgogins.tumblr.com Michael dot Gogins at gmail dot com On Thu, Aug 28, 2014 at 1:50 PM, Kevin Welsh <tgrey1@gmail.com> wrote: Michael, this seems to have fixed the problem exhibited in the test, |
Date | 2014-08-28 19:22 |
From | Kevin Welsh |
Subject | Re: [Csnd] more ftgenonce troubles? |
Weird, I use OS-X so it's probably not a .dll, but perhaps a .dylib? I did "brew uninstall csound" to try to start fresh and clean. After doing that, I found these remaining on the system: -rwxrwxr-x 1 root wheel 353408 Jan 20 2013 /Library/Frameworks/CsoundLib.framework/Versions/5.2/Resources/Opcodes/libsignalflowgraph.dylib -rwxrwxr-x 1 root wheel 353408 Jan 20 2013 /Library/Frameworks/CsoundLib64.framework/Versions/5.2/Resources/Opcodes64/libsignalflowgraph.dylib -rwxrwxr-x 1 root wheel 461608 May 12 16:16 /Library/Frameworks/CsoundLib64.framework/Versions/6.0/Resources/Opcodes64/libsignalflowgraph.dylib -rwxr-xr-x 1 tgrey staff 224332 Aug 28 12:58 /Users/tgrey/Library/Frameworks/CsoundLib64.framework/Versions/6.0/Resources/Opcodes64/libsignalflowgraph.dylib Perhaps I should try removing these files and building from scratch again? On Thu, Aug 28, 2014 at 2:09 PM, Michael Gogins |
Date | 2014-08-28 19:27 |
From | Michael Gogins |
Subject | Re: [Csnd] more ftgenonce troubles? |
Yes. Mike ----------------------------------------------------- Michael GoginsIrreducible Productions http://michaelgogins.tumblr.com Michael dot Gogins at gmail dot com On Thu, Aug 28, 2014 at 2:22 PM, Kevin Welsh <tgrey1@gmail.com> wrote: Weird, I use OS-X so it's probably not a .dll, but perhaps a .dylib? |