30 contributions / 0 nouveau(x)
Dernière contribution
Portrait de lapiNIC
Hors ligne
Dernière visite: Il y a 11 mois 3 semaines
A rejoint: 21/10/2012 - 18:24
Contributions: 556
IP: 176.134.83.185
Frogoïd - Renoid, en Français

Vous connaissez Renoid ?

C'est une tentative de se passer de Vocaloid sous Renoise. Je dis bien une tentative !

 

COMPRENDRE LA MECANIQUE

Dans ce fil on va rassembler toutes les idées qui vont nous permettre d'élaborer une version française de renoid, un système de synthèse vocale chantée "natif" pour renoise.

On va déjà analyser le système renoid. Il est composé d'un package. Ce package comprend au moins un instrument .xrni.

Premièrement on repère que cet instrument est basé sur l'utilisation de sous-samples répartis sur des zones du cliavier.

Ces sous-samples contiennent des sons vocaux japonais bouclés et accordés sur la même fréquence.

Lexique : ces courtes articulations vocales s'appellent les phonèmes.

Chaque phonème chantant est répertorié là. Cependant, comme il n'est pas facile "d'écrire" en sachant à quel touche précise du clavier virtuel le phonème correspond, Renoid dispose d'un bloc-note écrit en script LUA, associant automatiquement le phonème à l'entrée de note. Ce bloc note se lance en cliquant avec le bouton droit sur une Track, ce qui fait apparaître un menu contextuel dans lequel on peut le lancer.

