Se connecter
Se connecter

ou
Créer un compte

ou
Agrandir
Ajouter ce produit à
  • Mon ancien matos
  • Mon matos actuel
  • Mon futur matos
Yamaha DX7
Photos
1/3065
Yamaha DX7

Clavier synthétiseur numérique de la marque Yamaha appartenant à la série DX

Création de patchname DX7 pour Cubase SX.

  • 2 réponses
  • 2 participants
  • 1 275 vues
  • 1 follower
Sujet de la discussion Création de patchname DX7 pour Cubase SX.
P'tit lu all...

Tout d'abord désolé pour le cross-post sur le forum Cubase SX mais les Cubasiens n'étant pas forcement aussi des DXiens, j'augmente mes chances d'autant :clin:

Je me suis lancé dans la création d'un Patchname pour mon DX7 sous Cubase SX (Manageur des appareils MIDI) étant donné les quelques difficultés, somme toute pas si méchantes, rencontrés lors de la confection du Patch pour le QY-70, je m'suis dit qu'ca s'rait guère plus compliqué... Que nenni ma bonne dame, je suis largué ;o)...
Donc, la première phase consistant simplement en l'enregistrement des données génèrées par le DX dans une piste midi afin de les observer dans l'éditeur en liste (ouf), je me suis appercu que le passage d'un son à un autre (interne ou cartouche) déclenche un simple program change... Logique me diront certains, m'ouais bon...
Le problème étant qu'un patch nommé DX7II, livré avec SX, semble fonctionner de manière totalement différente:
Ce script contient deux modes, un mode "Performances"
contenant 32 patchs et un mode "Voices" contenant deux dossiers "Group
1" et "Group 2" contenant chacun 32 autres patchs ce qui ne semble
absolument pas correspondre à mon DX7 qui y perd totalement son latin en
m'affichant le N°88 sur l'afficheur LED en m^m temps que le message
d'allumage "YAMAHA DX7 SYNTHESIZER".

En mode édition, chaque patch contient les infos suivantes:
-CC: Bank Select MSB Valeur 0
-Program Change Valeur XX (variable bien sûr en fonction du n° du program)

La valeur du MSB étant toujours nulle, je me suis dit que je devait probablement pouvoir simplement la supprimer pour ne garder que le PC.
Mais nan, du coup, y s'passe plus rien du tout :o(
Vu le peu de doc dispo pour le DX, impossible par ex. de trouver la table d'implémentation midi, je suis complètemnet largué et je ne vois pas trop que mettre dans mon script sachant que je ne passe que par le "Manageur des appareils MIDI" ne sachant pas tapper un script directement dans le bloc-note...

M'fin vala quoi, si quelqu'un à une idée voir carément le script déjà fait (hé hé ;op on sait jamais, on peut toujours rêver ;°P), ben y saura quoi faire...

Thanx et sorry pour la longueur ;o)

Espace-Cubase.org - Alix-Spawn.net

Pour la pédagogie virtuelle, contre l'assistanat numérique... ;-)

-Espace-Cubase.org

2
Slu


je sé pa si c ca ktu cherche ,

en plus g meme pas les retour de ligne ou y faut , mai bon y a plus ka lire le c :



/* This program takes a raw midi data dump, extracts all */
/* system exclusive messages, and saves these to a MID midi */
/* file. This version is poorly documented. */
#include <stdio.h> #define MAX_BUFFER 20000
#define MAX_SYSEX 20000 main(int argc, char *argv[]) { int i=0, j=0, imax=0, jmax=0, c, k, count=0; int num[4]; FILE *in, *out; char buffer[MAX_BUFFER]; char sysex[MAX_SYSEX]; static char header[] = { 'M','T','h','d', 0,0,0,6, 0,0, 0,1, 0,0x60, 'M','T','r','k', 0, 0, 0, 0 }; static char trailer[] = { 0x00, 0xff, 0x2f, 0x00 }; if (argc != 3) { printf("usage: %s <sys-ex file in> <MIDI file out>\n",argv[0]); exit(0); } in = fopen(argv[1], "rb"); out = fopen(argv[2],"wb"); if (!in || !out) { printf("error: cannot open file(s)!\n"); exit(0); } for (i=0; i<22; i++) { buffer[i] = header[i]; } do { c = fgetc(in); if (c == 0xf0) { buffer[i++] = 0x00; buffer[i++] = 0xf0; j = 0; do { c = fgetc(in); sysex[j++] = c; if (j >= MAX_SYSEX) { printf("error: input sys-ex exceeded maximum size of %d bytes!\n", MAX_SYSEX); exit(0); } } while (c != 0xf7 && c != EOF); jmax = j; num[3] = j & 0x7f; j = j >> 7; k = 2; while (j) { num[k] = (j & 0x7f) | 0x80; j = j >> 7; k--; } if (c == 0xf7) { if (i+4+jmax >= MAX_BUFFER) { printf("error: output file exceeded maximum size of %d bytes!\n", MAX_BUFFER); exit(0); } for (k++;k<4;k++) buffer[i++] = num[k]; for (j=0;j<jmax;j++) buffer[i++] = sysex[j]; printf("system exclusive found: %d bytes.\n",jmax+1); count++; } else { printf("warning: incomplete system exclusive found -- ignored.\n"); } } } while (c != EOF); /* End of track */ buffer[i++] = 0; buffer[i++] = 0xff; buffer[i++] = 0x2f; buffer[i++] = 0x00; j = 21; imax = i; i = i - 22; for (;i;j--) { buffer[j] = i; i = i >> 8; } fwrite(buffer,1,imax,out); if (count) { printf("%d system exclusives found and successfully converted.\n", count); } else { printf("warning: no complete system exclusives found.\n"); } fclose(in); fclose(out); }

chui perplex :mdr:

pour dumper lesysex apparement , je comprend pa ou on l utilise ce prog//::!!
3
Non non, c'est pas ça du tout, mais laisse tomber, mon patchename se trouve ici...
Merci quand m^m ;)

Pour la pédagogie virtuelle, contre l'assistanat numérique... ;-)

-Espace-Cubase.org