begin process at 2012 02 14 16:14:15
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Multimédia

 > 

Audio

 > 

Dériation interruption µP


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Dériation interruption µP

samedi 17 mai 2008 à 08:22:19 | Dériation interruption µP

juju59

Salut à tous,

J'ai déjà posé la question, mais je n'ai pas eu de réponse ...

Je suis musicien de longue date, et de ce fait, j'écris beaucoup de dources qui tournent autour de ce sujet.
J'ai réussi, non sans mal, à déchiffrer les fichier mid's. Mais pour l'exécution, j'ai le timer rapide qui ne suit pas trop, surtout si plusieurs applications tournent. Voici une section du timer que j'utilise dans un UserControl :
'=======================================================================================
' Mise en service du timer
'---------------------------------------------------------------------------------------
Public Function Start_Timer() As Boolean
'---------------------------------------------------------------------------------------
Dim Resultat As Long
'---------------------------------------------------------------------------------------
   Actif = True: Start_Timer = True: Evenement = True
   Do
      If Evenement Then Evenement = False: RaiseEvent Timer
      FT.Long_High = -1: FT.Long_Low = -1
      Resultat = API_KL_Set_Waitable_Timer(Timer_Handle, FT, 0, 0, 0, False)
      Do
         If API_US_Msg_Wait_For_Multiple_Objects(1, Timer_Handle, False _
         , INFINITE, QS_ALLINPUT) = WAIT_OBJECT_0 Then Exit Do
         DoEvents
      Loop
      If m_Valeur > 0 Then
         m_Valeur = m_Valeur - 1
         If m_Valeur <= 0 Then Evenement = True
      End If
   Loop While Actif = True
End Function

Cela fonctionne, mais la priorité ce ce timer n'est pas très élevé, malgré son attribution 
'=======================================================================================
' Initialisation personnelle contrôle
'---------------------------------------------------------------------------------------
Private Sub UserControl_Initialize()
'---------------------------------------------------------------------------------------
'   API_KL_Set_Priority_Class API_KL_Get_Current_Process, HIGH_PRIORITY_CLASS
'   API_KL_Set_Thread_Priority API_KL_Get_Current_Thread, THREAD_BASE_PRIORITY_MAX
   Timer_Handle = API_KL_Create_Waitable_Timer(0, True, "UC_Timer_MIDI")
   Timer_Thread = API_KL_Get_Current_Thread
   API_KL_Set_Priority_Class Timer_Handle, HIGH_PRIORITY_CLASS
   API_KL_Set_Thread_Priority Timer_Thread, THREAD_BASE_PRIORITY_IDLE
End Sub

Ma question est simple : Existe-t-il un timer plus fiable que celui-ci.

Merci

juju59
samedi 17 mai 2008 à 08:27:58 | Re : Dériation interruption µP

juju59

Complément d'information :

Avec le Pascal, on pouvait dévié une interruption, et y attribué sa propre routine de traitement de cette dernière. Peut-on faire la même chose sous VB, ou avec un module écrit en assembleur ?

Merci
samedi 17 mai 2008 à 13:34:05 | Re : Dériation interruption µP

Afyn

Réponse acceptée !
Sous VB6 car on accède a un thread de la même instance. (ou alors voir RSTimer via DLL/OCX qui est un MMTimer)
Sinon un MMTimer sous VB.NET va bien je peux te poster un exemple si tu veux ?
Afyn
samedi 17 mai 2008 à 14:50:42 | Re : Dériation interruption µP

juju59

Je ne travaille pas en VB.net ... je n'ai pas encore installé le pack 2, et je ne crois pas l'installer avant longtemps.
Si ton exemple est accessible en API, c'est OK§

Merci
samedi 17 mai 2008 à 14:57:23 | Re : Dériation interruption µP

Afyn

Réponse acceptée !
Non ça fonctionne pas sous VB6.

Pour VB6 essaye le RSTimer

http://www.programmersheaven.com/download/17755/download.aspx

Resolution max 1 milliseconde

Afyn - Navedac
lundi 19 mai 2008 à 10:20:32 | Re : Dériation interruption µP

NHenry

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Bonjour

Sinon pourquoi ne pas utiliser MMControl ou DirectMusic pour lire le Midi ?

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Mon site
lundi 19 mai 2008 à 10:38:43 | Re : Déviation interruption µP

juju59

Salut,

Oui, ce serait plus simple, mais je travaille au niveau des évènements midi proprement dit, c'est à dire que le midi est en pièces détachées, sous forme de partition.
Chaque note est déclenchée par appel d'une API, ainsi que son arrêt et son volume.

Merci de ton intérêt apporté

juju59


Cette discussion est classée dans : timer, api, thread, priority, kl


Répondre à ce message

Sujets en rapport avec ce message

Timer API vs Objet Timer [ par Stru ] Salut,Quelqu'un saurait-il me dire ce qui est le mieux entre un Timer par les fonctions API de Windows et l'objet Timer de VB ?C'est pour la dectectio pbm avec API Create thread (NT) [ par venomp ] Bonjour à tous..J'ai récupere le source N°5856 de sephiro. Ca fonctionne très bien, même sur NT. Par contre, je n'arrive pas à l'adapter pour un des m définition d'1 thread et rapport avec Timer [ par yan35 ] Bonjour,Je ne suis pas sur d'avoir bien compris la définition d'1 thread ! Quelqu'1 peut-il m'expliquer simplement.Il me semble qu'il s'agit d'1 séque Thread et timer conjugués dans des MDIChild [ par xpmich ] Bonjour,J'utilise une application avec des MDI. Une de mes MDI active un Thread qui se vide à la fin de son éxécution (son éxécution à une durée indét Thread timer vb.net [ par elofab ] Bonjour à tous, je dois créer une application console qui tournera en boucle.J'utilise vb.netJ'ai donc créé dans mon application une classe Minuteur d thread te timer vb6 [ par ayarikhaoula ] salut tou le monde je réalise une réveille en vb6.parfois sa fonctionne trés bien et parfois non.pour se fere j'utilise un timer .es j peu le remplace thread et timer ne demare pas [ par foufate ] Public Class Form1 Dim thread1 As System.Threading.Thread Bonjour j'ai un probleme avec les thread je veu demaré le timer par un thread mais le Problème timer sous VB [ par InfoGeo ] Salut je dois réaliser un programme dans le cadre d'un stage et je suis amené à faire un timer, en fait toutes les 5min je lance mon programme pour vé Problème avec un timer et un for dans vb6 [ par Akira69 ] Bonjour, J'ai fait un petit prog. pour envoyer des trams de 8 bits en rentrant les valeurs dans une textbox et en pouvant choisir un timer en millise dimension d'une fenètre [ par eckostreet ] allo a tous Je cherche une façon d'avoir la dimension d'une fenètre... comme information j'utilise l'api FindWindow pour identifié la fènetre. Une so


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,529 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales