-
toupsz
Hi, all, hopefully a quick question:
I've been using Pd-extended successfully for VOIP over LAN for a research project. I am working on having it launch automatically for my game server, using Java's Process class. When I launch this way, however, none of my normal libraries are loaded. I wouldn't think this is strange, except that if I go into a Unix shell and run the same command, all of the libraries load automatically. Does anyone know if there is something fundamentally different that I am missing?
Below, note that when run from command line, smilib is loaded (among others), while when run from within Java, no libraries appear to be loaded, and the threshold nodes produce an error.
command:
/Applications/Pd-extended.app/Contents/Resources/bin/pdextended -nogui /Users/toupsz/Library/Application\ Support/StudiesTeCServer/patch/serverPatch/serverPatch2592377788743645423.pdwhen run from command line:
libdir loader $Revision: 1.8 $
compiled on Sep 22 2010 at 03:41:35
compiled against Pd version 0.42.5.extended
... <many libraries loading>
libdir_loader: added 'smlib' to the global objectclass path
... <more libraries loading>
___ netsend~ SD 1.0b ___
Copyright (C) 2008 Remu | Written by Olivier Guillerminet
Based on code copyright (C) 2004-2005 Olaf Matthes
___
expr, expr~, fexpr~ version 0.4 under GNU General Public License
___ netreceive~ SD 1.0b ___
Copyright (C) 2008 Remu | Written by Olivier Guillerminet
Based on code copyright (C) 2004-2005 Olaf Matthes
___
listening to port number 14402
listening to port number 14403
listening to port number 14404
listening to port number 14405
netsend~ : blocksize set to 256
set SO_BROADCAST
SO_SNDBUF: 9216
set SO_SNDBUF
SO_SNDBUF: 8192
netsend~: connected host 192.168.1.255 on port 14401
netreceive~ : blocksize set to 256
netreceive~ : blocksize set to 256
netreceive~ : blocksize set to 256
netreceive~ : blocksize set to 256
Pt_Start() calledwhen run within Java:
java.lang.UNIXProcess@1c047338 ERR > ___ netsend~ SD 1.0b ___
java.lang.UNIXProcess@1c047338 ERR > Copyright (C) 2008 Remu | Written by Olivier Guillerminet
java.lang.UNIXProcess@1c047338 ERR > Based on code copyright (C) 2004-2005 Olaf Matthes
java.lang.UNIXProcess@1c047338 ERR > ___
java.lang.UNIXProcess@1c047338 ERR > expr, expr~, fexpr~ version 0.4 under GNU General Public License
**java.lang.UNIXProcess@1c047338 ERR > threshold 10 100 1 10
java.lang.UNIXProcess@1c047338 ERR > ... couldn't create
java.lang.UNIXProcess@1c047338 ERR > threshold 10 100 1 10
java.lang.UNIXProcess@1c047338 ERR > ... couldn't create
java.lang.UNIXProcess@1c047338 ERR > threshold 10 100 1 10
java.lang.UNIXProcess@1c047338 ERR > ... couldn't create
java.lang.UNIXProcess@1c047338 ERR > threshold 10 100 1 10
java.lang.UNIXProcess@1c047338 ERR > ... couldn't create **
java.lang.UNIXProcess@1c047338 ERR > ___ netreceive~ SD 1.0b ___
java.lang.UNIXProcess@1c047338 ERR > Copyright (C) 2008 Remu | Written by Olivier Guillerminet
java.lang.UNIXProcess@1c047338 ERR > Based on code copyright (C) 2004-2005 Olaf Matthes
java.lang.UNIXProcess@1c047338 ERR > ___
java.lang.UNIXProcess@1c047338 ERR > listening to port number 14402
java.lang.UNIXProcess@1c047338 ERR > listening to port number 14403
java.lang.UNIXProcess@1c047338 ERR > listening to port number 14404
java.lang.UNIXProcess@1c047338 ERR > listening to port number 14405
java.lang.UNIXProcess@1c047338 ERR > netsend~ : blocksize set to 256
java.lang.UNIXProcess@1c047338 ERR > set SO_BROADCAST
java.lang.UNIXProcess@1c047338 ERR > SO_SNDBUF: 9216
java.lang.UNIXProcess@1c047338 ERR > set SO_SNDBUF
java.lang.UNIXProcess@1c047338 ERR > SO_SNDBUF: 8192
java.lang.UNIXProcess@1c047338 ERR > netsend~: connected host 192.168.1.255 on port 14401
java.lang.UNIXProcess@1c047338 ERR > netreceive~ : blocksize set to 256
java.lang.UNIXProcess@1c047338 ERR > netreceive~ : blocksize set to 256
java.lang.UNIXProcess@1c047338 ERR > netreceive~ : blocksize set to 256
java.lang.UNIXProcess@1c047338 ERR > netreceive~ : blocksize set to 256 -
toupsz
We are using PD with the netsend~ and netrecieve~ objects on a local area network. We're looking at expanding our work over the internet, but would need something closer to a VOIP solution.
Does anyone know of any externals for VOIP for PD?
All best,
-Z -
toupsz
Hi, all-
I am a fairly heavy user of Pd for doing audio in my research game. We are working on some new machines, and on several of them, any incoming voice is heavily distorted: you'll hear a second or two of clear audio, then samples repeating and just a lot of buzzing. This even happens if we just try to Test Audio and set it to monitor. All sounds work fine in Windows, and we can record outside of Pd without trouble. Audio created in Pd sounds fine; it's just when I get audio from the microphone it is distorted.
Has anyone had any experience with this that would help?
We are running Windows XP on Dell D830 with a SigmaTel sound card.
Thanks in advance!
All best,
-Zach -
toupsz
Hey all -
I'm back again, and trying to do some basic procedural sound using midi. The problem is that I don't seem to be allowed to use midi on my Mac. I'm running PD v. 0.40.3-extended. Under my midi control panel, my only choice for midi output is "none". Is there a setting I can change so that I can get midi output through my speakers? Does anyone know how to fix this?
Thanks in advance!
-Zach
-
toupsz
Hey all-
Is there a way to append samples to the end of a wave file in PD? I'm working on some voice activity detection stuff, and I basically want to read in a multi-channel wave file, determine if every 80 samples is speech or non-speech, and add another channel that contains the information about speech / non-speech.
I would like to write all of the original channels, plus the new channel, to a new wave file. My concern is that the channels will be too large to simply load them all into arrays, and then write out all the arrays (maybe I'm wrong and maybe I should just do that). I would like to basically...
read in 80 samples
determine speech
write out 80 samples (on all 5 channels)
repeat until the end of the fileIs there any way to do this? Or should I just try to load them all into arrays and just write the file @ the end (the files are like 20 minutes each, 4 channels, 8kHz).
I've looked at soundfiler (will let you skip parts of the array, but not parts of the file) and writesf (seems to only write in real time; stopping must be followed by an open before more writing, which overwrites the file)...
Any help would be appreciated!
All the best,
-Zach -
toupsz
I am working on synching up audio from a multiplayer game setup. I already have pd recording audio on three separate audio tracks (each player's speech, the radio speech, and the game audio). This is done for each player.
What I would like to do is add to this audio file a fourth track, which will have events triggered by the game. I would simply like to place a single sample with a maximum value when an OSC event arrives, and write 0's (or the minimum value) otherwise. This way, the fourth track does not act as an audio track, but instead the computer can use it to synch together all of the different players' audio tracks offline using it as a data source.
Unfortunately, I'm a little at a loss as to how to do this.
My biggest problem is that I don't understand quite how [writesf~] works. How is it synching up the audio tracks? Does it keep them all synched, writing 0s if one incoming track has no data, or are they each written separately? If anyone has any insight into this, I'd appreciate it!
-Zach
-
toupsz
Hey all-
I've been using pd to mix audio, provide sound effects, and record audio for my dissertation project -- a serious game for teaching team members to coordinate. As the next step in this research, I need to be able to detect when each player is speaking to the others -- voice activity detection. Essentially logging the times that participants start and stop talking.
Each player has a bluetooth headset with a noise-cancelling microphone. Looking at the audio I've recorded directly from the headset, it's pretty obvious to human eyes when a participant is speaking, and when they are not, as the SNR is fairly high.
I am trying to use a combination of an envelope follower ([env~]) and a thresholder ([threshold~]) to create the start and stop events. I am having some difficulty in figuring out what the proper settings for the thresholder should be, and I'm also wondering if there are any other pd components that might be useful. One big problem that I'm encountering is that the thresholder catches the quiet portions of speech as turnoffs (generally followed almost immediately by another turnon). Does anyone out there have any experience with this? Or any advice?
Thanks!
-Zach
-
toupsz
Hey all, I'm new to pd, but have some experience with Max/MSP. Is there any way to prepend something to a message in pd? Specifically, I'm sending the patch an OSC message with the name of a file to create (a .wav file for [writesf~]). I have just the filename coming from the [OSCroute] object, but I can't seem to get "open" in front of it so that I can send it on to the [writesf~]. I've tried pack, but it doesn't seem to like the input. :-/
It seems clear that there must be some way to do this...but I've been poking around in documentation everywhere and haven't found a solution yet!
Any assistance would be appreciated!
Thanks!
-Zach -
toupsz
Alright, I added -verbose to see what was going wrong. Was able to add the proper path using the -path to point to the directory that contained threshold.pd.
Success!
-
toupsz
Also, I have tried setting -lib to the location of the library in question, -stdpath, and -path.
-
toupsz
Tracked down an old message that suggested using ASIO when dealing with crummy SigmaTel audio boards.
Worked beautifully...we no longer sound like creepy aliens when we use the patch.
Best
-Z -
toupsz
ok...I can have the wavetable synthesizer create midi output for the speakers.
I am able to make this work under Windows, but I don't get why it won't work on my OS X machine...
-
toupsz
Seems it does just write 0's if there's no data...I guess that was pretty easy to test.
I'm thinking I can accomplish the rest with a [sig~] object...
-Zach
-
toupsz
Thanks, Wednesday! I'll look into it.
I've been reading a set of papers on VAD, and it looks like a lot of the detection is based not only on amplitude, but also on zero crossing rate.
Right now, I think I'm going to look into adding a click track, so that the audio can be re-synched later and then processed offline.
Thanks for pointing out the fiddle object, I think it will help!
-Zach
-
toupsz
Does anyone know if there's a way to install Open Sound Control when using the latest (4.0) version of pd? As far as I can tell, I can only get OSC with the extended bundle (ver. 3.7), but the list-abs collection only exists in ver. 3.9+. :-/
I'll keep on googling.
Thanks!
-Zach