Légende : (1) ce sont les symboles japonais pour les courtes articulations vocales, les phonèmes. (2) correspond à up & down soit haut et bas, pour piloter le pavé d'édition du pattern et lui permettre de monter ou descendre d'une ligne (note : si le paramètre Edit Step >1 alors les boutons vont s'aligner sur ce paramètre).

Mais reconnaissons que tout cela est bien oriental. Malheureusement bien des utilisateurs francophones d'ont pas encore pu apprendre l'écriture et la grammaire nipponne. Aussi, l'interface de Word Pads for Renoid est-elle inutilisable pour eux en l'état et même rhédibitoire. En outre, le français est phonétiquement truffé de tonalité type "on, en, un, u" par exemple, qui se mèlent à une complexe foison de consonnes.

 

RE-ELABORER DES ARTICULATIONS FRANCAISES

En plus de voir adapter le code LUA de Words Pad for Renoid, il faut élaborer des phonèmes utiles pour la langue française. Puisque les phonèmes de renoid sont certes jolis et très japonais, mais malheureusement incapables de retranscrire toutes les particularités du français.

Dans un premier temps, j'envisage d'établir une série de phonèmes-voyelles francophones " de base".

a - e - i - o - u - an - eu - in - on - ou - oi - é - è

ce qui fait 13 sons de base, faciles à positionner sur un clavier virtuel d'instrument xrni.

 

... puis j'imagine associer ces voyelles, en utilisant des sons de labiales & de dentales qui forment des sons "intermédiaires".  

b' - d' - f' - g' - ch' - j' - k' - l' - m' - n' - p' - r' - s' - t' - v' - w' - x' - y' - z'

ce qui fait 19 articulations de base

* l'ensemble addtionné fait 32 échantillons, qu'on peut encore répartir sur un clavier virtuel d'instrument xrni.

J'essaie donc d'imaginer si ces 32 échantillons pourraient se suffire à eux-mêmes ; probablement, les voyelles ne poseraient pas de gros problème, dans la mesure où elles sont faciles à poser et à faire durer ; le grosse difficulté viendrait du placement des courtes consonnes dans la grille du pattern, de la fluidité toute discutable des phrasés produits où les consonnes et les voyelles ne "morphent" pas naturellement les uns à la suite des autres.frown

Je suis en train de me dire, qu'il va peut-être falloir créer en plus des 13 échantillons représentant individuellement les voyelles sans les consonnes, toutes les transitions possibles entres consonnes et voyelles. C'est à dire qu'il faut enregistrer des phonèmes morphés plus complexes, dont voici la matrice :

a - e - i - o - u - an - eu - in - on - ou - oi - é - è ba - be - bi - bo - bu - ban - beu - bin - bon - bou - boi  - bé - bè da - de - di - do - du - dan - deu - din - don - dou - doi  - dé - dè fa - fe - fi - fo - fu - fan - feu - fin - fon - fou - foi - fé - fè gua - gue - gui - guo - gû - guan - gueu - guin - guon - guou - guoi  - gué - guè cha - che - chi - cho - chu - chan - cheu - chin - chon - chou - choi  - ché - chè ja - je - ji - jo - ju - jan - jeu - jin - jon - jou - joi  - jé - jè ka - ke - ki - ko - ku - kan - keu - kin - kon - kou - koi  - ké - kè la - le - li - lo - lu - lan - leu - lin - lon - lou - loi  - lé - lè ma - me - mi - mo - mu - man - meu - min - mon - mou - moi  - mé - mè

na - ne - ni - no - nu - nan - neu - nin - non - nou - noi  - né - nè pa - pe - pi - po - pu - pan - peu - pin - pon - pou - poi  - pé - pè ra - re - ri - ro - ru - ran - reu - rin - ron - rou - roi  - ré - rè sa - se - si - so - su - san - seu - sin - son - sou - soi  - sé - sè ta - te - ti - to - tu - tan - teu - tin - ton - tou - toi  - té - tè va - ve - vi - vo - vu - van - veu - vin - von - vou - voi  - vé - vè wa - we - wi - wo - wu - wan - weu - win - won - wou - woi  - wé - wè xa - xe - xi - xo - xu - xan - xeu - xin - xon - xou - xoi  - xé - xè ya - ye - yi - yo - yu - yan - yeu - yin - yon - you - yoi  - yé - yè za - ze - zi - zo - zu - zan - zeu - zin - zon - zou - zoi  - zé - zè

...ce qui monte le total des samples morpher à enregistrer en plus, à 13x20=260 !

Ces samples doivent avoir la même tonalité, probablement C-4, ou pourquoi pas, 440Hz. Il faudra éditer finement sous le sample éditor de Renoise chaque échantillon, afin de "stabiliser" le phonème, ou le "freezer", car les parties voyelles doivent "looper" proprement à l'infini, afin que les notes puissent durer.

UNE OU PLUSIEURS LIBRAIRIES ?

Ensuite, la question est de savoir si l'on peut disposer ces 260 samples morphés, sur le clavier virtuel d'un seul instrument .xrni Renoise, tout en sachant que :

  • chaque octave comporte 12 notes et que Renoise comporte un clavier virtuel de 10 octaves soit 120 notes maxi.
  • un instrument renoise est limité à une banque de samples intégré de 256 samples maxi.

En ce qui concerne la largeur du clavier virtuel de renoise, de 120 notes, elle est suffisante pour y répartir 13 samples.

En ce qui concerne la quantité de samples, c'est là qu'il y a un petit problème.

Si la quantité de samples avait été < 256 on aurait pu tout mettre dans un seul instrument .xrni, en utilisant le système de calques (layers) des instruments virtuels - comment ? En désarrimant la vélocité au volume (avec le bouton VEL->VOL en position off dans la vue sample keyzones), puis en disposant les phonèmes en pile sur plusieurs niveaux de vélocité (par exemple, 20 niveaux).

On aurait défini des rangées de calques de 1 à 20 par exemple, et en fonction de la vélocité, de 1 à 20 certains samples seraient sélectionnés plutôt que d'autres. Mais comme la vélocité est désarrimée du volume on pourrait alors simplement actionner des samples précis dans le même instrument en jouant sur le niveau de vélocité dans la sous-colonne dédiée dans l'éditeur de pattern.

OR

Vu le nombre de samples en jeu, et comme 260>256, il n'est pas possible de tous les stocker dans un et un seul instrument-ressources. Mais cela ne signifie pas qu'on nous interdit de les répartir sur plusieurs banques de phonèmes disons, 2 par exemple, la première comportant les phonèmes de 1 à 10 et la seconde les phonèmes de 11 à 20.

UN PEU DE CODE LUA EN PERSPECTIVE

Ensuite doit venir le "tool" inspiré de celui de renoid, soit Words Pad pour Frogoïd, qui permet d'associer les phonèmes à des samples situés sur le clavier virtuel mais en tenant compte d'une certaine vélocité (chose que Words Pad for Renoid ne sait pas faire).

 

PEUT-ON SE PASSER DE KEROVEE ?

L'avantage de Kerovee, c'est qu'il est excellent, et gratis ! Mais j'adore les solutions 100% natives. Il faudra déterminer comment se passer du pitch shifter midi contrôlé qu'est "Kerovee"... si tant est que cela soit possible. Il y a de fortes chances pour que cela ne soit pas faisable tant que Renoise est ce qu'il est pour 'linstant en version 2.8.1.

En tout cas, ça en fait des problèmes à résoudre !blush

Édité par: lapiNIC activé 07/01/2013 - 13:37
Portrait de ostrogoth
Hors ligne
Dernière visite: Il y a 2 années 6 mois
A rejoint: 11/12/2012 - 17:51
Contributions: 347
je me trompe peut etre mais

je me trompe peut etre mais logiquement il y a 11 notes par octave(un piano =8 octaves et 88 notes donc divisé par 8 sa fait 11) moi je veux bien aider a le faire tout du moins pour l'enregistrement des phonèmes parce que l'élaboration d'un xnri j'ai du mal a tiens au fait j'ai bientot fini pour le piano a slicé j'ai plus qu'à remettre les noires entre les blanches dans dsp quattro puis a séparés les fichiers(exportation des régions slicés se fait avec une simple opération)

Portrait de lapiNIC
Hors ligne
Dernière visite: Il y a 11 mois 3 semaines
A rejoint: 21/10/2012 - 18:24
Contributions: 556
IP: 176.134.83.185
notes dans un octave ?

do (1)  - do# (2)  - re (3) - re# (4) - mi (5) - fa (6) - fa# (7) - sol (8) - sol# (9)  - la (10) - la# (11) - si (12)

si on réparti correctement les samples sur toutes les notes noires et blanches comprises on devrait bien avoir 12 samples par octave

 

 

Portrait de ostrogoth
Hors ligne
Dernière visite: Il y a 2 années 6 mois
A rejoint: 11/12/2012 - 17:51
Contributions: 347
autant pour moi je me suis

autant pour moi je me suis certainement trompé 

Portrait de lapiNIC
Hors ligne
Dernière visite: Il y a 11 mois 3 semaines
A rejoint: 21/10/2012 - 18:24
Contributions: 556
IP: 176.134.83.185
remarque

remarque, moi aussi : j'avais oublié le phonème "oi", comme quoi...

Portrait de lapiNIC
Hors ligne
Dernière visite: Il y a 11 mois 3 semaines
A rejoint: 21/10/2012 - 18:24
Contributions: 556
IP: 176.134.83.185
les morphèmes

Quel idiot je fais !

Je viens de me rendre compte qu'un petit nombre de phonèmes sonne quasi identiquement.

par exemple, "se" et "seu" finira presque exactement par la même chose une fois passé à la moulinette de keroove !

Par conséquent, je peux "sacrifier" cinq ou six échantillons dans la liste et donc arriver à une quantité de phonèmes inférieure à 256 donc tous casables dans un et un seul instrument banque-de sons (cf : le nombre de samples par instrument maximum est de 256)  !

J'ai en outre décidé de donner un nom à ces phonèmes qui morphent : les morphèmes, c'est un barbarisme, mais au point où j'en suis...

Ensuite une fois créés, on n'a plus qu'à utiliser la fonction de création de "loops" dans un sample pour isoler dans ce sample une forme d'onde très courte qui, une fois jouée en boucle, sera "freezée" et sonnera comme une tonalité continue.

Pour avoir une idée de cette bibliothèque de samples à utiliser dans frogoïd, télécharger cet instrument .XRNI ici.

Une fois que c'est fait, utilisez votre clavier maître MIDI pour jouer les notes. Vous verrez qu'en fonction de l'intensité de la frappe, certains morphèmes sont différents. On peut donc assigner plusieurs samples différent à une même note sans chevauchement, si et seulement si on joue cette note à différents niveaux de vélocité, en paramétrant cette vélocité dans la sous-colonne de vélocité (à droite de la colonne de note).

Ma grande difficulté pour la suite, ça va être d'élaborer une matrice en deux dimensions simple d'usage, facile à lire déjà dans l'onglet "sample keyzones", qui servirait de base de départ pour la construction en LUA d'un Wordpad pour Frogoïd.

C'est donc toujours en cours, mais bien parti.

@ bientôt pour la suite des aventures de frogoïd !

 

Portrait de lapiNIC
Hors ligne
Dernière visite: Il y a 11 mois 3 semaines
A rejoint: 21/10/2012 - 18:24
Contributions: 556
IP: 176.134.83.185
Matrice de morphèmes

Voici enfin la présentation de la matrice de morphèmes en 2d.

C'est en fait une capture d'écran de la banque de 254 samples contenant à peu près toutes les combinaisons vocales utiles pour le chant en français.

Comme vous pouvez le constater, j'ai pu empiler les sons vocaux sur une vingtaine de strates (vélocités) bien précises.

Sur l'axe des x, vous avez les voyelles, tandis que sur l'axe y vous avez les consonnes.

Le fichier .xrni (mis à jour!) est téléchargeable ici.

Cette mise à jour inclut donc la stratification en vingt couches, et l'accordage des samples sur le repère 440Hz.

Cela permettra une identification du son beaucoup plus aisée sous Keroovee.

 

Portrait de lapiNIC
Hors ligne
Dernière visite: Il y a 11 mois 3 semaines
A rejoint: 21/10/2012 - 18:24
Contributions: 556
IP: 176.134.83.185
Un peu de code LUA

--=============================================================
--                 Words Pad pour Frogoïd v.1.0  
--       Design:Satobox  Code:Uprime22   Trad:kurtz/lapiNIC
--         URL de référence pour l'utilitaire japonais :
-- (http://reg.s63.xrea.com/BBS/viewtopic.php?f=2&t=524&start=0 )
--        URL de référence pour l'utilitaire français :
--           (http://www.refra.fr/portail/node/100)
--================================================================
--[[
========================
main.lua
========================
--]]

-- Le concept de frogoïd est quasi similaire à celui développé pour renoid,
-- la différence réside dans le fait que les phonèmes ont été précisément
-- recrées pour permettre un maximum d'articulations verbales en
-- langue française ; je les appelle : les "morphèmes" (cf : barbarisme).
-- le problème est que la quantité de morphèmes nécessaire
-- est bien plus grande que ce que prévoit le code initial de renoid !
-- En effet, j'en ai créé 254. Il en résulte que frogoïd doit dispatcher
-- ses échantillons de façon très différente ; alors comment ?
-- En utilisant les fonctions avancées de la tabulation Sample Keyzones.
-- L'idée principale est d'empiler tous les samples sur 20 strates de vélocité
-- bien différentes, et de désarrimer la vélocité au volume ;
-- Le "package vocal" est ainsi réparti dans une matrice en 2D où
-- sur l'axe x (notes de C-0 à C-4) on én umère toutes les voyelles possibles
-- sur l'axe y, (vélocité de 08 à 7F), on énumère toutes les consonnes possibles
-- les zones contiennent des samples bouclés (forward) et accordés sur 440Hz.  
-- Cette stratégie permet de n'avoir qu'un seul  et unique instrument de stockage
-- d'échantillons, malgré le nombre important de morphèmes nécessaires.

-- Pour la fonction move_cursor, l'inspiratio vient de KMaki et Joule
-- un grand merci à eux !
-- http://forum.renoise.com/index.php?/topic/32240-snippet-edit-step/
require ("move_cursor")

-- la fonction suivante transmet à l'éditeur les ordres d'ajout de notes
-- chaque note étant associée à un "morphème" et à une vélocité précise
-- on a aussi les boutons 'up','down'.
-- notez que 'up','down' fonctionnent selon le paramètre edit step
function note_it (note,velo)
  local s = renoise.song()
  if s.transport.edit_mode == true
  then
    if note =="down" then move_cursor()
    elseif note =="up" then move_cursor(- s.transport.edit_step)
    else
     
      s.selected_note_column.note_string = note     
  -- ça je viens de l'ajouter, je définirai les vélocités plus tard
      s.selected_note_column.volume_string = velo
      
      if note =="---" then
        s.selected_note_column.instrument_value =255
      else
        s.selected_note_column.instrument_value =
        s.selected_instrument_index -1
      end
       move_cursor()
    end
  else return nil
  end
 end

 
  -- initialisation des tables pour l'interface graphique et les valeurs des boutons
  function set_ini(tbl)
    local new ={}
    for i,val in pairs(tbl) do
      if type(val) ~= "table" then
        new[i] = nil
      else
        new[i] = set_ini(val)
      end
    end
    return new
  end
 

--[[ là c'est de la donnée pure?]]------------------------
  -- voici les tables contenant les noms des morphèmes
  -- leurs correspondances sur les sample keyzones?
  -- sous forme de notes et de vélocités
  local tbl_ons =
  {
    {
      {"a","e","i","o","u","an","un","on","ou","oi","é","è"},
      {"ba","be","bi","bo","bu","ban","beu","bin","bon","bou","boi","bé","bè"},
      {"da","de","di","do","du","dan","din","don","dou","doi","dé","dè"},
      {"fa","fe","fi","fo","fu","fan","feu","fin","fon","fou","foi","fé","fè"},
      {"ga","ge","gi","go","gu","gan","geu","gin","gon","gou","goi","gé","gè"},
      {"cha","che","chi","cho","chu","chan","cheu","chin","chon","chou","choi","ché","chè"},
      {"ja","je","ji","jo","ju","jan","jin","jon","jou","joi","jé","jè"},
      {"ka","ke","ki","ko","ku","kan","keu","kin","kon","kou","koi","ké","kè"},
      {"la","le","li","lo","lu","lan","leu","lin","lon","lou","loi","lé","lè"},
      {"ma","me","mi","mo","mu","man","meu","min","mon","mou","moi","mé","mè"}
    },
    {  
      {"na","ne","ni","no","nu","nan","neu","nin","non","nou","noi","né","nè"},
      {"pa","pe","pi","po","pu","pan","peu","pin","pon","pou","poi","pé","pè"},
      {"ra","re","ri","ro","ru","ran","reu","rin","ron","rou","roi","ré","rè"},
      {"sa","se","si","so","su","san","sin","son","sou","soi","sé","sè"},
      {"ta","ti","to","tu","tan","teu","tin","ton","tou","toi","té","tè"},
      {"va","ve","vi","vo","vu","van","veu","vin","von","vou","voi","vé","vè"},
      {"wa","we","wi","wo","wu","wan","weu","win","won","wou","woi","wé","wè"},
      {"xa","xe","xi","xo","xu","xan","xeu","xin","xon","xou","xoi","xé","xè"},
      {"ya","ye","yi","yo","yu","yan","yeu","yin","yon","you","yoi","yé","yè"},
      {"za","ze","zi","zo","zu","zan","zeu","zin","zon","zou","zoi","zé","zè"},
      {"OFF"}
    },
    {
      {"?","?"}
    }
  }
 
  -- les notes qui correspondent sont dispatchées dans une sorte de matrice 2d?
  -- les valeurs 'C-0' - 'G-9', 'OFF' or '---'?
  -- ?'up','down'? peuvent être retournées
  -- et correspondant à la position sur l'axe des x sur les sample keyzones
  local tbl_notes =
  {
    {
      {"C-0","E-0","G#0","C-1","E-1","G#1","C-2","E-2","G#2","C-3","E-3","G#3"},
      {"C-0","E-0","G#0","C-1","E-1","G#1","C-2","E-2","G#2","C-3","E-3","G#3","C-4"},
      {"C-0","E-0","G#0","C-1","E-1","G#1","C-2","E-2","G#2","C-3","E-3","G#3"},
      {"C-0","E-0","G#0","C-1","E-1","G#1","C-2","E-2","G#2","C-3","E-3","G#3","C-4"},
      {"C-0","E-0","G#0","C-1","E-1","G#1","C-2","E-2","G#2","C-3","E-3","G#3","C-4"},
      {"C-0","E-0","G#0","C-1","E-1","G#1","C-2","E-2","G#2","C-3","E-3","G#3","C-4"},
      {"C-0","E-0","G#0","C-1","E-1","G#1","C-2","E-2","G#2","C-3","E-3","G#3"},
      {"C-0","E-0","G#0","C-1","E-1","G#1","C-2","E-2","G#2","C-3","E-3","G#3","C-4"},
      {"C-0","E-0","G#0","C-1","E-1","G#1","C-2","E-2","G#2","C-3","E-3","G#3","C-4"},
      {"C-0","E-0","G#0","C-1","E-1","G#1","C-2","E-2","G#2","C-3","E-3","G#3","C-4"}
    },
    {
      {"C-0","E-0","G#0","C-1","E-1","G#1","C-2","E-2","G#2","C-3","E-3","G#3","C-4"},
      {"C-0","E-0","G#0","C-1","E-1","G#1","C-2","E-2","G#2","C-3","E-3","G#3","C-4"},
      {"C-0","E-0","G#0","C-1","E-1","G#1","C-2","E-2","G#2","C-3","E-3","G#3","C-4"},
      {"C-0","E-0","G#0","C-1","E-1","G#1","C-2","E-2","G#2","C-3","E-3","G#3"},
      {"C-0","E-0","G#0","C-1","E-1","G#1","C-2","E-2","G#2","C-3","E-3","G#3"},
      {"C-0","E-0","G#0","C-1","E-1","G#1","C-2","E-2","G#2","C-3","E-3","G#3","C-4"},
      {"C-0","E-0","G#0","C-1","E-1","G#1","C-2","E-2","G#2","C-3","E-3","G#3","C-4"},
      {"C-0","E-0","G#0","C-1","E-1","G#1","C-2","E-2","G#2","C-3","E-3","G#3","C-4"},
      {"C-0","E-0","G#0","C-1","E-1","G#1","C-2","E-2","G#2","C-3","E-3","G#3","C-4"},
      {"C-0","E-0","G#0","C-1","E-1","G#1","C-2","E-2","G#2","C-3","E-3","G#3","C-4"},
      {"OFF"}
    },
    {
      {"up","down"}
    }
  }
 
-- là je rajoute en plus au code initial les valeurs de vélocité et ce
-- dans une nouvelle table tbv_velo, qui précise la hauteur de la vélocité
-- ATTENTION : cette stratégie ne fonctionne que si et seulement si
-- le bouton VEL->VOL est DECOCHE (ça permet de grouper en un seul
-- instrument la totalité des samples!). J'allais quand même pas
-- répartir tout ça sur 3 ou 4 banques étallées sur 3 ou 4 .xrni !
 
 local tbl_velo =
  {
    {
      {"7F","7F","7F","7F","7F","7F","7F","7F","7F","7F","7F","7F"},
      {"79","79","79","79","79","79","79","79","79","79","79","79","79"},
      {"73","73","73","73","73","73","73","73","73","73","73","73"},
      {"6D","6D","6D","6D","6D","6D","6D","6D","6D","6D","6D","6D","6D"},
      {"67","67","67","67","67","67","67","67","67","67","67","67","67"},
      {"61","61","61","61","61","61","61","61","61","61","61","61","61"},
      {"5B","5B","5B","5B","5B","5B","5B","5B","5B","5B","5B","5B"},
      {"55","55","55","55","55","55","55","55","55","55","55","55","55"},
      {"4F","4F","4F","4F","4F","4F","4F","4F","4F","4F","4F","4F","4F"},
      {"49","49","49","49","49","49","49","49","49","49","49","49","49"}
    },
    {
      {"43","43","43","43","43","43","43","43","43","43","43","43","43"},
      {"3D","3D","3D","3D","3D","3D","3D","3D","3D","3D","3D","3D","3D"},
      {"37","37","37","37","37","37","37","37","37","37","37","37","37"},
      {"31","31","31","31","31","31","31","31","31","31","31","31"},
      {"2B","2B","2B","2B","2B","2B","2B","2B","2B","2B","2B","2B"},
      {"25","25","25","25","25","25","25","25","25","25","25","25","25"},
      {"1F","1F","1F","1F","1F","1F","1F","1F","1F","1F","1F","1F","1F"},
      {"19","19","19","19","19","19","19","19","19","19","19","19","19"},
      {"13","13","13","13","13","13","13","13","13","13","13","13","13"},
      {"0D","0D","0D","0D","0D","0D","0D","0D","0D","0D","0D","0D","0D"},
      {""}
    },
    {
      {"",""}
    }
  }
   
---------------------------------------

 
  -- maintenant, on prépare l'interface graphique en définissant
  -- les valeurs limites desbords et des boutons
  -- simplement à partir des nombres d'items des tables
 
 function hmax()
   return table.maxn(tbl_ons)
 end

 function gmax(h)
   return table.maxn(tbl_ons[h])
 end

 function dmax(h,g)
   return table.maxn(tbl_ons[h][g])
 end

-- dessin de la GUI proprement dite
function on_buttons ()
  local vb = renoise.ViewBuilder()

  -- ViewBuilder comme son nom l'indique va créer une interface?
  -- ya 3 volets, (1) le premier bloc de morphèmes sur 10 lignes à gauche
  -- (2) le second bloc de morphèmes sur 10 lignes à droite
  -- (3) les boutons up&down en dessous
 

  local s0
  local s1 = set_ini(tbl_ons)
  local s2 = set_ini(tbl_ons)
  local s3 = set_ini(tbl_ons)

  -- à l'occasion on définit quoi faire quand un bouton est actionné
  -- via le notifier
  for h = 1,hmax() do
    for g = 1,gmax(h) do
      for d = 1,dmax(h,g) do
        s3[h][g][d] =
        vb:button ({
          width = 35,
          height = 35,
          text = tbl_ons[h][g][d],
          notifier =
          function()
            note_it(tbl_notes[h][g][d], tbl_velo[h][g][d])
          end
        })
      end
    end
  end

  for h = 1,hmax() do
    for g = 1,gmax(h) do
        s2[h][g] =
        vb:row(s3[h][g])
    end
  end

  for h = 1,hmax() do
    s1[h] =
    vb:column(s2[h])
  end

  -- il faut quelques espaces entre les boutons !
  s0 = vb:row{s1[1], spacing =12, vb:column{s1[2],spacing =20,s1[3]}}

  -- et il faut aussi un titre à l'application
  renoise.app():show_custom_dialog("Words Pad pour Frogoïd" ,s0)
end

-- sans oublier de rajouter une entrée au menu de la piste éditée :           
renoise.tool():add_menu_entry {
   name = "Pattern Editor:Words Pad pour Frogoïd...",
   invoke = function() on_buttons() end
}
 

 

Portrait de lapiNIC
Hors ligne
Dernière visite: Il y a 11 mois 3 semaines
A rejoint: 21/10/2012 - 18:24
Contributions: 556
IP: 176.134.83.185
Tada !

 

Donc une fois ce code exécuté en temps réel, ça marche, (!), d'une smiley et de deux quand ça s'exécute ça donne ça :

D'après mes premiers tests, l'ajout d'une table de valeurs de vélocité correspondant aux notes fonctionne bien, tout semble coller.

Pour information, le coeur de cette modification repose sur la définition d'une nouvelle table de vélocités, et un passage de paramètre additionnel (la vélocité) dans la fonction d'entrée de note, et une fois ce paramètre passé, on utilise "volume_string" ainsi :

s.selected_note_column.volume_string = velo

...ce qui forcera renoise à ajouter à la suite de la note, une vélocité spécifique, en fonction de laquelle le sample à jouer sera donc plus ou moins haut sur l'axe y de la matrice de morphèmes. Et comme on a désarrimé la vélocité du volume de sortie de la piste elle-même via VEL->VOL, le volume restera au top et donc constant. Bien sûr, j'ai normalisé tout les samples, mais je ne saurais trop vous recommander que d'installer à l'instar de ce qui se passe dans la vidéo d'illustration de Renoïd, un "bus compressor" avec un preset capable d'appliquer une compression sur la voix, afin que son niveau reste gérable dans un mix et que lkes réglages de Kerovee n'aient pas trop de problème d'interprétation, par ci ou par là.

Ah oui, en rassemblant le fichier main.lua dans un nouveaux package zippé de type .xrns, vous obtenez un tool facile à installer ; pas d'inquiétude, j'ai tout préparé,  il suffit de le télécharger ici, et une fois que c'est fait, de le glisser déplacer le fichier .xrnx sirectement sur l'interface de Renoise. Lequel installera le tool sans problème.

Pour utiliser ce bloc notes spécial, il faut donc qu'il soit bien installé, que l'instrument par défaut soit bien l'instrument morphemes.xrni, et surtout qu'on soit bien en mode "Edit Mode" (avec le bouton Rec enfoncé). Si le bouton Edit Mode n'est pas enfoncé, toutes les touches du Words Pad sont inhibées !

 

Portrait de lapiNIC
Hors ligne
Dernière visite: Il y a 11 mois 3 semaines
A rejoint: 21/10/2012 - 18:24
Contributions: 556
IP: 176.134.83.185
Une vidéo, ça rend mieux

Et avec une vidéo : c'est plus explicite ! wink

::: Télécharger :::::: Télécharger :::::: Télécharger :::::: Télécharger :::::: Télécharger :::

les morphèmes -- ::: -- words pad pour frogoïd -- ::: -- exemple d'usage (avec kerovee)

Hors ligne
Dernière visite: Il y a 9 années 10 mois
A rejoint: 08/01/2013 - 18:42
Contributions: 23
Grandiose !

Merci beaucoup pour tes explications ! J'étais tombé sur le tuto de Renoise, mais je maîtrise mal le japonais, donc difficile de faire des musiques... Donc je vais me faire un plaisir de tester ton vocaloid français ! :)

Portrait de lapiNIC
Hors ligne
Dernière visite: Il y a 11 mois 3 semaines
A rejoint: 21/10/2012 - 18:24
Contributions: 556
IP: 176.134.83.185
merci

Tes premières impressions seront les bienvenues. smiley

Par ailleurs, j'espère qu' "alexoualexou", un des utilisateurs enregistrés de www.refra.fr (excellent mélodiste soit dit en passant) et qui fait un usage abondant de vocaloid, pour produire des titres plutôt anglais, va pouvoir produire une petite démo.

Hors ligne
Dernière visite: Il y a 9 années 10 mois
A rejoint: 08/01/2013 - 18:42
Contributions: 23
Bon, voilà le résultat après

Bon, voilà le résultat après 20 minutes de bisouilles pour comprendre comment ça marche :

https://dl.dropbox.com/u/56632196/test-voix.ogg

Morale : On peut même le faire chanter anglais à peu près correctement yay !

Et sinon pour le français, c'est pas encore très compréhensible mais c'est très sympa pour faire des effets dans certaines musiques, je garde !

Portrait de lapiNIC
Hors ligne
Dernière visite: Il y a 11 mois 3 semaines
A rejoint: 21/10/2012 - 18:24
Contributions: 556
IP: 176.134.83.185
Oui

Merci, mais c'est vrai, c'est pas évident de comprendre ce que ça veut dire, en anglais ou en français.

Ca vient à mon avis du problème des "consonnes de transit non chantées".

Prenez par exemple le mot "triste".

Pour l'instant, ça donne "te-ri-se-te".... Seul le "ri" est normalement chanté, le reste n'a pas à trainer en longueur, et donc le sample bouclé et étiré pour le chant, est plus une entrave qu'autre chose.

J'ai plein d'exemples comme ça, c'est joli, mais on y comprend rien.

Personne ne prononce le mot "triste" decette façon et on va donc à l'encontre du but proposé.

Idem pour le mot "partir", on ne le dit pas "pa-re-ti-re"...

Pour l'instant, je songe à résoudre le problème en essayant d'utiliser des solutions comme la colonne de délai, pour retarder à fond l'amorce de la consonne de transit, ou peut-être à utiliser la commande "U" pour shifter le son vers le haut (en sachant que KeroVee va le redresser ultérieeurement) et accélérer l'attaque, ou enfin, la commande de pattern "S" (sample offset) pour démarer le sample à partir d'un offset plus tardif... mais c'est fastidieux...

 

 

Hors ligne
Dernière visite: Il y a 9 années 10 mois
A rejoint: 08/01/2013 - 18:42
Contributions: 23
Ce n'est pas possible de

Ce n'est pas possible de créer de courts samples de consonnes, genre R, T', P' ?

Mais ton petit programme LUA est très pratique I-m so happy

Portrait de admin
Hors ligne
Dernière visite: Il y a 6 mois 2 semaines
A rejoint: 01/03/2011 - 16:36
Contributions: 923
IP: 176.134.83.185
Possible

Oui, possible, la seule chose qui pose problème, c'est que la quantité de samples maximum autorisée est déjà presque atteinte. Il ne me reste de la place plus que pour 1 et 1 seul sample, et après, game over.

J'ai donc pas le choix, je vais devoir :

- soit sacrifier des morphèmes chantés pour les remplacer par des consonnes de transit non chantées, ce qui ne m'enchante pas, ça revient à "déshabiller paul pour habiller jacques" ; je vais me retrouver avec le même problème en sens inverse, impossible de chanter tel ou tel mot car il "manque" quelque-chose.

- soit une banque de sons .xrni additionnelle à charger en parallèle, ce qui ne me plait pas du tout, parce que je me vois mal jongler avec deux instrus .xrni, un seul est déjà suffisemment délicat comme ça

- soit utiliser une astuce  un peu roublarde sous sa forme je m'explique :

Il m'est arrivé de composer un arrangement avec tout le toutim, avec 3 samples seulement, vous le connaissez, c'est la première musique que j'aie posté dans le forum Musiques 100% Renoise, c'est Zeta Transmissions. A l'entendre, on imagine mal qu'il n'y a que 3 samples de 10 secondes maxi, mais c'est vrai qu'il suffit de regarder en haut à droite pour se rendre compte que c'est vrai. L'astuce utilisée dans ce module, c'est le "sample slice", j'ai fourré en fait tous mes samples utiles, qu'ils soient ceux du drumkit, de la basse synthétique, de la voix vocodée, dans des samples, qui une fois slicés, comportent des sous-samples, que je déclenche depuis le pattern au moment voulu.

Si l'on considère cette dernière option on pourrait y renoncer. Car concernant la banque de morphèmes que j'ai créé on ne peut pas créer ce genre de sous-samples puisque la matrice est DEJA une matrice de sous-samples elle-même, et, je ne peux plus sous-sampler ce qui est déjà un sous-sample.

Mais, on peut toujours gérer ce genre de stratégie, "à l'ancienne". Les vétérans du tracking connaissent la fonction sample offset, 09XX, et je pourrais me servir de cette ancienne manière de saucissonner un sample et de déclencher les sons, à la place de la technique du slice. Il me suffit de fourrer toutes les consonnes de transit non chantées les unes à la suite des autres dans le même échantillon. Et, cette ancienne technique veut qu'un échantillon est en fait nativement pré-saucissonné par défaut en 256 portions égales, aussi, lorsqu'on utilise la commande sample offset (initialement 09XX, récemment changée en 0Sxx), si le sample n'est pas slicé, alors, il suffit de placer les samples de consonnes de transit non chantées sur des repères hexadécimaux équidistants précis, et de les  appeler en invoquant le sample suivi de la commande 0Sxx appropriée.

Il me suffirait ensuite de créer des boutons sur le WordsPad de Frogoïd, qui lorsqu'on appui dessus, lancent le même sample, mais au lieu d'utiliser la vélocité, rajoute une commande de pattern 0Sxx adaptée dans la première colonne disponible à droite, et hop.

 

L'Administrateur

Hors ligne
Dernière visite: Il y a 5 années 10 mois
A rejoint: 19/12/2012 - 16:49
Contributions: 92
Merci lapiNIC pour tes

Merci lapiNIC pour tes compliments :)

Oui promis quand j'aurai le temps j'essaierai quelque chose avec cet outil. En tous cas comme je le disais sur le forum renoise.com c'est vraiment du bon boulot, merci de ton investissement !

Portrait de lapiNIC
Hors ligne
Dernière visite: Il y a 11 mois 3 semaines
A rejoint: 21/10/2012 - 18:24
Contributions: 556
IP: 176.134.83.185
Du nouveau

Du nouveau dans le monde de Frogoïd !

Renoid évolue, et donc, Frogoïd aussi !

En effet je ne vous avais pas dit que le blog japonais faisait régulièrement état état d'un travail audacieux produisant l'analyse automatisée des librairies de phonèmes en LUA pour Renoid ; cette analyse automatisée permettrait de créer en alternative au système d'entrée de phonèmes par boutons, un système d'entrée de phonèmes basé sur une boite de texte écrit. Par exemple, il suffiit donc d'écrire dans cette boite les phonèmes désirés, avec le clavier azerty, et le programme les convertit en notes et les dispatche sur le pattern selon un tempo précis impulsé par l'éditeur du pattern. Plus besoins de boutons, il suffit de connaître les phonèmes.

Cette idée somme toute simple pourrait donner une énorme valeur ajoutée au wordspad existant.

Eh bien tada, elle vient juste d'être finalisée sur le plan de la programmation ! Ca s'appelle : txt2notes.

Comme vous le constatez dans cette capture d'écran, satobox, gérant du blog japonais, a en outre légèrement remanié ma librairie de samples français pour la rendre plus compatible avec cette extension très intéressante.

D'après mes tout premiers tests, ça semble marcher ! drummer

Cependant, quelque chose me gène, je constate quelques ratés, soit parce que je n'ai pas (justement) en tête tous mes phonèmes précisément, soit parce que l'entrée des notes est basé sur un système de combinaisons de touches qui n'est pas vraiment simple à retenir ; et en outre, l'interface ne daigne même pas s'agrémenter d'une petite aide même symbolique. C'est somme toute un problème mineur, et ça ne devrait pas me poser trop de problème pour m'inspirer du code de txt2notes pour faire un frogoid 2.0.

Je me demande en effet s'il ne serait pas finalement plus judicieux de conserver le système par bouton comme "mode d'édition avancée" en cas d'oubli et/ou de raté lors de l'introduction des phonèmes par boite de texte. En somme, j'aimerais fusionner les deux interfaces en une seule qui en combine les avantages.

 

Hors ligne
Dernière visite: Il y a 10 années 1 mois
A rejoint: 06/02/2013 - 20:19
Contributions: 413
J'ai suivi l'arrivée de

J'ai suivi l'arrivée de Renoid sur l'autre forum puis j'ai vu que tu avais l'ambition d'en faire une mouture...que je n'ai pas eu le temps de tester. Je vais m'y mettre parce que j'ai eu une idée à la con, de bon feignant que je suis.

En gros, j'ai collecté plein de samples depuis quelques années, des voix, des sons issus de jeux vidéo, de films...bref, comme pas mal de gens...sans pouvoir l'exploiter réellement...

Je compte découper et extraire des "mots", peu importe que ça soit une femme, un homme, un robot...qui parle...et m'en servir dans ce genre d'outil.

Pour faire la partie "chant" d'un module, de cette façon; ou inclure une partie où ça "parle". Ca peut ne rien donner de bon...mais ça me ferait bien marrer; surtout de balancer des insultes de cette façon.(désolé, on se refait pas)

Si ça fonctionne, partager peut être délicat parce que ça serait du sampling de fichiers soumis à copyright le cas échéant...gage à l'utilisateur de rendre tout ça un peu impossible à reconnaitre; en gros, j'aimerai pouvoir ajouter de la "voix" dans mes tracks sans que ça soit un chant "propre" et prévu à cet effet ( paroles ineptes et marronniers...);Pour produit commercial pourrave copié/collé respectant bien le code de production de rigueur...

Dans le style cra-cra mais audible, pour que mon label me casse pas les "couilles" avec la partie chant  (évidemment, si on peux en French, on peut en English arf ) et tout ça en tâtonnant, vu que les samples ne sont pas homogènes ( du tout même et c'est un peu le but ).

J'ai en tête cette image qu'on voit parfois dans certains films où un personnage écrit une lettre anonyme, en collant des lettres de typos différentes mais au final, ça fait une phrase...C'est peut-être un peu vague pour le moment mais tout ça couplé à une talk-box ou un vocoder, ça me permettrait d'améliorer ma "soupe commerciale en cours " et de me foutre de la gueule des trisos qui font de la merde.

C'est une idée, hein...

 

Portrait de lapiNIC
Hors ligne
Dernière visite: Il y a 11 mois 3 semaines
A rejoint: 21/10/2012 - 18:24
Contributions: 556
IP: 176.134.83.185
Insultron pour Renoise

Ah d'accord oui ça a du potentiel... badteeth

Sinon, en creusant l'idée pour savoir plus concrètement comment l'exploiter, il faudrait transcoder le célèbre Insutron en ligne dans Renoise.

C'est à dire que tu prononces toi-même si possible les bouts de phrases utiles.

Et ensuite faut qu'on adapte le code en JS, et le transformer en code type LUA.

C'est quand même un gros boulot mais ça pourrait être marrant de coder ça et ensuite de le proposer.

 

 

Hors ligne
Dernière visite: Il y a 10 années 1 mois
A rejoint: 06/02/2013 - 20:19
Contributions: 413
ah oui, bien vu le site,

badteethslayerah oui, bien vu le site, merci.

Pour être un peu plus précis, je compte découper des samples pour obtenir des "mots" et ensuite obtenir des "syllabes", le truc étant de faire un simple  remplacement des samples de Frogoïd...je ne compte pas me mettre à coder, c'est pas du tout ma partie, ça rolleyesMissa Feignant tongue

Après, rien n'empêche de prendre un micro et de faire les samples soi-même, en effet...mais le truc était pensé histoire de faire un truc...marrant à utiliser; ma voix, bof... laugh

Si y'a moyen de remplacer facilement les samples du processus natif, ça devrait pas être trop dur à faire...le tout étant d'avoir samplé un max de phrases et d'avoir de quoi alimenter une rotation des sons...importante.

badteeth Je dois recoder une tempalte sur mon proto-slicer et ensuite, je m'y colle; en tous cas, Renoïd comme Frogoïd w00t2

Excellent job ! Congrats.

 

 

Portrait de lapiNIC
Hors ligne
Dernière visite: Il y a 11 mois 3 semaines
A rejoint: 21/10/2012 - 18:24
Contributions: 556
IP: 176.134.83.185
...

 

Les syllabes c'est pas comme les mots.

les mots à la limite on peut encore se dire qu'ils viennent de voix qui ont une qualité et c'est encore identifiable.

mais, si on les atomise en syllabes... je me demande si on arriverait à identifier l'origine des voix en les découpant à ce point...

j'ai jamais essayé ce genre de chose, j'ai pas idée de ce que ça pourrait donner, j'ai peur que la disparité des timbres fasse que ça donne une espèce de gloubiboulga sonore, une bouillie inégale et pas facile à masteuriser en plus

après, de toutes façons, se pose le problème de référencer l'origine des samples, parce qu'il faut le faire, d'une part, et d'autre part une potentielle "sanction" en cas de popularité ce qui est le comble... plus tu utilises du sample de voix  copyrighté plus tu t'exposes à des retours en cas de succès si tu n'as pas les autorisations des ayants droits

si ta zic reste oubliée dans les profondeurs de l'anonymat internationnal parce qu'elle a pas rencontré son public, comme on dit, tu peux sampler n'importe qui en longueur pendant deux minutes, et balancer ta reprise / cover song, sans même avertir l'auteur, tout le monde s'en fout, même sur youtube qui détecte automatiquement le copyrighté, tas le droit à une espèce d'avertissement automatique sans suite...

mais dès que ça finit par marcher, et dépasser 100.000 visites par exemple, aïe, aïe,  c'est presque à regretter, parce que, c'est là que les ayants droits sortent leurs batteries d'avocats pour grapiller les dollars qui restent dans la phase hype du titre, ils se mettent à se sentir lésés et à se dire qu'ils sont plagiés et violé, droits d'auteurs, etc...

donc pour être parfaitement sur que ça va pas créer des ennuis, une zic qui utilise par exemple 200 syllabes de 200 artistes différents du catalogue universalmusic, impliquerait qu'il faut tous les contacter pour leur demander leur autorisation... et forcément yen aura un pourcentage qui va dire niet, ou qui va pas répondre...et si ça marche sans autorisation, c'est donc autant de violations proportionnelle de copyright à réparer financièrement, on en a mal au cul d'avance

prends l'exemple "con los terroritas", ça fait trois mots, okay, bah depuis que le harlem shake est hype, le type qui les a pondus il se sent soudainement spolié à mort, parce que dans "do the harlem shake" on utilise ses trois mots "à lui", "con los terreoristas" ça fait trois putains de mots seulement, sa zic d'où c'est tiré en a 4000 , et le type il est plagié/spolié dans le fond de sa créativité, ça vient de son catalogue en cours de vente sur iTunes, il veut sa part du gateau et ya déja des procès en marche

la seule manière éventuellement de remédier à tout ça serait de mettre les syllables dans un désordre absolu, tu découpes le sample en plusieurs sons sous-samplés "con" "los" "terr" - "o" - "ris" - "tas" devient par exemple, "tas" - "con" -"ris" - "ter" - "los" - "o" ... ce qui ne veut rien dire on est d'accord mais on n'a déjà pas à se faire les droits d'auteur sur "les lyrics" et même avec ça je suis pas certain que ça va pas poser problème finalement...

* * *

C'est un bon projet, de mêler les voix humaines différentes, non pas "en même temps" comme pour un choeur, mais en file indienne et rapidement,...

A ce niveau de minutie, je serais plutôt partant pour utiliser un field recorder pour sampler des syllabes chez par exemple tes amis, tes voisins, qui se prètent au jeu et qui te fournissent avec leurs voix bien particulières des syllabes nécessaires. Au  bout du compte ça revient au même au niveau sonore et c'est sans risque.

Hors ligne
Dernière visite: Il y a 10 années 1 mois
A rejoint: 06/02/2013 - 20:19
Contributions: 413
" je me demande si on

" je me demande si on arriverait à identifier l'origine des voix en les découpant à ce point..."

C'est le but cool

Je compte faire un outil perso parce qu'évidemment, je ne fournirais ( en cas de spread aux potes.. ) pas ce que j'ai samplé...mais comment remplir Frogoïd avec ce "principe".

Malheur, mais cette bouillie ou tout comme, je compte la trafiquer; comment exactement...aucune idée...mais je pense que ça pourrait le faire.

Pour l'histoire du Harlem Shake, oui, j'étais un jus...bon, en même temps: Musique pour noeud-noeuds, par des noeud-noeuds et pour des débiles mentaux en mal d'exposition médiatique; j'aurais honte de produire ce genre de merde.

Le mec samplé, malheur, qué gogol...mais il a droit à sa part de gâteau, et alors...y'a pas de raison...rolleyes

Je veux former des mots à partir de syllabes samplées prodigieusement non-tracables par d'éventuels ayant droits; quand bien même y'aurait un truc reconnaissable, je me ferais un plaisir de le "travailler"...et là, bon courage pour reconnaitre la voix...surtout si je prends des samples de jeux, des samples de films, de la télé, d'amis ou autre...etc...

bon plus haut, quand j'avais marqué: "c'est une idée, hein..." c'était dans le sens: " Bon, c'est juste une idée jetée en l'air que j'ai eu à la terrasse d'un café..." ph34r

Mais je vais faire mumuse; pour le fun.

L'outil sera utile, très bien; c'est nul, malheur, ça sera pas mon premier truc terminé et qui est naze...

 

Portrait de ostrogoth
Hors ligne
Dernière visite: Il y a 2 années 6 mois
A rejoint: 11/12/2012 - 17:51
Contributions: 347
moi dans jle genre j'ai un

moi dans jle genre j'ai un pote qsui a samplé la voix d'une de ses copines et en a fait des phrases en collant bout a bout tout les phonêmes a la mano avec ton outils lapinic je pense que sa aurais quand même été plus facile(peut etre moins personnel c'est sur mais bon) http://dafuck2.bandcamp.com/album/cest-un-d-sastre?from=embed

Portrait de admin
Hors ligne
Dernière visite: Il y a 6 mois 2 semaines
A rejoint: 01/03/2011 - 16:36
Contributions: 923
IP: 176.134.83.185
morphèmes de frogoïd

frogoïd utilise une banque de phonèmes spéciale, elle est consistuée à partir de la voix de synthèse appelée Mathieu, utilisée dans les tutoriels du guide de démarrage rapide et dans la vidéo pour les newbies.

Ces phonèmes ont été capturés puis spécialement tweakés sous renoise afin qu'ils bouclent. Une fois bouclés ils peuvent être joués en continu. On s'était arrêté sur la problématique des consonnes de transit, qui ne sont pour l'instant pas représentées dans la banque de phonèmes. Je croyais avoir trouvé une soluce mais ça rend pas facile le portage ensuite en code LUA en particulier à la suite de l'évolution du code impulsée par uprime22 (cf txt2notes)

L'Administrateur

Portrait de ostrogoth
Hors ligne
Dernière visite: Il y a 2 années 6 mois
A rejoint: 11/12/2012 - 17:51
Contributions: 347
ta soluce c'étais de mettre

ta soluce c'étais de mettre un sample* slicé pour pouvoir repoussé la limite du nombre de samples c'est sa?

Portrait de lapiNIC
Hors ligne
Dernière visite: Il y a 11 mois 3 semaines
A rejoint: 21/10/2012 - 18:24
Contributions: 556
IP: 176.134.83.185
oui

oui en gros mais pas slicé de façon classique, slicé "à l'ancienne"

et pour le coup c'est plus du tout compatible avec le code LUA de uprime22

en outre je voulais améliorer tout ça mais je me suis heurté aux limites du LUA renoise,

qui, pour l'instant, ne te permet pas de "simuler" la touche "entrée" blink ce que je trouve énorme et ultrachiant

taktik promet d'améliorer ça mais dans l'attente j'ai laissé le developpement de frogoïd en "stand by"

 

Portrait de olivier
Hors ligne
Dernière visite: Il y a 8 années 3 mois
A rejoint: 06/01/2013 - 15:29
Contributions: 311
les gars vous êtes des têtes

les gars vous êtes des têtes !!!!! encore une fois bravo

alors que je me bats avec frogoid et que j'essai tant bien que mal de l'utiliser.smilie_schreck

j'aimerai que quelqu'un m'explique comment ce fait il que word pad pour frogoid ne s'installe pas dans mon menu, j'ai pourtant tout installé je ne comprend pas. les morphenes, worpad pour frogoid,kerovee, et puis le txt2

je ne comprend pas

je vais lire bien patiemment à tête reposée cette sectionhappy

Portrait de ostrogoth
Hors ligne
Dernière visite: Il y a 2 années 6 mois
A rejoint: 11/12/2012 - 17:51
Contributions: 347
a iok sa t'aurais obligé a

a iok sa t'aurais obligé a tout recodé pour  que sa fonctionne moi le lua pour le moment j'y entrave pas grand chose j'ai dl le manuel lua mais bon pour le moment j'essaye de déjà comprendre la logique de renoise avant de m'attaquer au lua je crois que se sera déjà bien lorsque je maitriserais ce dont j'ai besoin dans renoise.comment sa se fait que on ne puisse pas simulé la touche entrée?

Portrait de lapiNIC
Hors ligne
Dernière visite: Il y a 11 mois 3 semaines
A rejoint: 21/10/2012 - 18:24
Contributions: 556
IP: 176.134.83.185
bah

bah j'en sais rien, c'est juste que la fonction n'existe pas... taktik n'y a pas pensé, ça peut aussi venir du fait que l'utilisation des touches et des clics est contextuelle, tout dépend de l'endroit où la souris se situe, au moment de l'action, ça doit être un truc comme ça qui ne rend pas si évidents les simulés de touches

Connectez-vous ou inscrivez-vous pour publier un commentaire