zelf programmeren van Proteus-1 editor

bijlevel

SWB
Lid sinds
29 november 2007
Berichten
1.534
Locatie
Delfgauw
Ik wil op mijn Mac-computer een editor maken voor mijn Proteus-1. Ik ben (HEEL eenvoudig) begonnen met een programmaatje waarmee ik het Program Change-commando naar de Proteus kan versturen. Nu blijkt dat ik daarmee alleen maar de presets 0-127 kan bereiken, terwijl mijn Proteus tot 383 presets heeft, verdeeld over 5 banks. Modernere soundmodules kennen een 'bank select'-commando om daarmee de verschillende sound banks te bereiken, maar de Proteus kent niet een dergelijk commando volgens mij (maar ik kan mij vergissen en dan hoor ik dat graag). Vraag dus: met welke reeks (sysex) commando's bereik ik de presets hoger dan nummer 127? Elke input hierover wordt zeer op prijs gesteld! (Ik heb de handleiding grondig bestudeerd, maar kom er dus niet uit.)
 
...Modernere soundmodules kennen een 'bank select'-commando om daarmee de verschillende sound banks te bereiken, maar de Proteus kent niet een dergelijk commando volgens mij (maar ik kan mij vergissen en dan hoor ik dat graag).
In de handleiding : 'Proteus only receives the MIDI Standard Bulk tuning dumps. For more information on the MIDI Tuning Standard and Bank Select format, contact the International MIDI Association.'
Dus mogelijk werkt CC0 +Prg Change wel. Dat zou ik toch zeker testen vooralleer met sysex aan de slag te gaan.
...Vraag dus: met welke reeks (sysex) commando's bereik ik de presets hoger dan nummer 127? Elke input hierover wordt zeer op prijs gesteld! (Ik heb de handleiding grondig bestudeerd, maar kom er dus niet uit.)
Je hebt de handleiding grondig bestudeerd zeg je ... :?
Ik heb ze net gedownload en amper 5 minuten bekeken : (Blz. 124)
Bank Preset Range Requested Preset # MIDI Message
0 0-63 1024 (0x400) Dit zijn de sysex messages => F0 18 04 dd 00 00 08 F7
1 64-127 1025 (0x401) F0 18 04 dd 00 01 08 F7
2 128-191 1026 (0x402) F0 18 04 dd 00 02 08 F7
3 192-255 1027 (0x403) F0 18 04 dd 00 03 08 F7
4 256-319 1028 (0x404) F0 18 04 dd 00 04 08 F7
5 320-383 1029 (0x405) F0 18 04 dd 00 05 08 F7
6 384-447 1030 (0x406) F0 18 04 dd 00 06 08 F7
 
Laatst gewijzigd:
Hallo,
Bedankt voor je reactie! Het commando C0 + presetnummer werkt bij de Proteus-1 idd ook, maar gaat maar tot 127. Ik heb ook lang naar de informatie, bij mijn originele manual, op blz 93, maar iid bij de downloadable op blz 124, zitten kijken, maar kom daar niet helemaal uit. Volgens mij kan je met deze reeks commando's niet één enkele preset apart selecteren, maar stuur je een 'preset data dump request' voor een hele bank. Dat is dus niet wat ik wil, tenminste niet in dit stadium van ontwikkeling. Ik wil in de editor een presetnummer (van 0 tot 319 in mijn geval) kunnen ingeven om daarmee de preset te selecteren en dan de verschillende parameters in de editor wijzigen en deze wijzigingen terugsturen naar de betreffende preset.
Ondertussen heb ik (gelukkig!) op een heel oude Mac laptop Unisyn 1.14 van MOTU (uit 1995!) teruggevonden en nog werkend ook. Dit programma geeft in een MIDI-monitorvenster de verzonden MIDI-data weer, allemaal sysex-commando's, en ik ben er nu achter voor de Proteus-1 welke reeks van commando's ik moet versturen om een bepaalde preset te selecteren. (Bij interesse hieron kan ik je mijn bevindingen in een teksbestandje toesturen.) Nogmaals dank voor je reactie en misschien kan het toch eenvoudiger met de gegeven sysex op blz. 93 c.q. 124.

Sjoerd
 
...Het commando C0 + presetnummer werkt bij de Proteus-1 idd ook, maar gaat maar tot 127.
C0 is geen commando het gaat om Controller nummer 0 (= CC0) met variabele waarde als bank select, waarbij je na elke nieuwe CC0 waarde (0 tot 127) een nieuwe reeks program changes kan sturen (van 0 tot 127).
Ik heb ook lang naar de informatie, bij mijn originele manual, op blz 93, maar iid bij de downloadable op blz 124, zitten kijken, maar kom daar niet helemaal uit. Volgens mij kan je met deze reeks commando's niet één enkele preset apart selecteren, maar stuur je een 'preset data dump request' voor een hele bank...
Je dient deze sysex strings enkel te gebruiken als bovenstaande niet zou werken. Dat gebeurt n.m.i. dan als volgt bvb. :
Om voice program 1 t.e.m. 3 (max 63) te selecteren van bank 0 verzend je :
F0 18 04 01 00 00 08 F7
F0 18 04 02 00 00 08 F7
F0 18 04 03 00 00 08 F7
Om voice program 1 t.e.m. 3 (max 63) te selecteren van bank 1 verzend je :
F0 18 04 01 00 01 08 F7
F0 18 04 02 00 01 08 F7
F0 18 04 03 00 01 08 F7
Enzo verder.
Allicht zo versta ik de uitleg in die manual (ik heb dat toestel niet). Vraag voor mij is wel hoe je bij deze vorm van selectie, bepaald op welk midi kanaal die preset dan gespeeld kan worden.
P.s. met welke DAW werk je eigenlijk ?
 
