Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - sciss

#1
It's an interesting question that I have been asking myself while redesigning FScape. Eventually my conclusion was that one can distinguish types of processes

- those that require random access or repeated access to some input data
- those that can use a linear input stream but require stream information such as total input length
- those that can use a linear input stream blindly (typical of DSP processes that otherwise run in real-time)
- and the same for the output ports

So, yes, in the general case the assumption would have to be that input and output must be fully buffered. That's how I implemented the PoC right now.
#2
General Board / Re: Documentation of programs
March 11, 2017, 10:20:59 PM
Thanks p8rpp, CDPR7Documentation-MAC/doc/html/cgromodf.htm is actually the index I was looking for!
#3
This is some first simple attempt (process with 1-in-1-out)

    val sr    = 44100.0
    val lenIn = sr * 10
    val ln    = Line(0, 1, length = lenIn)
    val freq  = ln.linexp(0, 1, 200, 4000)
    val sig   = SinOsc(freq/sr).take(lenIn) * 0.5
    val rvs   = cdp.Modify.Radical.Reverse(sig)   // inject CDP here
    val fOut  = file("/data") / "audio_work" / "reverse.aif"
    val aOut  = AudioFileOut(file = fOut, spec = AudioFileSpec(sampleRate = sr, numChannels = 1), in = rvs)
    aOut.last.poll(0, "frames-written")
#4
Hi there,

I'm looking at ways of embedding the CDP programs in an existing system (FScape 2) where they would appear as sort of UGens.
I'm trying to figure out if there is a way to avoid having to write and read temporary audio files for I/O, for example by "piping" the audio input file into the process
and the audio output file from the process. This should work at least on Linux.

Something like this

./modify speed 2 special_in_pipe special_out_pipe 12

I'm pretty optimistic there is some way to get this working in Linux with the existing unmodified shell commands.

For example, I tried to use a named pipe (via mkfifo) as input and write to it from another process, but cdp terminates with

ERROR: INVALID DATA
ERROR: File /data/audio_work/my_pipe.aif either has unredable header, or is a textfile with a CDP reserved extension.

(I double checked that the contents written to the pipe is actually a valid AIFF file).

But then perhaps my idea can't work because certain process will need random access instead of serial stream?

Best, .h.h.
#5
dear p8rpp,

no - i double checked that the output file is fresh and doesn't exist yet.

(btw, apologies for posting in "announce", didn't realise)
#6
General Board / Re: Documentation of programs
March 11, 2017, 06:57:25 PM
Ok, getting there

./modify speed 2 '/data/projects/CdpChapter/background/CDPWorkshop1/Worksheets1-5/WS1/CSRCWS01SF01capm.wav' /data/audio_work/foo.aif 12

So SD -- works with phase vocoder files, TD -- works with regular (time domain) files.
#7
General Board / Re: Documentation of programs
March 11, 2017, 06:53:09 PM
Thanks. Still it doesn't really explain the details of the process. If I just throw some parameters at it using my intuition:

$ ./pitch transp 4 '/data/projects/CdpChapter/background/CDPWorkshop1/Worksheets1-5/WS1/CSRCWS01SF01capm.wav' /data/audio_work/foo.aif 0 12
Application doesn't work with this type of infile.

I have no clue why my input is not good. It's a monophonic sound file from the workshop directory...
#8
N.B. AIFF output files seem fine.
#9
General Board / Documentation of programs
March 11, 2017, 06:33:47 PM
Hi there,

is there any documentation on the cdp shell programs? For example, when I browse through the 'Composers Desktop Project: Tutorial Workshop 1', it's not apparent to me which shell programs are actually invoked. Example:

A. MODIFY SPEED - simple pitch transposition, using semitones
   (SS: Soundfiles > Pitch >Transpose/Speed > semitones)
   (SL: PITCH: SPEED > pitch > tape transpose by semitones)

My guess is this is the `pitch` program, but which mode?

    altharms    octmove    transp    tune    pick    chordf    chord

I.e. where would I find the reference documentation for the pitch program?

Thanks!

Best, .h.h.
#10
Sorry, I forgot to mention how the file was created:

    ./reverb /data/audio_work/test.wav /data/audio_work/out.wav 1 0 10 0.5 0 5
#11
Hi,

I'm getting libsndfile errors playing back a generated file with SuperCollider. It looks like this:

File '/data/audio_work/out.wav' could not be opened: Error in WAV file. No 'data' chunk marker.

I can open the file in my own software and rewrite it into a "clean" file, and then it works.

More info:

$ sndfile-info /data/audio_work/out.wav
Error : Not able to open input file /data/audio_work/out.wav.
File : /data/audio_work/out.wav
Length : 2872680
RIFF : 2872672
WAVE
fmt  : 16
  Format        : 0x1 => WAVE_FORMAT_PCM
  Channels      : 2
  Sample Rate   : 48000
  Block Align   : 4
  Bit Width     : 16
  Bytes/sec     : 192000
PEAK : 24
  version    : 1
  time stamp : 1489253433
    Ch   Position       Value
     0   50682          0.518669
     1   30869          0.501828
cue  : 28
  Count : 1
   Cue ID : 1718183539  Pos :     0  Chunk : data  Chk Start : 0  Blk Start : 0  Offset :     0
LIST : 2016
  adtl
  *** note : 2004 (too big)
Have 0 marker at position 2148 (0x864).

Error in WAV file. No 'data' chunk marker.
#12
Here's another attempt giving output file extension 'ana' (which I've seen in another thread --- should it really matter?)

