Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - Mario

Pagine: [1] 2 3 ... 10
1
OpenBar / [Romanzo] Dove la notte inizia
« il: 31 Maggio 2010, 15:01:39 »
Ciao a tutti,

visto che sono stato sollecitato a scrivere qualcosa per non essere "scancellato" dal forum, ne approfitto per fare due cose.
La prima è di scusarmi, ma sinceramente sto passando un periodo di intensissimo lavoro, per fortuna, per cui ho lasciato un po' il nostro amico gamberetto. Ma è solo temporaneo :)

Il secondo è che tra i vari impegni (oltre a lavoro e musica) adesso sono diventato anche scrittore :)
La "Spoon River" ha pubblicato nella serie "Dark Side" un mio romanzo, dal titolo "Dove la notte inizia", che sta ottenendo un discreto successo.
Ovviamente essendo un'opera prima di un autore invisibile, devo fare pubblicità, per cui mi scuso se vado contro qualche regola del forum pubblicizzando un prodotto da acquistare (ma costa poco!:D).
Insomma, se non sapete cosa leggere nelle vacanze, potete pensare di leggere il mio lavoro, così dopo avrete la irripetibile occasione di elogiare (o insultare) l'Autore in persona! :D

2
Progetti degli utenti / Re: GAMBAS e MIDI. E' proprio un mistero ?
« il: 24 Maggio 2010, 09:21:18 »
Ciao Paolo,
scusa se ti rispondo qui sul forum, ma ho problemi con la mia posta elettronica (la storia del ciabattino con le scarpe rotte, hai presente?  ;D)

Da quello che ho capito sul tuo messaggio
Citazione
Event Queues-
-Creation of a queue-
Creating a queue is done usually by calling snd_seq_alloc_queue. You can create a queue with a certain name by snd_seq_alloc_named_queue(), too.

// create a queue and return its id
int my_queue(snd_seq_t *handle)
{
        return snd_seq_alloc_named_queue(handle, "my queue");
}

These functions are the wrapper to the function snd_seq_create_queue(). For releasing the allocated queue, call snd_seq_free_queue() with the obtained queue id.

Once when a queue is created, the two queues are associated to that queue record in fact: one is the realtime queue and another is the tick queue. These two queues are bound together to work synchronously. Hence, when you schedule an event, you have to choose which queue type is used as described in the section Time stamp.

Setting queue tempo
The tempo (or the speed) of the scheduling queue is variable. In the case of tick queue, the tempo is controlled in the manner of MIDI. There are two parameters to define the actual tempo, PPQ (pulse per quarter note) and MIDI tempo. The former defines the base resolution of the ticks, while the latter defines the beat tempo in microseconds. As default, 96 PPQ and 120 BPM are used, respectively. That is, the tempo is set to 500000 (= 60 * 1000000 / 120). Note that PPQ cannot be changed while the queue is running. It must be set before the queue is started.

On the other hand, in the case of realtime queue, the time resolution is fixed to nanoseconds. There is, however, a parameter to change the speed of this queue, called skew. You can make the queue faster or slower by setting the skew value bigger or smaller. In the API, the skew is defined by two values, the skew base and the skew value. The actual skew is the fraction of them, value/base. As default, the skew base is set to 16bit (0x10000) and the skew value is the identical, so that the queue is processed as well as in the real world.

When the tempo of realtime queue is changed, the tempo of the associated tick queue is changed together, too. That's the reason why two queues are created always. This feature can be used to synchronize the event queue with the external synchronization source like SMPTE. In such a case, the realtime queue is skewed to match with the external source, so that both the realtime timestamp and the MIDI timestamp are synchronized.

For setting these tempo parameters, use snd_seq_queue_tempo_t record. For example, to set the tempo of the queue q to 48 PPQ, 60 BPM,
i dati all'apparato MIDI vengono inviati creando una specie di collegamento, quindi si crea la sequenza di dati che si desidera inviare al device, poi si crea questo collegamento, e le funzioni API pensano a inviare i  dati nel momento giusto...  ma forse ho capito male io :)
Come ti dicevo ho lasciato perdere la questione da un po' di tempo (ringraziando il cielo il lavoro è tornato a riempirmi le giornate :D)

Ma se trovo qualcosa in giro, intervengo subito! :D

3
Programmazione (Gambas 2) / Re: Sono sulla strada giusta?
« il: 16 Gennaio 2009, 11:11:28 »
Ciao Golia

