Commentçamarche.net
CodeS-SourceS
Rechercher un code, un tuto, une réponse

MidiMan1.2 Midi Piano,16tracks Sequencer,Patch manager (vb.net)

5/5 (1 avis)

Vue 1 264 fois - Téléchargée 492 fois

Description

Nouvelle version disponible : voir MidiMan1.3
New version available ! see MidiMan1.3


MidiMan est un outil pour piloter votre synthétiseur . Il se compose de 4 parties :
- Un clavier
- Un Séquenceur 16 pistes , avec la possibilité de jouer des patterns
- Un gestionnaire de patchs, pour classer vos patch par catégories, recevoir/envoyer des banques de sons depuis le synthétiseur, éditer les banques, et extraire les patchs depuis des banques de sons trouvées sur Internet
- Un outil pour imprimer la partition

MidiMan c'est aussi des exemples de programmation VB.NET
- Midi management :
MidiInCallback, midiInOpen, midiInStart , midiInPrepareHeader, midiInAddBuffer
midiOutOpen, midiOutClose, midiOutShortMsg

- Différents cas de Marshalling et d'interaction avec l'API Win32
Structure avec tableau de char
Structure avec pointeur vers un bloc mémoire, GlobalAlloc , GlobalFree

- Instanciation dynamique de classe

MISE EN OEUVRE
- ATTENTION : non compatible avec la fonction "DeepScreen" de Avast antivirus ( il crashe MidiMan sans prévenir )
il faut soit inhiber DeepScreen ( parametres=>antivirus=>DeepScreen ) , soit mettre une exception pour MidiMan
- télécharger le projet
- exécuter bin\Release\MidiMan.exe

-----------------------------------------

MidiMan is a tool to make fun with your synthetizer . It is made of 4 parts :
- a Keyboard
- a Patch librarian, which allows to organize your patches into categories, get/send banks from/to the synthetizer, edit banks, and extracts patches from various bank formats found on Internet
- a 16 tracks Sequencer , with the ability to play patterns
- a tool to print your music score

MidiMan is also a nice example for VB.NET programmers
- Midi management :
MidiInCallback, midiInOpen, midiInStart , midiInPrepareHeader, midiInAddBuffer
midiOutOpen, midiOutClose, midiOutShortMsg

- Different cases of Marshalling and interactions with the Win32 API
Structure with array of chars
Structure with pointer to memory , GlobalAlloc , GlobalFree

- Dynamic class loading

OPERATING MODE
- CAUTION : non compatible with "DeepScreen" feature of Avast antivirus : it crashes MidiMan without information
you must either inhibate DeepScreen (parameters=>antivirus=>DeepScreen) , or add an exception for MidiMan
- download the project
- launch bin\Release\MidiMan.exe

========================================================================
VERSION 1.2 changes
========================================================================
BUGFIX#5 Fix a non-blocking random exception at startup in AllNotesOff()
BUGFIX#6 Tell it is not compatible with "DeepScreen" feature of Avast antivirus

========================================================================
VERSION 1.1 changes
========================================================================
BUGFIX#1 Playing a note when a Pattern is being played , pertubates the pattern
BUGFIX#2 Using the "Synchronize" checkbox causes overflow
BUGFIX#3 On some synthetizers, the time of midi events is inaccurate
BUGFIX#4 Add empty files in BIN sub-directories, otherwise empty directories are ignored when the stuff is published

CHANGE#1 The RECORD button is now placed in each track
( sometimes, I clicked inadvertently RECORD , without selecting the right track )

CHANGE#2 The feature "Echo 1=>2" is now limited to NotesOn/Off events
( otherwise, if I change the patch on the fisrt synthe, the other changes too !)

CHANGE#3 On each track, a button "Cut" allows to suppress notes higher than a specified note
( it's diffult for me to play a bass section , if I have not the melody . So I play them both, and then remove the melody)

CHANGE#4 Notes being played are memorized, so that Clicking Stop will send a NoteOff event for all pending notes
( AllNotesOff midi command does not work on DX7 )

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Votre évaluation

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.