boah :o :o
hab grade festgestellt das Virtual-DJ ein DMX interface besizt
kennt sich damit jemannt aus???
kann mann dieses mit DMXC verbinden???
mfg maik
boah :o :o
hab grade festgestellt das Virtual-DJ ein DMX interface besizt
kennt sich damit jemannt aus???
kann mann dieses mit DMXC verbinden???
mfg maik
klingt intressant sofern das im software-bereich ist, deshalb hab ich mal gegoogelt.
von virtual dj gibt es verschiedene hardware (pulte, vinyl-pc interfaces usw.) und software (den mixer usw.)
ich finde allerdings weder bei hard noch software irgendwas von dmx, könntest du bitte etwas genauer beschreiben? evtl. software und version etc.
Hi!
Hab das hier gefunden:
"DMX lights: VirtualDJ Pro lets you control all your lights directly through DMX."
Schätze also das wird ein DMX-Out sein, kein Input.
Was anderes find ich auch nicht.
Hoc
PS: Im übrigen wurde im lampentreff-Forum schonmal drüber diskutiert einen Audio-Mixer per DMX zu steuern. Es gibt tatsächlich 0-10V gesteuerte elektronische Fader für Musik. Also zumindest das Faden von einem Input zum anderen (oder wie in dem Fall die Lautstärkenregelung im Haus) lässt sich konventionell mit Hardware machen... (etwa 200€) ![]()
das wäre doch intressant.
nämlich dann wen virtual-dj ein gutes S2L signal auswirft und wenn man den ausgang von virtual-dj zum dmx-in von dmxc leiten könnte und dort weiterverarbeiten. als S2L
aber ich kann mir das nicht vorstellen, denn für ein s2l ist neben den beats (die ein dj-programm ja zweifellos hat) auch eine kanal-information über die geräte notwendig.
na ja eine kanalinformation über die geräte ist nicht unbedingt erforderlich . warum auch. Schließlich ist es doch dem DMX kanal erstmal egal wo er ankommt. Die trennung erfolgt doch erst am Gerät (also ob der kanal für das Gerät bestimmt ist oder nicht), wenn ich das DMX richtig verstanden habe. Bitte berichtigen wenn ich falsch liege.
Gerald
ich bin beta-tester bei VirtualDJ und würde ebenfalls gerne VirtualDJ und DMXControl verbinden, da ich beide Programme sehr schätze.
falls ihr Infos über VDJ benötigt um eine zusammenarbeit der beiden programme zu ermöglichen, lasst es mich wissen!
Quotena ja eine kanalinformation über die geräte ist nicht unbedingt erforderlich . warum auch. Schließlich ist es doch dem DMX kanal erstmal egal wo er ankommt. Die trennung erfolgt doch erst am Gerät (also ob der kanal für das Gerät bestimmt ist oder nicht), wenn ich das DMX richtig verstanden habe. Bitte berichtigen wenn ich falsch liege.
Gerald
ich sagte aber nicht für dmx sondern für s2l und da ist es doch wohl ein unterschied, ob man pan/tilt, dimmer oder farbrad ansteuert. deshalb bräuchte das programm gewisse geräteinfos, erst recht bei diesen fürchterlichen misch-kanälen an deren prozeduren hier der ein oder andere so manche stunde gefeilt hat.
ok nicht richtig gelesen sorry
Hallo,
helft mir bitte mal zu verstehen, wie dieser Thread zu jenem passt:
Forum beat tool verbunden mit virtual dj
- Tippfehler hat dort mit dem VST-Plugin eine Lösung über MIDI gebastelt, die er aber hier nicht "rausrückt"
? (Virtual-DJ ist VST-fähig ??)
- Hier wird die These aufgestellt, dass die Kopplung auch irgendwie über DMX möglich ist ??
- metizn hat vielleicht noch eine andere Kopplungsidee im Hinterkopf?
- Wie passt das ganze zur OSC-Diskussion, siehe Wiki Beat detection ?
Da Virtual DJ offensichtlich keine Free/OpenSource-SW ist, kann es von DMXControl keine "interne" Schnittstelle zu Virtual-DJ geben. Hier haben wir eine andere Situation als z.B. bei Winamp, das sich ja jeder DMXControl-Nutzer kostenlos mitinstallieren kann.
Alles was ich mir vorstellen kann, ist eine "standardisierte" Schnittstelle im Sinne OSC, MIDI (über VST-Kopplung).
Ich setze das Thema mal als Punkt für die nächste Projektbesprechung auf.
Gruss Frank
ich würde das ganze über midi clock lösen. dies wird zwar (noch) nicht von virtualDJ (=Numark Cue) unterstützt, allerdings wird das meiner meinung nach über kurz oder lang implementiert werden (Traktor hat diese funktion ebenfalls). Meiner Meinung nach ist eine Beat Syncronisation über Midi Clock die professionellste und universellste Lösung. Wahrscheinlich gibt es sogar ein VST plugin das midi clock ausgibt, muss mich mal schlau machen (VirtualDJ unterstützt VST).
Eine weitere Möglichkeit wäre ein plugin für VirtualDJ zu schreiben da dieses auch externe plugins unterstützt.
@ metizn
wenn du beta tester bist kannnst du ja mal in erfahrung bringen
was die OSC-Daten die mann auslesen kann zu bedeuten haben ???
würde uns sehr weiter helfen
zu dem thema VST hab ich mit numarkcue schlechte erfahrung gemacht
es wurde bissher kein vst erkannt (akzeptiert)
*bin zu blöd dafür*
mfg maik
so jetz mal grundlegendes zu beat detection!!!! ![]()
die arbeitsweise von freeware (zu 99%), besteht darin einen band-pass filter zu nehmen und das audio signal
zu begrenzenz.B. 30-200Hz
nun schaut mann ob peak`s auftauchen, und sendet bei jedem peak ein signal(midiclock,osc,midi note on/off,.........)
bessere tools verwenden zu dem noch einen kleinen zusatz, bei dem nach jedem peak eine erfassungspause von ca. 300msec hinzukommt.
diese beiden methoden sind sehr ungenau, da baselines auch als beat erkannt werden
dazu zählt auch mein vst plugin ;D
um es genau hinzubekommen muss man schon einen algorythmus verwenden mit dem man das audio signal berechnet nach "sound energy & frequenz energy"
das heist wenn z.B. über einen bestimmten zeitraum ein audio signal mit 50hz auftritt und zudem noch ein anstieg der lautsärke(über eine bestimmte länge)
dann ist das höchst warscheinlich ein beat und keine baseline
nachzulesen hier--> http://www.gamedev.net/reference/prog…/beatdetection/
habe solche gefunden in form von java aus denen mann was machen kann
es sind source code`s für "processing" damit kann man die java applets erstellen
leider laufen die bei mir nicht??
ich werde sie mal suchen und hier die links posten ![]()
hat schon mal jemand mit "processings " gearbeitet????
mfg maik
hab das vor längerer zeit schon mal nachgefragt:
OSC gibt unter anderem einen 'Phase' wert aus.
Dieser steigt linear von 0 bis 44100*60/BPM an und resetiert dann zu 0 beim nächsten Beat.
die haben gemeint man könnte ein plugin schreiben das diese codezeilen enthält:
: if ( oldphase>10000 and phase<2000 ) send midi beat;
: oldphase=phase;
oha ;D
genau danach hab ich gesucht ![]()
geht mir darum er sendet ständig die phase
allerdings nicht wiemann denken könnte kontinuierlich einen wert sonder ein mischmasch z.B.
phase 234##
phase26574##
phase4536##
und immer so weiter :o
denke mal wenn man genau den beat finden will muss man die aktualisierungs rate extrem hoch schrauben
abba danke für den tip werts mal probieren ![]()
achso?? für welche programmier sprache solln der code sein ??
mfg maik
Quoteachso?? für welche programmier sprache solln der code sein ??
weiß ich leider nicht
also für "processing" isser nich habs probiert
der kennt ""oldphase"" nicht
also die idee des code`s is genau det watt ick suche
nur leider kann ich nur immer ein value abrufen und nicht zwichen speichern---> kann es also nicht mit dem nächsten value vergleichen
so sieht der code aus um das osc.phase.signal zu empfangen
/**
* oscP5oscArgument by andreas schlegel
* example shows how to parse incoming osc messages "by hand".
* it is recommended to take a look at oscP5plug for an alternative way to parse messages.
* oscP5 website at http://www.sojamo.de/oscP5
*/
import oscP5.*;
import netP5.*;
OscP5 oscP5;
NetAddress myRemoteLocation;
void setup() {
size(400,400);
frameRate(25);
/* start oscP5, listening for incoming messages at port 12000 */
oscP5 = new OscP5(this,12000);
myRemoteLocation = new NetAddress("127.0.0.1",12000);
}
void draw() {
background(0);
}
void oscEvent(OscMessage theOscMessage) {
/* parse theOscMessage and extract the values from the osc message arguments. */
int firstValue = theOscMessage.get(0).intValue(); // get the first osc argument
println(" values: "+firstValue );
}
return;
vieleicht kann ja stefan weiter helfen
mfg maik
Der Code ist Pseudo-Code, nichts ausprogrammiertes. Soll halt zeigen, wie das zu machen wäre. Einfach irgendwo einfügen is nicht...
Warum solltest du keine Werte speichern können? So wie ich den Code sehe, wird oscEvent() als Callback-Funktion bei jedem Event aufgerufen. In einer globalen Variable (so wie myRemoteLocation) kannst du doch einen Wert ablegen, der da auch beim nächsten Aufruf noch ist.
Stefan
und das ergebnis sieht dann so aus
values: 11154
values: 13202
values: 16274
values: 19346
<------ beat
values: 46
values: 2094
values: 5166
values: 8238
values: 10286
values: 13358
values: 16430
values: 19502
<---------- beat
values: 202
values: 2250
values: 5322
values: 8394
values: 10442
values: 13514
values: 16586
values: 18634
values: 21706
<------beat
values: 2406
values: 4454
values: 7526
values: 9574
values: 12646
values: 15718
values: 17766
values: 20838
<-----beat
values: 1538
values: 4610
values: 6658
values: 9730
values: 12802
values: 15874
values: 17922
values: 20994
<------ beat
values: 1694
values: 3742
values: 6814
values: 9886
values: 12958
values: 13982
values: 18078
values: 21150
<------beat
values: 826
values: 2874
values: 6970
values: 9018
values: 12090
values: 14138
values: 17210
values: 20282
<----- beat
values: 982
man erkennt schön den sogenannten beat
mfg maik
stefan sorry das ist das erstemal in meinem leben das ich was programmiere ;D
hilf mir bitte
![]()
juhu habs hinbekommen ;D ;D
er speichert zwischen und vergleicht old & new Value
nun druckt er mir bei jedem takt das wort beat ![]()
jetz nur noch ein midi signal raus ???
hier der neu total einfache code:
/**
* oscP5oscArgument by andreas schlegel
* example shows how to parse incoming osc messages "by hand".
* it is recommended to take a look at oscP5plug for an alternative way to parse messages.
* oscP5 website at http://www.sojamo.de/oscP5
*/
import oscP5.*;
import netP5.*;
OscP5 oscP5;
NetAddress myRemoteLocation;
void setup() {
size(400,400);
frameRate(25);
/* start oscP5, listening for incoming messages at port 12000 */
oscP5 = new OscP5(this,12000);
myRemoteLocation = new NetAddress("127.0.0.1",12000);
}
int a = 0; <----- das ist das wichtigste ;D
void draw() {
background(0);
}
void oscEvent(OscMessage theOscMessage){
/* parse theOscMessage and extract the values from the osc message arguments. */
int firstValue = theOscMessage.get(0).intValue(); // get the first osc argument
println(" 1 values: "+firstValue );
println(" 2 values: "+a );
if((a > 9000) && (firstValue < 4000)) {
println(" BEAT ");
}
a = firstValue; <-----das iss neu ;D
}
return;
-----------------------------------------------------------------------
und so siehts dann aus
2 values: 25696
1 values: 5056
2 values: 3008
1 values: 8128
2 values: 5056
1 values: 11200
2 values: 8128
1 values: 14272
2 values: 11200
1 values: 16320
2 values: 14272
1 values: 19392
2 values: 16320
1 values: 22464
2 values: 19392
1 values: 25536
2 values: 22464
1 values: 1824 <----- die beiden werte
2 values: 25536 <----- werden verglichen
BEAT
1 values: 4896
2 values: 1824
1 values: 7968
2 values: 4896
1 values: 10016
2 values: 7968
1 values: 13088
2 values: 10016
1 values: 16160
2 values: 13088
1 values: 19232
2 values: 16160
1 values: 20256
2 values: 19232
1 values: 24352
2 values: 20256
1 values: 640 <----- die beiden werte
2 values: 24352 <----- werden verglichen
BEAT
1 values: 3712
2 values: 640
1 values: 5760
2 values: 3712
1 values: 8832
2 values: 5760
1 values: 11904
2 values: 8832
1 values: 14976
2 values: 11904
1 values: -1 <----- die beiden werte
2 values: 14976 <----- werden verglichen
BEAT
1 values: 0
2 values: -1
1 values: 19174
2 values: 0
mfg maik