Finalement, stock d'articles/notes liés à la musique (pas seulement à la M.A.O):
Des articles à gogo, pour gérer le mastering et l'encodage, ça va loin…
Sous linux, utiliser Sonic Visualiser.
La solution pourrait être: QmidiNet + ipMIDI
QmidiNet is a MIDI network gateway application that sends and receives MIDI data (ALSA Sequencer and/or JACK MIDI) over the network, using UDP/IP multicast. Inspired by multimidicast (http://llg.cubic.org/tools) and designed to be compatible with ipMIDI for Windows (http://nerds.de).
RTP-Midi est utilisé entre Mac et quelques périphériques, et a un driver Windows. Pas trop pour linux. https://en.wikipedia.org/wiki/MIDI_usage_and_applications#MIDI_over_Ethernet
http://www.music.mcgill.ca/~gary/rtmidi/ ; RTMidi ne semble pas gérer le networking.
OSC semble davantage tourné “internet”. Reste à trouver un hôte pour OSC: https://en.wikipedia.org/wiki/Open_Sound_Control
Pourrait permettre de communiquer avec Arkaos GrandVJ.
Doc officielle puredata, pistes pour canaux midi virtuels sous Win/Lin/Mac : https://puredata.info/docs/faq/midiinput ; LoopMidi ça fonctionne bien.
Pour charger un LV2 il faut connaître son URI.
Pour lister toutes les URIs des lv2 du système :
apt-get install lilv-utils
lv2ls
Les hôtes lv2 :
http://drobilla.net/software/jalv/ : hôte pour jack. fonctionne bien, mais comment accéder aux paramètres ?
https://github.com/portalmod/mod-host : hôte pour jack, interactif depuis le shell.
http://home.gna.org/zynjacku/ : encore un hôte jack…
https://bitbucket.org/agraef/pd-lv2plugin : un hôte pour puredata
Click milieu de la souris sur le bouton de l'interface:
Apr 25 21:10:28 brighton [5135.632812] Controller Registration 8 Request: ? -> 0/18@0x2134700 0.000000 Apr 25 21:10:29 brighton [5136.183594] Controller Registration 8 Request: ? -> 0/19@0x2134880 1.000000 Apr 25 21:10:29 brighton [5136.795898] Controller Registration 8 Request: ? -> 0/20@0x2134a00 0.000000 Apr 25 21:10:33 brighton [5141.019043] Controller Registration 7 Cleared: ? -> 0/20@0x2134a00
cat memoryMoog # # This the the MIDI controller profile, it keeps controller remappings for # converting one controller ID to another, and then defines which controllers # are tracked by which GUI devices. It may be edited manually, in which case # changes are maintained but the GUI can also alter the controller tracking # by typing <Control><Middle Mouse Button>, the moving the desired control. # This file is saved whenever a GUI memory is saved. # # The file contains Controller Mapping (one controller to another, for example # breath controller maps to footpedal, etc), Key Mappings for QWERTY to MIDI # note events, and Continuous Controller mappings that allow a control surface # to drive the GUI. # # Remap format is "CM: MidiCC MidiCC" # Keyboard map format is "KM: ASCII MIDI_note [MIDI_chan]" # Control format is "CC: MidiCC panel/index [value]" # # The values are integers from 0 to 16384, the fine resolution controller # value for the throw of this controller. If in doubt use the value 16383, # it is only relevant for ganging controllers. # CC: 1 0/90 3807 CC: 5 0/84 16384 CC: 5 0/22 12784 CC: 7 0/92 16384 CC: 65 0/85 16384 CC: 71 0/34 14883 CC: 72 0/45 16384 CC: 72 0/39 16384 CC: 73 0/36 16384 CC: 73 0/42 16384 CC: 74 0/33 16384 CC: 75 0/43 15943 CC: 75 0/37 16384 CC: 76 0/52 1289 CC: 77 0/65 4240 CC: 78 0/66 2209 CC: 91 0/51 16384 CC: 93 0/91 16384 CLI: set history 50 CLI: set line 80 CLI: set accel 0.050000 CLI: set prompttext "%algo% (m %memory% ch %channel%): " CLI: set cli cycle 500 CLI: set panel 0 CLI: set cli h left CLI: set cli l right CLI: set cli ^k incmin CLI: set cli k inc CLI: set cli K incmax CLI: set cli ^j decmin CLI: set cli j dec CLI: set cli J decmax CLI: set cli M memUp CLI: set cli m memDown CLI: set cli r read CLI: set cli w write CLI: set cli x toggle CLI: set cli u fineup CLI: set cli d finedown CLI: set cli f update CLI: set cli U up CLI: set cli D down CLI: set cli : insert CLI: set cli / search KM: ' 18 1 KM: , 14 1 KM: . 16 1 KM: / 17 1 KM: 0 39 0 KM: 2 25 0 KM: 3 27 0 KM: 5 30 0 KM: 6 32 0 KM: 7 34 0 KM: 9 37 0 KM: = 42 0 KM: [ 41 0 KM: \ 45 0 KM: ] 43 0 KM: a 1 1 KM: b 9 1 KM: c 5 1 KM: e 28 0 KM: f 6 1 KM: g 8 1 KM: h 10 1 KM: i 36 0 KM: k 13 1 KM: l 15 1 KM: m 12 1 KM: n 11 1 KM: o 38 0 KM: p 40 0 KM: q 24 0 KM: r 29 0 KM: s 3 1 KM: t 31 0 KM: u 35 0 KM: v 7 1 KM: w 26 0 KM: x 4 1 KM: y 33 0 KM: z 2 1
man bristol
):<Ctrl> 's' - save settings to current memory <Ctrl> 'l' - (re)load current memory <Ctrl> 'x' - exchange current with previous memory <Ctrl> '+' - load next memory <Ctrl> '-' - load previous memory
→ Sont pas terribles (beaucoup de résonnance donc gare au volume !) mais on me les a demandé 😈 instrus-zynadd-0.1.zip
http://freepats.zenvoid.org/tools/
$ midicomp “A bicyclette.kar” | head -n 50 | tail -n 20
(...) TrkEnd MTrk 0 Meta TrkName "Words" 0 Meta Text "@LFren" 0 Meta Text "@TLA BICYCLETTE" 0 Meta Text "@TYves Montand" 16354 Meta Text "\\Quand " 16542 Meta Text "on " 16726 Meta Text "par" 16908 Meta Text "tait " 17112 Meta Text "de " 17282 Meta Text "bon " 17448 Meta Text "ma" 17528 Meta Text "tin, " 17894 Meta Text "/Quand " 18092 Meta Text "on " 18288 Meta Text "par" 18482 Meta Text "tait " 18658 Meta Text "sur " 18824 Meta Text "les " (...)
La conversion semble bien s'opérer dans les 2 sens. Un message “Error: Garbage at end” lors de la conversion en texte qui est sans doute anodin.
Convertir depuis le .kar vers un format éditable:
./midicomp J\'aime\ les\ filles.kar > jaime.asc
Convertir depuis le texte, vers le format MIDI (ou .KAR, ça revient au même):
./midicomp -c ../jaime.asc jaime.mid
Fausse piste, il s'agit d'une interface en TCL/TK oldschool assez peu agréable qui réutilise abc2midi etc… Résultat d'une conversion:
X: 1 T: from /home/fab/mao/karaoke/tgv777.free.fr/Midi filesEtKar/Karaoke_divers/Kar Fr1/A cause Fifine.kar M: 3/4 L: 1/8 Q:1/4=183 K:C % 0 sharps % Soft karaoke %Words % @Lfran\0xe7ais % @TA cause Fifine % @Ousa Nousava w:A cause Fi-fine ti r\0xe9-pond' w:0xe0 moin tou-jours non w:Quand mi in-vite \0xe0 tou\0xe9 po danse in'-ti s\0xe9-ga w:Moin s'rais bien con-tent serre serre \0xe0 tou\0xe9 cont'-moin w:Mais voi-l\0xe0 w:Mais voi-l\0xe0 seul'-ment, ti r\0xe9-pond' \0xe0 moin tou-jours non w:A cause Fi-fine ti r\0xe9-pond' w:0xe0 moin tou-jours non w:Quand mi in-vite \0xe0 tou\0xe9 po danse in'-ti s\0xe9-ga w:Moin s'rais bien content serre serre \0xe0 tou\0xe9 cont'-moin (...)
Comme souligné sur le site d'XBMC, la conversion en notation abc
est a priori “avec pertes”, à essayer
$ midi2abc Cascavelle.kar | head -n 25 X: 1 T: from Cascavelle.kar M: 4/4 L: 1/8 Q:1/4=102 K:C % 0 sharps % Soft karaoke %Words % @LFran\0xe7ais % @TKaskavel % @TMis en karaok\0xe9 par RECHE Fran\0xe7ois w:Dans la ra-vine en coeur so-leil w:L'eau claire y grain dans cas-ca-velle w:Et la cas-cade jo-lie mam-zel w:La fait yeux dous en-semb so-leil. w:Dans la ra-vine en coeur so-leil w:L'eau claire y grain dans cas-ca-velle, w:Et la cas-cade jo-lie mam-zel w:La fait yeux dous en-semb so-leil. w:Comme un ga-lant li sa con-t\0xe8ge w:Dans son che-veux pei-ny\0xe9 en gros, w:So-leil la fiche in ti ca-deau. w:La met son ba-rette l'arc en ciel. w:Dans la ra-vine en coeur so-leil w:L'eau claire y grain dans cas-ca-velle, (...)
Par contre, plein d'erreurs lors de la reconversion du format ABC vers le MIDI:
$ abc2midi Cascavelle.abc writing MIDI file Cascavelle1.mid Error in line 52 : Verse 1 mismatch; 0 syllables in music 16 in lyrics Error in line 53 : Verse 1 mismatch; 0 syllables in music 8 in lyrics Error in line 54 : Verse 1 mismatch; 0 syllables in music 8 in lyrics Error in line 55 : Verse 1 mismatch; 0 syllables in music 8 in lyrics Error in line 56 : Verse 1 mismatch; 0 syllables in music 8 in lyrics Error in line 57 : Verse 1 mismatch; 0 syllables in music 8 in lyrics Error in line 58 : Verse 1 mismatch; 0 syllables in music 8 in lyrics Error in line 59 : Verse 1 mismatch; 0 syllables in music 8 in lyrics (...)
Testé vite fait la lecture (du .mid obtenu en résultat) avec pykaraoké et me semble donc que ça cafouillait légèrement (c'est à dire de trop).
On peut enfin le dire, les soundfonts c'est rétro, c'est kitch. Maintenant que nous sommes décomplexés, nous pouvons répertorier quelques liens :