Midi in realtime

Stel hier de ingewikkelde technische vragen.

Midi in realtime

Berichtdoor TheBeat op di dec 02, 2008 7:08 pm

Ik maak programma's in Rev om user te helpen met componeren van muziek.
Tot op heden maakte ik een Standard Midi file en sleepte deze naar Logic om af te spelen.
Nu wil ik graag in realtime werken.
Kan iemend mij de weg wijzen hoe ik via mijn Rev stack (standalone) in realtime Midi data naar een sequencer programma (bv. Logic) kan sturen, zodat ik de verandereingen die ik maak in mijn stack ook onmiddelijk kan horen via Logic.

Ik werk op mac OSX maar wil uiteindelijk graag versies hebben voor alle gangbare platforms.

Ik heb tot nu toe begrepen datb ik het via externals moet doen.
Weet iemand van het bestaan van zulke externals of kan iemand mij daarbij helpen?

alvast dank, Beat
TheBeat
 
Berichten: 5
Geregistreerd op: wo nov 26, 2008 9:30 pm

Re: Midi in realtime

Berichtdoor marksch op wo dec 03, 2008 1:37 am

Hoi Beat,

Als ik het goed begrijp, gaat het jou er niet om midi naar een midi-apparaat te sturen, maar alleen om de ingevoerde noten terug te horen op de computer? Dan is de MidiBuilder stack waarschijnlijk wat je zoekt. Ik weet niet waar je deze stack vandaag de dag kunt downloaden, maar ik heb er nog een kopietje van, dat je hieronder kunt downloaden. Ik hoop dat je hier iets mee kunt.

Groeten,

Mark

MIDIBuilder.rev.zip
(20.83 KiB) 71 keer
Economy-x-Talk
Consultancy and Software Engineering
http://economy-x-talk.com
Download TwistAWord: http://www.twistaword.net
Color Converter: http://www.color-converter.com
marksch
Site Admin
 
Berichten: 107
Geregistreerd op: vr aug 22, 2008 12:59 am
Woonplaats: Nederland

Re: Midi in realtime

Berichtdoor TheBeat op do dec 11, 2008 6:05 pm

Hi Mark,

Bedankt voor je reaktie. Ik heb je naam al vaak op de Rev forums gezien (en ook HyperCard als ik me goed herinner), maar altijd gedacht dat je in Frankrijk zat.
Ik heb de MidiBuilder. Het gaat mij er juist om dat de gebruiker zijn eigen sounds (Samples en Instrumenten) kan horen, omdat
de ook de sound een belangrijk onderdeel is van bv. het creeren van een ritme. Tevens wil ik met mijn programma ernaar toe
dat de gebruiker geholpen wordt in het kiezen van de 'juiste' sounds dmv een semi automatisch-intelligent algoritme.
Het is dus essetieel dat ik op een of andere manier vanuit Revolution (evt. via een external) mijn midi data naar de Midi Ingang
van bv. Logic kan sturen in realtime. Ik vraag mij nu af in hoeverre ik gebruik kan maken van de routines die in de Core Midi staan.
Ik heb echter geen idee hoe deze aan te spreken.

groeten, Beat
TheBeat
 
Berichten: 5
Geregistreerd op: wo nov 26, 2008 9:30 pm

Re: Midi in realtime

Berichtdoor marksch op ma dec 15, 2008 12:49 pm

Hoi Beat,

Ik denk dat je moet beginnen met een feature request. In de QCC kun je verzoeken om compatibiliteit met CoreMidi. Ik denk dat dit een goede kans maakt, omdat CoreImage en CoreAnimation inmiddels ook toegankelijk zijn voor Revolution. Waarom dan niet ook CoreMidi, zou ik zeggen.

Het is mij niet duidelijk of het hier nu om een hardware of een software probleem gaat. Is die midi ingang een poort op een midi-apparaat, of gaat het om het verzenden van midi gegevens naar software? Als het om software gaat, is er wellicht iets mogelijk met AppleScript of een socket. Daarvoor zou ik meer over de software moeten weten, waaronder de wijze waarop dit programme met andere programma's kan communiceren.

Gaat het om een hardwareprobleem, dan zou het wellicht mogelijk kunnen zijn om data direct naar de hardware te sturen, via usb of seriële poort. Om daar iets zinnigs over te zeggen zou ik eveneens meer over de hardware moeten weten. Ik zou onder andere moeten weten welk protocol de hardware gebruikt. Als het een standaard midiprotocol is, is er wellicht een mogelijkheid om die data in Revolution te genereren.

Hopelijk kan ik er meer over zeggen, nadat je bovenstaande hebt beantwoord.

Vriendelijke groet,

Mark
Economy-x-Talk
Consultancy and Software Engineering
http://economy-x-talk.com
Download TwistAWord: http://www.twistaword.net
Color Converter: http://www.color-converter.com
marksch
Site Admin
 
Berichten: 107
Geregistreerd op: vr aug 22, 2008 12:59 am
Woonplaats: Nederland

Re: Midi in realtime

Berichtdoor TheBeat op za jan 17, 2009 12:16 am

Hoi Mark,

ben sinds enkele dagen weer terug in NL en heb weer toegang tot internet.

Het gaat om een software probleem. Ik wil mididata in realtime naar Logic Audio sturen, zodat de in Rev gegenereerde Mididata met mijn souds (samples) uit Logic afgespeeld worden. Ik wil uiteindelijk over meerdere Midikanalen tegrlijk kunnen versturen, zodat er verrschillende Instruments in Logic tegelijk afgespeeld kunnen worden.

Ik denk ook dat het via CoreMidi zou moeten kunnen, maar weet niet echt hoe dit aan te pakken. Ik weet eerlijk gezegd ook niet wat 'QCC' is. Kon niets zinnigs erover vinden op het net.

Een andere mogelijkheid waar ik aan gedacht heb tijdens mijn verblijf in het buitenland , is het te doen via de IAC driver van Apple. vanuit Logic kan ik de IAC driver zien. Maar hoe kom ik van Revolution naar de IAC driver.

Mark schreef :
Als het om software gaat, is er wellicht iets mogelijk met AppleScript of een socket.

Aangezien het over realtime midi gaat en de preciese timing van het afspelen belangrijk is, vrees ik dat via een 'omweg' als Applescript er teveel tijd verloren gaat. Aan de andere kant, als deze delay echt cosistent is, is dat ook weer niet zo erg. Hoewel ik een 'directere' weg prefereer.

Over Logic : het is een Apple programma en kan bereikt worden via de IAC driver (zie boven). Ik neem aan dat het ook reageert
op Applescript, maar of je daarmee de Mididata naar Logic kan krijgen weet ik niet.

Bedoel je met socket zoiets als de IAC driver of de CoreMidi van Apple?

Een ander oplossing zou wellicht zijn om de Mididata naar mijn MidiInterface te sturen en de uitgang ervan dmv een kabel weer aan de ingang ervan te koppelen en op die manier Logic binnen te komen. het probleem is dan hoe de mididriver van mijn Interface
(Emagic MT4) aan te spreken.

Ik hoop dat je (iemand) me weer een stapje verder kan helpen.

vriendelijke groet , Beat
TheBeat
 
Berichten: 5
Geregistreerd op: wo nov 26, 2008 9:30 pm

Re: Midi in realtime

Berichtdoor marksch op di jan 20, 2009 4:55 pm

Hoi Beat,

De (het, eigenlijk) QCC is het Quality Conrol Centre van Revolution, dat je hier kunt vinden.

IAC werkt niet met sockets maar met geheugenplaatsen (als ik het goed begrijp). Hoe het precies werkt weet ik niet, maar het moet mogelijk zijn met behulp van AppleEvents en AppleScript Logic te vertellen middels IAC informatie op te halen. Ik heb Logic hier niet en kan dus niet zien welke AppleScript commando's en AppleEvents er mogelijk zijn en evenmin of AppleEvents nog extra mogelijkheden biedt boven de in Logics dictionary vermelde commando's en functies. AppleScript zou inderdaad te langzaam kunnen zijn.

Het moet mogelijk zijn om een external te schrijven waarmee IAC wordt aangestuurd vanuit Revolution. Er is wel wat code beschikbaar op het internet dat het mogelijk moet maken relatief snel zo'n external te schrijven, als je tenminste weet hoe je een external moet maken en iets van C++ begrijpt.

Ik verwacht niet dat je de MIDI driver direct kunt aanspreken. Als de MIDI interface een seriële poort heeft, is het misschien mogelijk om met behulp van een USB2Serial converter data direct vanuit Revolution naar de MIDI interface te sturen, aangenomen dat de Midi interface overweg kan met MIDI data in tekstvorm. Heb je enig idee wat voor data de MIDI interface precies verwacht, gewone standaard MIDI data?

Emagic werd overigens bijna 7 jaar geleden door Apple overgenomen en de MIDI interface die je hebt, zou wel eens hopeloos verouderd kunnen zijn, terwijl er wel een USB poort op zit --en geen seriële poort vrees ik. Misschien is het mogelijk de USB-poort op een doe-het-zelf-pakket aan te sluiten, zoals Service USB. Er zijn ook goedkopere alternatieven, maar daarover heb ik de info niet zo snel bij de hand.

Op dit moment denk ik dat een external de meest kansen biedt, maar het zou ook interessant kunnen zijn te proberen een stukje hardware te bouwen om de USB poort met de MIDI interface te laten praten.

Ik hoop dat anderen nog meer ideeën zullen aandragen.

Groeten,

Mark
Economy-x-Talk
Consultancy and Software Engineering
http://economy-x-talk.com
Download TwistAWord: http://www.twistaword.net
Color Converter: http://www.color-converter.com
marksch
Site Admin
 
Berichten: 107
Geregistreerd op: vr aug 22, 2008 12:59 am
Woonplaats: Nederland

Re: Midi in realtime

Berichtdoor TheBeat op ma jan 26, 2009 4:56 pm

Hi Mark,

Ik heb contact opgenomen met RunRev en zij hebben me l;aten weten dat CoreMidi niet ondersteunt wordt op dit moment. Ik zal een verzoek indienen.

Ik denk dat het niet eens nodig is om Logic via Apllescript te vertellen om data op te halen van de IAC driver, aangezien ik ion de 'environment' van Logic. in 'Clicks & Ports' de Iac bus zie als inkomende bus, alsmede een bus 'TestRev' die ik in de IAC driver (in Audio Midi Setup van Apple) heb aangemaakt. Dus ik vermoed dat dat stuk ok is. Het is nu zaaks vanuit Logic de data naar de IAC bus te sturen.
Een external maken hiervoor is vooralsnog iets te hoog gegrepen voor me, aangezien ik slechts zeer rudimentair C(++) begrijp. Ik ben bezig met de rnaeffect external uit de Runrev Externals example. (Ik blijf op 1 error hangen bij het compilen).

Ik ben ook niet zeker hoe ik timestamping moet doen in Midi. Bij een Standard MidiFile werk het met deltaTime vanaf de vorige event (in variable length coding). Is dat hetzelfde bij realtime?

Mijn midiInterface is inderdaad oud, maar wordt wel herkend door de Audio Midi Setup. Hij heeft een usb aansluiting naar de Mac en verder midi In's en out's. Ik heb er nooit bij stilgestaan, dat de data anders zou zijn dan 'text'. Zou de andere optie Hex zijn?

Echter ik denk ook dat via een external naar de IAC driver te gaan de beste optie is.
Ik zal eens zoeken op het net wat er te vinden is over de IAC driver en evt. externals.

Ik heb ook RTP-Midi als mogelijkheid getipt gekregen.

Het zou leuk zijn als ook andere forumleden hiermee bezig zouden zijn en hun gedachtes erover willen delen.

Groeten, Beat
TheBeat
 
Berichten: 5
Geregistreerd op: wo nov 26, 2008 9:30 pm

Re: Midi in realtime

Berichtdoor marksch op za jan 31, 2009 1:59 am

