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

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