Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

Comment on

( #3333=superdoc: print w/replies, xml ) Need Help??

Thanks for your work, I take the initiative of answering you here also and not only on Github because your thoughts can give other programmers the will to participate and as I told you, I would appreciate to see Csgrouper become the project of a team.

Your idea about refactoring by separating the musical model from the Tk presentation is important and I hope we can realize it soon, but I'd probably need more of your help in that. I think that this operation could involve only the executable and not the library classes.

As you know there is already a package CsgrouperInter at the end of but it's only dedicated to giving the user a place to overwrite the comparison routines without altering the core of Csgrouper that is made principally of permutational functions from the object classes.

What the newcomers may not realize immediately, is that these permutational functions are objective, part of them are described in mathematical books such as Modern Algebra by Franck Ayres Jr., Schaum ed., the others are derived from the former ones.

I gave less importance to what you call the "musical model" because it was conceived only as a way to adapt these permutational functions to music. This model has been made empirically.

As long as the ouput of permutational functions is kept (i.e. the succession of the notes), the constructions can claim to some degree of mathematical purity. It means that everything else that is connected to the musical model: mostly the notes octaves, their rythm, their sound parameters (like amplitude, duration, attack, crossfade, etc.), can be changed. This is where your refactoring proposal fills a gap, because having not made the separation clear from the start makes users think that Csgrouper is a program that makes music, when it should be understood as a program that yields permutational forms for music, packed in a changeable way, which is quite different.

I think that we could perhaps begin by separating the package CsgrouperInter from (the Tk GUI) and give it its own file that can later receive x-functions and y-functions responsible for sound parameters modifications and sequences relations.

What do you think about that?

In reply to Re^2: Csgrouper : first important revision since release by emilbarton
in thread Csgrouper : first important revision since release by emilbarton

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?

    What's my password?
    Create A New User
    [Corion]: Doh - 3rd time's the charm, maybe? Tempalte::LiquidX ::Tag::Include :D
    [Corion]: Ah well, you know what it should be ;) hard, copied link

    How do I use this? | Other CB clients
    Other Users?
    Others contemplating the Monastery: (6)
    As of 2018-05-25 12:55 GMT
    Find Nodes?
      Voting Booth?