Gambas-it

Gambas3 => Programmazione => Topic aperto da: genex2000 - 22 Agosto 2017, 14:48:57

Titolo: Gambas3 e MIDI Sysex con Fluidsynth
Inserito da: genex2000 - 22 Agosto 2017, 14:48:57
Salve a tutti,
sto lavorando con libfluidsynth e Gambas e la cosa funziona piuttosto bene, avrei solo un problema :
qualcuno conosce i messaggi MIDI Sysex per il volume/mute/unmute di un canale e il sysex per il traspose ?
Nella documentazione di libfluidsynth c'è la chiamata alla funzione per l'invio dei sysex, ma non è molto chiaro quali sono gestiti e come inviarli.
Qualcuno che ha già utilizzato libfluidsynt  + gambas3 + sysex può darmi una dritta ?
Grazie a tutti
Genex
Titolo: Re:Gambas3 e MIDI Sysex con Fluidsynth
Inserito da: vuott - 22 Agosto 2017, 15:55:02
Innanzitutto vorrei porgerti i miei complimenti e felicitazioni per l'argomento da te affrontato: sei una mosca bianca.


Nella documentazione di libfluidsynth c'è la chiamata alla funzione per l'invio dei sysex
Suppongo tu stia facendo riferimento alla funzione " fluid_synth_sysex( ) ".


qualcuno conosce i messaggi MIDI Sysex per il volume/mute/unmute di un canale e il sysex per il traspose ?
in giro ho trovato questo per la gestione via syssex del Volume nei dispositivi Midi multitimbrici:
http://midi.teragonaudio.com/tech/midispec/mastrvol.htm



Nella documentazione di libfluidsynth c'è la chiamata alla funzione per l'invio dei sysex, ma non è molto chiaro quali sono gestiti e come inviarli.
Qualcuno che ha già utilizzato libfluidsynt  + gambas3 + sysex può darmi una dritta ?
Io ho avuto un pochino a che fare con la libreria libfluidsynth, ma sinceramente non unitamente  ai messaggi sysex.
Dovresti cercare in rete qualche esempio scritto in un altro linguaggio, per esempio in C. Poi si potrebbe ovviamente adattare a Gambas.

Ad ogni modo - da un primo sguardo - facendo riferimento alla descrizione della funzione specifica per i sysex, qui descritta:
http://fluidsynth.sourceforge.net/api/synth_8h.html#a28f34d0493b102ac4b99c021257b5b5e

mi sembrano particolarmente rilevanti ai tuoi fini il secondo ed il terzo parametro.
Il secondo parametro è un Puntatore ad un'area riservata di memoria, nella quale tu hai scritto tutti i valori nel messaggio sysex, esclusi il primo F0 e quello di fine F7.
Il terzo parametro più semplicemente indica con un Intero la quantità di dati sysex passati mediante il 2° parametro.
Titolo: Re:Gambas3 e MIDI Sysex con Fluidsynth
Inserito da: genex2000 - 22 Agosto 2017, 22:59:54
Beh, Senatore...la "mosca bianca" lo considero come un complimento....LOL e comunque mi ha sempre intrigato la gestione MIDI.
Ti ringrazio per il link fornitomi e (rete permettendo visto che sono in vacanza al mare)  a titolo informativo, la prima parte (ovvero la gestione del volume/mute/unmute) l'ho risolta con il CC 07 ovvero
:
Private Extern fluid_synth_cc(synth As Pointer, chan As Integer, ctrl As Integer, ival As Integer) As Integer

dove :synth è l'handler
ctr = &H07
chan è il canale-1
e iVal il valore da impostare

l'unica cosa che potrebbe accadere è che da flusso MIDI si ha una modifica del parametro Volume per quel determinato canale, quindi il CC diviene di fatto "inutile".

Per il sysex relativo al traspose, sono un po imballato....cmq mi vedo tutti link che mi hai postato....e farò sapere.

