Comme annoncé précédemment, les nouvelles possibilités des pistes numériques (fréquence d'échantillonnage et/ou taille d'échantillon élevées) nécessitent de reprendre, ou tout au moins de vérifier tous les scripts MyrScript qui travaillent sur les données de ces pistes. Parmi les scripts fournis par défaut, il s'agit de tous ceux situés dans la section "Son numérique" du menu des scripts. Nous nous sommes attelés à cette tâche, mais les scripts sont nombreux et assez complexes. Ci-dessous, la liste des vérifications ou corrections à appliquer aux scripts. Si vous avez écrit de tels scripts pour votre usage personnel, pensez à vérifier tout cela. Dorénavant : Les pistes numériques ne sont plus nécessairement en 16 bits à 44 kHz. L'échantillon peut être de 8, 16, 24 ou 32 bits, et la fréquence d'échantillonnage peut aller de 11 à 96 kHz. Les sons numériques des instruments peuvent également dépasser 16 bits (24 ou 32) et la fréquence d'échantillonnage peut être supérieure à 44kHz (48 ou 96) Par conséquent : Lors de la manipulation de pistes numériques en MyrScript, il est conseillé d'utiliser les valeurs normées (NormalizedDigitalData) plutôt que les valeurs natives (NativeDigitalData) pour traiter toutes les tailles possibles d'échantillon avec les mêmes fonctions. Les rawtables qui reçoivent les valeurs doivent donc impérativement être en virgule flottante (RAW_TABLE_FLOAT) et non entières (RAW_TABLE_LONG) Il faut vérifier que lors du stockage d'une valeur, elle n'est plus transformée en entier. Typiquement, un arrondi pouvait être effectué sur les valeurs natives par floor(val+0.5). Ceci doit être supprimé. Les valeurs vont donc de -1 à +1 au lieu de -32768 à 32767. Les calculs doivent en tenir compte La fréquence d'échantillonnage n'est plus nécessairement à 44 kHz. Il faut en tenir compte dans les tailles de bloc destinées aux calculs de transformées de Fourier (FFTBlock), ainsi que dans l'analyse et l'interprétation du spectre résultat. De même, le calcul des bornes de sélection sur une piste numérique doit être vérifié. Cela pouvait être quelque chose comme : t1=score.TimeBeginSelection t2=score.TimeEndSelection startIndex=1+score.PlayedTimeToMs(t1)*44.1 endIndex=1+score.PlayedTimeToMs(t2)*44.1 Cela devient (si data désigne les données de la piste numérique): t1=score.TimeBeginSelection t2=score.TimeEndSelection startIndex=1+score.PlayedTimeToMs(t1)*data.SampleRate/1000 endIndex=1+score.PlayedTimeToMs(t2)*data.SampleRate/1000 Toutes ces informations seront postées sur le forum MyrScript lors de la sortie de la prochaine version beta. |