In mijn (nog vrij magere) applicatie verstuur ik een statusbyte naar het MIDI-toestel in de vorm van 0xC0, wat dus betekent dat ik een hex-waarde verstuur waarin de 0-waarde na de 'C' het kanaalnummer is. Vandaar mijn gebruik van C0. (Na deze statusbyte verstuur ik het presetnummer, wat in mijn geval gewoon in decimale notering kan.) Website voor MIDI-status bytes: http://www.midimountain.com/midi/midi_status.htm
Over de bank select commando's uit de handleiding, de dd staat voor het ID van de Proteus en is meestal 00, tenzij je meerdere hebt. Daarmee kan je dus onderscheid maken met welk module je werkt. Dus ik denk dat jouw interpretatie niet helemaal klopt. Voor de Proteus-1 van Emu zijn de eerste 4 bytes eigenlijk altijd hetzelfde wanneer je met sysex-commando's werkt, namelijk F0 18 04 00, waarin 18 de id is van Emu en 04 het product id, in dit geval de Proteus en 00 het device id byte.
Ik gebruik Digital Performer 7.24 en begrijp de achtergrond van je vraag, ik kan vanuit DP sysex-messages ontvangen en verzenden en daarmee de werking uitproberen. Maar zoals ik al schreef heb ik ook de beschikking over Unisyn van MOTU en daarmee bestudeer ik nu het effect van diverse commando's. Unisyn leverde namelijk dedicated editors voor diverse sound/synthmodules, waarvan ik er nog een paar heb, gelukkig ook voor de Proteus-1. Ik ga verder met experimenteren en wie weet kom ik over een tijdje met een mooie editor die op een Mac onder OSX Lion werkt. Ik heb nog een paar andere modules, zoals een Alesis DM5, een Roland MKS-20 en een GEM RealExpander en daar wil ik uiteindelijk ook editors voor maken en dat alles in 1 programma. Leuke klus voor de kerstdagen (en lange tijd daarna...;-)).
 
In mijn (nog vrij magere) applicatie verstuur ik een statusbyte naar het MIDI-toestel in de vorm van 0xC0, wat dus betekent dat ik een hex-waarde verstuur waarin de 0-waarde na de 'C' het kanaalnummer is. Vandaar mijn gebruik van C0. (Na deze statusbyte verstuur ik het presetnummer, wat in mijn geval gewoon in decimale notering kan.) Website voor MIDI-status bytes: http://www.midimountain.com/midi/midi_status.htm
Ha, op die manier, dus 0 voor midikanaal 1 etc., ok.
Over de bank select commando's uit de handleiding, de dd staat voor het ID van de Proteus en is meestal 00, tenzij je meerdere hebt. Daarmee kan je dus onderscheid maken met welk module je werkt. Dus ik denk dat jouw interpretatie niet helemaal klopt.
Wow blijkbaar wel bij nader inzien ... eerlijk gezegd vind ik het dan toch raar dat ze een range opgeven telkens gaand van 0 tot 63 terwijl in de sysexstring maar één variabele aanwezig is.
... Ik heb nog een paar andere modules, zoals een Alesis DM5, een Roland MKS-20 en een GEM RealExpander en daar wil ik uiteindelijk ook editors voor maken en dat alles in 1 programma. Leuke klus voor de kerstdagen (en lange tijd daarna...;-)).
Zoals je al merkt steek je dikwijls het meeste tijd in uitpluizen hoe die sysexdata is opgebouwd.... daar zouden fabrikanten ook beter een meer universele struktuur in gebruiken. (Ben ondertussen toch al een beetje aan die van Yamaha gewend, hoewel die alles behalve eenvoudig zijn.)
Ik ben wel benieuwd naar het vervolg.
 
Laatst gewijzigd:
...
Ondertussen heb ik (gelukkig!) op een heel oude Mac laptop Unisyn 1.14 van MOTU (uit 1995!) teruggevonden en nog werkend ook. Dit programma geeft in een MIDI-monitorvenster de verzonden MIDI-data weer, allemaal sysex-commando's, en ik ben er nu achter voor de Proteus-1 welke reeks van commando's ik moet versturen om een bepaalde preset te selecteren. (Bij interesse hieron kan ik je mijn bevindingen in een teksbestandje toesturen.)
Ik wil dat wel eens bekijken. Post die tekstfile anders hier als je wil.
Als je ook met windowsprogramma's kan werken kan je met mijn gratis MIDI-tool ook sysexstrings visualiseren en/of verzenden.
 
Ik heb de commando reeks uit het begin van deze discussie even via mijn DAW verstuurd en idd resulteert dat in een preset data dump van alle presets in een bank. Kan (ooit) van pas komen, dus.
Ik voeg hierbij de tekst van mijn bevindingen. De tekst is gemaakt als geheugensteun voor mijzelf en niet als handleiding. Ik denk dat ik nu wel de principes van de sysex-commando's voor de Proteus-1 door heb en nu aan de slag kan met het ontwikkelen van de editor.
 

Attachments

  • Proteus editor bevindingen v2.pdf
    22,5 KB · Bekeken: 106
Unisyn is van MOTU en draait uitsluitend onder Mac OS 9 of OSX, maar niet op de huidige Intel Mac's en dus absoluut niet op een PC. Toch maar de link: http://www.motu.com/products/software/unisyn

Voor het maken van de editor ga ik 'Processing' gebruiken (www.processing.org), een bere-interessante programmeertaal, speciaal ontworpen voor artiesten die allerlei vormen van moderne media willen integreren/combineren.
 
Back
Top