$ ./pvoc anal 1 /data/audio_work/reverb-L.wav /data/audio_work/reverb-L.ana
ERROR: INVALID DATA
ERROR: Cannot open output file /data/audio_work/reverb-L.ana


*** Error in `./pvoc': double free or corruption (!prev): 0x0000558ebd823010 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x70bcb)[0x7f724299abcb]
/lib/x86_64-linux-gnu/libc.so.6(+0x76f96)[0x7f72429a0f96]
/lib/x86_64-linux-gnu/libc.so.6(+0x7778e)[0x7f72429a178e]
/lib/x86_64-linux-gnu/libc.so.6(fclose+0x132)[0x7f7242990c12]
./pvoc(+0x3f8e9)[0x558ebb8c08e9]
./pvoc(+0x408f6)[0x558ebb8c18f6]
/lib/x86_64-linux-gnu/libc.so.6(+0x35920)[0x7f724295f920]
/lib/x86_64-linux-gnu/libc.so.6(+0x3597a)[0x7f724295f97a]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf8)[0x7f724294a2b8]
./pvoc(+0x1b9a)[0x558ebb882b9a]
======= Memory map: ========
558ebb881000-558ebb8d9000 r-xp 00000000 08:12 10881663                   /home/hhrutz/Documents/devel/ComposersDesktopProject/dev/Release/pvoc
558ebbad8000-558ebbad9000 r--p 00057000 08:12 10881663                   /home/hhrutz/Documents/devel/ComposersDesktopProject/dev/Release/pvoc
558ebbad9000-558ebbada000 rw-p 00058000 08:12 10881663                   /home/hhrutz/Documents/devel/ComposersDesktopProject/dev/Release/pvoc
558ebbada000-558ebbade000 rw-p 00000000 00:00 0
558ebd811000-558ebd832000 rw-p 00000000 00:00 0                          [heap]
7f723c000000-7f723c021000 rw-p 00000000 00:00 0
7f723c021000-7f7240000000 ---p 00000000 00:00 0
7f7242713000-7f7242729000 r-xp 00000000 08:12 8650842                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f7242729000-7f7242928000 ---p 00016000 08:12 8650842                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f7242928000-7f7242929000 r--p 00015000 08:12 8650842                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f7242929000-7f724292a000 rw-p 00016000 08:12 8650842                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f724292a000-7f7242abf000 r-xp 00000000 08:12 8651797                    /lib/x86_64-linux-gnu/libc-2.24.so
7f7242abf000-7f7242cbe000 ---p 00195000 08:12 8651797                    /lib/x86_64-linux-gnu/libc-2.24.so
7f7242cbe000-7f7242cc2000 r--p 00194000 08:12 8651797                    /lib/x86_64-linux-gnu/libc-2.24.so
7f7242cc2000-7f7242cc4000 rw-p 00198000 08:12 8651797                    /lib/x86_64-linux-gnu/libc-2.24.so
7f7242cc4000-7f7242cc8000 rw-p 00000000 00:00 0
7f7242cc8000-7f7242dcb000 r-xp 00000000 08:12 8651804                    /lib/x86_64-linux-gnu/libm-2.24.so
7f7242dcb000-7f7242fca000 ---p 00103000 08:12 8651804                    /lib/x86_64-linux-gnu/libm-2.24.so
7f7242fca000-7f7242fcb000 r--p 00102000 08:12 8651804                    /lib/x86_64-linux-gnu/libm-2.24.so
7f7242fcb000-7f7242fcc000 rw-p 00103000 08:12 8651804                    /lib/x86_64-linux-gnu/libm-2.24.so
7f7242fcc000-7f7242fef000 r-xp 00000000 08:12 8650833                    /lib/x86_64-linux-gnu/ld-2.24.so
7f72431cb000-7f72431cd000 rw-p 00000000 00:00 0
7f72431eb000-7f72431ef000 rw-p 00000000 00:00 0
7f72431ef000-7f72431f0000 r--p 00023000 08:12 8650833                    /lib/x86_64-linux-gnu/ld-2.24.so
7f72431f0000-7f72431f1000 rw-p 00024000 08:12 8650833                    /lib/x86_64-linux-gnu/ld-2.24.so
7f72431f1000-7f72431f2000 rw-p 00000000 00:00 0
7ffcde4a2000-7ffcde4c3000 rw-p 00000000 00:00 0                          [stack]
7ffcde517000-7ffcde519000 r--p 00000000 00:00 0                          [vvar]
7ffcde519000-7ffcde51b000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
Aborted
#13
hi there,

what am I doing wrong here:

$ ./pvoc anal 1 /data/audio_work/reverb-L.wav /data/audio_work/reverb-L.pvoc
ERROR: INVALID DATA
ERROR: Cannot open output file /data/audio_work/reverb-L.pvoc


Input is a 11 seconds monophonic file. Platform is Linux.

Thanks!

best regards, hanns holger