Su synaptics c'è sicuramente, probabilmente non hai attivato i repository giusti: controllali e prova a cercare di nuovo :)

4
Programmazione (Gambas 2) / Re: Ancora su Midi e Musica
« il: 14 Gennaio 2009, 11:52:44 »
Diciamo che comandare la propria scheda o inviare messaggi a un apparato in grado di riconoscere il protocollo midi èè abbastanza simile, cambia solo l'obiettivo dei segnali.

Quello che mi piacerebbe provare a fare è un "esecutore" di file midi.
Lo so che ce ne sono miliardi, alcuni anche piuttosto validi, però a me piacerebbe provare a implementarne uno per i cavoli miei.

Ho trovato diversi link che spiegano il protocollo midi, ma non ho ancora capito se nel messaggio di invio del dato c'è un temporizzatore che dice quando suonare, del tipo "quando arrivi al timestamp X suona questa nota su questo strumento con questa forza" e il marchingegno che riceve il segnale esegue quella nota in quel momento, oppure se è l'esecutore midi, ossia i lmio programma, a mandare il segnale quando "scatta" il timestamp X.

Vabbe', mi rendo conto che la risposta a questa domanda è piuttosto complessa :)
Provo ad approfondire poi magari vi metto qui il risultato delle mie indagini: magari interessa anche ad altri

Ciau

5
Programmazione (Gambas 2) / Ancora su Midi e Musica
« il: 14 Gennaio 2009, 08:05:45 »
Ciao a tutti e buon anno, visto che non vi ho ancora fatto gli auguri! :-)

Tempo fa avevo cominciato a interessarmi di Midi, e avevo trovato diverse risposte in giro per la rete.
Ora però vorrei approfondire una cosa per la quale non so veramente da dove cominciare.
Mi piacerebbe realizzare un programma che esegua i file midi: come sapete nella gestione attiva di un file Midi è molto importante la tempistica del brano. Posso avere un pezzo che "va" a 120 battute al minuto, a 80, a 150 eccetera. Questo vuole dire, nel caso del 120 bpm, che ogni 0,5 secondi c'è un quarto di misura, che ogni 0,25 c'è un ottavo, eccetera.
Mi chiedo come è possibile, all'interno di un programma, stabilire "quando" inviare il segnale midi della nota da suonare ai vari strumenti. E in che modo sincronizzare gli invii in modo che siano "coerenti" con il brano.

So che esiste l'oggetto timer, ma non so se è possibile usarlo per una cosa del genere.

Insomma, sono un po' confuso: come posso impostare un programma del genere?
O, almeno, come lo impostereste voi? :)

6
OpenBar / Re: ASUS EEE..chi lo possiede?
« il: 09 Novembre 2008, 19:53:58 »
Be' io mi sono fatto il regalo: fra una settimana mi arriva un bel EEE 1000H, la versione con 160Gb di disco e ho già preso l'upgrade a 2Gb di ram :)
HO già scaricato l'immagine di EeeUbuntu, che affiancherò a XP, che mi serve per lavoro.
Lavorando su AS/400, quindi con interfaccia a caratteri, spero proprio di non avere problemi di visibilità.
Adesso uso un Pc on video da 17" che fa più di tre Kg e spero che passare a circa 1Kg faccia la differenza (per la mia schiena...) :)

7
OpenBar / Re: Conquistare il mondo
« il: 27 Ottobre 2008, 09:08:18 »
Uhm, secondo me la proprietà "capelli" per l'oggetto "donna" dovrebbe essere un array, così se vogliamo aggiungere altri elementi siamo più liberi, no?
E per quanto riguarda la proprietà "width" del ... ehm... p**e, sarebbe meglio specificare l'unità di misura, perché 30 POLLICI sarebbe un tantinello esagerato (hai presente quanti svenimenti in certe situazioni? :-D )

Ah, dimenticavo: una volta che hai conquistato il mondo, che te ne fai? :-)

8
Programmazione (Gambas 2) / Re: Utilizzo diretto di SQL
« il: 20 Ottobre 2008, 09:48:24 »
Che poi, volendo essere pignoli, con le macchine intel 32bit che ci sono in giro adesso (dual core, quad core, si parla anche di otto core, ma non so come li chiameranno: otta core? :-D ), e ram da 4 Gb, penso che nessuno possa dire che una workstation sia "lenta"... :-)

