[Csnd] Android problems
Date | 2013-09-09 10:27 |
From | Jacques Leplat |
Subject | [Csnd] Android problems |
Hello again, I've been experiencing WIN_DEATH running csd files on Android in my app and using csd player (CSound6 version). It is not easy to reproduce, it takes quite a few plays of a csd before it happens, and not always the same number of runs. It looks like this only happens on real devices (Sony Experia U, LG Nexus 4, Motorola Xoom are the devices I've tried so far), no crash on the emulator after 100 runs. To try and reproduce this I downloaded the latest CSound6 sources from GIT, built it then wrote a Robotium JUnit test (http://code.google.com/p/robotium/) that runs the csd player project, and simulates user button clicks, to play a simple csd (see below) up to 100 times: <CsoundSynthesizer> <CsOptions> -odac </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 ;-- Instrument [1] sawtooth<br> instr 1 ifreq = cpspch(p5) iamp = p4 idur = p3 iwave = 2003 idetune = 0.3 kenv linseg 0, .01, iamp, idur-.1, iamp*.8, .05, 0 asig1 oscili kenv, ifreq - idetune, iwave asig2 oscili kenv, ifreq + idetune, iwave aout = asig1 + asig2 outs aout, aout endin </CsInstruments> <CsScore> ;-- Functions for instrument [1] sawtooth f 2003 0 513 10 1 .5 .333 .25 .2 .166 .143 .125 .111 .1 .0909 .0833 .077 i1 0.001 0.119 1.10 9.04 ;76 v:70 i1 0.001 0.479 0.10 7.00 ;48 v:70 i1 0.001 0.479 0.10 7.04 ;52 v:70 </CsScore> </CsoundSynthesizer> Eventually the device throws a WIN_DEATH error: 04-18 22:56:35.957: I/TestPlayingCsdRepeatedly(3317): ********** Starting csd count 2 04-18 22:56:36.467: I/Csound6(3317): Loading Csound plugins: 04-18 22:56:36.477: I/Csound6(3317): /data/data/com.csounds.Csound6/lib/libgnustl_shared.so 04-18 22:56:36.477: D/dalvikvm(3317): Trying to load lib /data/data/com.csounds.Csound6/lib/libgnustl_shared.so 0x4051dd70 04-18 22:56:36.477: D/dalvikvm(3317): Shared lib '/data/data/com.csounds.Csound6/lib/libgnustl_shared.so' already loaded in same CL 0x4051dd70 04-18 22:56:36.477: I/Csound6(3317): /data/data/com.csounds.Csound6/lib/libcsoundandroid.so 04-18 22:56:36.477: D/dalvikvm(3317): Trying to load lib /data/data/com.csounds.Csound6/lib/libcsoundandroid.so 0x4051dd70 04-18 22:56:36.477: D/dalvikvm(3317): Shared lib '/data/data/com.csounds.Csound6/lib/libcsoundandroid.so' already loaded in same CL 0x4051dd70 04-18 22:56:36.477: I/Csound6(3317): /data/data/com.csounds.Csound6/lib/libsndfile.so 04-18 22:56:36.477: D/dalvikvm(3317): Trying to load lib /data/data/com.csounds.Csound6/lib/libsndfile.so 0x4051dd70 04-18 22:56:36.477: D/dalvikvm(3317): Shared lib '/data/data/com.csounds.Csound6/lib/libsndfile.so' already loaded in same CL 0x4051dd70 04-18 22:56:36.497: I/Csound6(3317): Csound is starting... 04-18 22:56:36.547: I/AndroidCsound(3317): set callbacks 04-18 22:56:36.547: I/AndroidCsound(3317): callbacks set 04-18 22:56:36.557: D/CsoundObj(3317): UnifiedCSD: /mnt/sdcard/test-1057831158.csd 04-18 22:56:36.557: D/CsoundObj(3317): STARTING FILE 04-18 22:56:36.557: D/CsoundObj(3317): Creating options 04-18 22:56:36.557: D/CsoundObj(3317): Creating orchestra 04-18 22:56:36.557: D/CsoundObj(3317): Creating score 04-18 22:56:36.557: D/CsoundObj(3317): Elapsed time at end of orchestra compile: real: 0.069s, CPU: 0.069s 04-18 22:56:36.567: D/CsoundObj(3317): sorting score ... 04-18 22:56:36.567: D/CsoundObj(3317): ... done 04-18 22:56:36.567: D/CsoundObj(3317): Elapsed time at end of score sort: real: 0.070s, CPU: 0.070s 04-18 22:56:36.567: D/CsoundObj(3317): Csound version 6.00.1 (float samples) Sep 2 2013 04-18 22:56:36.567: D/CsoundObj(3317): graphics not supported on this terminal, ascii substituted 04-18 22:56:36.567: D/CsoundObj(3317): 0dBFS level = 1.0 04-18 22:56:36.567: D/CsoundObj(3317): orch now loaded 04-18 22:56:36.567: D/CsoundObj(3317): audio buffered in 2048 sample-frame blocks 04-18 22:56:36.567: W/libOpenSLES(3317): class OutputMix interface 0 requested but unavailable MPH=43 04-18 22:56:36.577: I/Csound6(3317): UnifiedCSD: /mnt/sdcard/test-1057831158.csd 04-18 22:56:36.577: I/Csound6(3317): STARTING FILE 04-18 22:56:36.587: I/Csound6(3317): Creating options 04-18 22:56:36.587: I/Csound6(3317): Creating orchestra 04-18 22:56:36.587: I/Csound6(3317): Creating score 04-18 22:56:36.587: I/Csound6(3317): Elapsed time at end of orchestra compile: real: 0.069s, CPU: 0.069s 04-18 22:56:36.587: I/Csound6(3317): sorting score ... 04-18 22:56:36.597: I/Csound6(3317): ... done 04-18 22:56:36.597: D/CsoundObj(3317): writing 4096 sample blks of 32-bit floats to dac 04-18 22:56:36.597: D/CsoundObj(3317): SECTION 1: 04-18 22:56:36.597: D/CsoundObj(3317): Return Value2: 0 04-18 22:56:36.597: I/Csound6(3317): Elapsed time at end of score sort: real: 0.070s, CPU: 0.070s 04-18 22:56:36.597: D/CsoundObj(3317): ftable 2003: 04-18 22:56:36.597: D/CsoundObj(3317): ftable 2003: 513 points, scalemax 1.000 04-18 22:56:36.597: D/CsoundObj(3317): .' 04-18 22:56:36.597: D/CsoundObj(3317): . 04-18 22:56:36.597: D/CsoundObj(3317): _ .-_ 04-18 22:56:36.597: D/CsoundObj(3317): ' . _ 04-18 22:56:36.597: D/CsoundObj(3317): ' '' '. 04-18 22:56:36.597: D/CsoundObj(3317): '---_ 04-18 22:56:36.597: D/CsoundObj(3317): -..._ 04-18 22:56:36.597: D/CsoundObj(3317): -_ _ 04-18 22:56:36.597: D/CsoundObj(3317): ' '. 04-18 22:56:36.597: D/CsoundObj(3317): ________________________________'---._____________________________________ 04-18 22:56:36.597: D/CsoundObj(3317): '..._ _ 04-18 22:56:36.597: D/CsoundObj(3317): -___ 04-18 22:56:36.597: D/CsoundObj(3317): '-_ 04-18 22:56:36.597: D/CsoundObj(3317): ---. 04-18 22:56:36.597: D/CsoundObj(3317): '.... 04-18 22:56:36.597: D/CsoundObj(3317): '_ __ 04-18 22:56:36.597: D/CsoundObj(3317): ' ' __ . 04-18 22:56:36.597: D/CsoundObj(3317): '.- 04-18 22:56:36.597: D/CsoundObj(3317): ' 04-18 22:56:36.597: D/CsoundObj(3317): .. 04-18 22:56:36.597: D/CsoundObj(3317): B 0.000 .. 0.001 T 0.001 TT 0.001 M: 04-18 22:56:36.597: D/CsoundObj(3317): 0.00000 04-18 22:56:36.597: D/CsoundObj(3317): 0.00000 04-18 22:56:36.597: D/CsoundObj(3317): new alloc for instr 1: 04-18 22:56:36.597: D/CsoundObj(3317): new alloc for instr 1: 04-18 22:56:36.597: D/CsoundObj(3317): new alloc for instr 1: 04-18 22:56:36.597: I/Csound6(3317): Csound version 6.00.1 (float samples) Sep 2 2013 04-18 22:56:36.607: I/Csound6(3317): graphics not supported on this terminal, ascii substituted 04-18 22:56:36.607: I/Csound6(3317): 0dBFS level = 1.0 04-18 22:56:36.607: I/Csound6(3317): orch now loaded 04-18 22:56:36.607: I/Csound6(3317): audio buffered in 2048 sample-frame blocks 04-18 22:56:36.627: I/Csound6(3317): writing 4096 sample blks of 32-bit floats to dac 04-18 22:56:36.627: I/Csound6(3317): SECTION 1: 04-18 22:56:36.627: I/Csound6(3317): ftable 2003: 04-18 22:56:36.637: I/Csound6(3317): ftable 2003: 513 points, scalemax 1.000 04-18 22:56:36.637: D/CsoundObj(3317): B 0.001 .. 0.120 T 0.120 TT 0.120 M: 04-18 22:56:36.637: D/CsoundObj(3317): 2.23215 04-18 22:56:36.637: D/CsoundObj(3317): 2.23215 04-18 22:56:36.637: D/CsoundObj(3317): number of samples out of range: 04-18 22:56:36.637: D/CsoundObj(3317): 607 04-18 22:56:36.637: D/CsoundObj(3317): 607 04-18 22:56:36.637: I/Csound6(3317): .' 04-18 22:56:36.637: I/Csound6(3317): . 04-18 22:56:36.637: I/Csound6(3317): _ .-_ 04-18 22:56:36.637: I/Csound6(3317): ' . _ 04-18 22:56:36.637: I/Csound6(3317): ' '' '. 04-18 22:56:36.647: I/Csound6(3317): '---_ 04-18 22:56:36.647: I/Csound6(3317): -..._ 04-18 22:56:36.647: I/Csound6(3317): -_ _ 04-18 22:56:36.647: I/Csound6(3317): ' '. 04-18 22:56:36.647: I/Csound6(3317): ________________________________'---._____________________________________ 04-18 22:56:36.647: I/Csound6(3317): '..._ _ 04-18 22:56:36.657: I/Csound6(3317): -___ 04-18 22:56:36.657: I/Csound6(3317): '-_ 04-18 22:56:36.657: I/Csound6(3317): ---. 04-18 22:56:36.657: I/Csound6(3317): '.... 04-18 22:56:36.667: I/Csound6(3317): '_ __ 04-18 22:56:36.667: I/Csound6(3317): ' ' __ . 04-18 22:56:36.667: I/Csound6(3317): '.- 04-18 22:56:36.667: I/Csound6(3317): ' 04-18 22:56:36.667: I/Csound6(3317): .. 04-18 22:56:36.677: I/Csound6(3317): B 0.000 .. 0.001 T 0.001 TT 0.001 M: 04-18 22:56:36.677: I/Csound6(3317): 0.00000 04-18 22:56:36.677: I/Csound6(3317): 0.00000 04-18 22:56:36.677: I/Csound6(3317): new alloc for instr 1: 04-18 22:56:36.687: I/Csound6(3317): new alloc for instr 1: 04-18 22:56:36.687: I/Csound6(3317): new alloc for instr 1: 04-18 22:56:36.747: I/Csound6(3317): B 0.001 .. 0.120 T 0.120 TT 0.120 M: 04-18 22:56:36.747: I/Csound6(3317): 2.23215 04-18 22:56:36.747: I/Csound6(3317): 2.23215 04-18 22:56:36.747: I/Csound6(3317): number of samples out of range: 04-18 22:56:36.757: I/Csound6(3317): 607 04-18 22:56:36.757: I/Csound6(3317): 607 04-18 22:56:36.807: D/dalvikvm(1867): GC_EXPLICIT freed 647K, 50% free 3839K/7559K, external 5471K/6574K, paused 113ms 04-18 22:56:36.837: D/dalvikvm(3317): GC_CONCURRENT freed 1384K, 56% free 3008K/6791K, external 2083K/2129K, paused 2ms+2ms 04-18 22:56:36.907: I/ActivityManager(1741): Process com.csounds.Csound6 (pid 3317) has died. 04-18 22:56:36.907: D/Zygote(1476): Process 3317 exited cleanly (1) 04-18 22:56:36.907: D/AndroidRuntime(3309): Shutting down VM 04-18 22:56:36.907: I/WindowManager(1741): WIN DEATH: Window{409349f8 com.csounds.Csound6/com.csounds.Csound6.CsoundAppActivity paused=false} 04-18 22:56:36.907: W/ActivityManager(1741): Crash of app com.csounds.Csound6 running instrumentation ComponentInfo{com.csounds.Csound6.test/android.test.InstrumentationTestRunner} 04-18 22:56:36.907: I/ActivityManager(1741): Force stopping package com.csounds.Csound6 uid=10161 04-18 22:56:36.917: D/dalvikvm(3309): GC_CONCURRENT freed 108K, 71% free 302K/1024K, external 0K/0K, paused 1ms+0ms 04-18 22:56:36.917: D/jdwp(3309): Got wake-up signal, bailing out of select 04-18 22:56:36.917: D/dalvikvm(3309): Debugger has detached; object registry had 1 entries 04-18 22:56:36.977: W/InputManagerService(1741): Got RemoteException sending setActive(false) notification to pid 3317 uid 10161 |
Date | 2013-09-09 10:31 |
From | Victor Lazzarini |
Subject | Re: [Csnd] Android problems |
does it happen with an empty instrument too? On 9 Sep 2013, at 10:27, Jacques Leplat wrote: > Hello again, > > I've been experiencing WIN_DEATH running csd files on Android in my app and using csd player (CSound6 version). It is not easy to reproduce, it takes quite a few plays of a csd before it happens, and not always the same number of runs. > > It looks like this only happens on real devices (Sony Experia U, LG Nexus 4, Motorola Xoom are the devices I've tried so far), no crash on the emulator after 100 runs. > > To try and reproduce this I downloaded the latest CSound6 sources from GIT, built it then wrote a Robotium JUnit test (http://code.google.com/p/robotium/) that runs the csd player project, and simulates user button clicks, to play a simple csd (see below) up to 100 times: > > |
Date | 2013-09-09 10:43 |
From | Jacques Leplat |
Subject | Re: [Csnd] Android problems |
Hello Victor, I just tried it using this csd (empty instrument), it crashed after the 63 rd run: <CsoundSynthesizer> <CsOptions> -odac </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 ;-- Instrument empty instr 1 endin </CsInstruments> <CsScore> ;-- Functions for instrument [1] sawtooth f 2003 0 513 10 1 .5 .333 .25 .2 .166 .143 .125 .111 .1 .0909 .0833 .077 i1 0.001 0.119 1.10 9.04 ;76 v:70 i1 0.001 0.479 0.10 7.00 ;48 v:70 i1 0.001 0.479 0.10 7.04 ;52 v:70 </CsScore> </CsoundSynthesizer> On 9 Sep 2013, at 10:31, Victor Lazzarini wrote: does it happen with an empty instrument too? |
Date | 2013-09-09 10:48 |
From | zappfinger |
Subject | [Csnd] Re: Android problems |
That sounds a bit like a memory or resource leak to me... Can you monitor resources (like handles, etc) and memory? Richard -- View this message in context: http://csound.1045644.n5.nabble.com/Android-problems-tp5727495p5727499.html Sent from the Csound - General mailing list archive at Nabble.com. |
Date | 2013-09-09 10:56 |
From | Jacques Leplat |
Subject | Re: [Csnd] Re: Android problems |
Hello Richard, Thanks for the reply, I'll have a go and let you know the results. All the best, Jacques On 9 Sep 2013, at 10:48, zappfinger wrote: > That sounds a bit like a memory or resource leak to me... > Can you monitor resources (like handles, etc) and memory? > > Richard > > |
Date | 2013-09-09 16:05 |
From | Jacques Leplat |
Subject | Re: [Csnd] Android problems |
Hello again, After monitoring resources, it looks to me like the leak is started in the class CsoundObj. A CsoundCallbackWrapper (local inner class) is created with a Csound object as the argument whenever a csd file is played. I commented out csound.setMessageLoggingEnabled(true); in the csd player app, as this causes CsoundObj not to create the callback wrappers. Ran the tests again: no WIN_DEATH, runs fine. All the best, Jacques On 9 Sep 2013, at 10:48, zappfinger wrote: That sounds a bit like a memory or resource leak to me... |
Date | 2013-09-09 17:14 |
From | Michael Gogins |
Subject | Re: [Csnd] Android problems |
In that case, do you still get the Csound messages in green scrolling down the bottom pane when Csound runs? Regards, Mike =========================== Michael GoginsIrreducible Productions http://michaelgogins.tumblr.com Michael dot Gogins at gmail dot com On Mon, Sep 9, 2013 at 11:05 AM, Jacques Leplat <jleplat@j3ltd.com> wrote:
|
Date | 2013-09-09 17:21 |
From | Jacques Leplat |
Subject | Re: [Csnd] Android problems |
I get very little, on each run the green scrolling area is cleared, then just "Csound is starting…" and "Csound has finished." On 9 Sep 2013, at 17:14, Michael Gogins wrote:
|
Date | 2013-09-09 17:40 |
From | Michael Gogins |
Subject | Re: [Csnd] Android problems |
Ok, that class is required for the runtime messages. I will see if I can fix up the memory leak. Thanks for the information, On Sep 9, 2013 12:23 PM, "Jacques Leplat" <jleplat@j3ltd.com> wrote:
|