Poi se interessa a qualcuno, appena pronto , stavo lavorando ad un midi player con Gambas..
Nel frattempo Ti ringrazio e ringrazio anche chi solo semplicemente ha letto il mio post.
Genex
Titolo: Re:Gambas3 e MIDI Sysex con Fluidsynth
Inserito da: vuott - 22 Agosto 2017, 23:58:55
...la "mosca bianca" lo considero come un complimento....
Ovviamente.



mi ha sempre intrigato la gestione MIDI.
E' San Midi (https://it.wikipedia.org/wiki/Musical_Instrument_Digital_Interface) che ti manda !   
Sempre sia benedetto il Suo nome !
 sanmidi



stavo lavorando ad un midi player con Gambas.
Se vorrai, potrai inserire il suo codice sorgente nella Sezione "Progetti degli Utenti" qui del forum.
Io ne ho fatto uno tempo fa con le funzioni esterne di ALSA. Non so se hai avuto modo di vederlo.


Hai, inoltre, visto le pagine dedicate al rapporto Gambas e Midi della nostra wiki ?
http://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0#Gestione_dei_dati_MIDI_e_dei_file_.mid



l'unica cosa che potrebbe accadere è che da flusso MIDI si ha una modifica del parametro Volume per quel determinato canale, quindi il CC diviene di fatto "inutile".
Ma... invece tu vorresti silenziare tutti i canali e non solo uno ?
Titolo: Re:Gambas3 e MIDI Sysex con Fluidsynth
Inserito da: genex2000 - 23 Agosto 2017, 13:58:33
 ;D grande vuott...
Citazione
.SAN MIDI ? LOL
Cmq, per il mute/unmute di una singola traccia come ti dicevo, ho risolto in parte e per adesso va bene così.

Citazione

E' San Midi (https://it.wikipedia.org/wiki/Musical_Instrument_Digital_Interface) che ti manda !   
Sempre sia benedetto il Suo nome !
 sanmidi

LOL....


Citazione
Se vorrai, potrai inserire il suo codice sorgente nella Sezione "Progetti degli Utenti" qui del forum.
Io ne ho fatto uno tempo fa con le funzioni esterne di ALSA. Non so se hai avuto modo di vederlo.
Hai, inoltre, visto le pagine dedicate al rapporto Gambas e Midi della nostra wiki ?
http://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0#Gestione_dei_dati_MIDI_e_dei_file_.mid (http://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0#Gestione_dei_dati_MIDI_e_dei_file_.mid)

Sicuramente lo scarico e me lo guardo appena posso.

Citazione
Ma... invece tu vorresti silenziare tutti i canali e non solo uno ?
 

No, solo uno o + canali.
Cmq dove sono un po bloccato è sui sysex, non mi è chiara la sintassi e cosa passare.
Se devo inserire nel pacchetto del sysex anche la funzione realtime &H7F e quale parametro passare


Citazione
[size=0px]mi sembrano particolarmente rilevanti ai tuoi fini il secondo ed il terzo parametro.[/size][size=0px]Il secondo parametro è un Puntatore ad un'area riservata di memoria, nella quale tu hai scritto tutti i valori nel messaggio sysex, esclusi il primo F0 e quello di fine F7.Il terzo parametro più semplicemente indica con un Intero la quantità di dati sysex passati mediante il 2° parametro.
[/size]
Citazione

il terzo parametro dovrebbe essere un puntatore all'array di integer


Cmq per gli sviluppi, Ti (vi) tengo aggiornati

 :ok:
Titolo: Re:Gambas3 e MIDI Sysex con Fluidsynth
Inserito da: vuott - 23 Agosto 2017, 15:36:12
Sicuramente lo scarico e me lo guardo appena posso.
Lo potrai scaricare da qua:
http://www.gambas-it.org/smf/index.php?board=12.0

In particolare:
Sequencer Midi + Console Midi
e vedi anche:
Gambas Midi Controller



