midi clock to audio und zurück

Nachteil bei der Methode aus meinem letzten Post (wenn es denn in der Realität funzt):

Du müsstest eben "händisch einsteigen", also am richt
- Volcas lassen sich mit Midi OUT (!) modden... der dann wiederum start/stop und midi clock senden müsste, wenn der analoge (audio-)sync signal empfängt...
Volcas senden dann noch lange keinen MIDI-Clock. Den müssten sie ja hochrechnen (16tel Clock auf 96tel Clock ohne Clock-In-Vorlauf wäre ungefähr so genau, wie Pippi Langstrumpfs Plutimikation mit Hilfe von auf Blättern geschriebenen Zahlen im Herbststurm...)

shit, da geht meine Theorie da hin ^^
 
Das mit den Korg Volcas kann ich bestätigen.
Die Lassen sich im Verbund mit anderen Equipment nur über Midi Clock synchronisieren, wenn es von externen Geräten kommt.
Wenn Du die Volcas triggern läßt (analog Sync) geht es in die Hose.
 
haben jetzt alle ihre Befindlichkeiten ausgekotzt und die Freundschaftsbändchen zeremoniell verbrannt?

schaut auch bitte dass jeder die Bibi&Tina Hörspielkassetten zurück bekommt die er/sie mit gebracht hat, net dass es nachher Knatsch gibt!

... Kindergarten hier manchmal, echt jetzt ;-)
Entspannt euch doch mal.

Zum Thema:
Da ja meine Volca-These ins Wasser fiel (Danke musicdiver für die Bestätigung nochmal), evtl. so:

Ich sehe gerade dass ein Kollege hier im Forum so ein Teil verkauft:
http://www.innerclocksystems.com/New ICS Sync-Lock GT.html

Aus Audio Clock Pulsen stabile MIDI Clock generieren, d.h. wenn man eben diese Audio Pulse auf die Mehrspur-Aufnahme mit aufnimmt, sollte das doch gehen?!
 
Ich sehe gerade dass ein Kollege hier im Forum so ein Teil verkauft:
http://www.innerclocksystems.com/New ICS Sync-Lock GT.html

Aus Audio Clock Pulsen stabile MIDI Clock generieren, d.h. wenn man eben diese Audio Pulse auf die Mehrspur-Aufnahme mit aufnimmt, sollte das doch gehen?!
gefällt mir, muss ich noch rausfinden wie die pulse aussehen, und wie ich die ohne VST generieren kann, im optimal sind das Impulse auf MidiClock-Rate, dann wärs ja sehr einfach, wär auch intressant was genau im inneren des Gerätes abgeht. - ich werd die typen mal anschreiben.

intressant auch, das sie Start-Stop auf einem eigene audio Channel, und Clock auf einem eigenen Channel haben ;-)
 
Weißt, es wäre ja alles deutlich einfacher wenn Du auf Modular-Gear umsteigen würdest ^^ :P

Da hab ich mir z.B. einfach von der Seite von TipTop Audio ein Sample(!) von einem Clock-Impuls runter geladen, den in meinen Sampler geschoben, auf 1/16th raus gefeuert per Audio-Ausgang und schon schnurrt der Eurorack-Sequencer munter im Takt mit :)
 
Analoge Clock samplen und dann das Audio Sample benutzen um Geräte mit analoger Clock müsste immer gehen, oder?
Hab das teilweise früher so gemacht um z.B. meine Monotribe ohne Midi mit der DAW syncen zu können - Clock Impuls gesampelt und aus der DAW in 16teln übers Audio Interface in die Monotribe geschickt.
Da kann mann dann auch bisschen wild werden und kriegt jenseits von 16teln teilweise interessante Ergebnisse.

Sorry für OT, ich les nur so mit.
 
ich brauch sowiso einen midifilter, weil wer weis was da sonst noch rauskommt aus den RC300ern, also da mal ansetzen:

Aufnahme:
Midi-IN > Core32Midibox > C-Code: reagiert nur auf Clock, wenn neue Clock reinkommt schalt ich einen GPIO Pin für ein paar cycles auf Hi, dann wieder low. mit einem Spannungsteiler (2 oder 3 Wiederstände) komm ich dann hardwareseitig auf Audio-Pegel, ein Kondensator zur Entkopplung im Signalpfad, > auf ins Mischpult/Recorder

Somit hätte ich mal Pulse auf Midiclock-Rate aufgezeichnet.

