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

Soyez le premier à donner votre avis sur cette source.

Vue 3 135 fois - Téléchargée 2 895 fois

Description

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
timeSetEvent , timeKillEvent

- Instanciation dynamique de classe

MISE EN OEUVRE : VisualBasic Express2010 / Framework .NET 4.0
- 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
timeSetEvent , timeKillEvent

- Dynamic class loading

OPERATING MODE : VisualBasic Express2010 / Framework .NET 4.0
- 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.3 changes : improve real-time behaviour
========================================================================
BUGFIX#7 Only one pattern could be defined

CHANGE#5 Use the system beeper rather than the sound card to play metronome ticks
( On notebooks , the sound card may use 200ms to react ! )

CHANGE#6 Use a high precision timer from winmm.dll rather than the built-in timers provided by .NET Framework
( I had not realized than the timers from .NET Framework were so unprecise !)

CHANGE#7 We can now tune some real-time parameters ( delay between Midiout events , period of main loop )

========================================================================
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

Messages postés
608
Date d'inscription
samedi 3 août 2002
Statut
Membre
Dernière intervention
22 décembre 2016

Bonjour.
Je n'ai pas réussi à charger un Midifile.
Le deboggage s'arrête ici : events.Add(New MidiEvent(ev.data, ev.time - start))
Une idée ?
Messages postés
10
Date d'inscription
samedi 2 mai 2009
Statut
Membre
Dernière intervention
3 août 2014
>
Messages postés
608
Date d'inscription
samedi 3 août 2002
Statut
Membre
Dernière intervention
22 décembre 2016

Bonjour
desole pour la reponse tardive: ca fait longtemps que je n'avais pas regarde les commentaires ...
On fait , je sauvegarde sous le format Midifile, mais avec pleins d'extensions ( necessaires aux fonctions de Midiman )
Donc Midiman ne peut pas lire un Midifile quelconque : seulement un fichier sauvegarde par lui meme !
cordialement

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.