sui sysex, non mi è chiara la sintassi e cosa passare.
Se devo inserire nel pacchetto del sysex anche la funzione realtime &H7F e quale parametro passare
Dovrai fare qualche ricerca in rete. Io pure ne so poco di sysex.  :-[
Magari, però, se trovo qualcosa, ti avviso.



il terzo parametro dovrebbe essere un puntatore all'array di integer[/font]
Il terzo parametro nella funzione è dichiarato come
 int len
...perché dici array di integer ?    ???
Titolo: Re:Gambas3 e MIDI Sysex con Fluidsynth
Inserito da: kicco - 23 Agosto 2017, 16:01:15
 :ciao:
Fantastico Vuott, hai trovato un nuovo compagno di giochi!!  :P :P :P
Ora all'altare di San Midi vedo molte candeline accese e tanti fiori!!
Prepariamo insieme la Sagra di San Midi? Che dite?

@genex2000
se già tu non lo avessi scoperto, Vuott è l'autore di molta (quasi tutta credo) la documentazione della Wiki su "Midi & Company" e non solo....
e il nostro intercessore (se così si dice) presso San Midi! :D

 :ciao: :ciao:
Titolo: Re:Gambas3 e MIDI Sysex con Fluidsynth
Inserito da: Gianluigi - 23 Agosto 2017, 16:43:41
:ciao:
Fantastico Vuott, hai trovato un nuovo compagno di giochi!!  :P :P :P
Ora all'altare di San Midi vedo molte candeline accese e tanti fiori!!
Prepariamo insieme la Sagra di San Midi? Che dite?

@genex2000
se già tu non lo avessi scoperto, Vuott è l'autore di molta (quasi tutta credo) la documentazione della Wiki su "Midi & Company" e non solo....
e il nostro intercessore (se così si dice) presso San Midi! :D

 :ciao: :ciao:

+1  :D
Titolo: Re:Gambas3 e MIDI Sysex con Fluidsynth
Inserito da: vuott - 23 Agosto 2017, 17:24:26
Fantastico Vuott, hai trovato un nuovo compagno di giochi!!  :P :P :P

+1  :D

 :violent: :violent:

 >:( Una botta in testa a tutte due voi !
Titolo: Re:Gambas3 e MIDI Sysex con Fluidsynth
Inserito da: kicco - 23 Agosto 2017, 18:07:31
Fantastico Vuott, hai trovato un nuovo compagno di giochi!!  :P :P :P

+1  :D

 :violent: :violent:


 >:( Una botta in testa a tutte due voi !

Sig. Moderatore Globale, chiedo il suo intervento immediato. Una botta in testa è un conto ma ben due (smiley)!
Qui i neuroni son già pochi se poi vengono maltrattati! Dove andremo a finire!  :P
Titolo: Re:Gambas3 e MIDI Sysex con Fluidsynth
Inserito da: Gianluigi - 23 Agosto 2017, 18:27:41
Fantastico Vuott, hai trovato un nuovo compagno di giochi!!  :P :P :P

+1  :D

 :violent: :violent:


 >:( Una botta in testa a tutte due voi !

Sig. Moderatore Globale, chiedo il suo intervento immediato. Una botta in testa è un conto ma ben due (smiley)!
Qui i neuroni son già pochi se poi vengono maltrattati! Dove andremo a finire!  :P
Caro Sig. Kicco,
cosa vuole che le dica, ho un tale mal di testa che mi è proprio impossibile prendere provvedimenti.
Ma appena mi passa... >:( :evil:
Titolo: Re:Gambas3 e MIDI Sysex con Fluidsynth
Inserito da: vuott - 23 Agosto 2017, 19:11:20
Cmq dove sono un po bloccato è sui sysex, non mi è chiara la sintassi e cosa passare.
Se devo inserire nel pacchetto del sysex anche la funzione realtime &H7F e quale parametro passare
Torno su questa tua perplessità.

Innanzitutto la domanda è:
tu sai - al di là dei dati che dovrai passare - come passare i dati (il "pacchetto" sysex) attraverso quel 2° parametro ?
Voglio dire: "quale" risorsa di Gambas utilizzare e soprattutto "come" ?


Riguardo al "pacchetto" un esempio è nella pagina che ti ho segnalato:
http://midi.teragonaudio.com/tech/midispec/mastrvol.htm
alla quale aggiungerei quest'altra anche:
https://www.midi.org/specifications/item/table-4-universal-system-exclusive-messages

Delle 7 parti, costituenti il Messaggio sysex, la 4° e la 5° individuano il messaggio di Master Volume. La 6° parte, composta a sua volta da due byte, definisce i valori specifici del Master Volume.
In particolare, di questi due byte (16 bit) possono essere utilizzati, ai fini della definizione del valore del Master Volume, soltanto 14 bit. Pertanto l'ambitus dei valori assegnabili al messaggio sysex di Master Volume va da un minimo di zero (0x0000) ad un massimo di 16383 (0x3FFF).

Ricorda che la guida alla funzione " fluid_synth_sysex( ) " dice che " (not including 0xF0 and 0xF7) " ...devi omettere nel "pacchetto" il byte di inizio e quello di fine del messaggio di sysex.


Ho trovato queste pagine:
https://stackoverflow.com/questions/26394515/how-to-create-midi-sysex-master-volume-message-from-volume-level
https://www.midi.org/forum/668-change-midi-keyboard-master-volume-programmatically
http://www.recordingblogs.com/sa/Wiki/topic/MIDI-Master-Volume-message
https://www.karma-lab.com/forum/showthread.php?t=15608
http://www.casiomusicforums.com/index.php?/topic/6156-has-anyone-got-master-volume-controlled-by-midi/
http://www.bandtrax.com.au/sysex.htm
https://github.com/ahlstromcj/midicvt/blob/master/contrib/sysex-format.txt
http://forums.rolandclan.com/viewtopic.php?f=54&t=47933#p274653
Titolo: Re:Gambas3 e MIDI Sysex con Fluidsynth
Inserito da: genex2000 - 24 Agosto 2017, 15:35:47
Citazione
Torno su questa tua perplessità.

Innanzitutto la domanda è:
tu sai - al di là dei dati che dovrai passare - come passare i dati (il "pacchetto" sysex) attraverso quel 2° parametro ?
Voglio dire: "quale" risorsa di Gambas utilizzare e soprattutto "come" ?

Si, la chiamata è questa:
Private Extern fluid_synth_sysex(synth As Pointer, data As Pointer, len As Integer, response As Pointer, response_len As Pointer, handled As Pointer, dryrun As Integer) As Integer

response e response_len non sono significativi al momento
mentre data è il puntatore ad un array di integer e len è la lunghezza del  pacchetto sysex.
Per handled e dryrun non mi è tanto chiaro quali valori passare.
Poi, per il sysex secondo te come primo byte devo mettere o no &H7F come realtime sysex ? Boh
 Per il volume ho risolto, c'è il Midi CC &H07

Citazione
Riguardo al "pacchetto" un esempio è nella pagina che ti ho segnalato:
http://midi.teragonaudio.com/tech/midispec/mastrvol.htm
alla quale aggiungerei quest'altra anche:
https://www.midi.org/specifications/item/table-4-universal-system-exclusive-messages

Delle 7 parti, costituenti il Messaggio sysex, la 4° e la 5° individuano il messaggio di Master Volume. La 6° parte, composta a sua volta da due byte, definisce i valori specifici del Master Volume.
In particolare, di questi due byte (16 bit) possono essere utilizzati, ai fini della definizione del valore del Master Volume, soltanto 14 bit. Pertanto l'ambitus dei valori assegnabili al messaggio sysex di Master Volume va da un minimo di zero (0x0000) ad un massimo di 16383 (0x3FFF).

Ricorda che la guida alla funzione " fluid_synth_sysex( ) " dice che " (not including 0xF0 and 0xF7) " ...devi omettere nel "pacchetto" il byte di inizio e quello di fine del messaggio di sysex.
Ovviamente. Ma è la struttura del pacchetto che non mi è ancora chiara.....

Citazione
Ho trovato queste pagine:
https://stackoverflow.com/questions/26394515/how-to-create-midi-sysex-master-volume-message-from-volume-level
https://www.midi.org/forum/668-change-midi-keyboard-master-volume-programmatically
http://www.recordingblogs.com/sa/Wiki/topic/MIDI-Master-Volume-message
https://www.karma-lab.com/forum/showthread.php?t=15608
http://www.casiomusicforums.com/index.php?/topic/6156-has-anyone-got-master-volume-controlled-by-midi/
http://www.bandtrax.com.au/sysex.htm
https://github.com/ahlstromcj/midicvt/blob/master/contrib/sysex-format.txt
http://forums.rolandclan.com/viewtopic.php?f=54&t=47933#p274653
...per tutti questi links devo chiedere il divorzio a mia moglie visto che sono ancora in vacanza....LOL ... cmq con calma me li guardo tutti

Titolo: Re:Gambas3 e MIDI Sysex con Fluidsynth
Inserito da: vuott - 24 Agosto 2017, 16:43:26
Per handled e dryrun non mi è tanto chiaro quali valori passare.
...io, almeno inizialmente, passerei il valore di default previsto da Gambas per il tipo di dato Puntatore, ossia 0 (zero).

Vedi al riguardo:
http://gambaswiki.org/wiki/lang/type



Poi, per il sysex secondo te come primo byte devo mettere o no &H7F come realtime sysex ? Boh
Poiché la guida di Libfluidsynth ci dice che i byte di inizio e di fine di un Messaggio sysex non vanno inseriti, credo che il primo valore sia appunto quello da te indicato: il real-time.

Hai già in mente "come" scrivere quei valori nell'area puntata da "data As Pointer" ?



Ma è la struttura del pacchetto che non mi è ancora chiara.....
Capisco. Ovviamente in parte dipende dal messaggio che vuoi inviare. (Da quel che mi dici il messaggio di Master Volume lo hai messo da parte, perché adotterai la soluzione del Control Change).
Qualcosa sta in alcune pagine, di cui ti ho sopra riportato i collegamenti..... la cui visita potrebbe determinare il tuo divorzio.   ;D

Titolo: Re:Gambas3 e MIDI Sysex con Fluidsynth
Inserito da: vuott - 24 Agosto 2017, 16:48:56
Comunque in questi casi difficili io procedo sempre per prove e tentativi.   
Titolo: Re:Gambas3 e MIDI Sysex con Fluidsynth
Inserito da: genex2000 - 24 Agosto 2017, 18:14:00
E' quello che sto facendo....ci sto sbattendo la testa come al solito in tutto quello che faccio...io vengo dal mondo VB.NET (e ci sono ancora...)
Il bello è che come int di ritorno mi da FLUID_OK cioè come se il sysex se lo prendesse, ma anche con i più elementari (tipo MASTER VOLUME) non va.
Ma che forse (da quello che ho letton in giro) Fluidsynth da sysex accetta solo MIDI tuning sysex ?
O che sia una questione di Device ID errato (dovrebbe essere &H7D come non commercial device ID) ?

Cmq c'è anche un'altra strada da percorrere.....tutta da esplorare...dal wiki libfluidsynth

Citazione
Creating a Real-time MIDI Driver
FluidSynth can process real-time MIDI events received from hardware MIDI ports or other applications. To do so, the client must create a MIDI input driver. It is a very similar process to the creation of the audio driver: you initialize some properties in a settings instance and call the new_fluid_midi_driver() function providing a callback function that will be invoked when a MIDI event is received. ..
:-\

Farotti sapere...... :D


Titolo: Re:Gambas3 e MIDI Sysex con Fluidsynth
Inserito da: vuott - 24 Agosto 2017, 18:53:25
E' quello che sto facendo....ci sto sbattendo la testa come al solito
Prego per te:

" O San Midi benedetto,
   hai condotto qui questo fratello.
   E' tuo servo e del midi è già provetto.
   Allevia tu, dunque, ogni suo fardello !
"

    sanmidi




Ma che forse (da quello che ho letton in giro) Fluidsynth da sysex accetta solo MIDI tuning sysex ?
Sei almeno riuscito efficacemente, come test, ad inviare almeno questo messaggio ?

Ad ogni modo, sarei sorpreso sommamente se quel limite fosse vero !   :rolleyes:


Non mi hai detto ancora come (il codice) scrivi i dati nella porzione di memoria puntata dal Puntatore del 2°parametro della funzione fluid_synth_sysex ( ) .



Cmq c'è anche un'altra strada da percorrere.....tutta da esplorare...
...però cerca di definire in un modo o in un altro la questione, già avviata, dell'uso della funzione esterna fluid_synth_sysex ( ) .   
Titolo: Re:Gambas3 e MIDI Sysex con Fluidsynth
Inserito da: genex2000 - 24 Agosto 2017, 21:55:48
 :rotfl:  ....questa di San Midi Benedetto è forte....

Cmq, ecco il codice ( premetto....array di string o bytes non cambia nulla)

Private sysex As String[] = [&H7F, &H7F, &H04, &H01, 0, 0] 
' è un banalissimo Master Volume settato a 0 ( almeno dovrebbe)
preso da qui :
https://github.com/ahlstromcj/midicvt/blob/master/contrib/sysex-format.txt

...
e nella Sub relativa...
 Dim d As Integer
 d = fluid_synth_sysex(synth, VarPtr(sysex), sysex.Length, Null, 0, 0, 1)

d mi ritorna FLUID_OK  (0) ma non succede niente....

Mi sa che oltre a San Midi serve anche San Remo......LOL
Titolo: Re:Gambas3 e MIDI Sysex con Fluidsynth
Inserito da: vuott - 25 Agosto 2017, 01:37:05
premetto....array di string o bytes non cambia nulla
Il 2° parametro della funzione esterna (id est: ...esterna alle funzioni native di Gambas) " fluid_synth_sysex( ) (http://fluidsynth.sourceforge.net/api/synth_8h.html#a28f34d0493b102ac4b99c021257b5b5e) " del sistema libfluidsynth prevede il passaggio di un Puntatore a "char" costante. Poiché il tipo "char" occupa 1 byte (8bit), ne consegue che l'intera area di memoria riservata puntata dal Puntatore ha una dimensione di 1 * numero_di_byte_scritti, come si può evincere da questo test che riprende i dati del tuo esempio:
Codice: [Seleziona]
#include <stdio.h>
#include <string.h>
#include <stdlib.h>


int main() {

char src[] = {0x7f, 0x7f, 0x04, 0x01, 0x00, 0x0};
char *sysex =  malloc(6);
memcpy(sysex, src, 6);

printf("%ld\n", sizeof(*sysex));

        free(sysex);

      return (0);

}

In Gambas il tipo di dato "String" occupa 4 byte nei sistemi a 32 bit e 8 byte nei sistemi a 64 bit:
http://gambaswiki.org/wiki/lang/type
ciò perché il dato "String" in Gambas è in realtà un puntatore a una struttura più complessa che contiene, fra l'altro, la lunghezza della stringa.
Dunque l'area di memoria di un vettore di tipo "String" occupata per la memorizzazione di ciascuna stringa di valori/caratteri, intesa come "indirizzo di memoria ad una sub-area distinta ove sono contenuti i veri dati", corrisponde in ogni caso a una quantità di byte pari a:
 SizeOf(gb.String) * vettore.Count
Ciò avviene anche nel caso come il tuo, nel quale istanzi l'array attribuendo un valore numerico (in rappresentazione esadecimale) a ciascun elemento dell'array medesimo. Laddove presumibilmente (https://www.soul-source.co.uk/uploads-soul/emoticons/default_g.gif) Gambas converte ogni valore numerico automaticamente in stringa composta da simbolo/i numerico/i.

Cerco di spiegarmi tecnicamente con questo semplicissimo codice esemplificativo:
Codice: [Seleziona]
Public Sub Main()

  Dim sysex As String[] = [&H7F, &H7F, &H04, &H01, 0, 0]
  Dim i As Integer

   For i = 0 To 47
     If i Mod 8 == 0 Then Write "------------ elem. indice " & CStr(i \ 8) & Chr(&0A)
     Print i, Hex(Byte@(sysex.Data + i), 2)
   Next
   
   Print "=============="
   
   For i = 0 To 47
     Print i, String@(Pointer@(sysex.Data + i))
   Next

End

Se ciò che ho scritto sin'ora è giusto, tu passi un'area riservata i cui valori sono gli indirizzi di memoria dei singoli valori di tipo Stringa, contenuti nei sei elementi costituenti l'array, anziché passare un'area riservata contenente 6 byte rappresentanti i secchi valori del messaggio di sysex.
Pertanto, io credo tu debba cambiare il tipo di dato dell'array da String[ ] a Byte[ ], poiché la memoria occupata dal tipo di dato "Byte" in Gambas corrisponde alla quantità occupata dal tipo " char " in C, e che da codice è agevolmente costatabile con la seguente istruzione:
 SizeOf(gb.Byte)

Inoltre, per passare agevolmente l'indirizzo di memoria dell'area riservata di un array, ove sono memorizzati i dati, va utilizzata la proprietà " .Data " dell'array medesimo.



Al di là di queste mie riflessioni, va fatto notare ai lettori come il nostro amico genex2000 ha abilmente utilizzato un Oggetto vettore statico per memorizzare in un'area allocata i dati necessari.
I miei complimenti.
Sempre ai lettori ricordo che in alternativa genex2000 avrebbe potuto utilizzare ovviamente anche una variabile di tipo Puntatore da allocare opportunamente e nella quale, poi, scrivere mediante i "Memory Stream" i dati necessari.
Titolo: Re:Gambas3 e MIDI Sysex con Fluidsynth
Inserito da: genex2000 - 25 Agosto 2017, 17:44:56
...amico mio...perdiamo solo tempo......Fluidsynth processa solo Sysex di tipo MIDI Tuning Standard..... :'( :'(....
..dalla 1.1.0....
Citazione
SYSEX support (MIDI Tuning Standard only at the moment).

 >:(

Devo trovare un altra strada.....
Titolo: Re:Gambas3 e MIDI Sysex con Fluidsynth
Inserito da: vuott - 25 Agosto 2017, 18:46:27
...amico mio...perdiamo solo tempo......Fluidsynth processa solo Sysex di tipo MIDI Tuning Standard.....
:o
Incredibile !

Va be'... quel "at moment" ti fa sperare... per il futruro !    :)
Titolo: Re:Gambas3 e MIDI Sysex con Fluidsynth
Inserito da: vuott - 26 Agosto 2017, 17:39:04
.... cambiare il tipo di dato dell'array da String[ ] a Byte[ ], poiché la memoria occupata dal tipo di dato "Byte" in Gambas corrisponde alla quantità occupata dal tipo " char " in C, e che da codice è agevolmente costatabile con la seguente istruzione:
 SizeOf(gb.Byte)
Vorrei anche segnalare questo mio intervento:

http://www.gambas-it.org/smf/index.php?topic=5794.msg41802#msg41802