MIDI / SYSEX communicatie monitoren

Enzo.F

vrijwillig lid
Lid sinds
31 mei 2010
Berichten
1.663
Locatie
a forest
Besten,

Ik wil graag de communicatie tussen een Atari en een S700 monitoren. Ik dacht dat te doen door gebruik te maken van de miidi-monitor in CTRLR. Dus:

Code:
         atari OUT  -  IN usb mif01 
     usb mif01 OUT  -  IN S700
          S700 OUT  -  IN usb mif02
     usb mif02 OUT  -  IN atari

usb mif01 en usb mif02 zijn de twee aansluitingen op de usb midi interface

Als ik op de interface voor MIDI 1 THRU en MIDI 2 THRU aanzet blijf ik de melding krijgen 'Midi error", er is geen bi-directionele communicatie mogelijk. Ook heb ik de settings midi settings in CTRLR op diverse manieren ingesteld maar ik krijg het niet voor elkaar. Als ik één op één aansluit dan werkt het wel gewoon.
Wat doe ik verkeerd of hoe monitor ik de ruwe MIDI data die tussen beide uitgewisseld wordt?
thanks!
 
Besten,

Ik wil graag de communicatie tussen een Atari en een S700 monitoren. Ik dacht dat te doen door gebruik te maken van de miidi-monitor in CTRLR. Dus:

Code:
         atari OUT  -  IN usb mif01 
     usb mif01 OUT  -  IN S700
          S700 OUT  -  IN usb mif02
     usb mif02 OUT  -  IN atari

usb mif01 en usb mif02 zijn de twee aansluitingen op de usb midi interface

Als ik op de interface voor MIDI 1 THRU en MIDI 2 THRU aanzet blijf ik de melding krijgen 'Midi error", er is geen bi-directionele communicatie mogelijk. Ook heb ik de settings midi settings in CTRLR op diverse manieren ingesteld maar ik krijg het niet voor elkaar. Als ik één op één aansluit dan werkt het wel gewoon.
Wat doe ik verkeerd of hoe monitor ik de ruwe MIDI data die tussen beide uitgewisseld wordt?
thanks!
Als usb mif01 en usb mif02 de inputs zijn, dan verzend je door MIDI 1 en MIDI 2 op THRU te zetten ook op beiden hetzelfde signaal in (terwijl de lus al compleet gevormd is). Vandaar de error n.m.i.
Trouwens waarom wil je die op thru zetten ?
(... en waarom niet atari OUT direct naar IN S700 en van daaruit verder ?)
 
Als usb mif01 en usb mif02 de inputs zijn, dan verzend je door MIDI 1 en MIDI 2 op THRU te zetten ook op beiden hetzelfde signaal in (terwijl de lus al compleet gevormd is). Vandaar de error n.m.i.
Helder! thanks!

Trouwens waarom wil je die op thru zetten ?
omdat ik dacht dat het binnenkomend signaal 1 op 1 doorgezet zou moeten worden op de output, maar dat gebeurt standaard begrijp ik? Alleen de channels bepalen welk deel er uitgelezen dient te worden?

(... en waarom niet atari OUT direct naar IN S700 en van daaruit verder ?)
Omdat het bi-directioneel is, als ik via de thru op de S700 luister (dat lukt me al niet) dan zou ik alleen de Atari communicatie zien naar mijn mening?
 
...omdat ik dacht dat het binnenkomend signaal 1 op 1 doorgezet zou moeten worden op de output, maar dat gebeurt standaard begrijp ik? Alleen de channels bepalen welk deel er uitgelezen dient te worden?
Bij sysex zijn er geen channelsettings (wat anderen ook mogen beweren).
Of sysex naar een ontvangend apparaat, op de thru ervan nog verder wordt doorgevoerd, daar ben ik niet zeker van... (dat is wel uit te testen.)
Omdat het bi-directioneel is, als ik via de thru op de S700 luister (dat lukt me al niet) dan zou ik alleen de Atari communicatie zien naar mijn mening?
Zie ook hierboven.
Ik gebruik voor bi-directioneel midi verkeer haast altijd eenzelfde opzet : gewoon in en out tussen instrument en pc (midi interface dus, in jou geval dus gewoon de atari.)

Wat wil je eigenlijk kunnen doen met dat "SYSEX communicatie monitoren" ?
 
Wat wil je eigenlijk kunnen doen met dat "SYSEX communicatie monitoren" ?

De Atari vraagt en ontvangt sysex van de S700. Als ik kan zien wat er in sysex gestuurd wordt bij het aanroepen van een functie in de user interface van de software die op de Atari draait, kan ik de Atari-applicatie omzetten naar een CTRLR panel. Dus ik wil weten wat de Atari via sysex stuurt als ik vraag om een sample dump te doen aan de S700. Dan de terugweg (midi out van de S700 of dus wat de Atari dan terug ingeblazen wordt op sysex) de verstuurde sysex analyseren en in variabelen in het CTRLR panel opvangen.

Hoop dat ik zo een beetje duidelijk ben.
 
De Atari vraagt en ontvangt sysex van de S700. Als ik kan zien wat er in sysex gestuurd wordt bij het aanroepen van een functie in de user interface van de software die op de Atari draait, kan ik de Atari-applicatie omzetten naar een CTRLR panel. Dus ik wil weten wat de Atari via sysex stuurt als ik vraag om een sample dump te doen aan de S700. Dan de terugweg (midi out van de S700 of dus wat de Atari dan terug ingeblazen wordt op sysex) de verstuurde sysex analyseren en in variabelen in het CTRLR panel opvangen.

Hoop dat ik zo een beetje duidelijk ben.
Die S700 dat is de Yamaha PSR S700, niet ?
Heb je daar een manual van waarin de sysex-commando's beschreven staan ?
Je hebt het over de sysex-commando's om samples te dumpen (en niet over de data-dump zelf) ?

Op pc kun je met MidiOx veel doen om zo'n klus te klaren. Op atari, da's te lang geleden voor mij om nog de juiste software te weten.
Makkelijke weg is gewoon :
* atari out naar atari in (geen instrument er tussen);
* editor starten en benodigde functies one by one uitvoeren (sysex output);
* tezelfder tijd een monitorprogje op de atari, dat voor elke functie laat zien wat er gebeurt (sysex input).
 
Zou je met zo'n setup de CTRLR software alles kunnen laten leren?
(als je dit probeert, let wel ff op of de splitter en mergers sysex doorgeeft).


[EDIT]
Ik maak een foutje:
De output van de S700 moet natuurlijk ook de computer met CTRLR erop dus dan is er nog een tweede splitter nodig denk ik.
Maar goed, het idee is wel duidelijk denk ik hè?
 

Attachments

  • S700AtariCTRLR .jpg
    S700AtariCTRLR .jpg
    20,2 KB · Bekeken: 119
Die S700 dat is de Yamaha PSR S700, niet ?
Heb je daar een manual van waarin de sysex-commando's beschreven staan ?
Je hebt het over de sysex-commando's om samples te dumpen (en niet over de data-dump zelf) ?
Het gaat om de Akai S700 sampler. Daarvan bestaat een midi-implementatie document. Zie post 32 van [URL="https://www.synthforum.nl/forums/showpost.php?p=1909713"]deze draad[/URL].

Op pc kun je met MidiOx veel doen om zo'n klus te klaren. Op atari, da's te lang geleden voor mij om nog de juiste software te weten.[/QUOTE]

Ik kwam vandaag uit op een stukkie software op MacOsX hetende Snoize Midi Monitor. Ziet er hoopvol uit:
mainWindow.png
 
Matthew, jouw setup in deze zorgt alleen voor het monitoren van de data die de Atari uitstuurt.
attachment.php

Op deze wijze kan ik nog niet zien wat de Akai S700 antwoordt. Jouw opstelling zou werken om de sysex data ook door de CTRLR-computer te laten versturen. Maar omdat het bi-directioneel is zal de door jou geschetste set up niet werken vanaf de CTRLR-computer. Je vraagt stuurt een commando en wacht op antwoord, de Atari kan versturen en ontvangen maar de CTRLR-computer zal alleen kunnen sturen maar heeft geen ingang van de S700.

Het meedenken zet me wel op een nieuw spoor.
 
Ja ik heb een foutje gemaakt in het schema.

er moet eigenlijk een tweede splitter tussen die het midi uit signaal van de S700 spllit en stuurt naar zowel de CTRLR-computer als de Atari.
 
ik had gehoopt dat setup2.png zou werken.
attachment.php



en ook setup1.png werkt niet.
attachment.php


Ik krijg op de Atari midi-errors met beide setups. ("check the cables and connections"). Waarschijnlijk omdat midi waardes verband houden met stroom, in plaats van voltage niveaus (normale RS323 protocol). Dus wellicht voor afluistering / monitoring is een midi-repeater / multiplier / patchbay the way to go voor duplicatie van het signaal.

Waarschijnlijk is de Atari TE gevoelig op de midi-input of de S700 te laag qua 'stroom' op de output.

setup2.jpgsetup1.jpg

Ik heb een tweede S700, die ik ook moest updaten naar v1.6. Het was een hoog serienummer op 110 volt (US). Helaas zat daar ook een V1.5 eprom in.
 
Enzo.F wat ik van je uitleg begrijp is dat je die atari-editor (deels of geheel) wil nabouwen in CTRLR ?
Precies! sorry voor het niet helder formuleren van mijn doelen! :) Primair wil ik de sample data die via sysex door de Akai S700 kan worden uitgestuurd, in data stream opvangen en wegschrijven in een CTRLR panel en vice versa.

Is er in CTRLR een (midi of beter sysex-) learn functie ?
Volgens mij niet. Het is een tool om in een wysiwyg-omgeving user interface-elementen op een panel / canvas te gooien en daar Sysex output aan te hangen. Verder kan je met LUA scripting geavanceerde procedures en methods en functions bouwen.
 
Laatst gewijzigd:
Ja ik heb een foutje gemaakt in het schema.

er moet eigenlijk een tweede splitter tussen die het midi uit signaal van de S700 spllit en stuurt naar zowel de CTRLR-computer als de Atari.
Voordat ikzelf aan deze topic nog verder ga helpen wil ik graag een duidelijke uitleg van wat Matthew hier wil 'bijdragen'.
(Wat mij veel eerder op een verstoren lijkt tot nu toe !)
 
Voordat ikzelf aan deze topic nog verder ga helpen wil ik graag een duidelijke uitleg van wat Matthew hier wil 'bijdragen'.
(Wat mij veel eerder op een verstoren lijkt tot nu toe !)

Voor de Atari bestaat een programma waarmee je via Sysex sample dumps kan ontvangen van- en verzenden naar de Akai S700. Voor PC en Mac bestaat zo'n programma niet. Wat Enzo F en ik (ik heb ook een S700) graag willen is: samples met instellingen van de Akai S700 ontvangen zodat je een sample library kan aanleggen op de computer.

De Akai S700 heeft overigens een QuickDisk Drive waardoor je er geen floppy emulator zoals Gotek/HXC in kan zetten.

Het idee nu is: een Atari gebruiken waarop dat programma draait en via de midi poorten uitlezen welke sysex commando's de Atari naar de Akai S700 zendt zodat de S700 weet dat hij een sysex dump moet terugsturen of ontvangen naar- of van de Atari.
Nu is Enzo F erachter gekomen dat de sysex in blokken wordt verzonden en dat er tussen de blokken sysex data een handshake signaal moet plaatsvinden. Dat maakt het wat ingewikkelder en dat maakt het noodzakelijk een continue bi-directionele midi data stroom ter beschikking te hebben.

Jammer dat mijn bijdrage tot nu toe lijkt op verstoring van het topic. Dat is niet de bedoeling uiteraard. Misschien komt dit doordat ik vanaf de zijlijn probeer mee te denken. Ik ben thuis niet zelf bezig met experimenteren. Programmeren in CTRLR gaat mijn pet net even te boven.

Schrijf ik het zo goed op Enzo F?
 
... Jammer dat mijn bijdrage tot nu toe lijkt op verstoring van het topic. Dat is niet de bedoeling uiteraard. Misschien komt dit doordat ik vanaf de zijlijn probeer mee te denken. Ik ben thuis niet zelf bezig met experimenteren. Programmeren in CTRLR gaat mijn pet net even te boven.
Goed dan.
En hopelijk blijft het zonder veel verstoorders, waar het op dit forum van krioelt, want dan hou ik op.

Om zulk een editor te kunnen maken ...
Begin bij het begin (ik heb geen S700, geen atari en gebruik geen CTRLR) :
1) Doet die S700-atari-editor alles of voldoende van wat er gewenst wordt te kunnen met CTRLR ?
2) Nee, dan eerst een editor zoeken die daar wel aan voldoet (om geen sysex commando's uit te moeten dokteren).
3) Zoja, (error-)afhankelijkheid van de commando's bepalen : enkel atari out naar S700 in (niets meer).
Al de bruikbare/nodige S700-editor commando's voor deze setup bijhouden : wss zal enkel de sample-data zelf (dus niet het sysex commando voor de dump of request) hierbij verloren gaan.
Dit is belangrijk, om te weten waar er werkelijk een 'handshake' benodigd is en waar niet.
4) Een midi-monitor programma voor de atari zoeken (kan het werk flink vereenvoudigen).
Later mss meer ...
 
Schrijf ik het zo goed op Enzo F?