9
Programmazione (Gambas 2) / Re: Utilizzo diretto di SQL
« il: 18 Ottobre 2008, 17:35:50 »
Eccomi :)

Guardate per esempio questi due file che hanno lo stesso nome ma si trovano in directory diverse, la lib32 e la lib64

in lib64
Codice: [Seleziona]
file libasound.so.2.0.0 
libasound.so.2.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), stripped


in lib32
Codice: [Seleziona]
file libasound.so.2.0.0 
libasound.so.2.0.0: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), stripped


Il grosso problema è sui programmi che puntano a una libreria come quella e si aspettano di trovare il file per i 32bit, trovando invece l'altro...
Ovviamente si può bypassare il problema creando ambienti di esecuzione con la corretta lista di librerie, ma non sempre è facile e a volte non è proprio possibile.

10
Programmazione (Gambas 2) / Re: Utilizzo diretto di SQL
« il: 18 Ottobre 2008, 10:08:12 »
Be', sei fai un "file" sui file .so nelle rispettive cartelle a volte trovi oggetti a 64 bit, o comunque non riconosciuti dai programmi nati a 32 bit.
Quando ho un attimo ti posto il risultato :)
Sinceramente il perché non lo so, ma a volte mi capita di non avere "fortuna" con certi programmi e non riuscire a installarli sulla macchina di produzione (quella che uso adesso), mentre su altre che sono 386 va benissimo...

11
Programmazione (Gambas 2) / Re: Utilizzo diretto di SQL
« il: 17 Ottobre 2008, 21:39:47 »
Per adesso no, ma sto imparando alcuni prodotti nuovi dell'AS/400 e non ho molto tempo... :)
Però ho una macchina non AMD64 e quindi posso provare lì se funziona o meno.

12
Programmazione (Gambas 2) / Re: Utilizzo diretto di SQL
« il: 17 Ottobre 2008, 20:44:07 »
Eh eh eh, interessante, molto :)
I sistemi come l'AS/400 (iSeries) sono stati dati per morti un sacco di volte, e ogni volta hanno trovato una nuova vita, per cui ben vengano le Cassandre :)
E poi queste macchine hanno diversi vantaggi: hanno una marea di servizi integrati nel sistema operativo (tcp/ip, http, dns, ntp, sna, voip, eccetera) quindi senza costi aggiuntivi; hanno il DB2 che è integrato e quindi non va comprato a parte (tipo Access di M$); hanno il supporto nativo a SQL e tutto quello che ci gira intorno (tipo le Stored Procedure); e soprattutto sono molto diffusi e poco conosciuti, per cui chi, come me, "gli da del tu", ha lavoro assicurato per un bel po' di anni... :D

13
Programmazione (Gambas 2) / Re: Utilizzo diretto di SQL
« il: 17 Ottobre 2008, 14:53:11 »
Età? Ah, ma è facile: sono del 1963, QUINDI ho 39 anni... :D

(non perdere il tempo a fare il calcolo, ho controllato... ho fatto un programmino in Gambas...)

14
Programmazione (Gambas 2) / Re: Utilizzo diretto di SQL
« il: 17 Ottobre 2008, 10:39:59 »
Be' quando ho scoperto che ai dati iSeries (allora si parlava ancora di AS/400) si poteva accedere anche dal PC mediante questo misterioso ODBC, sono impazzito!
Considera che una 'ndicina di anni fa l'installazione su un PC di un emulatore 5250 richiedeva due ore buone, tre minidischi da 5 pollici (!!!) e una riserva di bestemmie formato famiglia allargata! :)
Quindi le possibilità che ci sono adesso sono meravigliose!

In effetti l'idea di sfruttare l'isql per fare le chiamate che interessano e poi intercettare il risultato non è poi così peregrina: in fondo o quello o niente e dalle nostre parti (Torino) si dice "Pì che tost a l'è mei pitost", come dire che meglio avere poco che NON avere il meglio ;)

15
Programmazione (Gambas 2) / Re: Utilizzo diretto di SQL
« il: 16 Ottobre 2008, 16:21:53 »
A PROPOSITO!

md9327, devo farti le mie congratulazioni per il prodotto che hai realizzato e che è stato inserito nel repository di UBuntu!
Ho visto solo qualche immagine ma mi sembra estremamente interessante...
chissà se un giorno potremo collegarlo, via ODBC, per poter gestire il DB2 dell'AS/400?! :D

Pagine: [1] 2 3 ... 10