On Fri, 11 Nov 2011 11:50:08 -0500 Youness Alaoui <kakar...@kakaroto.homelinux.net> wrote:
> Carsten, a few people have noted their disappointment (and anger) at this > being merged and some requested it to be reverted, you didn't even take the > time to answer them and address their concerns.. Could you please take the > time to do that, since you obviously had time to respond to David with such > a long email, it looks bad for you to respond to only what you want and > ignore everyone else. He's a busy guy, and this is a serious issue that he can't just reply off the top of his head like he's been doing with his other mails. Relax. > > On Fri, Nov 11, 2011 at 1:33 AM, Carsten Haitzler <ras...@rasterman.com>wrote: > > > On Thu, 10 Nov 2011 18:50:45 +1000 David Seikel <onef...@gmail.com> said: > > > > > On Tue, 8 Nov 2011 16:33:42 +0900 Carsten Haitzler (The Rasterman) > > > <ras...@rasterman.com> wrote: > > > > > > > On Tue, 8 Nov 2011 07:23:27 +0100 (CET) Vincent Torri > > > > <vto...@univ-evry.fr> said: > > > > > > > > > > > > > > > > > > > On Mon, 7 Nov 2011, Carsten Haitzler (The Rasterman) wrote: > > > > > > > > > > > attached. this was a sample edc that would be able to play audio, > > > > > > not just single samples but whole sequences across multiple > > > > > > tracks as well as control specific channels and tracks. it didn't > > > > > > specify looping params yet or other additional stuff. > > > > > > > > > > i've never heard about that sound plan before the commit. The patch > > > > > was not public and we could not have discussed about it before the > > > > > commit. So I really don't like the way it came into edje. > > > > > > > > i'm not sure this is much different from anything else that goes on > > > > in efl. i have done work for a decade+ without discussing patches on > > > > the mailing list first. so have most developers. as such this patch > > > > this time was going through me. the comments on the patch so far > > > > havent actually commented on the edc api it adds at all which > > > > everyone is up in arms about "for release". so since everyone > > > > complaining isn't actually talking about that... i'll write it here > > > > in short form. it adds: sounds { > > > > sample { > > > > name: "<NAME>" <ENCODING>; > > > > source: "<SAMPLE_FILE>"; > > > > } > > > > ... > > > > tone: "<NAME>" <FREQ>; > > > > ... > > > > } > > > > and 2 more actions: > > > > PLAY_SAMPLE "<NAME>" <SPEED>; > > > > PLAY_TONE "<NAME>" <DURATION>; > > > > > > > > that's it. unfortunately to make this WORK u need a chunk of infra > > > > like being able to load and encode samples into edj files, decode > > > > them, play and mix them, resample them, etc. all of which is opaque > > > > to the api. > > > > > > /me picks a spot in this thread to actually discuss the API. Here > > > seems the best. > > > > hooray! :) > > > > > A quick look over it, and the example, and the "plan", and it seems > > > mostly sane. One thing that stands out straight away in the examples is > > > the way that a bit of music was defined. > > > > > > First thing is that you are using something that looks like a typical > > > tracker, which is fine in itself. Lots of people are familiar with > > > that. It's a bit verbose though. > > > > well my hope actually was that later we can provide a mod/xm/s3m converter > > that > > can load one of these files and produce a bunch of edc to include. the only > > reason i didn't go right to "use libmikmod and just inline mods in your > > edj" was > > that these mod formats don't support ogg/mp3 etc. style sample compression > > and i > > really want that for space efficiency reasons. i actually wasn't expecting > > peolpe to write music in edc. it's POSSIBLE and to be honest - when i did > > tracking you literallly did almost what the edc says in text. u arrow down > > 7, > > hit a key to play the sample at that speed (c-3/b-3/f#-2 etc.). you'd > > literally just have the sound played at that time as the added bonus.. :) > > > > > I think it would be great to also provide an alternative that is more > > > like MIDI, as that is also used by a lot of people. Have both, that > > > would cover most things. Actually, the "plan" includes using a program > > > per note, which is a bit more MIDI like, but even more verbose than the > > > pattern style. > > > > a program per note would be bad. programs dont guarantee any timings of any > > sort. if u want N channels synced you're in trouble. :( but if u want to > > use > > embryo.lua then u can write CODE to play but u'll be writing code to have a > > timer and call play funcs... maybe from a passed in table/array.. but it'll > > boil down to the same thing. > > > > can you expand on the midi thing with some details? last i knew of midi it > > was > > roughly the same as a single track of a tracker with no defined length - > > just > > commands to "play instr id X at note Y" like thngs - much like a tracker. > > > > > Can we cut the verbosity levels? Though I guess edje has a similar > > > problem, and the solution is to go to embryo, or lua (which so far > > > seems to end up being about half as verbose as embryo, though YMMV). > > > > i'd say the verbosity is on par with a tracker... is that bad? > > > > > Second is what you are doing to provide a scale. I see you are > > > basically dividing an octave into 7 equal parts, then doing maths to > > > arrive at the numbers to feed into the system. Now I'll admit that > > > > oh.. thats just making use of edje_cc's math handler. speed is 1.0 for > > "play > > note at given samplerate" ie - if sample is 44.1khz - then play at > > 44.1khz. 2.0 > > == play at 88.2khz. 0.5 == play at 22.05khz etc. edje_cc can do inline math > > expressions it evals at edje_cc time, so (3/7) becomes 0.428 - it's just me > > making it more convenient. i guess it doesnt work well for < 1 but for > 1 > > it > > works well. > > > > > musical scales are an entire morass of systems, but most western modern > > > and classical music, going back a few centuries, uses the 12 tone equal > > > temperament scale, or something very close to it. Except for blues and > > > jazz, where things can get complicated. Non western music uses a > > > variety of scales, so it's hard to do one size fits all. Like most of > > > western culture though, it's becoming the most popular around the > > > world. I have idea what traditional Korean music is like. > > > > yeah - i know. here come the catch. the actual note... is entirely > > irrelevant. > > the note means zip when it comes to the pitch of the sound as it's entirely > > dependant on what u sample. what i do know is that its an exponential > > scale. > > play a sample at 1/2 its nominal rate, it drops 1 octave. play it at 2x its > > nominal rate, it goes up 1 octave. repeat. (4x and its up 2 octaves, 1/4 > > and > > its down 2 octaves). so as such notes mean nothing when u have generic > > samples. > > it's up to the "composer" to deal with that as all they want is RELATIVE > > notes. :) from memory trackers would take the base samplerate to be "c-6" > > (c > > 6th octave) - we can provide macros or enums/short forms for all of the > > notes > > and octaves (c-6,d#6 etc.) but these too end up becoming just a sample > > playback speed 0.0 -> 1.0 (nominal) -> etc. for higher pitch. :) > > > > > 12 tone equal temperament scale divides an octave into 12 equal > > > parts based on the 12th root of 2, coz things are logarithmic. People > > > doing basic music stuff should not have to deal with that sort of > > > maths. lol > > > > > > On the other hand, I think the API Should provide something more like > > > scientific pitch notation, as it's easy to write that in ASCII, if you > > > use "b" to mean flat. Then the maths for 12 tone temperament scale is > > > hidden, and music comes out sounding like it should. Could be done with > > > some macros. So you could provide "notes" like - > > > > > > C C# D Eb E etc. > > > > as i said - we can make it part of the parser, but it still then boils > > down to > > a float value. at this stage thats a convenience, not a fundamental issue. > > :) > > > > > Not sure about specifying octaves above or below the reference sample > > > or tone, standard scientific pitch notation refers to absolute > > > pitches. Note that this would be an option, people dealing with not so > > > common scales can use that as an example, do their own research into > > > the maths behind their scales, and still be able to use the correct > > > numbers that suit them. > > > > trackers did it this: > > > > (octave 1) > > C-1 > > C#1 > > D-1 > > D#1 > > E-1 > > F-1 > > F#1 > > G-1 > > G#1 > > A-1 > > A#1 > > B-1 > > (octave 2) > > C-2 > > C#2 > > D-2 > > D#2 > > E-2 > > F-2 > > F#2 > > G-2 > > G#2 > > A-2 > > A#2 > > B-2 > > > > etc. - all of these really equated to non-fine-grained ways of multiplying > > the > > nominal samplerate of the sample. if you wanted speeds other than the given > > notes u use modifer commands that fine-tune adjusted samplerate from the > > given > > note. there ere 256 levels allowed between notes with the fine-tune cmd > > (trackers allowed up to 256 commands/modifiers too). c-6 equated to "play > > sample at its samplerate" and all other notes above ands below just > > adjusted > > playrate accordingly. we can do this - but it does boil down to playrates > > relative to 1.0 :) > > > > > This is just a quick look. I'll go over it more later. > > > > > > -- > > > A big old stinking pile of genius that no one wants > > > coz there are too many silver coated monkeys in the world. > > > > > > -- > > ------------- Codito, ergo sum - "I code, therefore I am" -------------- > > The Rasterman (Carsten Haitzler) ras...@rasterman.com > > -- Mike Blumenkrantz Zentific: Doctor recommended, mother approved. ------------------------------------------------------------------------------ RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel