Supercollider / TCP

Supercollider – when receiving messages in TCP – asks for a trailing int containing the length of the message [1]. This has been implemented like this: QByteArray out = oscMessage( path, data ); qint32 len=out.length(); out.push_front(QOscBase::fromInt32(len)); socket()->write(out); Sending such a message to puredata, results in an error: unpackOSC: DataAfterAlignedString: Incorrectly padded string unpackOSC: Bad message […]

Cast von Klassen

Fehler:‘class QAbstractSocket’ has no member named ‘bind’ if(socket()->socketType()==QAbstractSocket::UdpSocket) { (QUdpSocket)(socket())->bind( QHostAddress::Any, port ); } This way it works: if(socket()->socketType()==QAbstractSocket::UdpSocket) {   static_cast<QUdpSocket *>(socket())->bind( QHostAddress::Any, port );   connect( static_cast<QUdpSocket *>(socket()), SIGNAL( readyRead() ), this, SLOT( readyRead() ) ); }

Zwischenbilanz

System Latenz der Netzwerkverarbeitung variert zwischen 0.3-3 ms TCP z.T. von Applikationen nicht unterstützt Verwendung von Urgent (out of band data) / Push flag überwindet Nachteile von TCP. TCP beschränkt kontrollierbar durch QT. Lösungskonzept UDP übertragung mit selbstgeschriebenem Client auf Empfangsseite. Nummerierung der Pakete under Verwendung von OSC-Timestamp. Vorteil: Übertragungsqualität kann von Anwendung erkannt werden. […]

Market overview

Question: Can these Products receive OSC-TCP? Puredata Yes, bud dumpOSC does not work, you have to use netreceive and the external OSC / unpackOSC http://en.flossmanuals.net/pure-data/ch065_osc/ http://puredata.info/community/projects/software/osc Reaktor Reaktor 5.1 seems not to accept tcp connections. Supercollider Accepts tcp by option: start with: scsynth -t <tcp-port> -u <udp-port> MAX/MSP (5.1.8) Yes, via net.tcp.recv und OSC-route. http://maxobjects.com/?v=objects&id_objet=2 […]

Fehlermessung

Der Fehler ist auf folgenden 2 Schreenshots dargestellt. Während der Sender 234 Nachrichten verschickt, kommen beim Empfänger gerade mal noch 100 an. Diese Werte können den Zählern der Sende-/Empfangsapplikation entnommen werden. Der Parallel dazu laufende Netzwerkscanner liefert auf beiden Seiten exakt die gleichen Werte. Wir können beobachten, dass der Nachrichtenverlust mit der Paketfrequenz steigt. Bei […]

TCP options to use

Working with Out-Of-Band Data: Setting the URG-Flag. This prevents that later packets have to wait for earlier, lost ones. send(…,,MSG_OOB) Setting the socket to TCP_NOWAIT: This sends small amounts of data immediately, without waiting for filling one packet. m_socket->setSocketOption(QAbstractSocket::LowDelayOption, 1); PSH-Flag…. http://packetlife.net/blog/2011/mar/2/tcp-flags-psh-and-urg/ Literature: The GNU C Library Reference Manual, Edition 0.12 http://www.qtcentre.org/threads/45955-SOLVED-setting-QTcpSocket-TCP_NODELAY-option http://doc.qt.nokia.com/4.7/qabstractsocket.html

Besprechung Konzept mit Mentor

Bedenken Mentor: TCP kann zu hohen Latenzzeiten führen, wegen der Retransmits und Sliding Window Size. Vorschlag Mentor: Entwickeln eines eigenen, UDP-basierten Sicherungssystems. Hypothese Student: Probleme mit Da die OSC-Pakete tendenziell eher klein sind (~32 bytes) und die Übertragungsstrecken kurz, fallen Verzögerungen durch warten auf Retransmits wenig ins Gewicht. Fragen: Wie genau verhält sich TCP beim […]