Wiedergabe:
Recorder-Out/Mischpult-Out >eingang vom rail2rail-operationsverstärker @ 5V, ergibt dann eine spannung von was weis ich 4V hi und entsprechend weniger bei lo...eingestellt auf 3,3V max geschützt mit Z-Diode und rein in einen GPIO der Core32Midibox > C-Code: beim erscheinen des ersten Pulses "überhaupt" (überhaupt mit Midi-Stop Signal, bzw Taster auf Gerät realsiert), also beim erscheinen des ersten Pulses schick ich aufm Midi-Out einen Start-Befehl raus, darauf folgend einmalig den ersten Clock-Impuls, ein neuer kann nur rausgeschickt werden wenn der GPIO-Pin ihrgendwann LO war inzwischen, war das der Fall und ist der Pin jetzt wieder HI dann kommt der nächste Clock-Impuls.

so in etwa...
 
Fertig, geschafft, funktioniert, läuft tight!

Kosten ca. 30-100€ für ein Core32 + Midi IO + kleinmaterial... je nachdem wie manns anstellt....
ich werd mir daher das zoom livetrack l-12 kaufen, und kann dann auch overdubs für Midiclock-betriebene Geräte machen (eben nicht nur overdub für Gitarre oder Stimme...)

YIHAAAAA, i bin so guad ;-), es war so einach, "na aber das wird nie was"... arme kreaturen, glauben sind am gipfel und es gibt nix höheres, derweilen sitzens in einer sackgasse...

habs bereits dokumentiert, und den code-frei gemacht:
http://wiki.midibox.org/doku.php?id=clock2audio2clock

ziemlich hilfreich war diese Schmitt-Trigger-Calculator:
http://pcbheaven.com/drcalculus/index.php?calc=st_nonsym_sp

video lädt grad hoch... dauert noch 1,5h


Das ganze auf einen Blick:
Clk2aClk.jpg

Test-Setup:
Clk2aClk-test-setup.jpg

Schmitt Trigger und Midibox-Stuff:
Clk2aClk-midibox.jpg

Convertierte Midi-Clocks, vor der Aufnahme:
Clk2aClk-signal-from-uC.jpg

Wiedergabe des auf "Band" Aufgezeichneten Signals:
Clk2aClk-signal-from-Recorder.jpg


Wems intressiert, der code für mios32 app.c:
Code:
//Clock2Audio2Clock====================================================================//
//========record midiclock with audio recording========================================//
//============2017 by Michael Sigl aka "Phatline,GreatFullTekk,GuteSigl,Technomiliz..."//
//non-commercial use only. All other rights reserved. Mios32 Based > www.ucapps.de=====//
//thx credits and all the best to TK...who have much off this possible...==============//
//=====================================================================================//
#include <mios32.h>
#include "app.h"
#include <FreeRTOS.h>
#include <task.h>
#include "tasks.h"
#include <stdio.h>
u8 clock_trigger = 0;
u8 clock_counter = 0;
u8 audio_pulse_durate = 0;
u8 Start_Flag = 1;
//Task Prioritys                  
#define PRIORITY_APP_MIDI_Tick   ( tskIDLE_PRIORITY + 4 ) //4 higher then midi
void APP_Init(void){
     
  // initialize J5A pin1 as outputs in Push-Pull Mode OUT
    MIOS32_BOARD_J5_PinInit(1, MIOS32_BOARD_PIN_MODE_OUTPUT_PP);
    MIOS32_BOARD_J5_PinSet(1, 0); //Turn off PIN
     
  // initialize pin 0 of J5A,  as Digital input with internal Pull-DOWN
    MIOS32_BOARD_J5_PinInit(0, MIOS32_BOARD_PIN_MODE_INPUT_PD);
   
  // initialize pin 2 of J5A,  as Digital input with internal Pull-UP //connect to ground
    MIOS32_BOARD_J5_PinInit(2, MIOS32_BOARD_PIN_MODE_INPUT_PU);    
}
void APP_Background(void){ }  
 
void APP_Tick(void){ // called each mS from main task            
    //Timer for Pulse-Output Duration
    if(clock_trigger == 1 && clock_counter <= 2) {clock_counter++;}
    else{clock_trigger = 0;
         MIOS32_BOARD_J5_PinSet(1, 0);
        }
}
void APP_MIDI_Tick(void){       //scan digital input for Audio-Pulses & Dumpout Midiclockdata
    if(MIOS32_BOARD_J5_PinGet(2) == 0)  { //Scan Mode-Switch - are we in Play ore Record Mode?
        //First time we get a Pulse, we send out a CLOCK-START-Signal
        if((MIOS32_BOARD_J5_PinGet(0) == 1) && (audio_pulse_durate == 0) && (Start_Flag == 1) ) {//Pulse = HI,  Pulse start duration
            MIOS32_MIDI_SendClock(32); //send MidiClock
            MIOS32_MIDI_SendStart(32);
            audio_pulse_durate = 1; // Pulse starte duration
            Start_Flag = 0;
            MIOS32_BOARD_LED_Set(1, 1);
        }
        //All other Pulses, are just Clocks, without Startsignals
        if((MIOS32_BOARD_J5_PinGet(0) == 1) && (audio_pulse_durate == 0) ) {//Pulse = HI,  Pulse start duration
            MIOS32_MIDI_SendClock(32); //send MidiClock
            audio_pulse_durate = 1; // Pulse starte duration
            MIOS32_BOARD_LED_Set(1, 1);
        }
        //Ensure to kill the PULSE DURATION FLAG, after the Pulse is gone....
         if((MIOS32_BOARD_J5_PinGet(0) == 0) && (audio_pulse_durate == 1) ) { //Pulse = LO, Pulse still in duration
            audio_pulse_durate = 0; // Pulse stop duration
            MIOS32_BOARD_LED_Set(1, 0);
        }  
    }
}
void APP_MIDI_NotifyPackage(mios32_midi_port_t port, mios32_midi_package_t midi_package){  
    if(MIOS32_BOARD_J5_PinGet(2) == 1)  { //Scan Mode-Switch - are we in Play ore Record Mode?
        Start_Flag = 1;//next time we PLAY out the Clock, we send a START Signal
       
        if(port==32){
        if(midi_package.evnt0 == 252) {Start_Flag = 1; } //when sequencer is stopped we generate midi clock & transport  
             
      //filter clock          
            if(midi_package.evnt0 == 248) {//248CLK,250Strt,251Cont,252Stp
            clock_trigger = 1;
            clock_counter = 0; //initate Clock HI-State Timer
            MIOS32_BOARD_J5_PinSet(1, 1); //activate GPIO-Pin J5A Pin 2
            Start_Flag = 1; //reset flag in order to send out a start signal when next AUDIO-PULSE COMES IN
            }
        }
    }
}
 
  • Daumen hoch
M.i.a.u.: Max
erklärungsvideo zur Bedienung/Sinnhaftigkeit in Kombie mit Zoom livetrack (auf englisch).... und ein paar overdubs > praktischer nutzen:
 
Wenn ich es richtig verstehe, dann nimmst Du letztlich nicht dezidiert MIDI-Clock auf, sondern (theoretisch) den MIDI-stream generell - Du filterst nur vorher auf Clock (und vermutlich Start/Stop-Events). Richtig?
Wenn ja, dann bedeutet das aber, dass Du immer von vorne anfangen muss. Du kannst nicht mitten in der Aufnahme stoppen, etwas zurückspulen und dort wieder einsteigen. Richtig?

Du machst also letztlich das gleiche, was früher die einfachen Tape-Sync-Boxen gemacht haben, nur eben nicht mit Frequenc Encoding, sondern mit direkten Triggern für jedes Clock-Tick-Event.
Theoretisch müsstest Du damit auch zB DIN-Sync auf MIDI-Clock wandeln können.
 
midiport in>ûController>code:midifilter filter clock>wenn clock byte reinkommt schalte für 2ms einen digital ausgang ein> warte auf nächste clock... > entkoppel und senke spannung des digital ausgang pulses> zeichne es auf via audio recorder...

so weit zur aufnahme vom einer clock


richtig.
zur wiedergabe der clock... ja von vorne. denn der erste pulse gibt das start byte aus... der ja nötig ist bei stepsequencern... man denke an 4/4 5/4 3/4 6/4... der startpunkt des ersten 1ers ist bei den erschiedenen takten immer woanders... das ganze ist midiclock und nicht timecode
mann könnte nach start aber nach vorne spielen der audioplayer müsste dann aber jeden impuls rausschicken
-digital recorder machen da einfach aussetzer. funkt nicht
-tape in ffw macht das -die geschwindigkeit ist aber begrenzt... man bekommmt nicht beliebig viel 2ms pulse unter ihrgendwann überlappt die zeit. auch werden die impulse immer kürzer und ihrgendwann löst der schmitttrigger nicht mehraus... also nein

ich denk für din sync müsste der code angepasst werden. hardware mässig ja dürfte gehen kommt aber auf dennpegel draufan...eingang ist für audio pegel ausgelegt nicht für 5V . heist andere wiederstandswerte oder ein spannungsteiler vorschalten...hab aber kein dinsync gerät kanns nicht austesten
 


News

Zurück
Oben