IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Python Discussion :

Voyage en milieu tétracordique


Sujet :

Contribuez Python

  1. #1
    Membre à l'essai Avatar de toumic2.0
    Homme Profil pro
    Gammologie (Étude des gammes)
    Inscrit en
    janvier 2021
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Gammologie (Étude des gammes)
    Secteur : Arts - Culture

    Informations forums :
    Inscription : janvier 2021
    Messages : 17
    Points : 10
    Points
    10
    Par défaut Voyage en milieu tétracordique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
     
     
     
     
     
    # Python 3.9 UTF-8
    # Dimanche 28 mars 2021 à 19h 45m (premières lignes)
    # Mardi 13 avril 2021 (Développement des tétracordes)
    #
    # Conçu par Vicenté Llavata Abreu alias Toumic
     
     
    """ Script de construction des gammes musicales utilisant ces notes (C, D, E, F, G, A, B)
    Explications:
        La création des gammes musicales englobe les notes & les intervalles dans une octave de 12 ½ tons,
        elle se concentre sur les tétracordes étant des corps de 4 notes. L'assemblage formé
        par les gammes gestionnaires de l'intervalle, assemble 2 modèles tétras superposés. La création
        tétracordique mène à une gammologie musicale à partir d'un simple cluster de 4 éléments."""
     
     
    # Fichiers développés
    """..."""
    # Fonction développement
    """..."""
    # Déclarations des mémoires
    tablT = []
    dicoT, dicoM, dicoG = {}, {}, {} # Dictionnaires(Tétra,Mode,Gamme)
    voirT = {}
    yoyoT = [0]
    mini0 = '1234'              # Tétracorde primaire
    octave = 13         # 13 emplacements
    maxi0 = (octave - len(mini0)) - 1
    tetra0, tetra1, t234 = [], ['1', '2', '3', '4'], []
    tablT.append(tetra1)
    # Itérations
    t1, t2, t3, t4 = 0, 1, 2, 3 # maxi0 = 9
    u, u1, u2, u3, u4 = 0, 0, 0, 0, 0 # unité de blocage
    x, stop, stop0, stop1 = 0, True, False, 5
    # Opération Dico(mixam)
    mixam = {} # Dépendances Degré(min/max)
    """ Niveau T2 | MINI=1 MIDI=NULL MAXI=6 """
    """ Niveau T3 | MINI=2 MIDI=T2+1 MAXI=7 """
    """ Niveau T4 | MINI=3 MIDI=T3+1 MAXI=8 """
    nt234= [[2,[1, 6]], [3,[2, 7]], [4,[3, 8]]]
    j = -1
    gamme = '1020340506078'     # Chromatisme naturel
    notes = 'CDEFGABC'          # Notes musique
    alter = ['', '+', 'x', '^', '^+', '^x', '-*', '°*', '*', '°', '-']
    tabas, tahau = [], []       # Tétra*défaut
     
     
    # Fonction couplage tétracordique
    def couple():
        x, z = 0, 0
        for c in tablT:
            y, cyt, ctt = 0, [], []
            for t in tablT:
                l_ct = len(c) + len(t)              # Somme cas
                if octave >= l_ct:
                    o_ct = octave - l_ct            # Différence
                    if l_ct < octave and o_ct > 0:
                        for o in range(o_ct):
                            cyt.append('0')         # Vide zéro entre tétra
                    ctt = []
                    for t1 in t:
                        if t1 != '0':
                            t2 = str(int(t1) + 4)   # Vide zéro dans tétra
                        else:
                            t2 = '0'
                        ctt.append(t2)
                    dicoM[z] = tabas[x] + tahau[y]
                    """Suivre cot"""
                    cot = c.copy()
                    if len(cyt):
                        cot += cyt
                    cot += ctt
                    dicoT[z] = cot
                    cyt = []
                    y += 1
                    z += 1
                # print(f'z{z} dicoT{dicoT[z]}\n')
            # if x == 2 and y == 2: break ####
            x += 1
        # for d in dicoT.values(): print(f'{d}\n')
        # for d in dicoM: print(f'{dicoM[d]}\n')
     
     
     
     
    # Fonction format diatonique tétracordique
    def diaton(uni, dia):
        """ Chromatisation des tétras bas/haut """
        # print(f'Fonc Unité:{uni} Diatonie:{dia}')
        x, oo, o1o, o8o = -1, 0, [], []
        for deg in dia:
            ego1, ego8 = '', ''
            oo = octave - len(dia)
            x += 1
            if int(deg) > 0:
                ged = str(int(deg) + 4)
                sign1 = x - gamme.index(deg) # BAS bémol/dièse
                sign8 = (x + oo) - gamme.index(ged) # HAUT bémol/dièse
                # print(f'Ged{ged}, sign8{sign8} x{x} oo{oo} dia{dia} gamme.index(ged){gamme.index(ged)}')
                if int(deg) > 0:
                    # Signature dièse
                    ego1 = alter[sign1]
                    ego8 = alter[sign8]
                else:
                    # Signature bémol
                    ego1 = alter[sign1]
                    ego8 = alter[sign8]
                ooo1 = str(notes[int(deg)-1] + ego1 + deg)
                ooo8 = str(notes[int(ged)-1] + ego8 + ged)
                # print(f'ego1&8 {ego1}{ego8}|ooo1&8{ooo1}{ooo8}')
                if ooo1[1] in alter:
                    o1o.append(ooo1)
                else:
                    o1o.append(ooo1[0])
                if ooo8[1] in alter:
                    o8o.append(ooo8)
                else:
                    o8o.append(ooo8[0])
        tabas.append(o1o)
        tahau.append(o8o)
        # print(f'Tabas {tabas[-1]}:{tahau[-1]} Tahau | Dia{dia}')
        # print(f'TableT{tablT}')
     
     
    # Charge limite tétra
    for i in tetra1:
        if i != '1':
            j += 1
            mixam[j] = nt234[j][1]
    #print(f'Mixam {mixam}')
    # Développement tétracordique
    while stop:
        # Fonction fabrication
        def brique(nom, valeur, vrai):
            yoyoT[0] += 1
            voirT[yoyoT[0]] = 'FoncBric'
            # Vrai[1, 2, 4] Valeur(index) Nom(degré) Table[0]=['1', '2', '3', '4']
            rang = tablT[0].index(nom) # Index Nom Cluster[1,2,3,4]
            # print(f'_ Fonction nom:valeur {nom}:{valeur} Table {tablT[-1]} Vrai {vrai}|*FoncBric mox{maxi0}')
            vide, pose, terme, bric = 0, 0, vrai[-1], []
            # print(f'Rang={rang} pose={pose} vrai={vrai}')
            while 1: 
                if vide == 0:
                    pose += 1
                    bric.append('1')
                    # print(f'Fonc(0)|{bric}|Vide={vide}')
                    vide += 1
                if vide in vrai:
                    pose += 1
                    bric.append(str(pose))
                    # print(f'Fonc(vrai)|{bric}|Vide={vide}')
                    if vide == vrai[-1]:
                        tetra1 = [o for o in bric]
                        tablT.append(tetra1)
                        # print(f'_ Fonction _ {bric}| brique_voirT')
                        break
                    vide += 1
                if vide not in vrai:
                    bric.append('0')
                    # print(f'Fonc(faux)|{bric}|Vide={vide}')
                    vide += 1
     
     
        # print(f'--------------------------------------Champ:{len(tablT)}:{tablT[-1]}')
     
     
        """Niveaux : T's : Comptes(T234|Routes(U234 """
        if u4 == 0 and t4 <= maxi0 and t2 < 6:
            yoyoT[0] += 1
            voirT[yoyoT[0]] = 'Cond_U4'
            """ Niveau T4 | MINI=3 MIDI=T3+1 MAXI=8"""
            # Cycle T4 | True:STOP(T3,T2);GO(T4) | False:GO(T3)
            # print(f'***T4 True:STOP(T3,T2);GO(T4)|T4={t4} maxi0:{maxi0}')
            # print(f'| ifT4avant || T234;{t2},{t3},{t4} : U234;{u2},{u3},{u3} | {tablT[-1]}')
            if (t4 + 1) > maxi0:
                u2, u3, u4 = 1, 0, 1 # .....    .....   .....       Tour Entier :GO(T3)
                # print(f'| ifT4ifaprès || T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} | {tablT[-1]}')
            else:
                t4 += 1
                u2, u3, u4 = 1, 1, 0 # .....    .....   .....       Tour Entier :GO(T4)
                """ Motif T234;Index Degrés"""
                t234 = [t2, t3, t4]
                # print(f'COMPTESindex: {t234} |GO(T4)bric')
                # print(f'| ifT4ifelseaprès || T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} | {tablT[-1]}')
                brique('4', t4, t234) # .....    .....   Fonction brique tétra
                t234 = []
        else:
            if t4 <= maxi0:
                # Ici U4 = 1 :(t4 <= maxi0)
                # print(f'elseIF:T4avant|False:GO(T4)|| T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} ')
                u2, u3, u4 = 1, 1, 0 #     .....   .....   .....   False :GO(T4)
                """ Motif T234;Index Degrés"""
                t234 = [t2, t3, t4]
                # print(f'COMPTESindex: {t234} |STOP(T4)bric')
                # print(f'elseIF:T4après|False:GO(T4)|| T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} ')
                t234 = []
            else:
                # print(f'elseIFelse:T4avant|False:GO(T3)|| T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} ')
                u2, u3, u4 = 1, 0, 1 #      .....    .....    .....     False:GO(T3)
                """ Motif T234;Index Degrés"""
                t234 = [t2, t3, t4]
                # print(f'COMPTESindex: {t234} |STOP(T4)bric')
                # print(f'elseIFelse:T4après|False:GO(T3)|| T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} ')
                t234 = []
     
     
        if u3 == 0 and t3 < maxi0:
            yoyoT[0] += 1
            voirT[yoyoT[0]] = 'Cond_U3'
            """ Niveau T3 | MINI=2 MIDI=T2+1 MAXI=7"""
            # Cycle T3 | True:GO(T4);STOP(T2);GO(T3) | False :GO(T2)
            # print(f'\n***T3 True:GO(T4);STOP(T2);GO(T3)|T3={t3} maxi0:{maxi0}')
            # print(f'| ifT3avant || T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} | {tablT[-1]}')
            t3 += 1
            t4 = t3 + 1 # Opération Test(T3)/in
            if t4 <= maxi0:
                # Test(T3) Ici T4 <= maxi0(8)"""
                u2, u3, u4 = 1, 1, 0 # .....    .....   .....   .....   Tour unic :GO(T4)
                """ Motif T234;Index Degrés"""
                t234 = [t2, t3, t4]
                # print(f'COMPTESindex: {t234} |GO(T3)bric')
                # print(f'| ifT3ifaprès || T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} | {tablT[-1]}')
                brique('3', t3, t234) #      .....   .....   Fonction brique tétra
                t234 = []
            else:
                # Test(T3) Ici T4 > maxi0(8)"""
                t3 -= 1
                t4 -= 1
                u2, u3, u4 = 0, 1, 1 # .....    .....   .....   .....   Tour unic :GO(T2)
                """ Motif T234;Index Degrés"""
                t234 = [t2, t3, t4]
                # print(f'COMPTESindex: {t234} |STOP(T3)bric')
                # print(f'| ifT3ifelseaprès || T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} | {tablT[-1]}')
                t234 = [] # Opération Test(T3)/Out
        else:
            # De :if u3 == 0 and t3 < maxi0: Soit(U3=1;
            if u3 == 1 and t4 <= maxi0:
                # print(f'elseIF:T3avant|False:GO(T4)|| T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} ')
                u2, u3, u4 = 1, 1, 0 # .....    .....   .....   .....   False :GO(T4)
                """ Motif T234;Index Degrés"""
                t234 = [t2, t3, t4]
                # print(f'COMPTESindex: {t234} |STOP(T3)bric')
                # print(f'elseIF:T3après|False:GO(T4)|| T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} ')
                t234 = []
            else:
                # print(f'elseIFelse:T3avant|False:GO(T2)|| T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} ')
                u2, u3, u4 = 0, 1, 1 # .....    .....   .....   .....   False :GO(T2)
                """ Motif T234;Index Degrés"""
                t234 = [t2, t3, t4]
                # print(f'COMPTESindex: {t234} |STOP(T3)bric')
                # print(f'elseIFelse:T3après|False:GO(T2)|| T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} ')
                t234 = []
     
        if u2 == 0 and t2 < maxi0 - 1:
            yoyoT[0] += 1
            voirT[yoyoT[0]] = 'Cond_U2'
            """ Niveau T2 | MINI=1 MIDI=NULL MAXI=6 """
            # Cycle T2 | True:GO(T4):GO(T3):GO(T2) | False:OUT
            # print(f'\n***T2 True:GO(T4):GO(T3):GO(T2)|T2={t2} maxi0:{maxi0}')
            # print(f'| ifT2avant || T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} | {tablT[-1]}')
            t2 += 1
            t3 = t2 + 1
            t4 = t3 + 1 # Opération Test(T2)/in
            if t4 <= maxi0:
                # Test(T2) Ici t4 <= maxi0(8)"""
                u2, u3, u4 = 1, 1, 0
                """ Motif T234;Index Degrés"""
                t234 = [t2, t3, t4]
                # print(f'COMPTESindex: {t234} |GO(T2)bric')
                # print(f'| ifT2ifaprès || T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} | {tablT[-1]}')
                brique('2', t2, t234) # .....    .....   .....         Fonction brique tétra
                t234 = []
            else:
                # Test(T2) Ici t4 > maxi0(8)"""
                t2 -= 1
                t3 -= 1
                t4 -= 1
                u2, u3, u4 = 1, 1, 1 # Opération Test(T2)/Out
                """ Motif T234;Index Degrés"""
                t234 = [t2, t3, t4]
                # print(f'COMPTESindex: {t234} |STOP(T2)bric')
                # print(f'| ifT2ifelseaprès || T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} | {tablT[-1]}')
                t234 = []
                break
        else:
            # De u2 == 0 and t2 < maxi0 - 1:
            if t2 == mixam[0][1]:
                # print(f'elseIF:T2avant|False:STOP(T2)|| T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4}')
                u2, u3, u4 = 1, 1, 1
                # print(f'elseIF:T2après|False:STOP(T2)|| T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4}')
                break
            else:
                # print(f'elseIFelse:T2avant|False:OUT|| T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} ')
                u2, u3, u4 = 1, 1, 0 # .....    .....   .....   .....   False:OUT             
    # print(f'--------------------------------------Champ:{len(tablT)}:{tablT}:Nombre de tétras = {len(tablT)}')
    unit = u
    for t in range(len(tablT)):
        diaton(unit, tablT[unit])
        unit += 1
    couple()


    Pas besoin de présenter les tétracordes, parce qu’ils sont doublement incontournables au vocabulaire scientifique, et surtout ils vont par deux dans nouvelle / ancienne gamme musicale. L’un commence à la tonique et l'autre se termine à l'octave.
    1234000005678
    Dire l’un c’est dire l’autre, dans un état bipolaire hypermanent !

    De manière classique le tétracorde a un état minimum de 4 notes (1,2,3,4), ces quatre notes sont liées au code quantique de la gamme naturelle.
    CDEFGABC
    Il est dit que la gamme naturelle est une diatonique à tonalité majeure…

    Essayer de développer une logique gammique à partir de son plus petit élément clustérien, c’est connaitre le cluster relatif chromatique. En sachant que la gamme comporte cinq intervalles situés entre certaines notes.
    BC D EF G A BC
    Elle commence en Do© elle ne comporte pas d’altération, c’est naturel !

    Le premier tétracorde trouvé est formé de quatre potes conjoints (), cette formation a un synonyme clustérien appelé « Cluster ».
    Et quoi de plus simple que le dédoublement clustérien, obtenant un clone clustérien dont l’effet est bien échelonné.
    1234
    (.1278.)
    5678
    812345678
    La programmation offre le moyen de développer un traitement codé…

    Ligne 119 | # Charge limite tétra
    Le cluster tétra trouvé est élémentaire, il ne comporte pas de poignée compréhensive sur laquelle s’appuyer ni déplacer. Mais on connait son taux de repli équivalant tétracordique (4), et sa capacité d’extension calculée en rapport chromatique-(12) diatonique-(7) octave-(2) cluster-(2). Les intervalles ne sont pas cités, ne sont pas existants, puis 5 intervalles + 7 notes = 1 2 34 5 6 7.
    En sachant que l’élément tonique du tétracorde-(1) ne change pas de place, il a toujours la valeur 1.
    # Opération Dico(mixam)
    mixam = {} # Dépendances Degré(min/max)

    """ Niveau T2 | MINI=1 MIDI=NULL MAXI=6 """
    """ Niveau T3 | MINI=2 MIDI=T2+1 MAXI=7 """
    """ Niveau T4 | MINI=3 MIDI=T3+1 MAXI=8 """

    De Ligne 33 À Ligne 37

    Ligne 125 | # Développement tétracordique
    Cette fonction est séparée en deux parts ;
    L’algorithme des membres tétracordiques :
    Selon les estimations minima/maxima les tétras (T1, T2, T3, T4)
    La priorité du cycle T4 de 3 à 8, étendu de six clusters :
    1234|12304|…|123000004
    L’incrémentation du T4 est prioritaire jusqu’à son maxima. En fin de boucle, l’algo incrémente le tétra voisin inférieur une seul fois.
    Exemple du débutant :
    1230004__ Tétracorde n°4
    12300004_ Tétracorde n°5
    123000004 Tétracorde n°6
    12034____ Tétracorde n°7
    120304___ Tétracorde n°8
    La mise en forme des membres tétras :
    La formation clustérienne lorsque les éléments T1, T2, T3, T4 se sont synchronisés, vient rendre visible les différentes positions diatoniques En remplaçant les intervalles par des zéros.

    Ligne 80 | # Fonction format diatonique tétracordique
    Cette fonction traite le premier cluster trouvé formé des chiffres de 1 à 4, ou bien C, D, E, F, et de zéros et intervalles. Ce tétra n’a pas encore ces valeurs 5, 6, 7, 8 nécessaires pour former la gamme idéale.
    Alors elle prend le n°1 pour en faire le n°5. Ainsi quand elle traite le cluster n°1 1234, il en ressort 5678. En s’arrangeant pour garder le 1 à la tonique et le 8 à l’octave. Ce qui a comme résultat fictif ; 1234000005678.
    En ce qui concerne la tonalité (#, b), soit l’apport altératif des notes. De cette fonction abouti un ensemble tétra entier, toujours de 1 à 4 pour des tonalités allant de 1 à 4 et de 5 à 8. Lignes 114-115 | tabas, tahau.

    Ligne 45 | # Fonction couplage tétracordique
    Une liste de tétras utiles a été tablée. Ligne 116 | tablT. Et la notion du format naturel de la gamme vue ci-dessus avec le positionnement de deux tétras, ou alors il s’agit d’un couplage premier clustérien.



    La programmation continue avec la définition des gammes fondamentales prochainement.

  2. #2
    Membre à l'essai Avatar de toumic2.0
    Homme Profil pro
    Gammologie (Étude des gammes)
    Inscrit en
    janvier 2021
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Gammologie (Étude des gammes)
    Secteur : Arts - Culture

    Informations forums :
    Inscription : janvier 2021
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par toumic2.0 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
     
     
     
     
     
    # Python 3.9 UTF-8
    # Dimanche 28 mars 2021 à 19h 45m (premières lignes)
    # Mardi 13 avril 2021 (Développement des tétracordes)
    #
    # Conçu par Vicenté Llavata Abreu alias Toumic
     
     
    """ Script de construction des gammes musicales utilisant ces notes (C, D, E, F, G, A, B)
    Explications:
        La création des gammes musicales englobe les notes & les intervalles dans une octave de 12 ½ tons,
        elle se concentre sur les tétracordes étant des corps de 4 notes. L'assemblage formé
        par les gammes gestionnaires de l'intervalle, assemble 2 modèles tétras superposés. La création
        tétracordique mène à une gammologie musicale à partir d'un simple cluster de 4 éléments."""
     
     
    # Fichiers développés
    """..."""
    # Fonction développement
    """..."""
    # Déclarations des mémoires
    tablT = []
    dicoT, dicoM, dicoG = {}, {}, {} # Dictionnaires(Tétra,Mode,Gamme)
    voirT = {}
    yoyoT = [0]
    mini0 = '1234'              # Tétracorde primaire
    octave = 13         # 13 emplacements
    maxi0 = (octave - len(mini0)) - 1
    tetra0, tetra1, t234 = [], ['1', '2', '3', '4'], []
    tablT.append(tetra1)
    # Itérations
    t1, t2, t3, t4 = 0, 1, 2, 3 # maxi0 = 9
    u, u1, u2, u3, u4 = 0, 0, 0, 0, 0 # unité de blocage
    x, stop, stop0, stop1 = 0, True, False, 5
    # Opération Dico(mixam)
    mixam = {} # Dépendances Degré(min/max)
    """ Niveau T2 | MINI=1 MIDI=NULL MAXI=6 """
    """ Niveau T3 | MINI=2 MIDI=T2+1 MAXI=7 """
    """ Niveau T4 | MINI=3 MIDI=T3+1 MAXI=8 """
    nt234= [[2,[1, 6]], [3,[2, 7]], [4,[3, 8]]]
    j = -1
    gamme = '1020340506078'     # Chromatisme naturel
    notes = 'CDEFGABC'          # Notes musique
    alter = ['', '+', 'x', '^', '^+', '^x', '-*', '°*', '*', '°', '-']
    tabas, tahau = [], []       # Tétra*défaut
     
     
    # Fonction couplage tétracordique
    def couple():
        x, z = 0, 0
        for c in tablT:
            y, cyt, ctt = 0, [], []
            for t in tablT:
                l_ct = len(c) + len(t)              # Somme cas
                if octave >= l_ct:
                    o_ct = octave - l_ct            # Différence
                    if l_ct < octave and o_ct > 0:
                        for o in range(o_ct):
                            cyt.append('0')         # Vide zéro entre tétra
                    ctt = []
                    for t1 in t:
                        if t1 != '0':
                            t2 = str(int(t1) + 4)   # Vide zéro dans tétra
                        else:
                            t2 = '0'
                        ctt.append(t2)
                    dicoM[z] = tabas[x] + tahau[y]
                    """Suivre cot"""
                    cot = c.copy()
                    if len(cyt):
                        cot += cyt
                    cot += ctt
                    dicoT[z] = cot
                    cyt = []
                    y += 1
                    z += 1
                # print(f'z{z} dicoT{dicoT[z]}\n')
            # if x == 2 and y == 2: break ####
            x += 1
        # for d in dicoT.values(): print(f'{d}\n')
        # for d in dicoM: print(f'{dicoM[d]}\n')
     
     
     
     
    # Fonction format diatonique tétracordique
    def diaton(uni, dia):
        """ Chromatisation des tétras bas/haut """
        # print(f'Fonc Unité:{uni} Diatonie:{dia}')
        x, oo, o1o, o8o = -1, 0, [], []
        for deg in dia:
            ego1, ego8 = '', ''
            oo = octave - len(dia)
            x += 1
            if int(deg) > 0:
                ged = str(int(deg) + 4)
                sign1 = x - gamme.index(deg) # BAS bémol/dièse
                sign8 = (x + oo) - gamme.index(ged) # HAUT bémol/dièse
                # print(f'Ged{ged}, sign8{sign8} x{x} oo{oo} dia{dia} gamme.index(ged){gamme.index(ged)}')
                if int(deg) > 0:
                    # Signature dièse
                    ego1 = alter[sign1]
                    ego8 = alter[sign8]
                else:
                    # Signature bémol
                    ego1 = alter[sign1]
                    ego8 = alter[sign8]
                ooo1 = str(notes[int(deg)-1] + ego1 + deg)
                ooo8 = str(notes[int(ged)-1] + ego8 + ged)
                # print(f'ego1&8 {ego1}{ego8}|ooo1&8{ooo1}{ooo8}')
                if ooo1[1] in alter:
                    o1o.append(ooo1)
                else:
                    o1o.append(ooo1[0])
                if ooo8[1] in alter:
                    o8o.append(ooo8)
                else:
                    o8o.append(ooo8[0])
        tabas.append(o1o)
        tahau.append(o8o)
        # print(f'Tabas {tabas[-1]}:{tahau[-1]} Tahau | Dia{dia}')
        # print(f'TableT{tablT}')
     
     
    # Charge limite tétra
    for i in tetra1:
        if i != '1':
            j += 1
            mixam[j] = nt234[j][1]
    #print(f'Mixam {mixam}')
    # Développement tétracordique
    while stop:
        # Fonction fabrication
        def brique(nom, valeur, vrai):
            yoyoT[0] += 1
            voirT[yoyoT[0]] = 'FoncBric'
            # Vrai[1, 2, 4] Valeur(index) Nom(degré) Table[0]=['1', '2', '3', '4']
            rang = tablT[0].index(nom) # Index Nom Cluster[1,2,3,4]
            # print(f'_ Fonction nom:valeur {nom}:{valeur} Table {tablT[-1]} Vrai {vrai}|*FoncBric mox{maxi0}')
            vide, pose, terme, bric = 0, 0, vrai[-1], []
            # print(f'Rang={rang} pose={pose} vrai={vrai}')
            while 1: 
                if vide == 0:
                    pose += 1
                    bric.append('1')
                    # print(f'Fonc(0)|{bric}|Vide={vide}')
                    vide += 1
                if vide in vrai:
                    pose += 1
                    bric.append(str(pose))
                    # print(f'Fonc(vrai)|{bric}|Vide={vide}')
                    if vide == vrai[-1]:
                        tetra1 = [o for o in bric]
                        tablT.append(tetra1)
                        # print(f'_ Fonction _ {bric}| brique_voirT')
                        break
                    vide += 1
                if vide not in vrai:
                    bric.append('0')
                    # print(f'Fonc(faux)|{bric}|Vide={vide}')
                    vide += 1
     
     
        # print(f'--------------------------------------Champ:{len(tablT)}:{tablT[-1]}')
     
     
        """Niveaux : T's : Comptes(T234|Routes(U234 """
        if u4 == 0 and t4 <= maxi0 and t2 < 6:
            yoyoT[0] += 1
            voirT[yoyoT[0]] = 'Cond_U4'
            """ Niveau T4 | MINI=3 MIDI=T3+1 MAXI=8"""
            # Cycle T4 | True:STOP(T3,T2);GO(T4) | False:GO(T3)
            # print(f'***T4 True:STOP(T3,T2);GO(T4)|T4={t4} maxi0:{maxi0}')
            # print(f'| ifT4avant || T234;{t2},{t3},{t4} : U234;{u2},{u3},{u3} | {tablT[-1]}')
            if (t4 + 1) > maxi0:
                u2, u3, u4 = 1, 0, 1 # .....    .....   .....       Tour Entier :GO(T3)
                # print(f'| ifT4ifaprès || T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} | {tablT[-1]}')
            else:
                t4 += 1
                u2, u3, u4 = 1, 1, 0 # .....    .....   .....       Tour Entier :GO(T4)
                """ Motif T234;Index Degrés"""
                t234 = [t2, t3, t4]
                # print(f'COMPTESindex: {t234} |GO(T4)bric')
                # print(f'| ifT4ifelseaprès || T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} | {tablT[-1]}')
                brique('4', t4, t234) # .....    .....   Fonction brique tétra
                t234 = []
        else:
            if t4 <= maxi0:
                # Ici U4 = 1 :(t4 <= maxi0)
                # print(f'elseIF:T4avant|False:GO(T4)|| T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} ')
                u2, u3, u4 = 1, 1, 0 #     .....   .....   .....   False :GO(T4)
                """ Motif T234;Index Degrés"""
                t234 = [t2, t3, t4]
                # print(f'COMPTESindex: {t234} |STOP(T4)bric')
                # print(f'elseIF:T4après|False:GO(T4)|| T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} ')
                t234 = []
            else:
                # print(f'elseIFelse:T4avant|False:GO(T3)|| T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} ')
                u2, u3, u4 = 1, 0, 1 #      .....    .....    .....     False:GO(T3)
                """ Motif T234;Index Degrés"""
                t234 = [t2, t3, t4]
                # print(f'COMPTESindex: {t234} |STOP(T4)bric')
                # print(f'elseIFelse:T4après|False:GO(T3)|| T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} ')
                t234 = []
     
     
        if u3 == 0 and t3 < maxi0:
            yoyoT[0] += 1
            voirT[yoyoT[0]] = 'Cond_U3'
            """ Niveau T3 | MINI=2 MIDI=T2+1 MAXI=7"""
            # Cycle T3 | True:GO(T4);STOP(T2);GO(T3) | False :GO(T2)
            # print(f'\n***T3 True:GO(T4);STOP(T2);GO(T3)|T3={t3} maxi0:{maxi0}')
            # print(f'| ifT3avant || T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} | {tablT[-1]}')
            t3 += 1
            t4 = t3 + 1 # Opération Test(T3)/in
            if t4 <= maxi0:
                # Test(T3) Ici T4 <= maxi0(8)"""
                u2, u3, u4 = 1, 1, 0 # .....    .....   .....   .....   Tour unic :GO(T4)
                """ Motif T234;Index Degrés"""
                t234 = [t2, t3, t4]
                # print(f'COMPTESindex: {t234} |GO(T3)bric')
                # print(f'| ifT3ifaprès || T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} | {tablT[-1]}')
                brique('3', t3, t234) #      .....   .....   Fonction brique tétra
                t234 = []
            else:
                # Test(T3) Ici T4 > maxi0(8)"""
                t3 -= 1
                t4 -= 1
                u2, u3, u4 = 0, 1, 1 # .....    .....   .....   .....   Tour unic :GO(T2)
                """ Motif T234;Index Degrés"""
                t234 = [t2, t3, t4]
                # print(f'COMPTESindex: {t234} |STOP(T3)bric')
                # print(f'| ifT3ifelseaprès || T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} | {tablT[-1]}')
                t234 = [] # Opération Test(T3)/Out
        else:
            # De :if u3 == 0 and t3 < maxi0: Soit(U3=1;
            if u3 == 1 and t4 <= maxi0:
                # print(f'elseIF:T3avant|False:GO(T4)|| T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} ')
                u2, u3, u4 = 1, 1, 0 # .....    .....   .....   .....   False :GO(T4)
                """ Motif T234;Index Degrés"""
                t234 = [t2, t3, t4]
                # print(f'COMPTESindex: {t234} |STOP(T3)bric')
                # print(f'elseIF:T3après|False:GO(T4)|| T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} ')
                t234 = []
            else:
                # print(f'elseIFelse:T3avant|False:GO(T2)|| T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} ')
                u2, u3, u4 = 0, 1, 1 # .....    .....   .....   .....   False :GO(T2)
                """ Motif T234;Index Degrés"""
                t234 = [t2, t3, t4]
                # print(f'COMPTESindex: {t234} |STOP(T3)bric')
                # print(f'elseIFelse:T3après|False:GO(T2)|| T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} ')
                t234 = []
     
        if u2 == 0 and t2 < maxi0 - 1:
            yoyoT[0] += 1
            voirT[yoyoT[0]] = 'Cond_U2'
            """ Niveau T2 | MINI=1 MIDI=NULL MAXI=6 """
            # Cycle T2 | True:GO(T4):GO(T3):GO(T2) | False:OUT
            # print(f'\n***T2 True:GO(T4):GO(T3):GO(T2)|T2={t2} maxi0:{maxi0}')
            # print(f'| ifT2avant || T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} | {tablT[-1]}')
            t2 += 1
            t3 = t2 + 1
            t4 = t3 + 1 # Opération Test(T2)/in
            if t4 <= maxi0:
                # Test(T2) Ici t4 <= maxi0(8)"""
                u2, u3, u4 = 1, 1, 0
                """ Motif T234;Index Degrés"""
                t234 = [t2, t3, t4]
                # print(f'COMPTESindex: {t234} |GO(T2)bric')
                # print(f'| ifT2ifaprès || T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} | {tablT[-1]}')
                brique('2', t2, t234) # .....    .....   .....         Fonction brique tétra
                t234 = []
            else:
                # Test(T2) Ici t4 > maxi0(8)"""
                t2 -= 1
                t3 -= 1
                t4 -= 1
                u2, u3, u4 = 1, 1, 1 # Opération Test(T2)/Out
                """ Motif T234;Index Degrés"""
                t234 = [t2, t3, t4]
                # print(f'COMPTESindex: {t234} |STOP(T2)bric')
                # print(f'| ifT2ifelseaprès || T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} | {tablT[-1]}')
                t234 = []
                break
        else:
            # De u2 == 0 and t2 < maxi0 - 1:
            if t2 == mixam[0][1]:
                # print(f'elseIF:T2avant|False:STOP(T2)|| T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4}')
                u2, u3, u4 = 1, 1, 1
                # print(f'elseIF:T2après|False:STOP(T2)|| T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4}')
                break
            else:
                # print(f'elseIFelse:T2avant|False:OUT|| T234;{t2},{t3},{t4} : U234;{u2},{u3},{u4} ')
                u2, u3, u4 = 1, 1, 0 # .....    .....   .....   .....   False:OUT             
    # print(f'--------------------------------------Champ:{len(tablT)}:{tablT}:Nombre de tétras = {len(tablT)}')
    unit = u
    for t in range(len(tablT)):
        diaton(unit, tablT[unit])
        unit += 1
    couple()


    Pas besoin de présenter les tétracordes, parce qu’ils sont doublement incontournables au vocabulaire scientifique, et surtout ils vont par deux dans nouvelle / ancienne gamme musicale. L’un commence à la tonique et l'autre se termine à l'octave.
    1234000005678
    Dire l’un c’est dire l’autre, dans un état bipolaire hypermanent !

    De manière classique le tétracorde a un état minimum de 4 notes (1,2,3,4), ces quatre notes sont liées au code quantique de la gamme naturelle.
    CDEFGABC
    Il est dit que la gamme naturelle est une diatonique à tonalité majeure…

    Essayer de développer une logique gammique à partir de son plus petit élément clustérien, c’est connaitre le cluster relatif chromatique. En sachant que la gamme comporte cinq intervalles situés entre certaines notes.
    BC D EF G A BC
    Elle commence en Do© elle ne comporte pas d’altération, c’est naturel !

    Le premier tétracorde trouvé est formé de quatre potes conjoints (), cette formation a un synonyme clustérien appelé « Cluster ».
    Et quoi de plus simple que le dédoublement clustérien, obtenant un clone clustérien dont l’effet est bien échelonné.
    1234
    (.1278.)
    5678
    812345678
    La programmation offre le moyen de développer un traitement codé…

    Ligne 119 | # Charge limite tétra
    Le cluster tétra trouvé est élémentaire, il ne comporte pas de poignée compréhensive sur laquelle s’appuyer ni déplacer. Mais on connait son taux de repli équivalant tétracordique (4), et sa capacité d’extension calculée en rapport chromatique-(12) diatonique-(7) octave-(2) cluster-(2). Les intervalles ne sont pas cités, ne sont pas existants, puis 5 intervalles + 7 notes = 1 2 34 5 6 7.
    En sachant que l’élément tonique du tétracorde-(1) ne change pas de place, il a toujours la valeur 1.
    # Opération Dico(mixam)
    mixam = {} # Dépendances Degré(min/max)

    """ Niveau T2 | MINI=1 MIDI=NULL MAXI=6 """
    """ Niveau T3 | MINI=2 MIDI=T2+1 MAXI=7 """
    """ Niveau T4 | MINI=3 MIDI=T3+1 MAXI=8 """

    De Ligne 33 À Ligne 37

    Ligne 125 | # Développement tétracordique
    Cette fonction est séparée en deux parts ;
    L’algorithme des membres tétracordiques :
    Selon les estimations minima/maxima les tétras (T1, T2, T3, T4)
    La priorité du cycle T4 de 3 à 8, étendu de six clusters :
    1234|12304|…|123000004
    L’incrémentation du T4 est prioritaire jusqu’à son maxima. En fin de boucle, l’algo incrémente le tétra voisin inférieur une seul fois.
    Exemple du débutant :
    1230004__ Tétracorde n°4
    12300004_ Tétracorde n°5
    123000004 Tétracorde n°6
    12034____ Tétracorde n°7
    120304___ Tétracorde n°8
    La mise en forme des membres tétras :
    La formation clustérienne lorsque les éléments T1, T2, T3, T4 se sont synchronisés, vient rendre visible les différentes positions diatoniques En remplaçant les intervalles par des zéros.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1234: Tétracordes unifiés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    1234
    12304
    123004
    1230004
    12300004
    123000004
    12034
    120304
    1203004
    12030004
    120300004
    120034
    1200304
    12003004
    120030004
    1200034
    12000304
    120003004
    12000034
    120000304
    120000034
    10234
    102304
    1023004
    10230004
    102300004
    102034
    1020304
    10203004
    102030004
    1020034
    10200304
    102003004
    10200034
    102000304
    102000034
    100234
    1002304
    10023004
    100230004
    1002034
    10020304
    100203004
    10020034
    100200304
    100200034
    1000234
    10002304
    100023004
    10002034
    100020304
    100020034
    10000234
    100002304
    100002034
    100000234


    Ligne 80 | # Fonction format diatonique tétracordique
    Cette fonction traite le premier cluster trouvé formé des chiffres de 1 à 4, ou bien C, D, E, F, et de zéros et intervalles. Ce tétra n’a pas encore ces valeurs 5, 6, 7, 8 nécessaires pour former la gamme idéale.
    Alors elle prend le n°1 pour en faire le n°5. Ainsi quand elle traite le cluster n°1 1234, il en ressort 5678. En s’arrangeant pour garder le 1 à la tonique et le 8 à l’octave. Ce qui a comme résultat fictif ; 1234000005678.
    En ce qui concerne la tonalité (#, b), soit l’apport altératif des notes. De cette fonction abouti un ensemble tétra entier, toujours de 1 à 4 pour des tonalités allant de 1 à 4 et de 5 à 8. Lignes 114-115 | tabas, tahau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'C', 'D-2', 'E°3', 'F°4', 'Gx5', 'A+6', 'B', 'C': Tétracorde unique pour deux signatures
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    ['C', 'D-2', 'E°3', 'F°4', 'Gx5', 'A+6', 'B', 'C']
    ['C', 'D-2', 'E°3', 'F-4', 'G+5', 'A', 'B-7', 'C']
    ['C', 'D-2', 'E°3', 'F', 'G', 'A-6', 'B°7', 'C']
    ['C', 'D-2', 'E°3', 'F+4', 'G-5', 'A°6', 'B*7', 'C']
    ['C', 'D-2', 'E°3', 'Fx4', 'G°5', 'A*6', 'B°*7', 'C']
    ['C', 'D-2', 'E°3', 'F^4', 'G*5', 'A°*6', 'B-*7', 'C']
    ['C', 'D-2', 'E-3', 'F-4', 'G+5', 'A', 'B', 'C']
    ['C', 'D-2', 'E-3', 'F', 'G', 'A-6', 'B-7', 'C']
    ['C', 'D-2', 'E-3', 'F+4', 'G-5', 'A°6', 'B°7', 'C']
    ['C', 'D-2', 'E-3', 'Fx4', 'G°5', 'A*6', 'B*7', 'C']
    ['C', 'D-2', 'E-3', 'F^4', 'G*5', 'A°*6', 'B°*7', 'C']
    ['C', 'D-2', 'E', 'F', 'G', 'A-6', 'B', 'C']
    ['C', 'D-2', 'E', 'F+4', 'G-5', 'A°6', 'B-7', 'C']
    ['C', 'D-2', 'E', 'Fx4', 'G°5', 'A*6', 'B°7', 'C']
    ['C', 'D-2', 'E', 'F^4', 'G*5', 'A°*6', 'B*7', 'C']
    ['C', 'D-2', 'E+3', 'F+4', 'G-5', 'A°6', 'B', 'C']
    ['C', 'D-2', 'E+3', 'Fx4', 'G°5', 'A*6', 'B-7', 'C']
    ['C', 'D-2', 'E+3', 'F^4', 'G*5', 'A°*6', 'B°7', 'C']
    ['C', 'D-2', 'Ex3', 'Fx4', 'G°5', 'A*6', 'B', 'C']
    ['C', 'D-2', 'Ex3', 'F^4', 'G*5', 'A°*6', 'B-7', 'C']
    ['C', 'D-2', 'E^3', 'F^4', 'G*5', 'A°*6', 'B', 'C']
    ['C', 'D', 'E-3', 'F-4', 'G+5', 'A+6', 'B', 'C']
    ['C', 'D', 'E-3', 'F', 'G', 'A', 'B-7', 'C']
    ['C', 'D', 'E-3', 'F+4', 'G-5', 'A-6', 'B°7', 'C']
    ['C', 'D', 'E-3', 'Fx4', 'G°5', 'A°6', 'B*7', 'C']
    ['C', 'D', 'E-3', 'F^4', 'G*5', 'A*6', 'B°*7', 'C']
    ['C', 'D', 'E', 'F', 'G', 'A', 'B', 'C']
    ['C', 'D', 'E', 'F+4', 'G-5', 'A-6', 'B-7', 'C']
    ['C', 'D', 'E', 'Fx4', 'G°5', 'A°6', 'B°7', 'C']
    ['C', 'D', 'E', 'F^4', 'G*5', 'A*6', 'B*7', 'C']
    ['C', 'D', 'E+3', 'F+4', 'G-5', 'A-6', 'B', 'C']
    ['C', 'D', 'E+3', 'Fx4', 'G°5', 'A°6', 'B-7', 'C']
    ['C', 'D', 'E+3', 'F^4', 'G*5', 'A*6', 'B°7', 'C']
    ['C', 'D', 'Ex3', 'Fx4', 'G°5', 'A°6', 'B', 'C']
    ['C', 'D', 'Ex3', 'F^4', 'G*5', 'A*6', 'B-7', 'C']
    ['C', 'D', 'E^3', 'F^4', 'G*5', 'A*6', 'B', 'C']
    ['C', 'D+2', 'E', 'F', 'G', 'A+6', 'B', 'C']
    ['C', 'D+2', 'E', 'F+4', 'G-5', 'A', 'B-7', 'C']
    ['C', 'D+2', 'E', 'Fx4', 'G°5', 'A-6', 'B°7', 'C']
    ['C', 'D+2', 'E', 'F^4', 'G*5', 'A°6', 'B*7', 'C']
    ['C', 'D+2', 'E+3', 'F+4', 'G-5', 'A', 'B', 'C']
    ['C', 'D+2', 'E+3', 'Fx4', 'G°5', 'A-6', 'B-7', 'C']
    ['C', 'D+2', 'E+3', 'F^4', 'G*5', 'A°6', 'B°7', 'C']
    ['C', 'D+2', 'Ex3', 'Fx4', 'G°5', 'A-6', 'B', 'C']
    ['C', 'D+2', 'Ex3', 'F^4', 'G*5', 'A°6', 'B-7', 'C']
    ['C', 'D+2', 'E^3', 'F^4', 'G*5', 'A°6', 'B', 'C']
    ['C', 'Dx2', 'E+3', 'F+4', 'G-5', 'A+6', 'B', 'C']
    ['C', 'Dx2', 'E+3', 'Fx4', 'G°5', 'A', 'B-7', 'C']
    ['C', 'Dx2', 'E+3', 'F^4', 'G*5', 'A-6', 'B°7', 'C']
    ['C', 'Dx2', 'Ex3', 'Fx4', 'G°5', 'A', 'B', 'C']
    ['C', 'Dx2', 'Ex3', 'F^4', 'G*5', 'A-6', 'B-7', 'C']
    ['C', 'Dx2', 'E^3', 'F^4', 'G*5', 'A-6', 'B', 'C']
    ['C', 'D^2', 'Ex3', 'Fx4', 'G°5', 'A+6', 'B', 'C']
    ['C', 'D^2', 'Ex3', 'F^4', 'G*5', 'A', 'B-7', 'C']
    ['C', 'D^2', 'E^3', 'F^4', 'G*5', 'A', 'B', 'C']
    ['C', 'D^+2', 'E^3', 'F^4', 'G*5', 'A+6', 'B', 'C']
    Ligne 45 | # Fonction couplage tétracordique
    Une liste de tétras utiles a été tablée. Ligne 116 | tablT. Et la notion du format naturel de la gamme vue ci-dessus avec le positionnement de deux tétras, ou alors il s’agit d’un couplage premier clustérien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1234000005678: Couplage tétras
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    437
    438
    439
    440
    441
    442
    443
    444
    445
    446
    447
    448
    449
    450
    451
    452
    453
    454
    455
    456
    457
    458
    459
    460
    461
    462
    463
     
    1234000005678
    1234000056708
    1234000567008
    1234005670008
    1234056700008
    1234567000008
    1234000056078
    1234000560708
    1234005607008
    1234056070008
    1234560700008
    1234000560078
    1234005600708
    1234056007008
    1234560070008
    1234005600078
    1234056000708
    1234560007008
    1234056000078
    1234560000708
    1234560000078
    1234000050678
    1234000506708
    1234005067008
    1234050670008
    1234506700008
    1234000506078
    1234005060708
    1234050607008
    1234506070008
    1234005060078
    1234050600708
    1234506007008
    1234050600078
    1234506000708
    1234506000078
    1234000500678
    1234005006708
    1234050067008
    1234500670008
    1234005006078
    1234050060708
    1234500607008
    1234050060078
    1234500600708
    1234500600078
    1234005000678
    1234050006708
    1234500067008
    1234050006078
    1234500060708
    1234500060078
    1234050000678
    1234500006708
    1234500006078
    1234500000678
    1230400005678
    1230400056708
    1230400567008
    1230405670008
    1230456700008
    1230400056078
    1230400560708
    1230405607008
    1230456070008
    1230400560078
    1230405600708
    1230456007008
    1230405600078
    1230456000708
    1230456000078
    1230400050678
    1230400506708
    1230405067008
    1230450670008
    1230400506078
    1230405060708
    1230450607008
    1230405060078
    1230450600708
    1230450600078
    1230400500678
    1230405006708
    1230450067008
    1230405006078
    1230450060708
    1230450060078
    1230405000678
    1230450006708
    1230450006078
    1230450000678
    1230040005678
    1230040056708
    1230040567008
    1230045670008
    1230040056078
    1230040560708
    1230045607008
    1230040560078
    1230045600708
    1230045600078
    1230040050678
    1230040506708
    1230045067008
    1230040506078
    1230045060708
    1230045060078
    1230040500678
    1230045006708
    1230045006078
    1230045000678
    1230004005678
    1230004056708
    1230004567008
    1230004056078
    1230004560708
    1230004560078
    1230004050678
    1230004506708
    1230004506078
    1230004500678
    1230000405678
    1230000456708
    1230000456078
    1230000450678
    1230000045678
    1203400005678
    1203400056708
    1203400567008
    1203405670008
    1203456700008
    1203400056078
    1203400560708
    1203405607008
    1203456070008
    1203400560078
    1203405600708
    1203456007008
    1203405600078
    1203456000708
    1203456000078
    1203400050678
    1203400506708
    1203405067008
    1203450670008
    1203400506078
    1203405060708
    1203450607008
    1203405060078
    1203450600708
    1203450600078
    1203400500678
    1203405006708
    1203450067008
    1203405006078
    1203450060708
    1203450060078
    1203405000678
    1203450006708
    1203450006078
    1203450000678
    1203040005678
    1203040056708
    1203040567008
    1203045670008
    1203040056078
    1203040560708
    1203045607008
    1203040560078
    1203045600708
    1203045600078
    1203040050678
    1203040506708
    1203045067008
    1203040506078
    1203045060708
    1203045060078
    1203040500678
    1203045006708
    1203045006078
    1203045000678
    1203004005678
    1203004056708
    1203004567008
    1203004056078
    1203004560708
    1203004560078
    1203004050678
    1203004506708
    1203004506078
    1203004500678
    1203000405678
    1203000456708
    1203000456078
    1203000450678
    1203000045678
    1200340005678
    1200340056708
    1200340567008
    1200345670008
    1200340056078
    1200340560708
    1200345607008
    1200340560078
    1200345600708
    1200345600078
    1200340050678
    1200340506708
    1200345067008
    1200340506078
    1200345060708
    1200345060078
    1200340500678
    1200345006708
    1200345006078
    1200345000678
    1200304005678
    1200304056708
    1200304567008
    1200304056078
    1200304560708
    1200304560078
    1200304050678
    1200304506708
    1200304506078
    1200304500678
    1200300405678
    1200300456708
    1200300456078
    1200300450678
    1200300045678
    1200034005678
    1200034056708
    1200034567008
    1200034056078
    1200034560708
    1200034560078
    1200034050678
    1200034506708
    1200034506078
    1200034500678
    1200030405678
    1200030456708
    1200030456078
    1200030450678
    1200030045678
    1200003405678
    1200003456708
    1200003456078
    1200003450678
    1200003045678
    1200000345678
    1023400005678
    1023400056708
    1023400567008
    1023405670008
    1023456700008
    1023400056078
    1023400560708
    1023405607008
    1023456070008
    1023400560078
    1023405600708
    1023456007008
    1023405600078
    1023456000708
    1023456000078
    1023400050678
    1023400506708
    1023405067008
    1023450670008
    1023400506078
    1023405060708
    1023450607008
    1023405060078
    1023450600708
    1023450600078
    1023400500678
    1023405006708
    1023450067008
    1023405006078
    1023450060708
    1023450060078
    1023405000678
    1023450006708
    1023450006078
    1023450000678
    1023040005678
    1023040056708
    1023040567008
    1023045670008
    1023040056078
    1023040560708
    1023045607008
    1023040560078
    1023045600708
    1023045600078
    1023040050678
    1023040506708
    1023045067008
    1023040506078
    1023045060708
    1023045060078
    1023040500678
    1023045006708
    1023045006078
    1023045000678
    1023004005678
    1023004056708
    1023004567008
    1023004056078
    1023004560708
    1023004560078
    1023004050678
    1023004506708
    1023004506078
    1023004500678
    1023000405678
    1023000456708
    1023000456078
    1023000450678
    1023000045678
    1020340005678
    1020340056708
    1020340567008
    1020345670008
    1020340056078
    1020340560708
    1020345607008
    1020340560078
    1020345600708
    1020345600078
    1020340050678
    1020340506708
    1020345067008
    1020340506078
    1020345060708
    1020345060078
    1020340500678
    1020345006708
    1020345006078
    1020345000678
    1020304005678
    1020304056708
    1020304567008
    1020304056078
    1020304560708
    1020304560078
    1020304050678
    1020304506708
    1020304506078
    1020304500678
    1020300405678
    1020300456708
    1020300456078
    1020300450678
    1020300045678
    1020034005678
    1020034056708
    1020034567008
    1020034056078
    1020034560708
    1020034560078
    1020034050678
    1020034506708
    1020034506078
    1020034500678
    1020030405678
    1020030456708
    1020030456078
    1020030450678
    1020030045678
    1020003405678
    1020003456708
    1020003456078
    1020003450678
    1020003045678
    1020000345678
    1002340005678
    1002340056708
    1002340567008
    1002345670008
    1002340056078
    1002340560708
    1002345607008
    1002340560078
    1002345600708
    1002345600078
    1002340050678
    1002340506708
    1002345067008
    1002340506078
    1002345060708
    1002345060078
    1002340500678
    1002345006708
    1002345006078
    1002345000678
    1002304005678
    1002304056708
    1002304567008
    1002304056078
    1002304560708
    1002304560078
    1002304050678
    1002304506708
    1002304506078
    1002304500678
    1002300405678
    1002300456708
    1002300456078
    1002300450678
    1002300045678
    1002034005678
    1002034056708
    1002034567008
    1002034056078
    1002034560708
    1002034560078
    1002034050678
    1002034506708
    1002034506078
    1002034500678
    1002030405678
    1002030456708
    1002030456078
    1002030450678
    1002030045678
    1002003405678
    1002003456708
    1002003456078
    1002003450678
    1002003045678
    1002000345678
    1000234005678
    1000234056708
    1000234567008
    1000234056078
    1000234560708
    1000234560078
    1000234050678
    1000234506708
    1000234506078
    1000234500678
    1000230405678
    1000230456708
    1000230456078
    1000230450678
    1000230045678
    1000203405678
    1000203456708
    1000203456078
    1000203450678
    1000203045678
    1000200345678
    1000023405678
    1000023456708
    1000023456078
    1000023450678
    1000023045678
    1000020345678
    1000002345678



    La programmation continue avec la définition des gammes fondamentales prochainement.
    Ne pas être surpris d'y voir 462 modèles (= 66 * 7) ?

  3. #3
    Membre averti Avatar de alexdevl
    Profil pro
    Inscrit en
    avril 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : avril 2007
    Messages : 265
    Points : 344
    Points
    344
    Par défaut C'est abscons
    Juste une question : suis je le seul à ne rien y comprendre à ce charabia 🤔

    C'est bien pour toi, toumic (2.0), d'être passionné,
    mais pourrais tu expliquer simplement quel est l'objet de toutes ces lignes ? Sinon à quoi bon partager

    Alex

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    juin 2008
    Messages
    17 845
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 17 845
    Points : 30 799
    Points
    30 799
    Par défaut
    Salut,

    Citation Envoyé par alexdevl Voir le message
    Juste une question : suis je le seul à ne rien y comprendre à ce charabia 🤔
    Wikipedia dit que le tretracorde est un polycorde... et il faut être passionné de musicologie pour être réceptif à tout çà.

    Un des trucs qui m'a toujours impressionné en informatique a été de voir comment d'autres des tas de spécialistes fort éloignés du domaine ont pu/su s'en approprier pour explorer le leur avec un regard différent.

    Dans les années 80s, çà a foisonné avec la création de tas de langages orientés métiers (devenus assez inusités aujourd'hui)... A l'époque, on cherchait des applications pour se développer et il fallait une sorte de médiation pour permettre aux spécialistes d'un domaine de...

    Aujourd'hui, c'est différent: il y a des ordinateurs pas cher, partout,... et des tas de gens qui peuvent s'aventurer dans ce monde merveilleux.

    C'est aussi un peu effrayant car certains iront prétexter des résultats obtenus avec cette science ("dure") pour légitimer des choix assez biaisés par des à priori idéologiques... et bien que je pense que la programmation en général apporte un certain éclairage, on pousse tellement la logique de décomposition d'un problème en parties qu'on néglige parfois (souvent?) la cohérence d'ensemble.

    Après bien sûr, il y a le cas toumic qui nous revient en version 2.0 toujours aussi imbitable et heureusement qu'il ne demande pas de l'aide... car pas fastoche de comprendre sa logique et arriver à l'aider tellement nous sommes sur des planètes différentes.

    En tout cas bravo à lui pour son acharnement à poursuivre son rêve et en sortir des trucs qui lui plaisent.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre à l'essai Avatar de toumic2.0
    Homme Profil pro
    Gammologie (Étude des gammes)
    Inscrit en
    janvier 2021
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Gammologie (Étude des gammes)
    Secteur : Arts - Culture

    Informations forums :
    Inscription : janvier 2021
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Imbitable est pas mal défini. Merci de votre éclairage wiztricks

  6. #6
    Membre à l'essai Avatar de toumic2.0
    Homme Profil pro
    Gammologie (Étude des gammes)
    Inscrit en
    janvier 2021
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Gammologie (Étude des gammes)
    Secteur : Arts - Culture

    Informations forums :
    Inscription : janvier 2021
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par alexdevl Voir le message
    Juste une question : suis je le seul à ne rien y comprendre à ce charabia 🤔

    C'est bien pour toi, toumic (2.0), d'être passionné,
    mais pourrais tu expliquer simplement quel est l'objet de toutes ces lignes ? Sinon à quoi bon partager

    Alex
    L'objet est d'apporter un éclairage de faible intensité sur ce que je crois être important
    Partager c'est aussi subjectif vis à vis de ce que vous croyez de la normalité
    Poster ici dans ce site appelé "développez" est de toute évidence naturel

  7. #7
    Membre à l'essai Avatar de toumic2.0
    Homme Profil pro
    Gammologie (Étude des gammes)
    Inscrit en
    janvier 2021
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Gammologie (Étude des gammes)
    Secteur : Arts - Culture

    Informations forums :
    Inscription : janvier 2021
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par toumic2.0 Voir le message
    Ne pas être surpris d'y voir 462 modèles (= 66 * 7) ?
    Puis c'est trop facile de dire que le "charabia"
    D'une vous vous en foutez ou pas. Deux vous n'avez pas vu une erreur en ligne 48
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter = ['', '+', 'x', '^', '^+', '^x', '-*', '°*', '*', '°', '-']
    Pour le moment si vous parvenez à me dire où se trouve cette erreur demandez au lieu de critiquer

    Aussi ne suis-je pas suffisamment présentable pour venir biter la contribution

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    juin 2008
    Messages
    17 845
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 17 845
    Points : 30 799
    Points
    30 799
    Par défaut
    Salut,

    Citation Envoyé par toumic2.0 Voir le message
    Pour le moment si vous parvenez à me dire où se trouve cette erreur demandez au lieu de critiquer
    Si vous postez du code dans la rubrique "contribuez", c'est pour que çà profite à ceux que çà intéresse. S'il y a des erreurs ou des bugs, seuls ceux qui auront fait tourner le programme pourront éventuellement s'en rendre compte...

    Reste que çà reste un forum de discussion, donc si vous travaillez dans des trucs bizarres, assumez qu'on vous dise combien c'est bizarre...

    Et sachez que programmer en Python, c'est un peu comme la maçonnerie: construire un pavillon de banlieue ou une cathédrale, c'est toujours les mêmes outils et parfois les mêmes matériau à apprendre à travailler.
    Ici, c'est Python, vous codez ce que vous voulez avec, à la limite, on ne veut pas le savoir et çà n'a aucune importance. Mais si vous pensez qu'on va lire et corriger 300 lignes de code qui font des choses sans grand intérêt pour la plupart... faut par rêver.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Membre à l'essai Avatar de toumic2.0
    Homme Profil pro
    Gammologie (Étude des gammes)
    Inscrit en
    janvier 2021
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Gammologie (Étude des gammes)
    Secteur : Arts - Culture

    Informations forums :
    Inscription : janvier 2021
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Non Wiztricks, j'assume que c'est étrange. Mais pas la critique gratuite

  10. #10
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2007
    Messages
    4 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : décembre 2007
    Messages : 4 129
    Points : 8 556
    Points
    8 556
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Juste un petit conseil.

    Pour espérer avoir une aide en Python, il faut poser des questions plus précises sur Python:
    - le contexte: OS et versions utilisées de Python et des modules nécessaires éventuels
    - un exemple de données d'entrées
    - quelques lignes de code qui représentent la solution qui ne donne pas satisfaction (suffisamment complète pour qu'on puisse l'exécuter).
    - le résultat donné par ce code, et le résultat auquel il faudrait parvenir.
    - la demande d'aide elle-même.

    Présenté comme ça, il y aura presque toujours quelqu'un capable de donner de l'aide.

    Par contre, on a aucune chance d'acquérir votre compétence dans votre domaine, quel qu’il soit. Et donc, il y a peu de chances que les personnes capables de vous aider lisent les détails de votre travail, et vous ratez votre cible si vous voulez vous faire aider.

    A noter que l'effort fourni pour poser une bonne question permet souvent d'y répondre soi-même
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  11. #11
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    juin 2013
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : juin 2013
    Messages : 1 472
    Points : 1 918
    Points
    1 918
    Par défaut
    De mon côté, je n'ai même pas compris le sens des 2 premiers messages ou le PO s'autocite sans que j'y rencontre la moindre question. Ou alors j'ai trop lu en diagonales et pas assez en lignes.
    Pour ma part, le programme ainsi que le domaine d’application sont toujours aussi obscurs pour moi (pour ne pas dire imbitable )
    En tous cas, bravo même si le contenu me laisse quasi indifférent.
    Pas d'aide par mp.

  12. #12
    Membre à l'essai Avatar de toumic2.0
    Homme Profil pro
    Gammologie (Étude des gammes)
    Inscrit en
    janvier 2021
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Gammologie (Étude des gammes)
    Secteur : Arts - Culture

    Informations forums :
    Inscription : janvier 2021
    Messages : 17
    Points : 10
    Points
    10
    Par défaut Interludique
    Je comprend qu'il faut bien se tenir et ce n'est pas un problème pour moi
    Il est normal que je ne pose pas de question puisqu'au final je contribue au développement de ce club à ma façon.

    Vous croyez que vous allez en trouver tous les jours des binariseurs similaires ?
    Je suis suffisamment entouré pour me permettre des dérapages, sauf quand il s'agit de l'humour informatique.

    Je suis Joyce d'être dans ce grand club qui me plait par ses compétences mises à jour lors des aides, merci.

    Comptez sur moi pour poster de temps à autre, tout le développement informatique dans lequel je débouche.
    Content pas content je m'en contre fout pointé, ce n'est ni un modérateur ni un membre (même important),
    qui va m'empêcher d'avancer dans mon Centre Richement Intellect Music Quantic.

    Voyez que je suis positif dans mon élan, que faire en étant retraité illuminé, sinon que de poster ou partager.
    Je continuerai de partager mes connaissances en mode "La tulipe", c'est une fleur qui nous est donnée.

    Je veux dire que vous comme moi demandons de passer du bon temps à nous lire, n'est-ce-pas ?

  13. #13
    Membre averti Avatar de alexdevl
    Profil pro
    Inscrit en
    avril 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : avril 2007
    Messages : 265
    Points : 344
    Points
    344
    Par défaut
    Cher Toumic, je rajoute un commentaire,
    j'ai peur que mon post soit mal compris car le terme charabia est un peu hautain il est vrai.

    Tes analyses, même si elles sont obscures pour moi, doivent te passionner au même titre que moi en ce moment plus basiquement avec les lib pandas, matplotlib, pypdf.
    Quand je pense avoir trouvé des éléments intéressants je les poste tout comme toi.
    Je te souhaite de bons moments
    Alex

  14. #14
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    juin 2013
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : juin 2013
    Messages : 1 472
    Points : 1 918
    Points
    1 918
    Par défaut
    Désolé, je n'avais pas vu qu'on était dans la partie "Contribuez".
    Cela ne me dérange aucunement et si cela peut te rendre heureux, c'est tout ce qui compte.
    On a tous nos satisfactions personnelles.
    Trouver des interlocuteurs dans ta branche va être sans doute compliqué.
    Pas d'aide par mp.

  15. #15
    Membre à l'essai Avatar de toumic2.0
    Homme Profil pro
    Gammologie (Étude des gammes)
    Inscrit en
    janvier 2021
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Gammologie (Étude des gammes)
    Secteur : Arts - Culture

    Informations forums :
    Inscription : janvier 2021
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Je partage avec vous cette amitié informatique et plus si affinités

  16. #16
    Membre à l'essai Avatar de toumic2.0
    Homme Profil pro
    Gammologie (Étude des gammes)
    Inscrit en
    janvier 2021
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Gammologie (Étude des gammes)
    Secteur : Arts - Culture

    Informations forums :
    Inscription : janvier 2021
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Mesurer les choses a toujours été appréciée, on parle de poids, de centimètres et des expressions qui définissent la qualité proportionnelle. Le fait de ne pas être très compliqué facilite la perception logique de l’objet, tout programmeur connait la teneur focale de sa réflexion vis-à-vis du détail.
    • La programmation nous conduit à certaines conditions logiques.
    • Le dessin architecturé aux métriques tant au niveau qu’à l’aplomb.
    • La peinture avec sa palette « d’arc en ciel » dosée en couleurs primaires.



    Mesurer est à coup sûr le moyen qui permet de bâtir un complexe logique, c’est aussi le moyen d’aller à la limite de notre vision un peu comme une équation mathématique exprimant un résultat qui à défaut d’être vu se voit compris par la pensée.
    Il s’avère que la mesure musicale nous apporte un confinement temporel en rapport envers les nombres réels et les horaires journaliers, et ainsi que l’ADN. Je n’approfondirais pas ceci ici, mais je parlerais de la métrique jalonnée par les notes musicales. Car il est avéré que cette organisation crée de la miniaturisation, allant très loin et aux limites définies par le chercheur. Les modèles gammologiques sont si nombreux qu’il n’y a que la programmation informatique qui peut se permettre cette réalisation, c’est d’ailleurs la raison de ma démarche.

    Il est plus facile de développer de la gammologie avec un script qu’avec un crayon au final.
    L’avantage du traitement de masse ainsi réalisé produit une multitude d’agents affiliés ou pas, formant une cohésion entre des ensembles systémiquement différents. Toute cette cohorte menant à une infinitude permet d’identifier les unités, à la manière d’un instrument de mesure posé sur l’unité faisant l’objet de notre recherche.

    Je pense plus aux petites choses qui sont d’avantage contraintes à l’aire de leurs mouvements, qu’à un espace sidéral englobant les « jeux » planétaires. Je dis ça car certains sujets m’échappent, malgré leurs intérêts.
    Prouver que les gammes musicales sont logiques et régulières, en les inventant à l’aide du code informatique, ce qui est une véritable preuve de leurs pondérations. Puis le script est un sujet maniable et téléchargeable, il est facile d’accès. Mais il est surtout une logique bien particulière, à l’image d’un outil de traitement spécialisé pouvant être partiellement reproduit. Les gammes musicales ont une expression compliquée par son état général, il y a les gammes fondamentales et leurs modèles diatoniques. Le script développe sans distinction préalable les corps modaux diatoniques, et parmi ces sept modulations il nous faut reconnaitre le mode fondamental. C’est pour çà que le petit code pèse les différents modèles, il reconnait la fondamentale par sa septième majeure et son niveau diatonique à l’aide de son poids altératif.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    """ # La masse de la gamme naturelle# Composée des sept notes majeures: C, D, E, F, G, A, B.
    # Harmonisée des sept degrés majeurs:
    #        (CDEFGAB) = 0
    #        (DEFGABC) = b3, b7 = -4-8 = -12
    #        (EFGABCD) = b2, b3, b6, b7 = -3-4-7-8 = -22
    #        (FGABCDE) = #4 = +5 = +5
    #        (GABCDEF) = b7 = -8 = -8
    #        (ABCDEFG) = b3, b6, b7 = -4-7-8 = -19
    #        (BCDEFGA) = b2, b3, b5, b6, b7 = -3-4-6-7-8 = -28"""
    """(" Chaque degré porte une valeur altérative binôme(b,#).\n"
     "    En opérant les valeurs de la signature (Signature/Masse)...\n"
     "    En ordonnant la séquence:        F, C, G, D, A, E, B\n"
     "            #4, 0, b7, b3b7, b3b6b7, b2b3b6b7, b2b3b5b6b7\n"
     "    ... (Signature/Masse):\n"
     "            F(#4) 4ème degré plus 1 dièse = 4 + 1 = +5\n"
     "            A(b3b6b7)     {\n"
     "                3ème degré moins 1 bémol = -3 - 1 = -4\n"
     "                6ème degré moins 1 bémol = -6 - 1 = -7\n"
     "                7ème degré moins 1 bémol = -7 - 1 = -8\n"
     "                        }\n"
     "                Masse pesante totale = -4-7-8 = -19\n")"""
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    # Python 3.9 UTF-8# Samedi 5 juin 2021
    # Calcul des poids diatoniques
    action = ['', '+', 'x', '^', '^+', '^x', '°*', '-*', '*', '°', '-']
    gamme_majeure = '102034050607'
    poids_modal = [[] for i in range(7)]
    poids_class = {}
    top01 = '101101010101'
    top00, retour, poids_gen = top01, 1, 0
    while retour < 8:  # Défaut retour < 8
        grader, regard, lacune, pesant, poids = 0, -1, 0, [0], 0
        for t00 in top00:
            regard += 1
            if t00 == '1':
                grader += 1  # :regard = Position Degré
                extra = gamme_majeure.index(str(grader))
                lacune = regard - extra  # :lacune= Niveau Altération
                if lacune < 0:
                    pesant[0] = lacune - grader
                elif lacune == 0:
                    pesant[0] = 0
                else:
                    pesant[0] = grader + lacune
                poids_modal[retour-1].append(pesant[0])
                poids += pesant[0]
                pesant[0] = 0
        poids_gen += poids
        poids_class[top00] = poids_modal[retour-1], abs(poids)
        pilote = list(top00)
        while 1:
            pilote.insert(0, pilote.pop())
            if pilote[0] == '1':
                break
        top00 = ''.join(p for p in pilote)
        retour += 1
    poids_mini, pm, pp = [], 0, -1
    for i, y in poids_class.items():
        if poids_class[i][0][-1] == 0:  # Fondamentales aux 7èmes majeures
            m = [i, poids_class[i][1]]
            poids_mini.append(m)
    mini = min(poids_mini[:1])
    print('poids_gen ', poids_gen,'Kµ')
    gamme, ga = [], ''
    for p in mini[0]:
        pp += 1
        if p == '1':
            pm += 1
            alter = gamme_majeure.index(str(pm))
            if pp != alter:
                dif = pp - alter
                ga = action[dif] + str(pm)
            else:
                ga = str(pm)
        else:
            ga = '0'
        gamme.append(ga)
    print('gamme', gamme)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ======== RESTART: C:\Users\Vincent\Desktop\Python essais\calgampoids2.py =======poids_gen  -84 Kµ
    gamme ['1', '0', '2', '-3', '0', '4', '0', '5', '0', '6', '0', '7']

  17. #17
    Membre à l'essai Avatar de toumic2.0
    Homme Profil pro
    Gammologie (Étude des gammes)
    Inscrit en
    janvier 2021
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Gammologie (Étude des gammes)
    Secteur : Arts - Culture

    Informations forums :
    Inscription : janvier 2021
    Messages : 17
    Points : 10
    Points
    10
    Par défaut N'ayez crainte je ne suis pas seul
    Je vous représente le canard qui se balade sur cabviva

Discussions similaires

  1. voyage entre les enregistrements...
    Par dpie dans le forum Access
    Réponses: 1
    Dernier message: 21/11/2005, 19h26
  2. liste chainée :suppression milieu par rapport à un caractère
    Par Pouyou le caribou dans le forum C++
    Réponses: 4
    Dernier message: 06/06/2005, 18h49
  3. pc de burautique en milieu industriel
    Par norac dans le forum Ordinateurs
    Réponses: 16
    Dernier message: 20/04/2005, 08h59
  4. [XHTML] centrer un tableau au milieu d'un div - bug firefox
    Par mondiani dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 07/02/2005, 23h57
  5. [Licence] Serveur Web en milieu professionnel
    Par tripop dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 1
    Dernier message: 22/10/2004, 14h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo