How to generate a Dirac impulse?
I would like, upon a control-message trigger, to generate a single-sample impulse.
This is generally useful, but the specific thing I'm trying to do right now is to use [rpole~ 1] as an integrator. I believe I can reset the integrator to 0 by momentarily setting the coefficient to 0 -- and, if I can get a single-sample impulse, then the coefficient is just 1 - trigger_impulse.
This functions just about well enough for the purpose of resetting an integrator -- but I'm still curious how to get an impulse.
Thanks!
hjh
confused between vanilla and extended
@jancsika Thank you -- I stumbled across purrdata in this thread -- https://forum.pdpatchrepo.info/topic/10349/drawing-objects-simplified/2 -- at the time I ignored it (one more thing to be confused about!) but your link to git has clarified a lot for me. And the reason I got to that thread was to look into pd's drawing capabilities because ....
I'm looking to pd (+/- variants) to be able to help me create sound and video from something like a "piano roll". Ideally the piano roll has "only" the music but this is interpreted as both sound and video. The end point is to have a graphic score that can be "played": e.g. https://www.classicfm.com/discover-music/latest/graphic-scores-art-music-pictures/bergstrom-nielsen-towards-unbearable-lightnes/ (but I'll create the score from the music and then make it look as though it's being played!)
In the process of looking further into this I found this that was done with pd: https://upload.wikimedia.org/wikipedia/commons/5/52/Solitude.png which is close, but closer to a traditional score (it's time-based) than the more abstract notation I was aiming at.
patch with bandwidth limited impulse trains?
here is a description of the waveform generation. now we need a patch for this ...
"the main idea behind BLIT is that these analog synth waveforms that we are trying to generate digitally can be thought of as the integral (over tt) of impulse trains.
a sawtooth can be thought of as the integral of the sum of a little bit of DC and an impulse train. a square wave is the integral of impulses of alternating signs. the triangle wave is the integral of the square wave.
so, to create bandlimited waveforms of the above, the impulse trains are bandlimited which means that each impulse δ(t−tn)δ(t−tn) is replaced by a sinc(t−tn)sinc(t−tn) function, which is that impulse bandlimited through a Nyquist brick-wall LPF. that sequence of bandlimited impulses is a BLIT.
then, since integration is a filter with s-plane transfer function of H(s)=1sH(s)=1s and is LTI (Linear, Time-Invariant), integrating the BLITs will introduce no new frequency components. if your BLITs are bandlimited, so are the other waveforms that are derived from filtering the BLITs."
Install PD extend on Ubuntustudio
I just installed Ubuntustudio 15.10 Wily Werewolf 32bit on a thinkpad and I am trying to upgrade PD to extend. I am fairly new to linux but it seems like the instructions on https://puredata.info/docs/faq/debian fails.
This is the log from executing the commands. Any suggestions and help will be appreciated
myuser@machine:~$ sudo add-apt-repository "deb http://apt.puredata.info/releases `lsb_release -c | awk '{print $2}'` main"[sudo] password for zoundart:
myuser@machine:~$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key 9f0fe587374bbe81
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.beJyKhm5Lr --no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv-key 9f0fe587374bbe81
gpg: requesting key 374BBE81 from hkp server keyserver.ubuntu.com
gpg: key 374BBE81: "Hans-Christoph Steiner <hans@guardianproject.info>" not changed
gpg: Total number processed: 1
gpg: unchanged: 1
myuser@machine:~$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key D63D3D09C39F5EEB
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.BDfXAe3l5j --no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv-key D63D3D09C39F5EEB
gpg: requesting key C39F5EEB from hkp server keyserver.ubuntu.com
gpg: key C39F5EEB: "Launchpad Pure Data" not changed
gpg: Total number processed: 1
gpg: unchanged: 1
myuser@machine:~$ sudo apt-get update
Hit http://no.archive.ubuntu.com wily InRelease
Get:1 http://no.archive.ubuntu.com wily-updates InRelease [64,4 kB]
Get:2 http://no.archive.ubuntu.com wily-backports InRelease [64,5 kB]
Get:3 http://security.ubuntu.com wily-security InRelease [64,4 kB]
Ign http://apt.puredata.info wily InRelease
Ign http://apt.puredata.info wily Release.gpg
Ign http://apt.puredata.info wily Release
Get:4 http://security.ubuntu.com wily-security/main Sources [17,0 kB]
Get:5 http://no.archive.ubuntu.com wily-updates/main Sources [24,1 kB]
Get:6 http://no.archive.ubuntu.com wily-updates/restricted Sources [3 741 B]
Get:7 http://security.ubuntu.com wily-security/restricted Sources [2 854 B]
Get:8 http://no.archive.ubuntu.com wily-updates/universe Sources [6 112 B]
Get:9 http://no.archive.ubuntu.com wily-updates/multiverse Sources [1 922 B]
Get:10 http://security.ubuntu.com wily-security/universe Sources [3 691 B]
Get:11 http://no.archive.ubuntu.com wily-updates/main i386 Packages [59,3 kB]
Get:12 http://no.archive.ubuntu.com wily-updates/restricted i386 Packages [13,4 kB]
Get:13 http://security.ubuntu.com wily-security/multiverse Sources [1 922 B]
Get:14 http://no.archive.ubuntu.com wily-updates/universe i386 Packages [31,0 kB]
Get:15 http://no.archive.ubuntu.com wily-updates/multiverse i386 Packages [6 052 B]
Get:16 http://security.ubuntu.com wily-security/main i386 Packages [43,4 kB]
Err http://apt.puredata.info wily/main i386 Packages
404 Not Found
Ign http://apt.puredata.info wily/main Translation-en_US
Get:17 http://no.archive.ubuntu.com wily-backports/main Sources [750 B]
Get:18 http://security.ubuntu.com wily-security/restricted i386 Packages [10,8 kB]
Get:19 http://no.archive.ubuntu.com wily-backports/restricted Sources [28 B]
Ign http://apt.puredata.info wily/main Translation-en
Get:20 http://no.archive.ubuntu.com wily-backports/universe Sources [833 B]
Get:21 http://no.archive.ubuntu.com wily-backports/multiverse Sources [28 B]
Get:22 http://no.archive.ubuntu.com wily-backports/main i386 Packages [606 B]
Get:23 http://security.ubuntu.com wily-security/universe i386 Packages [24,8 kB]
Get:24 http://no.archive.ubuntu.com wily-backports/restricted i386 Packages [28 B]
Get:25 http://no.archive.ubuntu.com wily-backports/universe i386 Packages [714 B]
Get:26 http://security.ubuntu.com wily-security/multiverse i386 Packages [6 052 B]
Get:27 http://no.archive.ubuntu.com wily-backports/multiverse i386 Packages [28 B]
Hit http://no.archive.ubuntu.com wily-backports/multiverse Translation-en
Hit http://no.archive.ubuntu.com wily-backports/restricted Translation-en
Get:28 http://security.ubuntu.com wily-security/main Translation-en [23,2 kB]
Hit http://no.archive.ubuntu.com wily/main Sources
Hit http://no.archive.ubuntu.com wily/restricted Sources
Hit http://no.archive.ubuntu.com wily/universe Sources
Get:29 http://security.ubuntu.com wily-security/multiverse Translation-en [2 536 B]
Hit http://no.archive.ubuntu.com wily/multiverse Sources
Hit http://no.archive.ubuntu.com wily/main i386 Packages
Hit http://no.archive.ubuntu.com wily/restricted i386 Packages
Hit http://no.archive.ubuntu.com wily/universe i386 Packages
Get:30 http://security.ubuntu.com wily-security/restricted Translation-en [2 666 B]
Hit http://no.archive.ubuntu.com wily/multiverse i386 Packages
Hit http://no.archive.ubuntu.com wily/main Translation-en
Hit http://no.archive.ubuntu.com wily/multiverse Translation-en
Hit http://no.archive.ubuntu.com wily/restricted Translation-en
Get:31 http://security.ubuntu.com wily-security/universe Translation-en [15,2 kB]
Hit http://no.archive.ubuntu.com wily/universe Translation-en
Hit http://no.archive.ubuntu.com wily-updates/main Translation-en
Hit http://no.archive.ubuntu.com wily-updates/multiverse Translation-en
Hit http://no.archive.ubuntu.com wily-updates/restricted Translation-en
Hit http://no.archive.ubuntu.com wily-updates/universe Translation-en
Hit http://no.archive.ubuntu.com wily-backports/main Translation-en
Hit http://no.archive.ubuntu.com wily-backports/universe Translation-en
Fetched 496 kB in 7s (70,7 kB/s)
W: Failed to fetch http://apt.puredata.info/releases/dists/wily/main/binary-i386/Packages 404 Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.
myuser@machine:~$ sudo apt-get install pd-extended
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package pd-extended is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'pd-extended' has no installation candidate
Help with RJDJ test scene. Coordinate output conditions
Hello! This is my first post on the forum.
I am in the process of designing an RJDJ scene and need some help.
I have a small test patch that I am working which will output a different frequency sound whenever a different part of the iPhone screen is touched.
Basically I have a .JPG which is 320 pixels square. This is then divided up into 4 different coloured squares which are 160 pixles square.
Heres the logic:
If touch value on x-axis <160pix play 440hz (Bottom left square)
If touch value on x-axis >160pix play 880hz (Bottom right square)
if touch value on y-axis <160pix play 440hz (Bottom left square)
if touch value on y-axis >160pix play 1320hz (Top left square)
I can configure the patch to play these sounds using moses objects and they work fine
But here is my problem:
if touch value on x and y-axis is > 160pix play 1760hz (Top right square)
Only when both x and y values are more than 160pix is the patch aloud to output a sound. However I can not think of which objects/design to use in order to meet these conditions.
I have included the patch so you can see what I have been doing so far.
Thanks for your help
Call for participation - Pure Data improvisation- Marseille - France
Call for participation at the performance audio Blank Pages #13
Lieu/Place : ZINC Friche la Belle de Mai, Marseille, France
Date : 10-07-2010
Heure/Time : 9pm - 10pm
We search for sound artists or musicians who work with the graphical programming environnements Pure Data or Max/MSP to interpretate the Blank Pages score. This score requires participants to play together and improvise without prior preparation. The Blank Pages score, describes the situation in 4 points : (http://blankpages.fr/score.html) :
60'00''
Pure Data
Blank Page
No load/No Save
Participants are asked to bring a laptop with the software Pure Data or Max / MSP installed.
More infos :
www.blankpages.fr
If you are interesting send me an e-mail with your name surname or nickname.
thomas_thiery (at) laposte (dot) net
Cheers Thomas Thiery
Blank Pages - Berlin - 5 - 6 september
Call for participation at the performance audio Blank Pages #7 et #8
Berlin -- 05 and 06 of September - 2009
As part of the Nth Synthesis and Duo-THAM tour, we will organize two Blank Pages session (#7 and #8) in Berlin. We search for sound artists or musicians who work with the graphical programming environnements Pure Data or Max/MSP to interpretate the Blank Pages score. This score requires participants to play together and improvise without prior preparation. The Blank Pages score, describes the situation in 4 points : (http://blankpages.fr/score.html) :
60'00''
Pure Data
Blank Page
No load/No Save
Participants are asked to bring a laptop with the software Pure Data or Max / MSP installed.
Seating is limited. Please download and complied the field :
http://www.blankpages.fr/registration-form.doc
The performance will take place at :
Session #7
05 september 2009 - 2pm
Emitter19
Kiefholzstrasse 19 Berlin
Session #8
06 september 2009 - 5pm
NK
Elsen str 52 2HH Berlin
Feel free to visit the website of Blank Pages. For questions, please send a mail to Thomas Thiery :
thomas_thiery@laposte.net
For more information :
Blank Pages :
http://www.blankpages.fr
Emitter 19
http://emitter19.blogsport.de
NK :
http://www.myspace.com/enka52
Java.lang.ArithmeticException: negative exponent
Hi everybody!
I'm facing a strange error when i try to generate Key-Pair to be used for encryption purposes.
Either in linux or in windows, it is working perfectly with SUN JDK.
But in RedHat GNUClASS+jamvm, it's wrong as follow.what should I to do ?
Thanks and waiting your replies!
-------------------------------------The error showing is:
genKeyPair failed: java.lang.ArithmeticException: negative exponent
java.lang.ArithmeticException: negative exponent
at java.math.BigInteger.pow(BigInteger.java:1001)
at gnu.java.security.key.dss.FIPS186.generateParameters(FIPS186.java:200)
at gnu.java.security.key.dss.DSSKeyPairGenerator.generate(DSSKeyPairGenerator.java:305)
at gnu.java.security.jce.sig.KeyPairGeneratorAdapter.generateKeyPair(KeyPairGeneratorAdapter.java:93)
at java.security.KeyPairGenerator.genKeyPair(KeyPairGenerator.java:289)
at cn.com.webinfo.security.RSA.generateKey(RSA.java:100)
at cn.com.webinfo.stest.MainRSA.main(MainRSA.java:23)
java.lang.NullPointerException
at cn.com.webinfo.security.RSA.generateKey(RSA.java:102)
at cn.com.webinfo.stest.MainRSA.main(MainRSA.java:23)
Generating private key is failure!
----------------------------------------my code:
MainRSA.java:23 RSA.generateKey("001","prikeyRSA.dat", "pubkeyRSA.dat");
public static boolean generateKey(String id, String priFileName, String pubFileName) {
try {
KeyPairGenerator keygen = KeyPairGenerator.getInstance("RSA");
SecureRandom secrand = new SecureRandom();
secrand.setSeed(id.getBytes());
keygen.initialize(1024, secrand);
RSA.java:100 KeyPair keys = keygen.genKeyPair();
RSA.java:102 PrivateKey prikey = keys.getPrivate();
PublicKey pubkey = keys.getPublic();
.........
Java.lang.ArithmeticException Error
Hi !
I also have the same matter, It's good , either in linux or in windows, with SUN JDK.
But in RedHat GNUClASS+jamvm, it's wrong as follow.what should I to do ?
Thank you !
genKeyPair failed: java.lang.ArithmeticException: negative exponent
java.lang.ArithmeticException: negative exponent
at java.math.BigInteger.pow(BigInteger.java:1001)
at gnu.java.security.key.dss.FIPS186.generateParameters(FIPS186.java:200)
at gnu.java.security.key.dss.DSSKeyPairGenerator.generate(DSSKeyPairGenerator.java:305)
at gnu.java.security.jce.sig.KeyPairGeneratorAdapter.generateKeyPair(KeyPairGeneratorAdapter.java:93)
at java.security.KeyPairGenerator.genKeyPair(KeyPairGenerator.java:289)
at cn.com.webinfo.security.RSA.generateKey(RSA.java:100)
at cn.com.webinfo.stest.MainRSA.main(MainRSA.java:23)
java.lang.NullPointerException
at cn.com.webinfo.security.RSA.generateKey(RSA.java:102)
at cn.com.webinfo.stest.MainRSA.main(MainRSA.java:23)
Generating private key is failure!
MainRSA.java:23 RSA.generateKey("001","prikeyRSA.dat", "pubkeyRSA.dat");
public static boolean generateKey(String id, String priFileName, String pubFileName) {
try {
KeyPairGenerator keygen = KeyPairGenerator.getInstance("RSA");
SecureRandom secrand = new SecureRandom();
secrand.setSeed(id.getBytes());
keygen.initialize(1024, secrand);
RSA.java:100 KeyPair keys = keygen.genKeyPair();
RSA.java:102 PrivateKey prikey = keys.getPrivate();
PublicKey pubkey = keys.getPublic();
.........
Fatosc~
aying to myself... as soon as I tried to use that oscillator in something like a synth, I realized that it is a real CPU hog. a single instance seems to take ~ 10% of my 1.83GHz dual core T2400
I suspect this has something to do with the 4 pow~ objects. so I banged my head on it for almost a whole weekend and I came up with a totally different approach, more puredata-friendly, which uses a single pow~.
basically, I use 3 phasors (freq, freq*2 and freq*4), get a square ware from the first two, then do some math to coerce them to various -1/0/+1 combinations, then use the results to do some other math on the main phase.
the code in C now would look something like this:
// sq1_zm: square at base freq (0>-1)
// sq1_pz: square at base freq (1>0)
// sq1_pm: square at base freq (1>-1)
// sq2_pz: square at freq*2 (1>0)
// sq2_pm: square at freq*2 (1>-1)
// phase4: phase at freq*4
output = sq1_zm+(sq1_pz-pow((sq2_pz-phase4)*sq2_pm, fatness))*sq1_pm;
pretty nasty stuff (I don't expect you to say "ahhh, yes, it's clear as light" , but it was a very challenging exercise. also very rewarding.
I was able to build a very basic 8-notes polyphonic 2-oscillator synth with it, that does frequency AND fatness modulation. the sound is interesting, but I still need to explore parameters tweaking and stuff.
please find attached the revised fatosc~ patch. feedback is really welcome.
I will post the synth as soon as I've cleared up the wiring mess and built a decent UI for it. (and if there's some interest in it, of which I don't see much... please show hands .
cheers,
Aldo