Hoi Beat,

Heb je inmiddels een feature request in QCC geplaatst? Wil je het bug nummer hier posten?

Ik vermoed dat je AppleEvents naar Logic kunt sturen en op dat moment weet Logig dat het uit de IAC moet lezen. Ik weet niet of je met behulp van AppleEvents iets direct in de IAC kunt plaatsen. Uiteindelijk denk ik dat het niet uitmaakt hoe het precies werkt, het gaat erom dat je met behulp van AppleEvents Logic aan kunt spreken --als dat tenminste functioneert.

Hoe gaat het met de external. Ik wil dat graag ook eens gaan doen. Ik heb ooit externals voor HyperCard gemaakt, maar op dit moment heb ik er gewoon geen tijd voor.

Wat betreft deltaTime en realTime... als ik goed begrijp wat dat is, dan kun je ergens in een header aangeven hoe de tijd in je midi-bestand is gedefinieerd. Ik stel voor dat je met je favoriete zoekmachine even zoekt naar informatie over het midi-formaat. Er is veel te vinden, zoals dit. Overigens denk ik dat Revolution's stack een goed begin is als je het MIDI-formaat wilt begrijpen. Gewoon de script goed bekijken en uitvinden hoe de MIDI-file gegenereerd wordt.

Ik heb geen idee of je MIDI-driver een MIDI-string naar HEX vertaalt alvorens de data naar de MIDI-interface te sturen. Het lijkt me wel logisch dat bijv. een USB-poort de data op een andere manier versleutelt dan een seriële poort en dat je MIDI-interface op de een of andere manier weer MIDI moet maken van de data die hij ontvangt. De vraag is wat er precies door de USB-poort moet om het voor de interface begrijpelijk te maken.

Wat heb je over RTP in verband met Logic vernomen? Is het inderdaad mogelijk een datagram (=udp) socket naar Logic te openen en data te zenden? Data zou een en ander enorm vergemakkelijken, want dat zit allemaal al in Revolution ingebouwd. Je moet dan alleen nog wel precies weten wat voor data je moet versturen. Dit zou daarvoor een goed startpunt moeten zijn.

Inderdaad hoop ik dat anderen zich gauw in deze discussie zullen mengen!

Groet,

Mark
Economy-x-Talk
Consultancy and Software Engineering
http://economy-x-talk.com
Download TwistAWord: http://www.twistaword.net
Color Converter: http://www.color-converter.com
marksch
Site Admin
 
Berichten: 107
Geregistreerd op: vr aug 22, 2008 12:59 am
Woonplaats: Nederland

Re: Midi in realtime

Berichtdoor TheBeat op do jun 04, 2009 11:28 am

Eindelijk weer eens tijd om op het forum te komen.
Ik heb de feature request voor Midi implementation in Revolution geplaatst onder bug 8033. Ik wil iedereen vragen die ook met midi bezig is om deze bug te steunen door naar het Revolution Quality Control Centre (QCC) te gaan en op deze bug te stemmen.
het is eigenlijk vreemd dat Revolution hiervoor een bug aanmaakt, terwijl het een Feature Request is. Dit heeft mij enorm verward.

Ik heb verder geen tijd gehad om verder met mijn Midi applicatie te gaan, maar ik hoop daar binnenkort weer aan toe te komen.

groeten, Beat
TheBeat
 
Berichten: 5
Geregistreerd op: wo nov 26, 2008 9:30 pm

Re: Midi in realtime

Berichtdoor marksch op za jun 06, 2009 11:39 am

Hoi Beat,

Heb je inmiddels ook de external van Mark Wieder uitgeprobeerd?

Mark
Economy-x-Talk
Consultancy and Software Engineering
http://economy-x-talk.com
Download TwistAWord: http://www.twistaword.net
Color Converter: http://www.color-converter.com
marksch
Site Admin
 
Berichten: 107
Geregistreerd op: vr aug 22, 2008 12:59 am
Woonplaats: Nederland


Keer terug naar Vragen voor gevorderden

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers en 1 gast

cron