[PD] isosonic curves : level the perceptual loudness of different pitches
This was first presented in the Second Puredata International Convention, in which I thank Mathieu again as well as the other people involved in the production of it - the event was basically a turn point in my life for the better :) But the work I presented then seems to have disappeared from the web... that one is in english, and is still a good starting reference to the things I'm working with in my phd research. I can send over request. do you mean http://artengine.ca/~catalogue-pd/28-Porres.pdf ? This paper has been there since 22 août 2007 and hasn't moved 2,54 centimetres. _ _ __ ___ _ _ _ ... | Mathieu Bouchard, Montréal, Québec. téléphone: +1.514.383.3801___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
[PD] isosonic curves : level the perceptual loudness of different pitches
In Fact, I just compiled 2 ways of doing the phons curves, by Robinson-Dadson, and the ISO226:2003. glad to see it's released and GPL'ed, but can you just add « with lots of help from Mathieu Bouchard » somewhere in the comments ? _ _ __ ___ _ _ _ ... | Mathieu Bouchard, Montréal, Québec. téléphone: +1.514.383.3801___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] isosonic curves : level the perceptual loudness of different pitches
Well, I ain't released at all, I just a briefly mentioned. But in a portuguese mail list they were so excited about it I had to release and did thank and make references to all of who helped, especially Mathieu, of Course, without whom I'd still be stuck and not kowing what do to at all :) And as long as we are on the subject, let me tell more about this: one object does the conversion according to the data from ISO226:2003, and the code was from a matlab code you can easily find on the net (don't remember the author, sorry). The other object converts according to Robinson and Dadson's 1956 revision, and the converting functions are from the Composer Clarence Barlow. All this follows the external I publihed last year at SBCM09 (portuguese), with co-autorship of Andre Salim Pires, who compiled the thing for me. And the external is the roughness object, that uses the Equal Loudness Curves in it. I first had it as a patch, which couldn't be have been made witout the initial push of yet another partner (Fábio Furlanete), who was the first to help me out in the world of Pd, and started porting some Matlab codes from Sethares' research as a Pd patch. This was first presented in the Second Puredata International Convention, in which I thank Mathieu again as well as the other people involved in the production of it - the event was basically a turn point in my life for the better :) But the work I presented then seems to have disappeared from the web... that one is in english, and is still a good starting reference to the things I'm working with in my phd research. I can send over request. Now, I see that the [loudness~] object for MAX does something I'm interested in, do we have a similar thing for Pd? I could port that object for Pd if we don't as part of my research, with the help of Mathieu of course :) and about the iem_matrix object, do I have to get it somewhere? What data is it from? Cheers Alex 2010/3/25 Mathieu Bouchard ma...@artengine.ca In Fact, I just compiled 2 ways of doing the phons curves, by Robinson-Dadson, and the ISO226:2003. glad to see it's released and GPL'ed, but can you just add « with lots of help from Mathieu Bouchard » somewhere in the comments ? _ _ __ ___ _ _ _ ... | Mathieu Bouchard, Montréal, Québec. téléphone: +1.514.383.3801 ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] isosonic curves : level the perceptual loudness of different pitches
Oops, couldn't find or load the [mtx_phon_curve]. But I got Pd Extended with iemmatrix, what could I be doing wrong? do you all have it? cheers alex 2010/3/24 Alexandre Porres por...@gmail.com Hi, I found an acient thread that really interests me a lot! In Fact, I just compiled 2 ways of doing the phons curves, by Robinson-Dadson, and the ISO226:2003. I will look now for this iem_matrix object and see what it does. In the meantime, I'm wondering what else more related to the subject there is. For example, I know now that in Super Colider you can analyze a sound via FFT and it will give you the loudness in sones. I think I believe I saw something about a MAX object named [loudness] on the net, and I assume it might do something similar. Do we have something for that in Pd? Cheers Alex ps. Oh yeah, I attached my stuff, the objects are inside my roughness library. Alexandre Quessy wrote: * Hi all,** ** I would like to create an abstraction to adjust the amplitude of** synthetic sounds according to the ear sensitivity. At a given** amplitude, we hear the notes in the middle range louder than the high** and low notes. This perceptual property of the audition can be** somewhat undesired in a musical work. (in my opinion at least)** ** The equal lines of actual amplitude of notes that seem to have the** same loudness are called isosonic curves. Here are 2 different** graphics of these curves :** ** http://www.multimedia.uqam.ca/cours/audio/images/diag/sonpsy_isoson.gif** http://www.comm.uqam.ca/GRAM/illu/mus/nature/CourbeDIsosonie.GIF** ** A few links that might give you a few hint for the calculations :** ** http://en.wikipedia.org/wiki/DB%28A%29** http://en.wikipedia.org/wiki/Weighting_filter** http://en.wikipedia.org/wiki/Stevens%27_power_law** ** Anyone would have a formula or a table containing data that could help** me to calculate this ? For instance, we would be able to generate sine** waves of any frequencies that would be perceived as having the same** intensity for all of them, by changing their amplitude according to** this leveling formula . This way, we could hear our low freq notes as** much as the middle ones. Very valuable. :)* btw, there is an object in iemmatrix called [mtx_phon_curve] which should give you what you want. since it is an abstraction, you can even see how the curves are created. mfga.sdr IOhannes * ** Thanks !* ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] isosonic curves : level the perceptual loudness of different pitches
Hello all, This abstraction is very nice, but computing matrices on every note is quite expensive on the CPU, no? Perhaps it would be better to store it in a table, let say using 60 (pd)db as a reference. The only thing is that low and high notes are multiplied by factor much bigger than 1 and it makes the sound clip much. Maybe I should just use a [clip] with the values read from the table. Any suggestion for something usable on every day patching ? Thanks, a 2007/2/12, Denis Trapeznikoff [EMAIL PROTECTED]: 2007/2/9, Ed Kelly [EMAIL PROTECTED]: So, if you have a signal at 96dBPD (-4dBFS) and you set it to 90dBPD (-10dbFS), the loudness will be heard to drop by the same amount as when you then set it to 84dBPD (-16dBFS). ... but remember, that ear's frequency response curve is dependent on the level of sound... So the amount is not the same. ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list -- Alexandre Quessy http://alexandre.quessy.net ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] isosonic curves : level the perceptual loudness of different pitches
Hi Alexandre, hi all, Yesterday I corrected an error in mtx_phon_curve-help.pd and changed the behaviour of [mtx_phon_curve] abstraction (pure-data.cvs.sf.net/cvsroot/puredata/externals/iem/iemmatrix/abs). Now the output is in dB, just like everyone would expect; before it was p^2/p0^2 ... On Thursday 08 February 2007 06:43, Alexandre Quessy wrote: Hello all, Very nice, mr. Zmoelnig. Of course, this is exactly what I need. To use this very nice abstraction, I simply need to multiply the amplitude of the pitch I want to level by the corresponding amplitude in db, which will need to passed in [db2rms] ? [tabread] [db2rms] [*~] ... Awesome ! Alexandre Quessy Perhaps a nice version could be now: number box [osc~] | [mtx 1 1] [mtx_phon_curve 60] [$3( [dbtorms] [*~] btw, there is an object in iemmatrix called [mtx_phon_curve] which should give you what you want. since it is an abstraction, you can even see how the curves are created. mfga.sdr IOhannes Thanks ! Franz ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] isosonic curves : level the perceptual loudness of different pitches
Hi Alex, all ...but PDs dB goes to 0, because we have to have the numbers following the same scheme - so that 0 means 0 always I think. Industry uses dBFS (deciBel Full Scale) because it is measuring the signal against the full scale from -96dB in 16bit recordings to 0dB (all bits used). Basically, the reason for dB is that our ears hear sound in a non-linear fashion, rather like frequency in fact which is why we have [mtof] Each drop of (n)dB will be heard as the same amount of reduction in loudness, whereas every linear drop is different perceptually. So, if you have a signal at 96dBPD (-4dBFS) and you set it to 90dBPD (-10dbFS), the loudness will be heard to drop by the same amount as when you then set it to 84dBPD (-16dBFS). In fact, you have halved the amplitude twice, so it is a quarter of what it was, but each drop is heard as the same. This is the difference between amplitude (linear [*~ ]) and loudness (logarithmic) ...so you could relate dB to pitch accounting for the energy at different pitches quite simply, if you use inputs to [dBtorms] and [mtof] in some form of inverse-proportion. [dbtorms] | [*~ ] Best, Ed Alexandre Quessy [EMAIL PROTECTED] wrote: Hi all, 2007/2/8, Frank Barknecht : Yes, it's new. You could use the [list-len] abstraction from [list]-abs instead, but you need to check out an older version, because the newest one just wraps [list length]. zexy's [length] also does the job, as far as I know. As I can see, I am still very bad at using the dB unit for audio amplitude... Anyone has a rule of thumb for this ? Should I use dB with a simple ADSR filter, let say ? I know that if you use them, -6 dB is somewhat half as loud and +6 dB is twice as loud. Great. Now, in pd, 100 is unity while in the industry, the consoles use 0 for unity level. 0 in pd is minus infinity, as far as I know. Now, what is usable ? After a drop of a few dB, we don't hear anything. Perceptualy, I find the standard [*~] range of numbers more linear than using the dB scale. So, the RMS kind of mean the actual amplitude of the vibrating membrane of the speaker... http://en.wikipedia.org/wiki/Audio_power : hence we use [- 100] [dbtorms] for the conversion. Anything else one should know ? Perhaps I should put it somewhere on puredata.org after. :) -- Alexandre Quessy http://alexandre.quessy.net ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list \/ /\ | | == | | / \ Lone Shark Aviation out now on http://www.pyramidtransmissions.com http://www.pyramidtransmissions.com/process.php?pname=ShopfrontProcess-Start - The all-new Yahoo! Mail goes wherever you go - free your email address from your Internet provider.___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] isosonic curves : level the perceptual loudness of different pitches
Hello all, Very nice, mr. Zmoelnig. Of course, this is exactly what I need. It appears that the object [list length] cannot be created. Is this a pd 0.40 new feature of the [list] object ? (using pd 0.39-2 extended on Linux) To use this very nice abstraction, I simply need to multiply the amplitude of the pitch I want to level by the corresponding amplitude in db, which will need to passed in [db2rms] ? [tabread] | [db2rms] | [*~] ... Awesome ! Alexandre Quessy http://alexandre.quessy.net 2007/1/25, IOhannes m zmoelnig [EMAIL PROTECTED]: Alexandre Quessy wrote: Hi all, I would like to create an abstraction to adjust the amplitude of synthetic sounds according to the ear sensitivity. At a given amplitude, we hear the notes in the middle range louder than the high and low notes. This perceptual property of the audition can be somewhat undesired in a musical work. (in my opinion at least) The equal lines of actual amplitude of notes that seem to have the same loudness are called isosonic curves. Here are 2 different graphics of these curves : http://www.multimedia.uqam.ca/cours/audio/images/diag/sonpsy_isoson.gif http://www.comm.uqam.ca/GRAM/illu/mus/nature/CourbeDIsosonie.GIF A few links that might give you a few hint for the calculations : http://en.wikipedia.org/wiki/DB%28A%29 http://en.wikipedia.org/wiki/Weighting_filter http://en.wikipedia.org/wiki/Stevens%27_power_law Anyone would have a formula or a table containing data that could help me to calculate this ? For instance, we would be able to generate sine waves of any frequencies that would be perceived as having the same intensity for all of them, by changing their amplitude according to this leveling formula . This way, we could hear our low freq notes as much as the middle ones. Very valuable. :) btw, there is an object in iemmatrix called [mtx_phon_curve] which should give you what you want. since it is an abstraction, you can even see how the curves are created. mfga.sdr IOhannes Thanks ! x ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] isosonic curves : level the perceptual loudness of different pitches
Hallo, Alexandre Quessy hat gesagt: // Alexandre Quessy wrote: It appears that the object [list length] cannot be created. Is this a pd 0.40 new feature of the [list] object ? (using pd 0.39-2 extended on Linux) Yes, it's new. You could use the [list-len] abstraction from [list]-abs instead, but you need to check out an older version, because the newest one just wraps [list length]. Ciao -- Frank Barknecht _ __footils.org_ __goto10.org__ ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list