Zo is het inderdaad. Wellicht stapte Matthew met (te veel) voorkennis in en reageerde iets te voorbarig met een incompleet antwoord. Ik dacht dat er een simpele en alom bekende manier / setup bestaat die veelvuldig door mensen (hier) gebruikt wordt om te kijken wat er op de sysex lijn tussen Atari en S700 gecommuniceerd wordt.

Inderdaad is het zo dat Atari software start. Bij start van de software gaat er een sysex commando naar de S700 waarin gevraagd wordt naar de status van de sampler. Volgens mij gaat het om statuses als is er een ASK70 board aanwezig, staat de midi thru aan, moeten changes direct naar de sampler verstuurd worden vanuit de software, noem maar op. Dan antwoordt de S700 met sysex data.

Als er een sample opgevraagd wordt uit het geheugen van de sampler, gebeurt dat ook met sysex.code. Als de sample data verzonden wordt dan gebeurt dat in een variabel aantal sysex messages. Na elk blok verzonden door de S700 zal de Atari zeggen "ontvangen in goede orde", "breek verzenden van blokken af" of niet "in goede orde ontvangen" (herzend).

deze communicatie volgt elkaar snel op, in 2ms zullen 2 of 3 commando's verzonden en ontvangen zijn. Om een goed chronologisch beeld te krijgen hoe dit nauw luisterende proces verloopt wil ik dus beide lijnen monitoren. In deze post leg ik ongeveer uit hoe het zou moeten gaan. Onderdeel van deze post waarin meer van mijn bevindingen tot nu toe beschreven staat.
 
Super fijn meedenken, Audiocollage! Wordt zeer gewaardeerd!

Ik heb contact met de programmeur van de atari-editor uit de jaren 80. Hij heeft de sourcecode van zijn editor online openbaar gemaakt. Daarin staan in procedures wat sysex-commando's verwerkt.
Hier te vinden: http://plontke.de/X7000.LST

1) Doet die S700-atari-editor alles of voldoende van wat er gewenst wordt te kunnen met CTRLR ?
- werkt prima, meer functies dan initieel in mijn load/save panel gewenst zijn.

2) Nee, dan eerst een editor zoeken die daar wel aan voldoet (om geen sysex commando's uit te moeten dokteren).
- Akai heeft de midi-implementatie openbaar gemaakt. Matthew deelt hem hier op het forum.

3) Zoja, (error-)afhankelijkheid van de commando's bepalen : enkel atari out naar S700 in (niets meer).
Al de bruikbare/nodige S700-editor commando's voor deze setup bijhouden : wss zal enkel de sample-data zelf (dus niet het sysex commando voor de dump of request) hierbij verloren gaan.
Dit is belangrijk, om te weten waar er werkelijk een 'handshake' benodigd is en waar niet.
- Dit is precies het punt waarom ik dus die midi-monitor nodig heb. Hierdoor krijg ik inzichtelijk welke data ik in een LUA variabel van het type 'table' kan gooien. Lees hier meer over dat type variabel beschikbaar in LUA script.

4) Een midi-monitor programma voor de atari zoeken (kan het werk flink vereenvoudigen).
- Dit ga ik uitzoeken. Hier is een artikel en download dat hoopgevend is, nog niet op waarde kunnen beoordelen.

Later mss meer...
Super fijn, dank je! Ik wil zelf de setup iets veranderen door toevoeging van een midi-patchbay zodat ik een powered distributie van beide outputs (Atari en S700) kan voeden op de inputs (S700 en Atari) en ook een exacte kopie kan binnenhalen op mijn MBPro.
 
...Hierdoor krijg ik inzichtelijk welke data ik in een LUA variabel van het type 'table' kan gooien. Lees hier meer over dat type variabel beschikbaar in LUA script.
Nogmaals, begin bij het begin, zoals ik zei.
De variabelen zijn allemaal van eenzelfde type : bytes. Dus die 'table' ...
Om een sample op te slaan gebruikt men (normaal) gewoon een geheugenblok ter grootte van het aantal bytes in de sample (inclusief beschrijving etc.). Maar dat behoort tot het laatste van dit werk.

Als je zover bent met het opzetten van atari-editor en die atari-monitor.
Toon eens een figuur met de atari-editor en wat ontvangen data in de monitor.
 
Yes Yes, succes! Ik kan verder! Heb nu een opstelling met midi-patchbay van, jawel, Akai ME30pL
akai-me30p-ii-765809.jpg


met als resultaat:
PORT 1 is de ATARI - PORT 2 is de S700
attachment.php

Screen Shot 2017-07-19 at 15.50.56.jpg
 
Back
Top